:- dynamic lt/2,j/3.

name(l).

dom(x). dom(y). dom(u). dom(z). dom(v). dom(w). 

_ axiom assump : (true => j(x,y,u),j(u,z,v),j(y,z,w)). 
_ axiom goal_ax  : (j(x,w,V),lt(v,V),lt(V,v) => goal).           
 
_ axiom lt_refl(X) : (dom(X) => lt(X,X)).
_ axiom lt_trans(X,Y,Z) : (lt(X,Y),lt(Y,Z) => lt(X,Z)).
_ axiom ub_join(X,Y,Z) : (j(X,Y,Z) => lt(X,Z),lt(Y,Z)).
_ axiom lub_join(X,Y,Z,U) : (j(X,Y,Z),lt(X,U),lt(Y,U) => lt(Z,U)).
_ axiom lt_j(X,Y) : (lt(X,Y) => j(X,Y,Y)).
_ axiom commute_j(X,Y,Z) : (j(X,Y,Z) => j(Y,X,Z)).
_ axiom up_latt(X,Y) : (dom(X),dom(Y) => dom(U),j(X,Y,U)).


