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)).