equal
deleted
inserted
replaced
80 fun mk_wits_tac ctxt set_maps = TRYALL Goal.conjunction_tac THEN the triv_tac_opt ctxt set_maps; |
80 fun mk_wits_tac ctxt set_maps = TRYALL Goal.conjunction_tac THEN the triv_tac_opt ctxt set_maps; |
81 val wit_goals = map Logic.mk_conjunction_balanced wit_goalss; |
81 val wit_goals = map Logic.mk_conjunction_balanced wit_goalss; |
82 val all_goalss = map single goals @ (if nwits > 0 then wit_goalss else []); |
82 val all_goalss = map single goals @ (if nwits > 0 then wit_goalss else []); |
83 |
83 |
84 val (((_, [raw_thms])), lthy) = Local_Theory.background_theory_result |
84 val (((_, [raw_thms])), lthy) = Local_Theory.background_theory_result |
85 (Specification.axiomatization [] [((mk_b "axioms" Binding.empty, []), flat all_goalss)]) lthy; |
85 (Specification.axiomatization [] [] [((mk_b "axioms" Binding.empty, []), flat all_goalss)]) lthy; |
86 |
86 |
87 fun mk_wit_thms set_maps = |
87 fun mk_wit_thms set_maps = |
88 Goal.prove_sorry lthy [] [] (Logic.mk_conjunction_balanced wit_goals) |
88 Goal.prove_sorry lthy [] [] (Logic.mk_conjunction_balanced wit_goals) |
89 (fn {context = ctxt, prems = _} => mk_wits_tac ctxt set_maps) |
89 (fn {context = ctxt, prems = _} => mk_wits_tac ctxt set_maps) |
90 |> Thm.close_derivation |
90 |> Thm.close_derivation |