updated to new Isabelle
authorChristian Urban <urbanc@in.tum.de>
Mon, 26 Apr 2010 05:20:01 +0200
changeset 422 e79563b14b0f
parent 421 620a24bf954a
child 423 0a25b35178c3
updated to new Isabelle
ProgTutorial/Helper/Command/Command.thy
ProgTutorial/Parsing.thy
ProgTutorial/Tactical.thy
progtutorial.pdf
--- a/ProgTutorial/Helper/Command/Command.thy	Sat Apr 24 22:55:50 2010 +0200
+++ b/ProgTutorial/Helper/Command/Command.thy	Mon Apr 26 05:20:01 2010 +0200
@@ -29,7 +29,7 @@
      let
        val prop = Syntax.read_prop lthy str
      in
-       Proof.theorem_i NONE (K I) [[(prop,[])]] lthy
+       Proof.theorem NONE (K I) [[(prop,[])]] lthy
      end;
    val prove_prop_parser = OuterParse.prop >> prove_prop
    val kind = OuterKeyword.thy_goal
@@ -51,7 +51,7 @@
    let
      val trm = ML_Context.evaluate lthy true ("r", r) txt
    in
-     Proof.theorem_i NONE (after_qed thm_name) [[(trm,[])]] lthy
+     Proof.theorem NONE (after_qed thm_name) [[(trm,[])]] lthy
    end
 
    val parser = SpecParse.opt_thm_name ":" -- OuterParse.ML_source
--- a/ProgTutorial/Parsing.thy	Sat Apr 24 22:55:50 2010 +0200
+++ b/ProgTutorial/Parsing.thy	Mon Apr 26 05:20:01 2010 +0200
@@ -1160,7 +1160,7 @@
     let
       val prop = Syntax.read_prop lthy str
     in
-      Proof.theorem_i NONE (K I) [[(prop,[])]] lthy
+      Proof.theorem NONE (K I) [[(prop, [])]] lthy
     end
   
   val kind = OuterKeyword.thy_goal
@@ -1173,7 +1173,7 @@
   The function @{text goal_prop} in Lines 2 to 7 takes a string (the proposition to be
   proved) and a context as argument.  The context is necessary in order to be able to use
   @{ML_ind read_prop in Syntax}, which converts a string into a proper proposition.
-  In Line 6 the function @{ML_ind theorem_i in Proof} starts the proof for the
+  In Line 6 the function @{ML_ind theorem in Proof} starts the proof for the
   proposition. Its argument @{ML NONE} stands for a locale (which we chose to
   omit); the argument @{ML "(K I)"} stands for a function that determines what
   should be done with the theorem once it is proved (we chose to just forget
@@ -1211,7 +1211,7 @@
    let
      val trm = ML_Context.evaluate lthy true ("r", r) txt
    in
-     Proof.theorem_i NONE (after_qed thm_name) [[(trm,[])]] lthy
+     Proof.theorem NONE (after_qed thm_name) [[(trm,[])]] lthy
    end
 
    val parser = SpecParse.opt_thm_name ":" -- OuterParse.ML_source
--- a/ProgTutorial/Tactical.thy	Sat Apr 24 22:55:50 2010 +0200
+++ b/ProgTutorial/Tactical.thy	Mon Apr 26 05:20:01 2010 +0200
@@ -365,16 +365,15 @@
 where
   "EQ_TRUE X \<equiv> (X = True)"
 
-lemma test: 
+schematic_lemma test: 
   shows "EQ_TRUE ?X"
 unfolding EQ_TRUE_def
 by (rule refl)
 
 text {*
-  Although Isabelle issues a warning message when stating goals involving 
-  meta-variables, it is possible to prove this theorem. The reason for the warning 
-  message is that the proved theorem is not @{text "EQ_TRUE ?X"}, as one might 
-  expect, but @{thm test}. We can test this with:
+  By using \isacommand{schematic\_lemma} it is possible to prove lemmas including
+  meta-variables on the user level. However, the proved theorem is not @{text "EQ_TRUE ?X"}, 
+  as one might expect, but @{thm test}. We can test this with:
 
   \begin{isabelle}
   \isacommand{thm}~@{thm [source] test}\\
@@ -391,6 +390,7 @@
 
 *}
 
+
 section {* Simple Tactics\label{sec:simpletacs} *}
 
 text {*
@@ -568,7 +568,7 @@
 \end{figure}
 *}
 
-lemma 
+schematic_lemma 
   shows "\<And>x y. A x y \<Longrightarrow> B y x \<longrightarrow> C (?z y) x"
 apply(tactic {* Subgoal.FOCUS foc_tac @{context} 1 *})
 
Binary file progtutorial.pdf has changed