| 19717 |      1 | %ID: $Id$
 | 
|  |      2 | %Author: Jia Meng, NICTA
 | 
|  |      3 | %typed combinator reduction for full-types (include S)
 | 
|  |      4 | 
 | 
|  |      5 | clause(
 | 
|  |      6 | forall([A, B, P, Q],
 | 
|  |      7 | or( equal(typeinfo(hAPP(typeinfo(hAPP(typeinfo(c_COMBK,tc_fun(A,tc_fun(B,A))),typeinfo(P,A)),tc_fun(B,A)),typeinfo(Q,B)),A),typeinfo(P,A)))),
 | 
|  |      8 | a1 ).
 | 
|  |      9 | 
 | 
|  |     10 | clause(
 | 
|  |     11 | forall([A, B, C, P, Q, R],
 | 
|  |     12 | or( equal(typeinfo(hAPP(typeinfo(hAPP(typeinfo(hAPP(typeinfo(c_COMBS,tc_fun(tc_fun(A,tc_fun(B,C)),tc_fun(tc_fun(A,B),tc_fun(A,C)))),typeinfo(P,tc_fun(A,tc_fun(B,C)))),tc_fun(tc_fun(A,B),tc_fun(A,C))),typeinfo(Q,tc_fun(A,B))),tc_fun(A,C)),typeinfo(R,A)),C),typeinfo(hAPP(typeinfo(hAPP(typeinfo(P,tc_fun(A,tc_fun(B,C))),typeinfo(R,A)),tc_fun(B,C)),typeinfo(hAPP(typeinfo(Q,tc_fun(A,B)),typeinfo(R,A)),B)),C)))),
 | 
|  |     13 | a2 ).
 | 
|  |     14 | 
 | 
|  |     15 | clause(
 | 
|  |     16 | forall([P, T],
 | 
|  |     17 | or( equal(typeinfo(hAPP(typeinfo(c_COMBI,tc_fun(T,T)),typeinfo(P,T)),T),typeinfo(P,T)))),
 | 
|  |     18 | a3 ).
 | 
|  |     19 | 
 | 
|  |     20 | clause(
 | 
|  |     21 | forall([A, B, C, P, Q, R],
 | 
|  |     22 | or( equal(typeinfo(hAPP(typeinfo(hAPP(typeinfo(hAPP(typeinfo(c_COMBB,tc_fun(tc_fun(A,B),tc_fun(tc_fun(C,A),tc_fun(C,B)))),typeinfo(P,tc_fun(A,B))),tc_fun(tc_fun(C,A),tc_fun(C,B))),typeinfo(Q,tc_fun(C,A))),tc_fun(C,B)),typeinfo(R,C)),B),typeinfo(hAPP(typeinfo(P,tc_fun(A,B)),typeinfo(hAPP(typeinfo(Q,tc_fun(C,A)),typeinfo(R,C)),A)),B)))),
 | 
|  |     23 | a4 ).
 | 
|  |     24 | 
 | 
|  |     25 | clause(
 | 
|  |     26 | forall([A, B, C, P, Q, R],
 | 
|  |     27 | or( equal(typeinfo(hAPP(typeinfo(hAPP(typeinfo(hAPP(typeinfo(c_COMBC,tc_fun(tc_fun(A,tc_fun(B,C)),tc_fun(B,tc_fun(A,C)))),typeinfo(P,tc_fun(A,tc_fun(B,C)))),tc_fun(B,tc_fun(A,C))),typeinfo(Q,B)),tc_fun(A,C)),typeinfo(R,A)),C),typeinfo(hAPP(typeinfo(hAPP(typeinfo(P,tc_fun(A,tc_fun(B,C))),typeinfo(R,A)),tc_fun(B,C)),typeinfo(Q,B)),C)))),
 | 
|  |     28 | a5 ).
 | 
|  |     29 | 
 | 
|  |     30 | clause(
 | 
|  |     31 | forall([A, X, Y],
 | 
|  |     32 | or( not(hBOOL(typeinfo(hAPP(typeinfo(hAPP(typeinfo(fequal,tc_fun(A,tc_fun(A,tc_bool))),typeinfo(X,A)),tc_fun(A,tc_bool)),typeinfo(Y,A)),tc_bool))),
 | 
|  |     33 |     equal(typeinfo(X,A),typeinfo(Y,A)))),
 | 
| 19969 |     34 | a6 ).
 | 
| 19717 |     35 | 
 | 
|  |     36 | clause(
 | 
|  |     37 | forall([A, X, Y],
 | 
|  |     38 | or( not(equal(typeinfo(X,A),typeinfo(Y,A))),
 | 
|  |     39 |     hBOOL(typeinfo(hAPP(typeinfo(hAPP(typeinfo(fequal,tc_fun(A,tc_fun(A,tc_bool))),typeinfo(X,A)),tc_fun(A,tc_bool)),typeinfo(Y,A)),tc_bool)))),
 | 
| 19969 |     40 | a7 ).
 | 
| 19717 |     41 | 
 |