src/HOL/Tools/atp-inputs/par_comb_inclS.tptp
changeset 19492 29c6cba140da
child 19969 c72e2110c026
equal deleted inserted replaced
19491:cd6c71c57f53 19492:29c6cba140da
       
     1 %ID: $Id$
       
     2 %Author: Jia Meng, NICTA
       
     3 %typed combinator reduction for partial-types (include 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 
       
    10 %S P Q R --> P R (Q R)
       
    11 input_clause(a2,axiom,
       
    12 [++equal(hAPP(hAPP(hAPP(c_COMBS,P,tc_fun(tc_fun(A,tc_fun(B,C)),tc_fun(tc_fun(A,B),tc_fun(A,C)))),Q,tc_fun(tc_fun(A,B),tc_fun(A,C))),R,tc_fun(A,C)),hAPP(hAPP(P,R,tc_fun(A,tc_fun(B,C))),hAPP(Q,R,tc_fun(A,B)),tc_fun(B,C)))]).
       
    13 
       
    14 %I P --> P
       
    15 input_clause(a3,axiom,
       
    16 [++equal(hAPP(c_COMBI,P,tc_fun(T,T)),P)]).
       
    17 
       
    18 
       
    19 %B P Q R --> P(Q R)
       
    20 input_clause(a4,axiom,
       
    21 [++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)))]).
       
    22 
       
    23 
       
    24 %C P Q R --> P R Q
       
    25 input_clause(a5,axiom,
       
    26 [++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)))]).
       
    27 
       
    28 %the combinators are all different
       
    29 input_clause(a6,axiom,
       
    30 [--equal(c_COMBI,c_COMBK)]).
       
    31 
       
    32 input_clause(a7,axiom,
       
    33 [--equal(c_COMBI,c_COMBS)]).
       
    34 
       
    35 input_clause(a8,axiom,
       
    36 [--equal(c_COMBI,c_COMBB)]).
       
    37 
       
    38 input_clause(a9,axiom,
       
    39 [--equal(c_COMBI,c_COMBC)]).
       
    40 
       
    41 input_clause(a10,axiom,
       
    42 [--equal(c_COMBK,c_COMBS)]).
       
    43 
       
    44 input_clause(a11,axiom,
       
    45 [--equal(c_COMBK,c_COMBB)]).
       
    46 
       
    47 input_clause(a12,axiom,
       
    48 [--equal(c_COMBK,c_COMBC)]).
       
    49 
       
    50 input_clause(a13,axiom,
       
    51 [--equal(c_COMBS,c_COMBB)]).
       
    52 
       
    53 input_clause(a14,axiom,
       
    54 [--equal(c_COMBS,c_COMBC)]).
       
    55 
       
    56 input_clause(a15,axiom,
       
    57 [--equal(c_COMBB,c_COMBC)]).
       
    58 
       
    59 input_clause(a16,axiom,
       
    60 [--hBOOL(hAPP(hAPP(fequal,X,tc_fun(A,tc_fun(A,tc_bool))),Y,tc_fun(A,tc_bool))),
       
    61 ++equal(X,Y)]).
       
    62 
       
    63 input_clause(a17,axiom,
       
    64 [++hBOOL(hAPP(hAPP(fequal,X,tc_fun(A,tc_fun(A,tc_bool))),Y,tc_fun(A,tc_bool))),
       
    65 --equal(X,Y)]).
       
    66 
       
    67