equal
deleted
inserted
replaced
156 (case Thm.prop_of split of |
156 (case Thm.prop_of split of |
157 @{const Trueprop} $ (Const (@{const_name HOL.eq}, _) $ (Var (_, Type (_, [T, _])) $ _) $ _) => |
157 @{const Trueprop} $ (Const (@{const_name HOL.eq}, _) $ (Var (_, Type (_, [T, _])) $ _) $ _) => |
158 let |
158 let |
159 val s = Name.uu; |
159 val s = Name.uu; |
160 val eq = Abs (Name.uu, T, HOLogic.mk_eq (Free (s, T), Bound 0)); |
160 val eq = Abs (Name.uu, T, HOLogic.mk_eq (Free (s, T), Bound 0)); |
161 val split' = Thm.instantiate' [] [SOME (Thm.cterm_of ctxt eq)] split; |
|
162 in |
161 in |
163 Thm.generalize ([], [s]) (Thm.maxidx_of split' + 1) split' |
162 Thm.instantiate' [] [SOME (Thm.cterm_of ctxt eq)] split |
|
163 |> Drule.generalize ([], [s]) |
164 end |
164 end |
165 | _ => split); |
165 | _ => split); |
166 |
166 |
167 fun raw_code_single_tac ctxt distincts discIs splits split_asms m fun_ctr = |
167 fun raw_code_single_tac ctxt distincts discIs splits split_asms m fun_ctr = |
168 let |
168 let |