TPTP Axioms File: SWV007+2.ax


%------------------------------------------------------------------------------
% File     : SWV007+2 : TPTP v7.5.0. Released v3.3.0.
% Domain   : Software Verification
% Axioms   : Priority queue checker: system of lower bounds
% Version  : [dNP05] axioms.
% English  :

% Refs     : [Pis06] Piskac (2006), Email to Geoff Sutcliffe
%          : [dNP05] de Nivelle & Piskac (2005), Verification of an Off-Lin
% Source   : [Pis06]
% Names    :

% Status   : Satisfiable
% Rating   : <Don't worry about this one - we'll do it automatically>
% Syntax   : Number of formulae    :   13 (   7 unit)
%            Number of atoms       :   24 (  12 equality)
%            Maximal formula depth :    9 (   5 average)
%            Number of connectives :   16 (   5 ~  ;   2  |;   3  &)
%                                         (   2 <=>;   4 =>;   0 <=)
%                                         (   0 <~>;   0 ~|;   0 ~&)
%            Number of predicates  :    6 (   0 propositional; 1-3 arity)
%            Number of functors    :    6 (   1 constant; 0-2 arity)
%            Number of variables   :   38 (   0 singleton;  38 !;   0 ?)
%            Maximal term depth    :    4 (   2 average)
% SPC      : 

% Comments : Requires SWV007+0
%------------------------------------------------------------------------------
fof(ax18,axiom,(
    ~ isnonempty_slb(create_slb) )).

fof(ax19,axiom,(
    ! [U,V,W] : isnonempty_slb(insert_slb(U,pair(V,W))) )).

fof(ax20,axiom,(
    ! [U] : ~ contains_slb(create_slb,U) )).

fof(ax21,axiom,(
    ! [U,V,W,X] :
      ( contains_slb(insert_slb(U,pair(V,X)),W)
    <=> ( contains_slb(U,W)
        | V = W ) ) )).

fof(ax22,axiom,(
    ! [U,V] : ~ pair_in_list(create_slb,U,V) )).

fof(ax23,axiom,(
    ! [U,V,W,X,Y] :
      ( pair_in_list(insert_slb(U,pair(V,X)),W,Y)
    <=> ( pair_in_list(U,W,Y)
        | ( V = W
          & X = Y ) ) ) )).

fof(ax24,axiom,(
    ! [U,V,W] : remove_slb(insert_slb(U,pair(V,W)),V) = U )).

fof(ax25,axiom,(
    ! [U,V,W,X] :
      ( ( V != W
        & contains_slb(U,W) )
     => remove_slb(insert_slb(U,pair(V,X)),W) = insert_slb(remove_slb(U,W),pair(V,X)) ) )).

fof(ax26,axiom,(
    ! [U,V,W] : lookup_slb(insert_slb(U,pair(V,W)),V) = W )).

fof(ax27,axiom,(
    ! [U,V,W,X] :
      ( ( V != W
        & contains_slb(U,W) )
     => lookup_slb(insert_slb(U,pair(V,X)),W) = lookup_slb(U,W) ) )).

fof(ax28,axiom,(
    ! [U] : update_slb(create_slb,U) = create_slb )).

fof(ax29,axiom,(
    ! [U,V,W,X] :
      ( strictly_less_than(X,W)
     => update_slb(insert_slb(U,pair(V,X)),W) = insert_slb(update_slb(U,W),pair(V,W)) ) )).

fof(ax30,axiom,(
    ! [U,V,W,X] :
      ( less_than(W,X)
     => update_slb(insert_slb(U,pair(V,X)),W) = insert_slb(update_slb(U,W),pair(V,X)) ) )).

%------------------------------------------------------------------------------