src/HOL/Tools/atp-inputs/par_comb_inclS.dfg
author haftmann
Tue, 19 Sep 2006 15:22:35 +0200
changeset 20604 9dba9c7872c9
parent 19969 c72e2110c026
permissions -rw-r--r--
added auxiliary lemma for code generation 2

%ID: $Id$
%Author: Jia Meng, NICTA
%typed combinator reduction for partial-types (include S)

clause(
forall([A, B, P, Q],
or( equal(hAPP(hAPP(c_COMBK,P,tc_fun(A,tc_fun(B,A))),Q,tc_fun(B,A)),P))),
a1 ).

clause(
forall([A, B, C, P, Q, R],
or( 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))))),
a2 ).

clause(
forall([P, T],
or( equal(hAPP(c_COMBI,P,tc_fun(T,T)),P))),
a3 ).

clause(
forall([A, B, C, P, Q, R],
or( 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))))),
a4 ).

clause(
forall([A, B, C, P, Q, R],
or( 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))))),
a5 ).

clause(
forall([A, X, Y],
or( not(hBOOL(hAPP(hAPP(fequal,X,tc_fun(A,tc_fun(A,tc_bool))),Y,tc_fun(A,tc_bool)))),
    equal(X,Y))),
a6 ).

clause(
forall([A, X, Y],
or( not(equal(X,Y)),
    hBOOL(hAPP(hAPP(fequal,X,tc_fun(A,tc_fun(A,tc_bool))),Y,tc_fun(A,tc_bool))))),
a7 ).