src/HOL/Integ/qelim.ML
changeset 20194 c9dbce9a23a1
parent 19250 932a50e2332f
child 23035 643859163183
equal deleted inserted replaced
20193:46f5ef758422 20194:c9dbce9a23a1
    38    |(Const("op |",_)$A$B) => ([A,B], fn [th1,th2] => [th1,th2] MRS qe_disjI)
    38    |(Const("op |",_)$A$B) => ([A,B], fn [th1,th2] => [th1,th2] MRS qe_disjI)
    39    |(Const("op -->",_)$A$B) => ([A,B], fn [th1,th2] => [th1,th2] MRS qe_impI)
    39    |(Const("op -->",_)$A$B) => ([A,B], fn [th1,th2] => [th1,th2] MRS qe_impI)
    40    |(Const("op =", Type ("fun",[Type ("bool", []),_]))$A$B) => ([A,B], fn [th1,th2] => [th1,th2] MRS qe_eqI)
    40    |(Const("op =", Type ("fun",[Type ("bool", []),_]))$A$B) => ([A,B], fn [th1,th2] => [th1,th2] MRS qe_eqI)
    41    |(Const("Not",_)$p) => ([p],fn [th] => th RS qe_Not)
    41    |(Const("Not",_)$p) => ([p],fn [th] => th RS qe_Not)
    42    |(Const("Ex",_)$Abs(xn,xT,p)) => 
    42    |(Const("Ex",_)$Abs(xn,xT,p)) => 
    43       let val (xn1,p1) = variant_abs(xn,xT,p) 
    43       let val (xn1,p1) = Syntax.variant_abs(xn,xT,p) 
    44       in ([p1],
    44       in ([p1],
    45         fn [th1_1] => 
    45         fn [th1_1] => 
    46           let val th2 = [th1_1,nfnp (snd (qe_get_terms th1_1))] MRS trans
    46           let val th2 = [th1_1,nfnp (snd (qe_get_terms th1_1))] MRS trans
    47               val eth1 = (forall_intr (cterm_of sg (Free(xn1,xT))) th2) COMP  qe_exI
    47               val eth1 = (forall_intr (cterm_of sg (Free(xn1,xT))) th2) COMP  qe_exI
    48               val th3 = qfnp (snd(qe_get_terms eth1))
    48               val th3 = qfnp (snd(qe_get_terms eth1))