Yet another version of fake_thm_name. "Full" hashing ensures that there are no collisions
unless theorems differ by sorts alone, which should not matter. Also minor fixes to
standard hashing.
%ID: $Id$
%Author: Jia Meng, NICTA
%untyped combinator reduction (include S)
clause(
forall([P, Q],
or( equal(hAPP(hAPP(c_COMBK,P),Q),P))),
a1 ).
clause(
forall([P, Q, R],
or( equal(hAPP(hAPP(hAPP(c_COMBS,P),Q),R),hAPP(hAPP(P,R),hAPP(Q,R))))),
a2 ).
clause(
forall([P],
or( equal(hAPP(c_COMBI,P),P))),
a3 ).
clause(
forall([P, Q, R],
or( equal(hAPP(hAPP(hAPP(c_COMBB,P),Q),R),hAPP(P,hAPP(Q,R))))),
a4 ).
clause(
forall([P, Q, R],
or( equal(hAPP(hAPP(hAPP(c_COMBC,P),Q),R),hAPP(hAPP(P,R),Q)))),
a5 ).
clause(
forall([X, Y],
or( not(hBOOL(hAPP(hAPP(fequal,X),Y))),
equal(X,Y))),
a6 ).
clause(
forall([X, Y],
or( not(equal(X,Y)),
hBOOL(hAPP(hAPP(fequal,X),Y)))),
a7 ).