src/HOL/Tools/BNF/bnf_gfp_rec_sugar_tactics.ML
changeset 67700 0455834f7817
parent 64629 a331208010b6
child 69593 3dda49e08b9d
equal deleted inserted replaced
67699:8e4ff46f807d 67700:0455834f7817
   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