src/HOL/Tools/BNF/bnf_lfp_rec_sugar.ML
changeset 61271 0478ba10152a
parent 60728 26ffdb966759
child 61760 1647bb489522
equal deleted inserted replaced
61270:28eb608b9b59 61271:0478ba10152a
   550         val simps = finds (fn (x, y) => #ctr x = #ctr y) fun_data ctr_specs
   550         val simps = finds (fn (x, y) => #ctr x = #ctr y) fun_data ctr_specs
   551           |> fst
   551           |> fst
   552           |> map_filter (try (fn (x, [y]) =>
   552           |> map_filter (try (fn (x, [y]) =>
   553             (#user_eqn x, length (#left_args x) + length (#right_args x), #rec_thm y)))
   553             (#user_eqn x, length (#left_args x) + length (#right_args x), #rec_thm y)))
   554           |> map (fn (user_eqn, num_extra_args, rec_thm) =>
   554           |> map (fn (user_eqn, num_extra_args, rec_thm) =>
   555               mk_primrec_tac lthy' num_extra_args fp_nesting_map_ident0s fp_nesting_map_comps
   555               Goal.prove_sorry lthy' [] [] user_eqn
   556                 def_thms rec_thm
   556                 (fn {context = ctxt, prems = _} =>
   557               |> K |> Goal.prove_sorry lthy' [] [] user_eqn
   557                   mk_primrec_tac ctxt num_extra_args fp_nesting_map_ident0s fp_nesting_map_comps
       
   558                     def_thms rec_thm)
   558               |> Thm.close_derivation);
   559               |> Thm.close_derivation);
   559       in
   560       in
   560         ((js, simps), lthy')
   561         ((js, simps), lthy')
   561       end;
   562       end;
   562 
   563