dom(A),dom(B)-->
equal(apply(apply(u,A),B),
apply(B,apply(apply(A,A),B))).
equal(A,apply(combinator,A))-->false.
dom(A)-->equal(A,A).
equal(A,B)-->equal(B,A).
equal(A,B),equal(B,C)-->equal(A,C).
equal(A,B),dom(C)-->equal(apply(A,C),apply(B,C)).
equal(A,B),dom(C)-->equal(apply(C,A),apply(C,B)).
true-->dom(u),dom(combinator).
dom(A),dom(B)-->dom(apply(A,B)).