Modified a few defs and proofs because of the changes to theory Finite.thy.
authornipkow
Thu, 05 Jun 1997 14:40:35 +0200
changeset 3414 804c8a178a7f
parent 3413 c1f63cc3a768
child 3415 c068bd2f0bbd
Modified a few defs and proofs because of the changes to theory Finite.thy.
src/HOL/Auth/Shared.ML
src/HOL/Auth/Shared.thy
src/HOL/Induct/Mutil.ML
src/HOL/Induct/PropLog.ML
--- a/src/HOL/Auth/Shared.ML	Thu Jun 05 14:39:22 1997 +0200
+++ b/src/HOL/Auth/Shared.ML	Thu Jun 05 14:40:35 1997 +0200
@@ -313,36 +313,34 @@
 (*** Supply fresh keys for possibility theorems. ***)
 
 goal thy "EX K. Key K ~: used evs";
-by (rtac (Fin.emptyI RS Key_supply_ax RS exE) 1);
+by (rtac (Finites.emptyI RS Key_supply_ax RS exE) 1);
 by (Blast_tac 1);
 qed "Key_supply1";
 
-val Fin_UNIV_insertI = UNIV_I RS Fin.insertI;
-
 goal thy "EX K K'. Key K ~: used evs & Key K' ~: used evs' & K ~= K'";
-by (cut_inst_tac [("evs","evs")] (Fin.emptyI RS Key_supply_ax) 1);
+by (cut_inst_tac [("evs","evs")] (Finites.emptyI RS Key_supply_ax) 1);
 by (etac exE 1);
 by (cut_inst_tac [("evs","evs'")] 
-    (Fin.emptyI RS Fin_UNIV_insertI RS Key_supply_ax) 1);
+    (Finites.emptyI RS Finites.insertI RS Key_supply_ax) 1);
 by (Auto_tac());
 qed "Key_supply2";
 
 goal thy "EX K K' K''. Key K ~: used evs & Key K' ~: used evs' & \
 \                      Key K'' ~: used evs'' & K ~= K' & K' ~= K'' & K ~= K''";
-by (cut_inst_tac [("evs","evs")] (Fin.emptyI RS Key_supply_ax) 1);
+by (cut_inst_tac [("evs","evs")] (Finites.emptyI RS Key_supply_ax) 1);
 by (etac exE 1);
 by (cut_inst_tac [("evs","evs'")] 
-    (Fin.emptyI RS Fin_UNIV_insertI RS Key_supply_ax) 1);
+    (Finites.emptyI RS Finites.insertI RS Key_supply_ax) 1);
 by (etac exE 1);
 by (cut_inst_tac [("evs","evs''")] 
-    (Fin.emptyI RS Fin_UNIV_insertI RS Fin_UNIV_insertI RS Key_supply_ax) 1);
+    (Finites.emptyI RS Finites.insertI RS Finites.insertI RS Key_supply_ax) 1);
 by (Step_tac 1);
 by (Full_simp_tac 1);
 by (fast_tac (!claset addSEs [allE]) 1);
 qed "Key_supply3";
 
 goal thy "Key (@ K. Key K ~: used evs) ~: used evs";
-by (rtac (Fin.emptyI RS Key_supply_ax RS exE) 1);
+by (rtac (Finites.emptyI RS Key_supply_ax RS exE) 1);
 by (rtac selectI 1);
 by (Blast_tac 1);
 qed "Key_supply";
--- a/src/HOL/Auth/Shared.thy	Thu Jun 05 14:39:22 1997 +0200
+++ b/src/HOL/Auth/Shared.thy	Thu Jun 05 14:40:35 1997 +0200
@@ -59,7 +59,7 @@
     assumes that their keys are dispersed so as to leave room for infinitely
     many fresh session keys.  We could, alternatively, restrict agents to
     an unspecified finite number.*)
