The first infinite ordinal in models of ZF #
This module develops the theory of ω and the natural numbers inside a von Neumann model
of ZF, providing the infinitary tools needed for the Kunen inconsistency argument.
The toZFSet declaration.
Instances For
@[simp]
The IsWellFoundedRevMem declaration.
Equations
- SetTheory.IsWellFoundedRevMem x = ∀ S ∈ 𝓟 x, S ≠ ∅ → ∃ y ∈ S, ∀ z ∈ S, y ∉ z
Instances For
theorem
SetTheory.IsWellFoundedRevMem.realize_iff
{M : Type 1}
[sM : ZFStructure M]
[cM₁ : IsVonNeumann M]
(v✝ : Fin 1 → M)
:
theorem
SetTheory.IsWellFoundedRevMem.to_realize
{M : Type 1}
[sM : ZFStructure M]
[cM₁ : IsVonNeumann M]
(x₁ : M)
:
theorem
SetTheory.IsWellFoundedRevMem.elementarity
{M : Type 1}
[sM : ZFStructure M]
[cM₁ : IsVonNeumann M]
{N : Type 1}
[sN : ZFStructure N]
[cN₁ : IsVonNeumann N]
(x₁ : M)
{F : Type u_1}
[FunLike F M N]
[ElementaryEmbeddingClass F M N]
(j : F)
:
theorem
SetTheory.MemOmega.realize_iff
{M : Type 1}
[sM : ZFStructure M]
[cM₁ : IsVonNeumann M]
(v✝ : Fin 1 → M)
:
theorem
SetTheory.MemOmega.elementarity
{M : Type 1}
[sM : ZFStructure M]
[cM₁ : IsVonNeumann M]
{N : Type 1}
[sN : ZFStructure N]
[cN₁ : IsVonNeumann N]
(x₁ : M)
{F : Type u_1}
[FunLike F M N]
[ElementaryEmbeddingClass F M N]
(j : F)
:
theorem
SetTheory.MemOmega.to_realize
{M : Type 1}
[sM : ZFStructure M]
[cM₁ : IsVonNeumann M]
(x₁ : M)
:
theorem
SetTheory.IsWellFoundedRevMem.toV
{M : Type 1}
[ZFStructure M]
[hM : IsVonNeumann M]
(x : M)
:
theorem
SetTheory.IsWellFoundedRevMem.toZFSet
{M : Type 1}
[ZFStructure M]
[hM : IsVonNeumann M]
(x : M)
:
@[implicit_reducible]
noncomputable instance
SetTheory.instNatCastM
{M : Type 1}
[ZFStructure M]
[hM : IsVonNeumann M]
:
NatCast M
Equations
- One or more equations did not get rendered due to their size.
@[implicit_reducible]
noncomputable instance
SetTheory.instOfNatM
{M : Type 1}
[ZFStructure M]
[hM : IsVonNeumann M]
{n : ℕ}
:
OfNat M n
Equations
- SetTheory.instOfNatM = { ofNat := ↑n }
theorem
SetTheory.NatCast.natCast.toZFSet
{M : Type 1}
[ZFStructure M]
[hM : IsVonNeumann M]
{n : ℕ}
:
theorem
SetTheory.nwf_rev_of_ωₛ_le
{α : ZFSet.{0}}
(hα : ωₛ ≤ α)
:
¬IsWellFounded ↥α fun (x y : ↥α) => y ∈ x
theorem
SetTheory.wf_rev_of_lt_ωₛ
{α : ZFSet.{0}}
(hα : α ∈ ωₛ)
:
IsWellFounded ↥α fun (x y : ↥α) => y ∈ x
theorem
SetTheory.eq_natCast_of_memOmega
{M : Type 1}
[ZFStructure M]
[hM : IsVonNeumann M]
{α : M}
(hα : MemOmega α)
:
theorem
SetTheory.memOmega_natCast
{M : Type 1}
[ZFStructure M]
[hM : IsVonNeumann M]
{n : ℕ}
:
MemOmega ↑n
The set-theoretic function automatically realized from its defining property.
Equations
Instances For
instance
SetTheory.ωₘ.instFormulaToFunction
{M : Type 1}
[sM : ZFStructure M]
[cM₁ : IsVonNeumannWithOmega M]
:
FormulaToFunction formula fun (v : Fin 0 → M) => ωₘ
theorem
SetTheory.ωₘ.to_realize
{M : Type 1}
[sM : ZFStructure M]
[cM₁ : IsVonNeumannWithOmega M]
(x₁ : M)
:
theorem
SetTheory.ωₘ.elementarity
{M : Type 1}
[sM : ZFStructure M]
[cM₁ : IsVonNeumannWithOmega M]
{N : Type 1}
[sN : ZFStructure N]
[cN₁ : IsVonNeumannWithOmega N]
{F : Type u_1}
[FunLike F M N]
[ElementaryEmbeddingClass F M N]
(j : F)
:
theorem
SetTheory.ωₘ.spec
{M : Type 1}
[sM : ZFStructure M]
[cM₁ : IsVonNeumannWithOmega M]
(y : M)
:
theorem
SetTheory.ωₘ.eq_iff
{M : Type 1}
[sM : ZFStructure M]
[cM₁ : IsVonNeumannWithOmega M]
(v : M)
:
theorem
SetTheory.ωₘ.realize_iff
{M : Type 1}
[sM : ZFStructure M]
[cM₁ : IsVonNeumannWithOmega M]
(v✝ : Fin 1 → M)
:
@[simp]
theorem
SetTheory.natCast_mem_ωₘ
{M₀ : Type 1}
[ZFStructure M₀]
[hM₀ : IsVonNeumannWithOmega M₀]
{n : ℕ}
:
@[simp]
noncomputable def
SetTheory.omegaEquiv
{M₀ : Type 1}
[ZFStructure M₀]
[hM₀ : IsVonNeumannWithOmega M₀]
:
The omegaEquiv declaration.
Equations
- SetTheory.omegaEquiv = (Equiv.ofBijective (fun (n : ℕ) => ⟨↑n, ⋯⟩) ⋯).symm
Instances For
@[implicit_reducible]
noncomputable instance
SetTheory.instOfNatOrdinals
{M : Type 1}
[ZFStructure M]
[hM : IsVonNeumann M]
{n : ℕ}
: