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) prefer2apply simp apply (subgoal_tac "{x ∈ z. P(x)} = {x ∈ Lset(j). x ∈ z ∧ (Q(x))}") prefer2 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 term‹u› is a finite enumeration such as term‹{a,b}›; thus the new subgoal gets the assumption term‹{a,b} ⊆ Lset(i)›, which is logically equivalent to term‹a ∈ Lset(i)› and term‹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 term‹i›, term‹j› and term‹env› is obvious.› apply (rule ball_iff_sats) apply (rule imp_iff_sats) apply (rule_tac [2] i=1and j=0and env="[y,x,A]"in mem_iff_sats) apply (rule_tac i=0and j=2in 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
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.