|
1 %ID: $Id$ |
|
2 %Author: Jia Meng, NICTA |
|
3 %typed combinator reduction for partial-types (no S) |
|
4 |
|
5 %K P Q --> P |
|
6 input_clause(a1,axiom, |
|
7 [++equal(hAPP(hAPP(c_COMBK,P,tc_fun(A,tc_fun(B,A))),Q,tc_fun(B,A)),P)]). |
|
8 |
|
9 %I P --> P |
|
10 input_clause(a3,axiom, |
|
11 [++equal(hAPP(c_COMBI,P,tc_fun(T,T)),P)]). |
|
12 |
|
13 |
|
14 %B P Q R --> P(Q R) |
|
15 input_clause(a4,axiom, |
|
16 [++equal(hAPP(hAPP(hAPP(c_COMBB,P,tc_fun(tc_fun(A,B),tc_fun(tc_fun(C,A),tc_fun(C,B)))),Q,tc_fun(tc_fun(C,A),tc_fun(C,B))),R,tc_fun(C,B)),hAPP(P,hAPP(Q,R,tc_fun(C,A)),tc_fun(A,B)))]). |
|
17 |
|
18 |
|
19 %C P Q R --> P R Q |
|
20 input_clause(a5,axiom, |
|
21 [++equal(hAPP(hAPP(hAPP(c_COMBC,P,tc_fun(tc_fun(A,tc_fun(B,C)),tc_fun(B,tc_fun(A,C)))),Q,tc_fun(B,tc_fun(A,C))),R,tc_fun(A,C)),hAPP(hAPP(P,R,tc_fun(A,tc_fun(B,C))),Q,tc_fun(B,C)))]). |
|
22 |
|
23 %the combinators are all different |
|
24 input_clause(a6,axiom, |
|
25 [--equal(c_COMBI,c_COMBK)]). |
|
26 |
|
27 input_clause(a8,axiom, |
|
28 [--equal(c_COMBI,c_COMBB)]). |
|
29 |
|
30 input_clause(a9,axiom, |
|
31 [--equal(c_COMBI,c_COMBC)]). |
|
32 |
|
33 input_clause(a11,axiom, |
|
34 [--equal(c_COMBK,c_COMBB)]). |
|
35 |
|
36 input_clause(a12,axiom, |
|
37 [--equal(c_COMBK,c_COMBC)]). |
|
38 |
|
39 input_clause(a15,axiom, |
|
40 [--equal(c_COMBB,c_COMBC)]). |
|
41 |
|
42 input_clause(a16,axiom, |
|
43 [--hBOOL(hAPP(hAPP(fequal,X,tc_fun(A,tc_fun(A,tc_bool))),Y,tc_fun(A,tc_bool))), |
|
44 ++equal(X,Y)]). |
|
45 |
|
46 input_clause(a17,axiom, |
|
47 [++hBOOL(hAPP(hAPP(fequal,X,tc_fun(A,tc_fun(A,tc_bool))),Y,tc_fun(A,tc_bool))), |
|
48 --equal(X,Y)]). |
|
49 |
|
50 |