(* Title: ZF/Constructible/Wellorderings.thy Author: Lawrence C Paulson, Cambridge University Computer Laboratory *)
section‹Relativized Wellorderings›
theory Wellorderings imports Relative begin
text‹We define functions analogous to 🍋‹ordermap›🍋‹ordertype› but without using recursion. Instead, there is a direct appeal to Replacement. This will be the basis for a version relativized to some class ‹M›. The main result is Theorem I 7.6 in Kunen, page 17.›
definition
wellfounded :: "[i==>o,i]==>o"where 🍋‹EVERY non-empty set has an ‹r›-minimal element› "wellfounded(M,r) ≡ ∀x[M]. x≠0 ⟶ (∃y[M]. y∈x ∧¬(∃z[M]. z∈x ∧⟨z,y⟩∈ r))" definition
wellfounded_on :: "[i==>o,i,i]==>o"where 🍋‹every non-empty SUBSET OF ‹A›has an ‹r›-minimal element› "wellfounded_on(M,A,r) ≡ ∀x[M]. x≠0 ⟶ x⊆A ⟶ (∃y[M]. y∈x ∧¬(∃z[M]. z∈x ∧⟨z,y⟩∈ r))"
definition
wellordered :: "[i==>o,i,i]==>o"where 🍋‹linear and wellfounded on ‹A›\› "wellordered(M,A,r) ≡ transitive_rel(M,A,r) ∧ linear_rel(M,A,r) ∧ wellfounded_on(M,A,r)"
subsubsection ‹Trivial absoluteness proofs›
lemma (in M_basic) irreflexive_abs [simp]: "M(A) ==> irreflexive(M,A,r) ⟷ irrefl(A,r)" by (simp add: irreflexive_def irrefl_def)
lemma (in M_basic) transitive_rel_abs [simp]: "M(A) ==> transitive_rel(M,A,r) ⟷ trans[A](r)" by (simp add: transitive_rel_def trans_on_def)
lemma (in M_basic) linear_rel_abs [simp]: "M(A) ==> linear_rel(M,A,r) ⟷ linear(A,r)" by (simp add: linear_rel_def linear_def)
lemma (in M_basic) wellordered_is_trans_on: "[wellordered(M,A,r); M(A)]==> trans[A](r)" by (auto simp add: wellordered_def)
lemma (in M_basic) wellordered_is_linear: "[wellordered(M,A,r); M(A)]==> linear(A,r)" by (auto simp add: wellordered_def)
lemma (in M_basic) wellordered_is_wellfounded_on: "[wellordered(M,A,r); M(A)]==> wellfounded_on(M,A,r)" by (auto simp add: wellordered_def)
lemma (in M_basic) wellfounded_imp_wellfounded_on: "[wellfounded(M,r); M(A)]==> wellfounded_on(M,A,r)" by (auto simp add: wellfounded_def wellfounded_on_def)
lemma (in M_basic) wellfounded_on_subset_A: "[wellfounded_on(M,A,r); B<=A]==> wellfounded_on(M,B,r)" by (simp add: wellfounded_on_def, blast)
subsubsection ‹Well-founded relations›
lemma (in M_basic) wellfounded_on_iff_wellfounded: "wellfounded_on(M,A,r) ⟷ wellfounded(M, r ∩ A*A)" apply (simp add: wellfounded_on_def wellfounded_def, safe) apply force apply (drule_tac x=x in rspec, assumption, blast) done
lemma (in M_basic) wellfounded_on_imp_wellfounded: "[wellfounded_on(M,A,r); r ⊆ A*A]==> wellfounded(M,r)" by (simp add: wellfounded_on_iff_wellfounded subset_Int_iff)
lemma (in M_basic) wellfounded_on_field_imp_wellfounded: "wellfounded_on(M, field(r), r) ==> wellfounded(M,r)" by (simp add: wellfounded_def wellfounded_on_iff_wellfounded, fast)
lemma (in M_basic) wellfounded_iff_wellfounded_on_field: "M(r) ==> wellfounded(M,r) ⟷ wellfounded_on(M, field(r), r)" by (blast intro: wellfounded_imp_wellfounded_on
wellfounded_on_field_imp_wellfounded)
(*Consider the least z in domain(r) such that P(z) does not hold...*) lemma (in M_basic) wellfounded_induct: "[wellfounded(M,r); M(a); M(r); separation(M, λx. ¬P(x)); ∀x. M(x) ∧ (∀y. ⟨y,x⟩∈ r ⟶ P(y)) ⟶ P(x)] ==> P(a)" apply (simp (no_asm_use) add: wellfounded_def) apply (drule_tac x="{z ∈ domain(r). ¬P(z)}"in rspec) apply (blast dest: transM)+ done
lemma (in M_basic) linear_imp_relativized: "linear(A,r) ==> linear_rel(M,A,r)" by (simp add: linear_def linear_rel_def)
lemma (in M_basic) trans_on_imp_relativized: "trans[A](r) ==> transitive_rel(M,A,r)" by (unfold transitive_rel_def trans_on_def, blast)
lemma (in M_basic) wf_on_imp_relativized: "wf[A](r) ==> wellfounded_on(M,A,r)" apply (clarsimp simp: wellfounded_on_def wf_def wf_on_def) apply (drule_tac x=x in spec, blast) done
lemma (in M_basic) wf_imp_relativized: "wf(r) ==> wellfounded(M,r)" apply (simp add: wellfounded_def wf_def, clarify) apply (drule_tac x=x in spec, blast) done
lemma (in M_basic) well_ord_imp_relativized: "well_ord(A,r) ==> wellordered(M,A,r)" by (simp add: wellordered_def well_ord_def tot_ord_def part_ord_def
linear_imp_relativized trans_on_imp_relativized wf_on_imp_relativized)
text‹The property being well founded (and hence of being well ordered) is not absolute: the set that doesn't contain a minimal element may not exist in the class M. However, every set that is well founded in a transitive model M is well founded (page 124).›
subsection‹Relativized versions of order-isomorphisms and order types›
lemma (in M_basic) order_isomorphism_abs [simp]: "[M(A); M(B); M(f)] ==> order_isomorphism(M,A,r,B,s,f) ⟷ f ∈ ord_iso(A,r,B,s)" by (simp add: order_isomorphism_def ord_iso_def)
lemma (in M_basic) pred_closed [intro,simp]: "[M(A); M(r); M(x)]==> M(Order.pred(A, x, r))" using pred_separation [of r x] by (simp add: Order.pred_def)
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.