equal
deleted
inserted
replaced
496 val _ = Thm.no_prems goal orelse error (Proof_Display.string_of_goal ctxt goal); |
496 val _ = Thm.no_prems goal orelse error (Proof_Display.string_of_goal ctxt goal); |
497 |
497 |
498 fun err_lost () = error ("Lost goal structure:\n" ^ Display.string_of_thm ctxt goal); |
498 fun err_lost () = error ("Lost goal structure:\n" ^ Display.string_of_thm ctxt goal); |
499 |
499 |
500 val th = |
500 val th = |
501 (Goal.conclude (if length (flat propss) > 1 then Thm.norm_proof goal else goal) |
501 (Goal.conclude (if length (flat propss) > 1 then Thm.close_derivation goal else goal) |
502 handle THM _ => err_lost ()) |
502 handle THM _ => err_lost ()) |
503 |> Drule.flexflex_unique (SOME ctxt) |
503 |> Drule.flexflex_unique (SOME ctxt) |
504 |> Thm.check_shyps (Variable.sorts_of ctxt) |
504 |> Thm.check_shyps (Variable.sorts_of ctxt) |
505 |> Thm.check_hyps (Context.Proof ctxt); |
505 |> Thm.check_hyps (Context.Proof ctxt); |
506 |
506 |