equal
deleted
inserted
replaced
799 val (goal_ctxt, {statement = (_, stmt), using, goal, before_qed = _, after_qed}) = |
799 val (goal_ctxt, {statement = (_, stmt), using, goal, before_qed = _, after_qed}) = |
800 current_goal state; |
800 current_goal state; |
801 val outer_state = state |> close_block; |
801 val outer_state = state |> close_block; |
802 val outer_ctxt = context_of outer_state; |
802 val outer_ctxt = context_of outer_state; |
803 |
803 |
804 val raw_props = List.concat stmt; |
804 val raw_props = Library.flat stmt; |
805 val props = ProofContext.generalize goal_ctxt outer_ctxt raw_props; |
805 val props = ProofContext.generalize goal_ctxt outer_ctxt raw_props; |
806 val results = |
806 val results = |
807 conclude_goal state raw_props goal |
807 stmt |
808 |> Seq.map_list (ProofContext.exports goal_ctxt outer_ctxt) |
808 |> burrow (fn raw_props => conclude_goal state raw_props goal) |
809 |> Seq.map (Library.unflat stmt); |
809 |> (Seq.map_list o Seq.map_list) (ProofContext.exports goal_ctxt outer_ctxt); |
810 in |
810 in |
811 outer_state |
811 outer_state |
812 |> map_context (ProofContext.auto_bind_facts props) |
812 |> map_context (ProofContext.auto_bind_facts props) |
813 |> pair (after_qed, results) |
813 |> pair (after_qed, results) |
814 end; |
814 end; |