TPTP Axioms File: SWV007+1.ax


%------------------------------------------------------------------------------
% File     : SWV007+1 : TPTP v7.5.0. Released v3.3.0.
% Domain   : Software Verification
% Axioms   : Priority queue checker: priority queues
% Version  : [dNP05] axioms.
% English  : Priority queues are inductively defined.

% 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    :   12 (   5 unit)
%            Number of atoms       :   26 (   9 equality)
%            Maximal formula depth :    7 (   4 average)
%            Number of connectives :   17 (   3 ~  ;   1  |;   5  &)
%                                         (   2 <=>;   6 =>;   0 <=)
%                                         (   0 <~>;   0 ~|;   0 ~&)
%            Number of predicates  :    5 (   0 propositional; 1-2 arity)
%            Number of functors    :    7 (   1 constant; 0-2 arity)
%            Number of variables   :   25 (   0 singleton;  25 !;   0 ?)
%            Maximal term depth    :    3 (   1 average)
% SPC      : 

% Comments : Requires SWV007+0
%------------------------------------------------------------------------------
fof(ax6,axiom,(
    ~ isnonempty_pq(create_pq) )).

fof(ax7,axiom,(
    ! [U,V] : isnonempty_pq(insert_pq(U,V)) )).

fof(ax8,axiom,(
    ! [U] : ~ contains_pq(create_pq,U) )).

fof(ax9,axiom,(
    ! [U,V,W] :
      ( contains_pq(insert_pq(U,V),W)
    <=> ( contains_pq(U,W)
        | V = W ) ) )).

fof(ax10,axiom,(
    ! [U,V] :
      ( issmallestelement_pq(U,V)
    <=> ! [W] :
          ( contains_pq(U,W)
         => less_than(V,W) ) ) )).

fof(ax11,axiom,(
    ! [U,V] : remove_pq(insert_pq(U,V),V) = U )).

fof(ax12,axiom,(
    ! [U,V,W] :
      ( ( contains_pq(U,W)
        & V != W )
     => remove_pq(insert_pq(U,V),W) = insert_pq(remove_pq(U,W),V) ) )).

fof(ax13,axiom,(
    ! [U,V] :
      ( ( contains_pq(U,V)
        & issmallestelement_pq(U,V) )
     => findmin_pq_eff(U,V) = U ) )).

fof(ax14,axiom,(
    ! [U,V] :
      ( ( contains_pq(U,V)
        & issmallestelement_pq(U,V) )
     => findmin_pq_res(U,V) = V ) )).

fof(ax15,axiom,(
    ! [U,V] :
      ( ( contains_pq(U,V)
        & issmallestelement_pq(U,V) )
     => removemin_pq_eff(U,V) = remove_pq(U,V) ) )).

fof(ax16,axiom,(
    ! [U,V] :
      ( ( contains_pq(U,V)
        & issmallestelement_pq(U,V) )
     => removemin_pq_res(U,V) = V ) )).

fof(ax17,axiom,(
    ! [U,V,W] : insert_pq(insert_pq(U,V),W) = insert_pq(insert_pq(U,W),V) )).

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