author | Christian Urban <urbanc@in.tum.de> |
Mon, 07 Dec 2009 21:53:50 +0100 | |
changeset 610 | 2bee5ca44ef5 |
parent 597 | 8a1c8dc72b5c |
permissions | -rw-r--r-- |
theory Prove imports Plain begin ML {* val r = Unsynchronized.ref (NONE:(unit -> term) option) *} ML {* let fun after_qed thm_name thms lthy = Local_Theory.note (thm_name, (flat thms)) lthy |> snd fun setup_proof (name_spec, (txt, pos)) lthy = let val trm = ML_Context.evaluate lthy true ("r", r) txt in Proof.theorem_i NONE (after_qed name_spec) [[(trm,[])]] lthy end val parser = SpecParse.opt_thm_name ":" -- OuterParse.ML_source in OuterSyntax.local_theory_to_proof "prove" "proving a proposition" OuterKeyword.thy_goal (parser >> setup_proof) end *} end