% problem-set/algebra/henkin.models/hp5.ver1.clauses
% created : 07/21/86
% revised : 07/18/89

% description:
%
% Theorem HP5: LE is transitive.

% representation:
%
% declare_predicate(3,P).
% declare_predicates(2,[LE,=]).
% declare_function(2,f).
% declare_variables(x,y,z,u,v,w).
% declare_constants(0,1,a,b,c,d,e).
%
% P(x,y,z) : means x/y = z                                
% LE       : means less than or equal                     
% f(x,y)   : denotes x/y                                    


% A0: definition of less than or equal to 
-LE(x,y) | P(x,y,0).
-P(x,y,0) | LE(x,y).

% A1: x/y <= x
-P(x,y,z) | LE(z,x).

% A2: (x/z) / (y/z) <= (x/y) / z                       
-P(x,y,v1) | -P(y,z,v2) | -P(x,z,v3) | -P(v3,v2,v4) | -P(v1,z,v5)
	| LE(v4,v5).

% A3: 0 <= x                                         
LE(0,x).

% A4: x <= y and y <= x implies that x = y
-LE(x,y) | -LE(y,x) | (x = y).

% A5: x <= 1 (Thus an implicative model with unit 1) 
LE(x,1).

% closure of '/'                                    
P(x,y,f(x,y)).

% '/' is well defined 
-P(x,y,z) | -P(x,y,w) | (z = w).

% Equality axioms                                   
(x = x).
(x != y) | (y = x).
(x != y) | (y != z) | (x = z).

% Equality substitution axioms                     
(x != y) | -P(x,w,z) | P(y,w,z).
(x != y) | -P(w,x,z) | P(w,y,z).
(x != y) | -P(w,z,x) | P(w,z,y).
(x != y) | -LE(x,z) | LE(y,z).
(x != y) | -LE(z,x) | LE(z,y).
(x != y) | (f(x,w) = f(y,w)).
(x != y) | (f(w,x) = f(w,y)).

% denial of the theorem
LE(a,b).
LE(b,c).
-LE(a,c).

