src/Pure/Isar/proof.ML
changeset 18450 e57731ba01dd
parent 18377 0e1d025d57b3
child 18475 02093ed55e05
equal deleted inserted replaced
18449:e314fb38307d 18450:e57731ba01dd
   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;