src/FOLP/FOLP.thy
changeset 36319 8feb2c4bef1a
parent 35762 af3ff2ba4c54
child 41779 a68f503805ed
--- a/src/FOLP/FOLP.thy	Fri Apr 23 23:33:48 2010 +0200
+++ b/src/FOLP/FOLP.thy	Fri Apr 23 23:35:43 2010 +0200
@@ -19,7 +19,7 @@
 
 (*** Classical introduction rules for | and EX ***)
 
-lemma disjCI:
+schematic_lemma disjCI:
   assumes "!!x. x:~Q ==> f(x):P"
   shows "?p : P|Q"
   apply (rule classical)
@@ -28,7 +28,7 @@
   done
 
 (*introduction rule involving only EX*)
-lemma ex_classical:
+schematic_lemma ex_classical:
   assumes "!!u. u:~(EX x. P(x)) ==> f(u):P(a)"
   shows "?p : EX x. P(x)"
   apply (rule classical)
@@ -36,7 +36,7 @@
   done
 
 (*version of above, simplifying ~EX to ALL~ *)
-lemma exCI:
+schematic_lemma exCI:
   assumes "!!u. u:ALL x. ~P(x) ==> f(u):P(a)"
   shows "?p : EX x. P(x)"
   apply (rule ex_classical)
@@ -45,7 +45,7 @@
   apply (erule exI)
   done
 
-lemma excluded_middle: "?p : ~P | P"
+schematic_lemma excluded_middle: "?p : ~P | P"
   apply (rule disjCI)
   apply assumption
   done
@@ -54,7 +54,7 @@
 (*** Special elimination rules *)
 
 (*Classical implies (-->) elimination. *)
-lemma impCE:
+schematic_lemma impCE:
   assumes major: "p:P-->Q"
     and r1: "!!x. x:~P ==> f(x):R"
     and r2: "!!y. y:Q ==> g(y):R"
@@ -65,7 +65,7 @@
   done
 
 (*Double negation law*)
-lemma notnotD: "p:~~P ==> ?p : P"
+schematic_lemma notnotD: "p:~~P ==> ?p : P"
   apply (rule classical)
   apply (erule notE)
   apply assumption
@@ -76,7 +76,7 @@
 
 (*Classical <-> elimination.  Proof substitutes P=Q in
     ~P ==> ~Q    and    P ==> Q  *)
-lemma iffCE:
+schematic_lemma iffCE:
   assumes major: "p:P<->Q"
     and r1: "!!x y.[| x:P; y:Q |] ==> f(x,y):R"
     and r2: "!!x y.[| x:~P; y:~Q |] ==> g(x,y):R"
@@ -91,7 +91,7 @@
 
 
 (*Should be used as swap since ~P becomes redundant*)
-lemma swap:
+schematic_lemma swap:
   assumes major: "p:~P"
     and r: "!!x. x:~Q ==> f(x):P"
   shows "?p : Q"
@@ -136,7 +136,7 @@
     addSEs [@{thm exE}, @{thm ex1E}] addEs [@{thm all_dupE}];
 *}
 
-lemma cla_rews:
+schematic_lemma cla_rews:
   "?p1 : P | ~P"
   "?p2 : ~P | P"
   "?p3 : ~ ~ P <-> P"