equal
deleted
inserted
replaced
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 |