src/Pure/Proof/proof_rewrite_rules.ML
changeset 59582 0fbed69ff081
parent 56245 84fc7dfa3cd4
child 62922 96691631c1eb
equal deleted inserted replaced
59580:cbc38731d42f 59582:0fbed69ff081
   251       | (prf', ts) => (Proofterm.proof_combt' (fst (insert_refl defs Ts prf'), ts), false));
   251       | (prf', ts) => (Proofterm.proof_combt' (fst (insert_refl defs Ts prf'), ts), false));
   252 
   252 
   253 fun elim_defs thy r defs prf =
   253 fun elim_defs thy r defs prf =
   254   let
   254   let
   255     val defs' = map (Logic.dest_equals o
   255     val defs' = map (Logic.dest_equals o
   256       map_types Type.strip_sorts o prop_of o Drule.abs_def) defs;
   256       map_types Type.strip_sorts o Thm.prop_of o Drule.abs_def) defs;
   257     val defnames = map Thm.derivation_name defs;
   257     val defnames = map Thm.derivation_name defs;
   258     val f = if not r then I else
   258     val f = if not r then I else
   259       let
   259       let
   260         val cnames = map (fst o dest_Const o fst) defs';
   260         val cnames = map (fst o dest_Const o fst) defs';
   261         val thms = Proofterm.fold_proof_atoms true
   261         val thms = Proofterm.fold_proof_atoms true