TPTP Axioms File: LAT002-0.ax


%--------------------------------------------------------------------------
% File     : LAT002-0 : TPTP v9.0.0. Released v1.0.0.
% Domain   : Lattice Theory
% Axioms   : Lattice theory axioms
% Version  : [MOW76] axioms :
%            Incomplete > Reduced & Augmented > Complete.
% English  :

% Refs     : [MOW76] McCharen et al. (1976), Problems and Experiments for a
%          : [Wos88] Wos (1988), Automated Reasoning - 33 Basic Research Pr
% Source   : [MOW76]
% Names    :

% Status   : Satisfiable
% Syntax   : Number of clauses     :   20 (   8 unt;   0 nHn;  12 RR)
%            Number of literals    :   48 (   2 equ;  28 neg)
%            Maximal clause size   :    5 (   2 avg)
%            Maximal term depth    :    2 (   1 avg)
%            Number of predicates  :    3 (   2 usr;   0 prp; 2-3 aty)
%            Number of functors    :    4 (   4 usr;   2 con; 0-2 aty)
%            Number of variables   :   66 (   4 sgn)
% SPC      : 

% Comments : These axioms are used in [Wos88] p.215, augmented by some
%            redundant axioms about 0 & 1.
%          : The original [MOW76] axioms have two extra redundant
%            modularity axioms.
%          : [OTTER] uses these too, augmented by some redundant axioms.
%          : The [MOW76] axiomatisation is missing the axioms that make
%            join and meet total functions.
%--------------------------------------------------------------------------
%----Union of n1 and x is equal to n1 :  (n1 v X) = n1
cnf(join_1_and_x,axiom,
    join(n1,X,n1) ).

%----Union of x with itself is equal to x :  (X v X) = X
cnf(join_x_and_x,axiom,
    join(X,X,X) ).

%----Union of n0 and x is equal to x :  (n0 v X) = X
cnf(join_0_and_x,axiom,
    join(n0,X,X) ).

%----Intersection of n0 and x is equal to n0 : (n0 ^ X) = n0
cnf(meet_0_and_x,axiom,
    meet(n0,X,n0) ).

%----Intersection of x and itself is equal to x : (X ^ X) = X
cnf(meet_x_and_x,axiom,
    meet(X,X,X) ).

%----Intersection of n1 and x is equal to itself : (n1 ^ X) = X
cnf(meet_1_and_x,axiom,
    meet(n1,X,X) ).

%----Intersection of x and y , is the same as meet of y and x.
%----  (X ^ Y) = (Y ^ X),
cnf(commutativity_of_meet,axiom,
    ( ~ meet(X,Y,Z)
    | meet(Y,X,Z) ) ).

%----Union of x and y is the same as join of y and x. (X v Y) = (Y v X),
cnf(commutativity_of_join,axiom,
    ( ~ join(X,Y,Z)
    | join(Y,X,Z) ) ).

%----Union of x with the meet of x and y is the same as x.
%----  X v (X ^ Y) = X
cnf(absorbtion1,axiom,
    ( ~ meet(X,Y,Z)
    | join(X,Z,X) ) ).

%----Intersection  of x with the join of x and y is the same as x.
%----  X ^ (X v Y) = X
cnf(absorbtion2,axiom,
    ( ~ join(X,Y,Z)
    | meet(X,Z,X) ) ).

%----The operation '^', meet ,is associative
%----  X ^ (Y ^ Z) = (X ^ Y) ^ Z
cnf(associativity_of_meet1,axiom,
    ( ~ meet(X,Y,Xy)
    | ~ meet(Y,Z,Yz)
    | ~ meet(X,Yz,Xyz)
    | meet(Xy,Z,Xyz) ) ).

cnf(associativity_of_meet2,axiom,
    ( ~ meet(X,Y,Xy)
    | ~ meet(Y,Z,Yz)
    | ~ meet(Xy,Z,Xyz)
    | meet(X,Yz,Xyz) ) ).

%----The operation 'v' is associative X v (Y v Z) = (X v Y) v Z
cnf(associativity_of_join1,axiom,
    ( ~ join(X,Y,Xy)
    | ~ join(Y,Z,Yz)
    | ~ join(X,Yz,Xyz)
    | join(Xy,Z,Xyz) ) ).

cnf(associativity_of_join2,axiom,
    ( ~ join(X,Y,Xy)
    | ~ join(Y,Z,Yz)
    | ~ join(Xy,Z,Xyz)
    | join(X,Yz,Xyz) ) ).

%----(X ^ Z) = X implies that (Z ^ (X v Y)) =  (X v (Y ^ Z)),
cnf(modularity1,axiom,
    ( ~ meet(X,Z,X)
    | ~ join(X,Y,X1)
    | ~ meet(Y,Z,Y1)
    | ~ meet(Z,X1,Z1)
    | join(X,Y1,Z1) ) ).

cnf(modularity2,axiom,
    ( ~ meet(X,Z,X)
    | ~ join(X,Y,X1)
    | ~ meet(Y,Z,Y1)
    | ~ join(X,Y1,Z1)
    | meet(Z,X1,Z1) ) ).

cnf(meet_total_function_1,axiom,
    meet(X,Y,meet_of(X,Y)) ).

cnf(meet_total_function_2,axiom,
    ( ~ meet(X,Y,Z1)
    | ~ meet(X,Y,Z2)
    | Z1 = Z2 ) ).

cnf(join_total_function_1,axiom,
    join(X,Y,join_of(X,Y)) ).

cnf(join_total_function_2,axiom,
    ( ~ join(X,Y,Z1)
    | ~ join(X,Y,Z2)
    | Z1 = Z2 ) ).

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