equal
deleted
inserted
replaced
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 |