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