TPTP Axioms File: SWV002-0.ax


%--------------------------------------------------------------------------
% File     : SWV002-0 : TPTP v9.0.0. Released v1.0.0.
% Domain   : Software Verification
% Axioms   : Program verification axioms
% Version  : [MOW76] axioms.
% English  : These "clauses arose in a natural manner from work done
%            in program verification" [MOW76] p.779.

% Refs     : [MOW76] McCharen et al. (1976), Problems and Experiments for a
% Source   : [MOW76]
% Names    :

% Status   : Satisfiable
% Syntax   : Number of clauses     :   22 (   6 unt;   2 nHn;  19 RR)
%            Number of literals    :   52 (   3 equ;  30 neg)
%            Maximal clause size   :    5 (   2 avg)
%            Maximal term depth    :    2 (   1 avg)
%            Number of predicates  :   11 (  10 usr;   0 prp; 1-4 aty)
%            Number of functors    :    4 (   4 usr;   2 con; 0-2 aty)
%            Number of variables   :   48 (   5 sgn)
% SPC      : 

% Comments : These axioms were contributed to [MOW76] by E. McCharen. The
%            axioms are incomplete.
%          : Due to clause_2 being incomplete, no problems have been defined
%            on these axioms.
%--------------------------------------------------------------------------
cnf(clause_1,axiom,
    ( ~ q1(Vj,Vt,Vx)
    | q2(Vj,e(Vx,n1),Vx) ) ).

%----The second literal is not printed in [MOW76].
%----So this literal may be wrong
cnf(clause_2,axiom,
    ( ~ q2(Vj,Vt,Vx)
    | q3(successor(n1),Vt,VWhat) ) ).

cnf(clause_3,axiom,
    ( ~ q3(Vj,Vt,Vx)
    | ~ less_or_equal(Vj,n)
    | q4(Vj,Vt,Vx) ) ).

cnf(clause_4,axiom,
    ( ~ q3(Vj,Vt,Vx)
    | less_or_equal(Vj,n)
    | q7(Vj,Vt,Vx) ) ).

cnf(clause_5,axiom,
    ( ~ q4(Vj,Vt,Vx)
    | ~ d(Vj)
    | ~ less_or_equal(e(Vx,Vj),Vt)
    | q6(Vj,Vt,Vx) ) ).

cnf(clause_6,axiom,
    ( ~ q4(Vj,Vt,Vx)
    | ~ d(Vj)
    | less_or_equal(e(Vx,Vj),Vt)
    | q5(Vj,Vt,Vx) ) ).

cnf(clause_7,axiom,
    ( ~ q5(Vj,Vt,Vx)
    | ~ d(Vj)
    | q6(Vj,e(Vx,Vj),Vx) ) ).

cnf(clause_8,axiom,
    ( ~ q6(Vj,Vt,Vx)
    | q3(successor(Vj),Vt,Vx) ) ).

cnf(definition_of_d_1,axiom,
    ( ~ less_or_equal(n1,X)
    | ~ less_or_equal(X,n)
    | d(X) ) ).

cnf(definition_of_d_2,axiom,
    ( ~ d(X)
    | ~ less_or_equal(n1,X) ) ).

cnf(definition_of_d_3,axiom,
    ( ~ d(X)
    | less_or_equal(X,n) ) ).

cnf(one_is_d,axiom,
    d(n1) ).

cnf(n_is_d,axiom,
    d(n) ).

cnf(clause_9,axiom,
    less_or_equal(n1,n) ).

cnf(clause_10,axiom,
    ( ~ ub(W1,X,Y,Z)
    | ~ less_or_equal(W1,W2)
    | ub(W2,X,Y,Z) ) ).

cnf(clause_11,axiom,
    ( ~ ub(W,X,Y,Z1)
    | successor(Z1) != Z2
    | ~ d(Z2)
    | ~ less_or_equal(e(X,Z2),W)
    | ub(W,X,Y,Z2) ) ).

cnf(successor_not_less_or_equal,axiom,
    ~ less_or_equal(successor(X),X) ).

cnf(less_or_equal_than_successor,axiom,
    less_or_equal(X,successor(X)) ).

cnf(less_or_equal_reflexivity,axiom,
    less_or_equal(X,X) ).

cnf(less_or_equal_implies_equal,axiom,
    ( ~ less_or_equal(X,Y)
    | ~ less_or_equal(Y,X)
    | X = Y ) ).

cnf(transitivity_of_less_or_equal,axiom,
    ( ~ less_or_equal(X,Y)
    | ~ less_or_equal(Y,Z)
    | less_or_equal(X,Z) ) ).

cnf(equal_implies_less_or_equal,axiom,
    ( less_or_equal(X,Y)
    | X != Y ) ).

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