--- a/ex/PL.ML Fri Jul 08 17:22:58 1994 +0200
+++ b/ex/PL.ML Fri Jul 08 17:39:02 1994 +0200
@@ -135,7 +135,7 @@
(** The function eval **)
-val pl_ss = set_ss addsimps [pl_rec_var,pl_rec_false,pl_rec_imp] @ PL0.pl.simps;
+val pl_ss = set_ss addsimps [pl_rec_var,pl_rec_false,pl_rec_imp] @ PL.pl.simps;
goalw PL.thy [eval_def] "tt[false] = False";
by (simp_tac pl_ss 1);
@@ -157,7 +157,7 @@
by (simp_tac pl_ss 1);
val hyps_false = result();
-goalw PL.thy [hyps_def] "hyps(#v,tt) = {if(v:tt, #v, (#v)->false)}";
+goalw PL.thy [hyps_def] "hyps(#v,tt) = {if(v:tt, #v, #v->false)}";
by (simp_tac pl_ss 1);
val hyps_var = result();
@@ -212,7 +212,7 @@
(*This formulation is required for strong induction hypotheses*)
goal PL.thy "hyps(p,tt) |- if(tt[p], p, p->false)";
by (rtac (expand_if RS iffD2) 1);
-by(PL0.pl.induct_tac "p" 1);
+by(PL.pl.induct_tac "p" 1);
by (ALLGOALS (simp_tac (pl_ss addsimps [conseq_I, conseq_H])));
by (fast_tac (set_cs addIs [weaken_left_Un1, weaken_left_Un2,
weaken_right, imp_false]
@@ -248,8 +248,8 @@
(*For the case hyps(p,t)-insert(#v,Y) |- p;
we also have hyps(p,t)-{#v} <= hyps(p, t-{v}) *)
-goal PL.thy "hyps(p, t-{v}) <= insert((#v)->false, hyps(p,t)-{#v})";
-by (PL0.pl.induct_tac "p" 1);
+goal PL.thy "hyps(p, t-{v}) <= insert(#v->false, hyps(p,t)-{#v})";
+by (PL.pl.induct_tac "p" 1);
by (simp_tac pl_ss 1);
by (simp_tac (pl_ss setloop (split_tac [expand_if])) 1);
by (simp_tac pl_ss 1);
@@ -257,9 +257,9 @@
val hyps_Diff = result();
(*For the case hyps(p,t)-insert(#v -> false,Y) |- p;
- we also have hyps(p,t)-{(#v)->false} <= hyps(p, insert(v,t)) *)
-goal PL.thy "hyps(p, insert(v,t)) <= insert(#v, hyps(p,t)-{(#v)->false})";
-by (PL0.pl.induct_tac "p" 1);
+ we also have hyps(p,t)-{#v->false} <= hyps(p, insert(v,t)) *)
+goal PL.thy "hyps(p, insert(v,t)) <= insert(#v, hyps(p,t)-{#v->false})";
+by (PL.pl.induct_tac "p" 1);
by (simp_tac pl_ss 1);
by (simp_tac (pl_ss setloop (split_tac [expand_if])) 1);
by (simp_tac pl_ss 1);
@@ -278,8 +278,8 @@
(*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 PL.thy "hyps(p,t) : Fin(UN v:{x.True}. {#v, (#v)->false})";
-by (PL0.pl.induct_tac "p" 1);
+goal PL.thy "hyps(p,t) : Fin(UN v:{x.True}. {#v, #v->false})";
+by (PL.pl.induct_tac "p" 1);
by (ALLGOALS (simp_tac (pl_ss setloop (split_tac [expand_if])) THEN'
fast_tac (set_cs addSIs [Fin_0I, Fin_insertI, Fin_UnI])));
val hyps_finite = result();
--- a/ex/PL.thy Fri Jul 08 17:22:58 1994 +0200
+++ b/ex/PL.thy Fri Jul 08 17:39:02 1994 +0200
@@ -6,7 +6,9 @@
Inductive definition of propositional logic.
*)
-PL = Finite + PL0 +
+PL = Finite +
+datatype
+ 'a pl = false | var ('a) ("#_" [1000]) | "->" ('a pl,'a pl) (infixr 90)
consts
axK,axS,axDN:: "'a pl set"
ruleMP,thms :: "'a pl set => 'a pl set"
@@ -40,6 +42,6 @@
eval_def "tt[p] == pl_rec(p, %v.v:tt, False, op -->)"
hyps_def
- "hyps(p,tt) == pl_rec(p, %a. {if(a:tt, #a, (#a)->false)}, {}, op Un)"
+ "hyps(p,tt) == pl_rec(p, %a. {if(a:tt, #a, #a->false)}, {}, op Un)"
end