Attic/Prove.thy
author Christian Urban <urbanc@in.tum.de>
Sat, 21 Aug 2010 16:20:10 +0800
changeset 2424 621ebd8b13c4
parent 2171 9697bbf713ec
permissions -rw-r--r--
changed parser so that the binding mode is indicated as "bind (list)", "bind (set)" or "bind (res)"; if only "bind" is given, then bind (list) is assumed as default

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, _)) lthy =
  let
    val trm = ML_Context.evaluate lthy true ("r", r) txt
  in
    Proof.theorem NONE (after_qed name_spec) [[(trm,[])]] lthy
  end

  val parser = Parse_Spec.opt_thm_name ":" -- Parse.ML_source
in
  Outer_Syntax.local_theory_to_proof "prove" "proving a proposition" 
    Keyword.thy_goal (parser >> setup_proof)
end
*}

end