@[reducible, inline]
Equations
Instances For
Equations
- SecondOrder.Language.zf = { Func := SecondOrder.Language.zf.Func✝, Rel := SecondOrder.Language.zf.Rel✝ }
Instances For
Equations
- SecondOrder.Language.zf.instEmptyCollectionTerm = { emptyCollection := SecondOrder.Language.zf.Func.empty✝ ⬝ᶠ []ᵥ }
Equations
- SecondOrder.Language.zf.instInsertTerm = { insert := fun (x1 x2 : SecondOrder.Language.zf.Term l) => SecondOrder.Language.zf.Func.insert✝ ⬝ᶠ [x1, x2]ᵥ }
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Instances For
Equations
- SecondOrder.Language.zf.term𝓟_ = Lean.ParserDescr.node `SecondOrder.Language.zf.term𝓟_ 100 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "𝓟") (Lean.ParserDescr.cat `term 100))
Instances For
Instances For
Equations
- SecondOrder.Language.zf.termω = Lean.ParserDescr.node `SecondOrder.Language.zf.termω 1024 (Lean.ParserDescr.symbol "ω")
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
Equations
- SecondOrder.Language.zf.V κ = ↑(ZFSet.vonNeumann (↑κ).ord).toSet
Instances For
@[simp]
instance
SecondOrder.Language.zf.V.instHasStructure
{κ : InaccessibleCardinal}
:
zf.HasStructure (V κ)
Equations
- One or more equations did not get rendered due to their size.
@[simp]
theorem
SecondOrder.Language.zf.V.interp_empty
{l : List Ty}
{κ : InaccessibleCardinal}
{ρ : Assignment (V κ) l}
:
@[simp]
theorem
SecondOrder.Language.zf.V.interp_omega
{l : List Ty}
{κ : InaccessibleCardinal}
{ρ : Assignment (V κ) l}
:
- ax_ext : ZF₂ (∀' ∀' (∀' (zf.mem #0 #2 ⇔ zf.mem #0 #1) ⇒ #1 ≐ #0))
- ax_empty : ZF₂ (∀' (~ zf.mem #0 ∅))
- ax_insert : ZF₂ (∀' ∀' ∀' (zf.mem (#0) (insert #2 #1) ⇔ zf.mem #0 #1 ⩒ #0 ≐ #2))
- ax_union : ZF₂ (∀' ∀' (zf.mem (#0) (zf.sUnion #1) ⇔ ∃' (zf.mem #0 #2 ⩑ zf.mem #1 #0)))
- ax_powerset : ZF₂ (∀' ∀' (zf.mem (#0) (zf.powerset #1) ⇔ ∀' (zf.mem #0 #1 ⇒ zf.mem #0 #2)))
- ax_replacement : ZF₂ (∀' ∀ᶠ[1]∃' ∀' (zf.mem #0 #1 ⇔ ∃' (zf.mem #0 #4 ⩑ #1 ≐ 3 ⬝ᶠᵛ [#0]ᵥ)))
- ax_infinity : ZF₂ (zf.mem ∅ zf.omega ⩑ ∀' (zf.mem (#0) zf.omega ⇒ zf.mem (insert #0 #0) zf.omega) ⩑ ∀' (zf.mem ∅ #0 ⩑ ∀' (zf.mem #0 #1 ⇒ zf.mem (insert #0 #0) #1) ⇒ ∀' (zf.mem (#0) zf.omega ⇒ zf.mem #0 #1)))
- ax_regularity : ZF₂ (∀' (∃' zf.mem #0 #1 ⇒ ∃' (zf.mem #0 #1 ⩑ ~ ∃' (zf.mem #0 #2 ⩑ zf.mem #0 #1))))
Instances For
Equations
- SecondOrder.Language.Theory.ZF₂.instMembershipDom = { mem := fun (y x : M.Dom) => M.interpRel SecondOrder.Language.zf.Rel.mem✝ [x, y]ᵥ }
Equations
- SecondOrder.Language.Theory.ZF₂.instEmptyCollectionDom = { emptyCollection := M.interpFunc SecondOrder.Language.zf.Func.empty✝ []ᵥ }
Equations
- SecondOrder.Language.Theory.ZF₂.Nonempty x = ∃ (y : M.Dom), y ∈ x
Instances For
Equations
- SecondOrder.Language.Theory.ZF₂.instInsertDom = { insert := fun (x1 x2 : M.Dom) => M.interpFunc SecondOrder.Language.zf.Func.insert✝ [x1, x2]ᵥ }
Equations
Instances For
Equations
Instances For
noncomputable def
SecondOrder.Language.Theory.ZF₂.sep
{M : ZF₂.Model}
(x : M.Dom)
(p : M.Dom → Prop)
:
M.Dom
Equations
- SecondOrder.Language.Theory.ZF₂.sep x p = SecondOrder.Language.Theory.ZF₂.sUnion (SecondOrder.Language.Theory.ZF₂.replace x fun (y : M.Dom) => if p y then {y} else ∅)
Instances For
Equations
- SecondOrder.Language.Theory.ZF₂.instInterDom = { inter := fun (x y : M.Dom) => SecondOrder.Language.Theory.ZF₂.sep x fun (x : M.Dom) => x ∈ y }
Equations
Instances For
Equations
Instances For
Equations
- SecondOrder.Language.Theory.ZF₂.IsTransitive x = ∀ y ∈ x, y ⊆ x
Instances For
Equations
Instances For
Equations
Instances For
theorem
SecondOrder.Language.Theory.ZF₂.trcl.transitive
{M : ZF₂.Model}
{x : M.Dom}
:
IsTransitive (trcl x)
theorem
SecondOrder.Language.Theory.ZF₂.trcl.minimal
{M : ZF₂.Model}
{x : M.Dom}
(y : M.Dom)
:
y ⊇ x → IsTransitive y → trcl x ⊆ y
theorem
SecondOrder.Language.Theory.ZF₂.mem_wf
{M : ZF₂.Model}
:
WellFounded fun (x1 x2 : M.Dom) => x1 ∈ x2
instance
SecondOrder.Language.Theory.ZF₂.instIsWellFoundedDomMem
{M : ZF₂.Model}
:
IsWellFounded M.Dom fun (x1 x2 : M.Dom) => x1 ∈ x2
Since GC (global choice) is true in the metalanguage (Lean), it is also true in any model of second-order ZF. In other words, GC (which implies AC) is no longer "independent" in second-order ZF.
Equations
- SecondOrder.Language.Theory.ZF₂.card x = Cardinal.mk ↑{y : M.Dom | y ∈ x}
Instances For
Instances For
theorem
SecondOrder.Language.Theory.ZF₂.exists_of_card_lt_kappa
{M : ZF₂.Model}
{c : Cardinal.{u}}
:
theorem
SecondOrder.Language.Theory.ZF₂.kappa_inaccessible
{M : ZF₂.Model}
:
(kappa M).IsInaccessible
Equations
- SecondOrder.Language.Theory.ZF₂.rank = IsWellFounded.rank fun (x1 x2 : M.Dom) => x1 ∈ x2
Instances For
@[irreducible]
Equations
- SecondOrder.Language.Theory.ZF₂.toZFSet x = ZFSet.range fun (x_1 : { y : M.Dom // y ∈ x }) => match x_1 with | ⟨y, property⟩ => SecondOrder.Language.Theory.ZF₂.toZFSet y
Instances For
theorem
SecondOrder.Language.Theory.ZF₂.iso_V
(M : ZF₂.Model)
:
∃ (κ : InaccessibleCardinal), _root_.Nonempty (M.toStructure ≃ᴹ Structure.of (zf.V κ))