TPTP Axioms File: SWV007+2.ax


%------------------------------------------------------------------------------
% File     : SWV007+2 : TPTP v8.1.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 unt;   0 def)
%            Number of atoms       :   24 (  12 equ)
%            Maximal formula atoms :    4 (   1 avg)
%            Number of connectives :   16 (   5   ~;   2   |;   3   &)
%                                         (   2 <=>;   4  =>;   0  <=;   0 <~>)
%            Maximal formula depth :    9 (   5 avg)
%            Maximal term depth    :    4 (   1 avg)
%            Number of predicates  :    6 (   5 usr;   0 prp; 1-3 aty)
%            Number of functors    :    6 (   6 usr;   1 con; 0-2 aty)
%            Number of variables   :   38 (  38   !;   0   ?)
% 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)) ) ).

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