equal
deleted
inserted
replaced
128 |> Assumption.add_assumes (map transform c_vars'); |
128 |> Assumption.add_assumes (map transform c_vars'); |
129 val simpset = |
129 val simpset = |
130 put_simpset HOL_ss ctxt5 addsimps (inj @ embed @ return) |
130 put_simpset HOL_ss ctxt5 addsimps (inj @ embed @ return) |
131 |> fold Simplifier.add_cong cong; |
131 |> fold Simplifier.add_cong cong; |
132 val thm' = thm |
132 val thm' = thm |
133 |> Drule.cterm_instantiate (c_vars ~~ c_exprs') |
133 |> infer_instantiate ctxt5 (map (#1 o dest_Var o Thm.term_of) c_vars ~~ c_exprs') |
134 |> fold_rev Thm.implies_intr (map Thm.cprop_of hyps) |
134 |> fold_rev Thm.implies_intr (map Thm.cprop_of hyps) |
135 |> Simplifier.asm_full_simplify simpset |
135 |> Simplifier.asm_full_simplify simpset |
136 in singleton (Variable.export ctxt5 ctxt1) thm' end; |
136 in singleton (Variable.export ctxt5 ctxt1) thm' end; |
137 |
137 |
138 fun transfer_thm_multiple insts leave ctxt thm = |
138 fun transfer_thm_multiple insts leave ctxt thm = |