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.\
end
Messung V0.5
¤ Dauer der Verarbeitung: 0.17 Sekunden
(vorverarbeitet)
¤
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.