text\<open>From the notes of A. S. Kechris, page 6, and from
Andrzej Mostowski, \emph{Constructible Sets with Applications},
North-Holland, 1969, page 23.\<close>
subsection\<open>Basic Definitions\<close>
text\<open>First part: the cumulative hierarchy defining the class \<open>M\<close>. To avoid handling multiple arguments, we assume that \<open>Mset(l)\<close> is
closed under ordered pairing provided \<open>l\<close> is limit. Possibly this
could be avoided: the induction hypothesis \<^term>\<open>Cl_reflects\<close>
(inlocale\<open>ex_reflection\<close>) could be weakened to \<^term>\<open>\<forall>y\<in>Mset(a). \<forall>z\<in>Mset(a). P(\<langle>y,z\<rangle>) \<longleftrightarrow> Q(a,\<langle>y,z\<rangle>)\<close>, removing most uses of \<^term>\<open>Pair_in_Mset\<close>. But there isn't much point in doing so, since ultimately the \<open>ex_reflection\<close> proof is packaged up using the
predicate \<open>Reflects\<close>. \<close> locale reflection = fixes Mset and M and Reflects assumes Mset_mono_le : "mono_le_subset(Mset)" and Mset_cont : "cont_Ord(Mset)" and Pair_in_Mset : "\x \ Mset(a); y \ Mset(a); Limit(a)\ \<Longrightarrow> \<langle>x,y\<rangle> \<in> Mset(a)" defines"M(x) \ \a. Ord(a) \ x \ Mset(a)" and"Reflects(Cl,P,Q) \ Closed_Unbounded(Cl) \
(\<forall>a. Cl(a) \<longrightarrow> (\<forall>x\<in>Mset(a). P(x) \<longleftrightarrow> Q(a,x)))" fixes F0 \<comment> \<open>ordinal for a specific value \<^term>\<open>y\<close>\<close> fixes FF \<comment> \<open>sup over the whole level, \<^term>\<open>y\<in>Mset(a)\<close>\<close> fixes ClEx \<comment> \<open>Reflecting ordinals for the formula \<^term>\<open>\<exists>z. P\<close>\<close> defines"F0(P,y) \ \ b. (\z. M(z) \ P(\y,z\)) \
(\<exists>z\<in>Mset(b). P(\<langle>y,z\<rangle>))" and"FF(P) \ \a. \y\Mset(a). F0(P,y)" and"ClEx(P,a) \ Limit(a) \ normalize(FF(P),a) = a"
begin
lemma Mset_mono: "i\j \ Mset(i) \ Mset(j)" using Mset_mono_le by (simp add: mono_le_subset_def leI)
text\<open>Awkward: we need a version of \<open>ClEx_def\<close> as an equality
at the level of classes, which do not really exist\<close> lemma ClEx_eq: "ClEx(P) \ \a. Limit(a) \ normalize(FF(P),a) = a" by (simp add: ClEx_def [symmetric])
subsection\<open>Easy Cases of the Reflection Theorem\<close>
text\<open>No point considering bounded quantifiers, where reflection is trivial.\<close>
subsection\<open>Simple Examples of Reflection\<close>
text\<open>Example 1: reflecting a simple formula. The reflecting class is first
given as the variable \<open>?Cl\<close> and later retrieved from the final proof state.\<close>
schematic_goal "Reflects(?Cl, \<lambda>x. \<exists>y. M(y) \<and> x \<in> y, \<lambda>a x. \<exists>y\<in>Mset(a). x \<in> y)" by fast
text\<open>Problem here: there needs to be a conjunction (class intersection) in the class of reflecting ordinals. The \<^term>\<open>Ord(a)\<close> is redundant,
though harmless.\<close> lemma "Reflects(\a. Ord(a) \ ClEx(\x. fst(x) \ snd(x), a), \<lambda>x. \<exists>y. M(y) \<and> x \<in> y, \<lambda>a x. \<exists>y\<in>Mset(a). x \<in> y)" by fast
text\<open>Example 2\<close>
schematic_goal "Reflects(?Cl, \<lambda>x. \<exists>y. M(y) \<and> (\<forall>z. M(z) \<longrightarrow> z \<subseteq> x \<longrightarrow> z \<in> y), \<lambda>a x. \<exists>y\<in>Mset(a). \<forall>z\<in>Mset(a). z \<subseteq> x \<longrightarrow> z \<in> y)" by fast
text\<open>Example 2'. We give the reflecting class explicitly.\<close> lemma "Reflects
(\<lambda>a. (Ord(a) \<and>
ClEx(\<lambda>x. \<not> (snd(x) \<subseteq> fst(fst(x)) \<longrightarrow> snd(x) \<in> snd(fst(x))), a)) \<and>
ClEx(\<lambda>x. \<forall>z. M(z) \<longrightarrow> z \<subseteq> fst(x) \<longrightarrow> z \<in> snd(x), a), \<lambda>x. \<exists>y. M(y) \<and> (\<forall>z. M(z) \<longrightarrow> z \<subseteq> x \<longrightarrow> z \<in> y), \<lambda>a x. \<exists>y\<in>Mset(a). \<forall>z\<in>Mset(a). z \<subseteq> x \<longrightarrow> z \<in> y)" by fast
text\<open>Example 2''. We expand the subset relation.\<close>
schematic_goal "Reflects(?Cl, \<lambda>x. \<exists>y. M(y) \<and> (\<forall>z. M(z) \<longrightarrow> (\<forall>w. M(w) \<longrightarrow> w\<in>z \<longrightarrow> w\<in>x) \<longrightarrow> z\<in>y), \<lambda>a x. \<exists>y\<in>Mset(a). \<forall>z\<in>Mset(a). (\<forall>w\<in>Mset(a). w\<in>z \<longrightarrow> w\<in>x) \<longrightarrow> z\<in>y)" by fast
text\<open>Example 2'''. Single-step version, to reveal the reflecting class.\<close>
schematic_goal "Reflects(?Cl, \<lambda>x. \<exists>y. M(y) \<and> (\<forall>z. M(z) \<longrightarrow> z \<subseteq> x \<longrightarrow> z \<in> y), \<lambda>a x. \<exists>y\<in>Mset(a). \<forall>z\<in>Mset(a). z \<subseteq> x \<longrightarrow> z \<in> y)" apply (rule Ex_reflection) txt\<open>
@{goals[display,indent=0,margin=60]} \<close> apply (rule All_reflection) txt\<open>
@{goals[display,indent=0,margin=60]} \<close> apply (rule Triv_reflection) txt\<open>
@{goals[display,indent=0,margin=60]} \<close> done
text\<open>Example 3. Warning: the following examples make sense only if\<^term>\<open>P\<close> is quantifier-free, since it is not being relativized.\<close>
schematic_goal "Reflects(?Cl, \<lambda>x. \<exists>y. M(y) \<and> (\<forall>z. M(z) \<longrightarrow> z \<in> y \<longleftrightarrow> z \<in> x \<and> P(z)), \<lambda>a x. \<exists>y\<in>Mset(a). \<forall>z\<in>Mset(a). z \<in> y \<longleftrightarrow> z \<in> x \<and> P(z))" by fast
text\<open>Example 3'\<close>
schematic_goal "Reflects(?Cl, \<lambda>x. \<exists>y. M(y) \<and> y = Collect(x,P), \<lambda>a x. \<exists>y\<in>Mset(a). y = Collect(x,P))" by fast
text\<open>Example 3''\<close>
schematic_goal "Reflects(?Cl, \<lambda>x. \<exists>y. M(y) \<and> y = Replace(x,P), \<lambda>a x. \<exists>y\<in>Mset(a). y = Replace(x,P))" by fast
text\<open>Example 4: Axiom of Choice. Possibly wrong, since \<open>\<Pi>\<close> needs to be relativized.\<close>
schematic_goal "Reflects(?Cl, \<lambda>A. 0\<notin>A \<longrightarrow> (\<exists>f. M(f) \<and> f \<in> (\<Prod>X \<in> A. X)), \<lambda>a A. 0\<notin>A \<longrightarrow> (\<exists>f\<in>Mset(a). f \<in> (\<Prod>X \<in> A. X)))" by fast
end
end
¤ Dauer der Verarbeitung: 0.16 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.