-  Key_supply_ax  "KK: Fin UNIV ==> EX K. K ~: KK & Key K ~: used evs"
+  Key_supply_ax  "finite KK ==> EX K. K ~: KK & Key K ~: used evs"
 
 
 (*Agents generate random (symmetric) keys and nonces.
--- a/src/HOL/Induct/Mutil.ML	Thu Jun 05 14:39:22 1997 +0200
+++ b/src/HOL/Induct/Mutil.ML	Thu Jun 05 14:40:35 1997 +0200
@@ -117,8 +117,7 @@
 qed "domino_singleton";
 
 goal thy "!!d. d:domino ==> finite d";
-by (blast_tac (!claset addSIs [finite_insertI, finite_emptyI] 
-                      addSEs [domino.elim]) 1);
+by (blast_tac (!claset addSEs [domino.elim]) 1);
 qed "domino_finite";
 
 
@@ -126,7 +125,7 @@
 
 goal thy "!!t. t:tiling domino ==> finite t";
 by (eresolve_tac [tiling.induct] 1);
-by (rtac finite_emptyI 1);
+by (rtac Finites.emptyI 1);
 by (blast_tac (!claset addSIs [finite_UnI] addIs [domino_finite]) 1);
 qed "tiling_domino_finite";
 
--- a/src/HOL/Induct/PropLog.ML	Thu Jun 05 14:39:22 1997 +0200
+++ b/src/HOL/Induct/PropLog.ML	Thu Jun 05 14:40:35 1997 +0200
@@ -167,13 +167,16 @@
 by (Fast_tac 1);
 qed "insert_Diff_subset2";
 
-(*The set hyps(p,t) is finite, and elements have the form #v or #v->false;
- could probably prove the stronger hyps(p,t) : Fin(hyps(p,{}) Un hyps(p,nat))*)
-goal PropLog.thy "hyps p t : Fin(UN v:{x.True}. {#v, #v->false})";
+goal PropLog.thy "finite(hyps p t)";
+by (induct_tac "p" 1);
+by (ALLGOALS Asm_simp_tac);
+qed "hyps_finite";
+
+goal PropLog.thy "hyps p t <= (UN v. {#v, #v->false})";
 by (PropLog.pl.induct_tac "p" 1);
 by (ALLGOALS (simp_tac (!simpset setloop (split_tac [expand_if]))));
-by (ALLGOALS (fast_tac (!claset addSIs Fin.intrs@[Fin_UnI])));
-qed "hyps_finite";
+by (Blast_tac 1);
+qed "hyps_subset";
 
 val Diff_weaken_left = subset_refl RSN (2, Diff_mono) RS weaken_left;
 
@@ -181,9 +184,9 @@
   We may repeatedly subtract assumptions until none are left!*)
 val [sat] = goal PropLog.thy
     "{} |= p ==> !t. hyps p t - hyps p t0 |- p";
-by (rtac (hyps_finite RS Fin_induct) 1);
+by (rtac (hyps_subset RS (hyps_finite RS finite_subset_induct)) 1);
 by (simp_tac (!simpset addsimps [sat RS sat_thms_p]) 1);
-by (safe_tac (!claset));
+by (Step_tac 1);
 (*Case hyps(p,t)-insert(#v,Y) |- p *)
 by (rtac thms_excluded_middle_rule 1);
 by (rtac (insert_Diff_same RS weaken_left) 1);
@@ -212,8 +215,8 @@
 by (Fast_tac 1);
 qed "sat_imp";
 
-val [finite] = goal PropLog.thy "H: Fin({p.True}) ==> !p. H |= p --> H |- p";
-by (rtac (finite RS Fin_induct) 1);
+goal PropLog.thy "!!H. finite H ==> !p. H |= p --> H |- p";
+by (etac finite_induct 1);
 by (safe_tac ((claset_of "Fun") addSIs [completeness_0]));
 by (rtac (weaken_left_insert RS thms.MP) 1);
 by (fast_tac ((claset_of "Fun") addSIs [sat_imp]) 1);
@@ -222,8 +225,6 @@
 
 val completeness = completeness_lemma RS spec RS mp;
 
-val [finite] = goal PropLog.thy "H: Fin({p.True}) ==> (H |- p) = (H |= p)";
-by (fast_tac (!claset addSEs [soundness, finite RS completeness]) 1);
-qed "thms_iff";
-
-writeln"Reached end of file.";
+goal PropLog.thy "!!H. finite H ==> (H |- p) = (H |= p)";
+by (fast_tac (!claset addSEs [soundness, completeness]) 1);
+qed "syntax_iff_semantics";