|
1 %ID: $Id$ |
|
2 %Author: Jia Meng, NICTA |
|
3 %typed combinator reduction for const-types-only (include S) |
|
4 |
|
5 %K P Q --> P |
|
6 input_clause(a1,axiom, |
|
7 [++equal(hAPP(hAPP(c_COMBK(A,B),P),Q),P)]). |
|
8 |
|
9 %S P Q R --> P R (Q R) |
|
10 input_clause(a2,axiom, |
|
11 [++equal(hAPP(hAPP(hAPP(c_COMBS(A,B,C),P),Q),R),hAPP(hAPP(P,R),hAPP(Q,R)))]). |
|
12 |
|
13 |
|
14 %I P --> P |
|
15 input_clause(a3,axiom, |
|
16 [++equal(hAPP(c_COMBI(T),P),P)]). |
|
17 |
|
18 %B P Q R --> P(Q R) |
|
19 input_clause(a4,axiom, |
|
20 [++equal(hAPP(hAPP(hAPP(c_COMBB(A,B,C),P),Q),R),hAPP(P,hAPP(Q,R)))]). |
|
21 |
|
22 |
|
23 %C P Q R --> P R Q |
|
24 input_clause(a5,axiom, |
|
25 [++equal(hAPP(hAPP(hAPP(c_COMBC(A,B,C),P),Q),R),hAPP(hAPP(P,R),Q))]). |
|
26 |
|
27 %the combinators are all different |
|
28 input_clause(a6,axiom, |
|
29 [--equal(c_COMBI(T),c_COMBK(A,B))]). |
|
30 |
|
31 input_clause(a7,axiom, |
|
32 [--equal(c_COMBI(T),c_COMBS(A,B,C))]). |
|
33 |
|
34 input_clause(a8,axiom, |
|
35 [--equal(c_COMBI(T),c_COMBB(A,B,C))]). |
|
36 |
|
37 input_clause(a9,axiom, |
|
38 [--equal(c_COMBI(T),c_COMBC(A,B,C))]). |
|
39 |
|
40 input_clause(a10,axiom, |
|
41 [--equal(c_COMBK(A,B),c_COMBS(A3,B3,C3))]). |
|
42 |
|
43 input_clause(a11,axiom, |
|
44 [--equal(c_COMBK(A,B),c_COMBB(A1,B1,C1))]). |
|
45 |
|
46 input_clause(a12,axiom, |
|
47 [--equal(c_COMBK(A,B),c_COMBC(A2,B2,C2))]). |
|
48 |
|
49 input_clause(a13,axiom, |
|
50 [--equal(c_COMBS(A3,B3,C3),c_COMBB(A1,B1,C1))]). |
|
51 |
|
52 input_clause(a14,axiom, |
|
53 [--equal(c_COMBS(A3,B3,C3),c_COMBC(A2,B2,C2))]). |
|
54 |
|
55 input_clause(a15,axiom, |
|
56 [--equal(c_COMBB(A1,B1,C1),c_COMBC(A2,B2,C2))]). |
|
57 |
|
58 input_clause(a16,axiom, |
|
59 [--hBOOL(hAPP(hAPP(fequal(A),X),Y)),++equal(X,Y)]). |
|
60 |
|
61 input_clause(a17,axiom, |
|
62 [++hBOOL(hAPP(hAPP(fequal(A),X),Y)),--equal(X,Y)]). |
|
63 |
|
64 |
|
65 |