text‹Reduces the original comprehension to the reflected one› lemma reflection_imp_L_separation: "\\x\Lset(j). P(x) \ Q(x);
{x ∈ Lset(j) . Q(x)} ∈ DPow(Lset(j));
Ord(j); z ∈ Lset(j)]==> L({x ∈ z . P(x)})" apply (rule_tac i = "succ(j)"in L_I) prefer 2 apply simp apply (subgoal_tac "{x \ z. P(x)} = {x \ Lset(j). x \ z \ (Q(x))}") prefer 2 apply (blast dest: mem_Lset_imp_subset_Lset) apply (simp add: Lset_succ Collect_conj_in_DPow_Lset) done
text‹Encapsulates the standard proof script for proving instances of
Separation.› lemma gen_separation: assumes reflection: "REFLECTS [P,Q]" and Lu: "L(u)" and collI: "\j. u \ Lset(j) ==> Collect(Lset(j), Q(j)) ∈ DPow(Lset(j))" shows"separation(L,P)" apply (rule separation_CollectI) apply (rule_tac A="{u,z}"in subset_LsetE, blast intro: Lu) apply (rule ReflectsE [OF reflection], assumption) apply (drule subset_Lset_ltD, assumption) apply (erule reflection_imp_L_separation) apply (simp_all add: lt_Ord2, clarify) apply (rule collI, assumption) done
text‹As above, but typically 🍋‹u›is a finite enumeration such as 🍋‹{a,b}›; thus the new subgoal gets the assumption 🍋‹{a,b} ⊆ Lset(i)›, which is logically equivalent to 🍋‹a ∈ Lset(i)›and🍋‹b ∈ Lset(i)›.› lemma gen_separation_multi: assumes reflection: "REFLECTS [P,Q]" and Lu: "L(u)" and collI: "\j. u \ Lset(j) ==> Collect(Lset(j), Q(j)) ∈ DPow(Lset(j))" shows"separation(L,P)" apply (rule gen_separation [OF reflection Lu]) apply (drule mem_Lset_imp_subset_Lset) apply (erule collI) done
subsection‹Separation for Intersection›
lemma Inter_Reflects: "REFLECTS[\x. \y[L]. y\A \ x \ y,
λi x. ∀y∈Lset(i). y∈A ⟶ x ∈ y]" by (intro FOL_reflections)
lemma Inter_separation: "L(A) \ separation(L, \x. \y[L]. y\A \ x\y)" apply (rule gen_separation [OF Inter_Reflects], simp) apply (rule DPow_LsetI) txt‹I leave this one example of a manual proof. The tedium of manually
instantiating 🍋‹i›, 🍋‹j›and🍋‹env›is obvious.› apply (rule ball_iff_sats) apply (rule imp_iff_sats) apply (rule_tac [2] i=1 and j=0 and env="[y,x,A]"in mem_iff_sats) apply (rule_tac i=0 and j=2 in mem_iff_sats) apply (simp_all add: succ_Un_distrib [symmetric]) done
subsection‹Separation for Set Difference›
lemma Diff_Reflects: "REFLECTS[\x. x \ B, \i x. x \ B]" by (intro FOL_reflections)
subsection‹Instantiating the locale‹M_basic›› text‹Separation (and Strong Replacement) for basic set-theoretic constructions
such as intersection, Cartesian Product and image.›
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 und die Messung sind noch experimentell.