src/HOL/Tools/BNF/bnf_lfp_rec_sugar.ML
changeset 58996 1ae67039b14f
parent 58634 9f10d82e8188
child 59058 a78612c67ec0
equal deleted inserted replaced
58994:87d4ce309e04 58996:1ae67039b14f
   529             (#fun_name x, #user_eqn x, length (#left_args x) + length (#right_args x), #rec_thm y)))
   529             (#fun_name x, #user_eqn x, length (#left_args x) + length (#right_args x), #rec_thm y)))
   530           |> map2 (fn j => fn (fun_name, user_eqn, num_extra_args, rec_thm) =>
   530           |> map2 (fn j => fn (fun_name, user_eqn, num_extra_args, rec_thm) =>
   531               mk_primrec_tac lthy' num_extra_args fp_nesting_map_ident0s fp_nesting_map_comps
   531               mk_primrec_tac lthy' num_extra_args fp_nesting_map_ident0s fp_nesting_map_comps
   532                 def_thms rec_thm
   532                 def_thms rec_thm
   533               |> K |> Goal.prove_sorry lthy' [] [] user_eqn
   533               |> K |> Goal.prove_sorry lthy' [] [] user_eqn
   534               |> singleton (Proof_Context.export lthy' lthy)
   534               |> Thm.close_derivation)
   535               (* for code extraction from proof terms: *)
       
   536               |> Thm.name_derivation (Sign.full_name thy (Binding.name fun_name) ^
       
   537                 Long_Name.separator ^ simpsN ^
       
   538                 (if js = [0] then "" else "_" ^ string_of_int (j + 1))))
       
   539             js;
   535             js;
   540       in
   536       in
   541         (js, simp_thms)
   537         (js, simp_thms)
   542       end;
   538       end;
   543 
   539