text‹There is no set of all ordinals, for then it would contain itself› lemma ON_class: "¬ (∀i. i∈X <-> Ord(i))" proof (rule notI) assume X: "∀i. i ∈ X ⟷ Ord(i)" have"∀x y. x∈X ⟶ y∈x ⟶ y∈X" by (simp add: X, blast intro: Ord_in_Ord) hence"Transset(X)" by (auto simp add: Transset_def) moreoverhave"∧x. x ∈ X ==> Transset(x)" by (simp add: X Ord_def) ultimatelyhave"Ord(X)"by (rule OrdI) hence"X ∈ X"by (simp add: X) thus"False"by (rule mem_irrefl) qed
subsection‹🚫 'less Than' for Ordinals›
lemma ltI: "[i∈j; Ord(j)]==> i by (unfold lt_def, blast)
lemma Memrel_0 [simp]: "Memrel(0) = 0" by (unfold Memrel_def, blast)
lemma Memrel_1 [simp]: "Memrel(1) = 0" by (unfold Memrel_def, blast)
lemma relation_Memrel: "relation(Memrel(A))" by (simp add: relation_def Memrel_def)
(*The membership relation (as a set) is well-founded. Proof idea: show A<=B by applying the foundation axiom to A-B *) lemma wf_Memrel: "wf(Memrel(A))" unfolding wf_def apply (rule foundation [THEN disjE, THEN allI], erule disjI1, blast) done
text‹The premise 🍋‹Ord(i)›does not suffice.› lemma trans_Memrel: "Ord(i) ==> trans(Memrel(i))" by (unfold Ord_def Transset_def trans_def, blast)
text‹However, the following premise is strong enough.› lemma Transset_trans_Memrel: "∀j∈i. Transset(j) ==> trans(Memrel(i))" by (unfold Transset_def trans_def, blast)
(*If Transset(A) then Memrel(A) internalizes the membership relation below A*) lemma Transset_Memrel_iff: "Transset(A) ==>⟨a,b⟩∈ Memrel(A) <-> a∈b ∧ b∈A" by (unfold Transset_def, blast)
(*Induction over an ordinal*) lemma Ord_induct [consumes 2]: "i ∈ k ==> Ord(k) ==> (∧x. x ∈ k ==> (∧y. y ∈ x ==> P(y)) ==> P(x)) ==> P(i)" using Transset_induct [OF _ Ord_is_Transset, of i k P] by simp
(*Induction over the class of ordinals -- a useful corollary of Ord_induct*) lemma trans_induct [consumes 1, case_names step]: "Ord(i) ==> (∧x. Ord(x) ==> (∧y. y ∈ x ==> P(y)) ==> P(x)) ==> P(i)" apply (rule Ord_succ [THEN succI1 [THEN Ord_induct]], assumption) apply (blast intro: Ord_succ [THEN Ord_in_Ord]) done
section‹Fundamental properties of the epsilon ordering (🚫 ordinals)›
subsubsection‹Proving That 🚫 a Linear Ordering on the Ordinals›
lemma Ord_linear: "Ord(i) ==> Ord(j) ==> i∈j | i=j | j∈i" proof (induct i arbitrary: j rule: trans_induct) case (step i) note step_i = step show ?caseusing‹Ord(j)› proof (induct j rule: trans_induct) case (step j) thus ?caseusing step_i by (blast dest: Ord_trans) qed qed
text‹The trichotomy law for ordinals› lemma Ord_linear_lt: assumes o: "Ord(i)""Ord(j)" obtains (lt) "i | (eq) "i=j" | (gt) "j apply (simp add: lt_def) apply (rule_tac i1=i and j1=j in Ord_linear [THEN disjE]) apply (blast intro: o)+ done
lemma Ord_linear2: assumes o: "Ord(i)""Ord(j)" obtains (lt) "i | (ge) "j ≤ i" apply (rule_tac i = i and j = j in Ord_linear_lt) apply (blast intro: leI le_eqI sym o) + done
lemma Ord_linear_le: assumes o: "Ord(i)""Ord(j)" obtains (le) "i ≤ j" | (ge) "j ≤ i" apply (rule_tac i = i and j = j in Ord_linear_lt) apply (blast intro: leI le_eqI o) + done
lemma le_imp_not_lt: "j ≤ i ==>¬ i by (blast elim!: leE elim: lt_asym)
lemma not_lt_imp_le: "[¬ i]==> j ≤ i" by (rule_tac i = i and j = j in Ord_linear2, auto)
subsubsection ‹Some Rewrite Rules for ‹🚫close>, ‹≤›\ lemma Ord_mem_iff_lt: "Ord(j) ==> i∈j <-> i by (unfold lt_def, blast)
lemma not_lt_iff_le: "[Ord(i); Ord(j)]==>¬ i j ≤ i" by (blast dest: le_imp_not_lt not_lt_imp_le)
lemma not_le_iff_lt: "[Ord(i); Ord(j)]==>¬ i ≤ j <-> j by (simp (no_asm_simp) add: not_lt_iff_le [THEN iff_sym])
(*This is identical to 0<succ(i) *) lemma Ord_0_le: "Ord(i) ==> 0 ≤ i" by (erule not_lt_iff_le [THEN iffD1], auto)
lemma Un_upper1_le: "[Ord(i); Ord(j)]==> i ≤ i ∪ j" by (rule Un_upper1 [THEN subset_imp_le], auto)
lemma Un_upper2_le: "[Ord(i); Ord(j)]==> j ≤ i ∪ j" by (rule Un_upper2 [THEN subset_imp_le], auto)
(*Replacing k by succ(k') yields the similar rule for le!*) lemma Un_least_lt: "[i]==> i ∪ j < k" apply (rule_tac i = i and j = j in Ord_linear_le) apply (auto simp add: Un_commute le_subset_iff subset_Un_iff lt_Ord) done
lemma Un_least_mem_iff: "[Ord(i); Ord(j); Ord(k)]==> i ∪ j ∈ k <-> i∈k ∧ j∈k" apply (insert Un_least_lt_iff [of i j k]) apply (simp add: lt_def) done
(*Replacing k by succ(k') yields the similar rule for le!*) lemma Int_greatest_lt: "[i]==> i ∩ j < k" apply (rule_tac i = i and j = j in Ord_linear_le) apply (auto simp add: Int_commute le_subset_iff subset_Int_iff lt_Ord) done
lemma Ord_Un_if: "[Ord(i); Ord(j)]==> i ∪ j = (if j by (simp add: not_lt_iff_le le_imp_subset leI
subset_Un_iff [symmetric] subset_Un_iff2 [symmetric])
lemma non_succ_LimitI: assumes i: "0and nsucc: "∧y. succ(y) ≠ i" shows"Limit(i)" proof - have Oi: "Ord(i)"using i by (simp add: lt_def)
{ fix y assume yi: "y hence Osy: "Ord(succ(y))"by (simp add: lt_Ord Ord_succ) have"¬ i ≤ y"using yi by (blast dest: le_imp_not_lt) hence"succ(y) < i"using nsucc [of y] by (blast intro: Ord_linear_lt [OF Osy Oi]) } thus ?thesis using i Oi by (auto simp add: Limit_def) qed
lemma Ord_set_cases: assumes I: "∀i∈I. Ord(i)" shows"I=0 ∨∪(I) ∈ I ∨ (∪(I) ∉ I ∧ Limit(∪(I)))" proof (cases "∪(I)" rule: Ord_cases) show"Ord(∪I)"using I by (blast intro: Ord_Union) next assume"∪I = 0"thus ?thesis by (simp, blast intro: subst_elem) next fix j assume j: "Ord(j)"and UIj:"∪(I) = succ(j)"
{ assume"∀i∈I. i≤j" hence"∪(I) ≤ j" by (simp add: Union_le j) hence False by (simp add: UIj lt_not_refl) } thenobtain i where i: "i ∈ I""succ(j) ≤ i"using I j by (atomize, auto simp add: not_le_iff_lt) have"∪(I) ≤ succ(j)"using UIj j by auto hence"i ≤ succ(j)"using i by (simp add: le_subset_iff Union_subset_iff) hence"succ(j) = i"using i by (blast intro: le_anti_sym) hence"succ(j) ∈ I"by (simp add: i) thus ?thesis by (simp add: UIj) next assume"Limit(∪I)"thus ?thesis by auto qed
text‹If the union of a set of ordinals is a successor, then it is an element of that set.› lemma Ord_Union_eq_succD: "[∀x∈X. Ord(x); ∪X = succ(j)]==> succ(j) ∈ X" by (drule Ord_set_cases, auto)
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.