subsection‹An Injection from Formulas into the Natural Numbers›
text‹There is a well-known bijection between 🍋‹nat*nat›and🍋‹nat› given by the expression f(m,n) = triangle(m+n) + m, where triangle(k)
enumerates the triangular numbers and can be defined by triangle(0)=0,
triangle(succ(k)) = succ(k + triangle(k)). Some small amount of effort is
needed toshow that f is a bijection. We already know that such a bijection exists by the theorem‹well_ord_InfCard_square_eq›:
@{thm[display] well_ord_InfCard_square_eq[no_vars]}
However, this result merely states that there is a bijection between the two
sets. It provides no means of naming a specific bijection. Therefore, we
conduct the proofs under the assumption that a bijection exists. The simplest
way to organize this istouse a locale.›
text‹Localefor any arbitrary injection between 🍋‹nat*nat› and🍋‹nat›› locale Nat_Times_Nat = fixes fn assumes fn_inj: "fn \ inj(nat*nat, nat)"
consts enum :: "[i,i]\i" primrec "enum(f, Member(x,y)) = f ` <0, f ` \x,y\>" "enum(f, Equal(x,y)) = f ` <1, f ` \x,y\>" "enum(f, Nand(p,q)) = f ` <2, f ` >" "enum(f, Forall(p)) = f ` "
lemma (in Nat_Times_Nat) fn_type [TC,simp]: "\x \ nat; y \ nat\ \ fn`\x,y\ \ nat" by (blast intro: inj_is_fun [OF fn_inj] apply_funtype)
lemma (in Nat_Times_Nat) fn_iff: "\x \ nat; y \ nat; u \ nat; v \ nat\ ==> (fn`⟨x,y⟩ = fn`⟨u,v⟩) ⟷ (x=u ∧ y=v)" by (blast dest: inj_apply_equality [OF fn_inj])
lemma (in Nat_Times_Nat) enum_type [TC,simp]: "p \ formula \ enum(fn,p) \ nat" by (induct_tac p, simp_all)
subsection‹Defining the Wellordering on 🍋‹DPow(A)››
text‹The objective isto build a wellordering on 🍋‹DPow(A)›from a
given one on 🍋‹A›. We first introduce wellorderings for environments,
which are lists built over 🍋‹A›. We combine it with the enumeration of
formulas. The order type of the resulting wellordering gives us a map from
(environment, formula) pairs into the ordinals. For each member of 🍋‹DPow(A)›, we take the minimum such ordinal.›
lemma (in Nat_Times_Nat) DPow_r_type: "DPow_r(fn,r,A) \ DPow(A) * DPow(A)" by (simp add: DPow_r_def measure_def, blast)
subsection‹Limit Construction for Well-Orderings›
text‹Now we work towards the transfinite definition of wellorderings for 🍋‹Lset(i)›. We assume as an inductive hypothesis that there is a family
of wellorderings for smaller ordinals.›
definition
rlimit :: "[i,i\i]\i"where 🍋‹Expresses the wellordering at limit ordinals. The conditional
lets us remove the premise 🍋‹Limit(i)›from some theorems.› "rlimit(i,r) \ if Limit(i) then
{z: Lset(i) * Lset(i). ∃x' x. z = ,x> ∧
(lrank(x') < lrank(x) |
(lrank(x') = lrank(x) \,x> ∈ r(succ(lrank(x)))))}
else 0"
definition
Lset_new :: "i\i"where 🍋‹This constant denotes the set of elements introduced at level 🍋‹succ(i)›› "Lset_new(i) \ {x \ Lset(succ(i)). lrank(x) = i}"
text‹The limit caseis non-trivial because of the distinction between
object-level and meta-level abstraction.› lemma [simp]: "Limit(i) \ L_r(f,i) = rlimit(i, L_r(f))" by (simp cong: rlimit_cong add: transrec3_Limit L_r_def ltD)
text‹Every constructible set is well-ordered! Therefore the Wellordering Theoremand
the Axiom of Choice hold in🍋‹L›!› theorem L_implies_AC: assumes x: "L(x)"shows"\r. well_ord(x,r)" using Transset_Lset x apply (simp add: Transset_def L_def) apply (blast dest!: well_ord_L_r intro: well_ord_subset) done
interpretation L: M_basic L by (rule M_basic_L)
theorem"\x[L]. \r. wellordered(L,x,r)" proof fix x assume"L(x)" thenobtain r where"well_ord(x,r)" by (blast dest: L_implies_AC) thus"\r. wellordered(L,x,r)" by (blast intro: L.well_ord_imp_relativized) qed
text‹In order to prove 🍋‹∃r[L]. wellordered(L,x,r)›, it's necessary to know
that 🍋‹r›is actually constructible. It follows from the assumption ``🍋‹V› equals 🍋‹L''›,
but this reasoning doesn't appear to work in Isabelle.\
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.