Zermelo set theory #
reference: Ralf Schindler, "Set Theory, Exploring Independence and Truth" [Sch14]
Axiom of extentionality #
theorem
LO.FirstOrder.SetTheory.mem_ext
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
{x y : V}
:
Alias of the reverse direction of LO.FirstOrder.SetTheory.mem_ext_iff.
Axiom of empty set #
@[implicit_reducible]
noncomputable def
LO.FirstOrder.SetTheory.instEmptyCollection
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
Equations
- LO.FirstOrder.SetTheory.instEmptyCollection = { emptyCollection := Classical.choose! ⋯ }
Instances For
@[simp]
theorem
LO.FirstOrder.SetTheory.ne_empty_iff_isNonempty
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
{x : V}
:
theorem
LO.FirstOrder.SetTheory.eq_empty_or_isNonempty
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
(x : V)
:
Axiom of pairing #
noncomputable def
LO.FirstOrder.SetTheory.doubleton
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
(x y : V)
:
V
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
instance
LO.FirstOrder.SetTheory.doubleton.defined
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
instance
LO.FirstOrder.SetTheory.doubleton.definable
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
@[simp]
instance
LO.FirstOrder.SetTheory.doubleton_isNonempty
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
(x y : V)
:
IsNonempty (doubleton x y)
noncomputable def
LO.FirstOrder.SetTheory.singleton
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
(x : V)
:
V
Equations
Instances For
@[implicit_reducible]
noncomputable def
LO.FirstOrder.SetTheory.instSingleton
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
Singleton V V
Equations
Instances For
instance
LO.FirstOrder.SetTheory.singleton.defined
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
instance
LO.FirstOrder.SetTheory.singleton.definable
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
@[simp]
instance
LO.FirstOrder.SetTheory.singleton_isNonempty
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
(x : V)
:
Axiom of union #
noncomputable def
LO.FirstOrder.SetTheory.sUnion
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
(x : V)
:
V
Equations
- ⋃ˢ x = Classical.choose! ⋯
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
instance
LO.FirstOrder.SetTheory.sUnion.defined
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
instance
LO.FirstOrder.SetTheory.sUnion.definable
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
@[simp]
theorem
LO.FirstOrder.SetTheory.IsNonempty_sUnion_iff
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
{x : V}
:
Union of two sets #
noncomputable def
LO.FirstOrder.SetTheory.union
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
(x y : V)
:
V
Equations
Instances For
@[implicit_reducible]
noncomputable def
LO.FirstOrder.SetTheory.instUnion
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
Union V
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
instance
LO.FirstOrder.SetTheory.union.defined
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
instance
LO.FirstOrder.SetTheory.union.definable
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
@[simp]
theorem
LO.FirstOrder.SetTheory.IsNonempty_union_iff
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
{x y : V}
:
Insert #
noncomputable def
LO.FirstOrder.SetTheory.insert
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
(x y : V)
:
V
Equations
- LO.FirstOrder.SetTheory.insert x y = {x} ∪ y
Instances For
@[implicit_reducible]
noncomputable def
LO.FirstOrder.SetTheory.instInsert
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
Insert V V
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
instance
LO.FirstOrder.SetTheory.insert.defined
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
instance
LO.FirstOrder.SetTheory.insert.definable
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
@[simp]
instance
LO.FirstOrder.SetTheory.insert_isNonempty
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
(x y : V)
:
IsNonempty (insert x y)
Axiom of power set #
noncomputable def
LO.FirstOrder.SetTheory.power
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
(x : V)
:
V
Equations
- ℘ x = Classical.choose! ⋯
Instances For
Equations
- LO.FirstOrder.SetTheory.term℘_ = Lean.ParserDescr.node `LO.FirstOrder.SetTheory.term℘_ 110 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "℘ ") (Lean.ParserDescr.cat `term 110))
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
instance
LO.FirstOrder.SetTheory.power.defined
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
instance
LO.FirstOrder.SetTheory.power.definable
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
@[simp]
instance
LO.FirstOrder.SetTheory.power_nonempty
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
(x : V)
:
IsNonempty (℘ x)
Aussonderungsaxiom #
theorem
LO.FirstOrder.SetTheory.separation_exists_eval
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
(x : V)
(φ : Semiformula ℒₛₑₜ V 1)
:
noncomputable def
LO.FirstOrder.SetTheory.sep
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
(x : V)
(P : V → Prop)
(hP : ℒₛₑₜ-predicate P)
:
V
Equations
Instances For
@[simp]
theorem
LO.FirstOrder.SetTheory.sep_subset
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
{P : V → Prop}
{hP : ℒₛₑₜ-predicate P}
{x : V}
:
Set-builder notation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Intersection #
noncomputable def
LO.FirstOrder.SetTheory.sInter
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
(x : V)
:
V
Equations
- ⋂ˢ x = LO.FirstOrder.SetTheory.sep (⋃ˢ x) (fun (z : V) => ∀ y ∈ x, z ∈ y) ⋯
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
instance
LO.FirstOrder.SetTheory.sInter.defined
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
instance
LO.FirstOrder.SetTheory.sInter.definable
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
@[simp]
theorem
LO.FirstOrder.SetTheory.mem_sInter_iff_of_nonempty
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
{z x : V}
[hx : IsNonempty x]
:
theorem
LO.FirstOrder.SetTheory.sInter_subset_of_mem_of_nonempty
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
{x y : V}
[IsNonempty y]
(h : x ∈ y)
:
@[simp]
theorem
LO.FirstOrder.SetTheory.subset_sInter_iff_of_nonempty
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
{x y : V}
[IsNonempty y]
:
Intersection of two sets #
@[implicit_reducible]
noncomputable instance
LO.FirstOrder.SetTheory.instInter
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
Inter V
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
instance
LO.FirstOrder.SetTheory.inter.defined
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
instance
LO.FirstOrder.SetTheory.inter.definable
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
Set difference #
noncomputable def
LO.FirstOrder.SetTheory.sdiff
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
(x y : V)
:
V
Equations
- LO.FirstOrder.SetTheory.sdiff x y = LO.FirstOrder.SetTheory.sep x (fun (z : V) => z ∉ y) ⋯
Instances For
@[implicit_reducible]
noncomputable instance
LO.FirstOrder.SetTheory.instSDiff
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
SDiff V
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
instance
LO.FirstOrder.SetTheory.sdiff.defined
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
instance
LO.FirstOrder.SetTheory.sdiff.definable
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
theorem
LO.FirstOrder.SetTheory.isNonempty_sdiff_of_ssubset
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
{x y : V}
:
x ⊊ y → IsNonempty (y \ x)
Kuratowski's ordered pair #
⟨x, y, z, ...⟩ₖ notation for kpair
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
noncomputable def
LO.FirstOrder.SetTheory.kpair.π₁
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
(z : V)
:
V
Equations
Instances For
noncomputable def
LO.FirstOrder.SetTheory.kpair.π₂
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
(z : V)
:
V
Equations
- LO.FirstOrder.SetTheory.kpair.π₂ z = ⋃ˢ LO.FirstOrder.SetTheory.sep (⋃ˢ z) (fun (x : V) => x ∈ ⋂ˢ z → ⋃ˢ z = ⋂ˢ z) ⋯
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
instance
LO.FirstOrder.SetTheory.kpair.defined
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
instance
LO.FirstOrder.SetTheory.kpair.definable
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
instance
LO.FirstOrder.SetTheory.kpair.π₁.defined
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
instance
LO.FirstOrder.SetTheory.kpair.π₁.definable
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
instance
LO.FirstOrder.SetTheory.kpair.π₂.defined
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
instance
LO.FirstOrder.SetTheory.kpair.π₂.definable
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
Product #
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
instance
LO.FirstOrder.SetTheory.prod.defined
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
instance
LO.FirstOrder.SetTheory.prod.definable
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
Axiom of infinity #
noncomputable def
LO.FirstOrder.SetTheory.succ
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
(x : V)
:
V
Equations
Instances For
@[reducible, inline]
Instances For
instance
LO.FirstOrder.SetTheory.succ.defined
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
instance
LO.FirstOrder.SetTheory.succ.definable
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
def
LO.FirstOrder.SetTheory.IsInductive
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
(x : V)
:
Equations
- LO.FirstOrder.SetTheory.IsInductive x = (∅ ∈ x ∧ ∀ y ∈ x, LO.FirstOrder.SetTheory.succ y ∈ x)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
instance
LO.FirstOrder.SetTheory.IsInductive.defined
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
instance
LO.FirstOrder.SetTheory.IsInductive.definable
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
theorem
LO.FirstOrder.SetTheory.IsInductive.zero
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
{I : V}
(hI : IsInductive I)
:
theorem
LO.FirstOrder.SetTheory.IsInductive.succ
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
{I : V}
(hI : IsInductive I)
{x : V}
(hx : x ∈ I)
:
theorem
LO.FirstOrder.SetTheory.isInductive_exists
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
∃ (I : V), IsInductive I
noncomputable def
LO.FirstOrder.SetTheory.ω
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
V
Equations
Instances For
theorem
LO.FirstOrder.SetTheory.mem_ω_iff_mem_all_inductive
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
{x : V}
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
instance
LO.FirstOrder.SetTheory.ω.defined
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
@[simp]
instance
LO.FirstOrder.SetTheory.ω_nonempty
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
@[simp]
theorem
LO.FirstOrder.SetTheory.ω_isInductive
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
theorem
LO.FirstOrder.SetTheory.IsInductive.ω_subset
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
{I : V}
(hI : IsInductive I)
:
noncomputable def
LO.FirstOrder.SetTheory.ofNat
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
ℕ → V
Equations
Instances For
@[implicit_reducible]
noncomputable def
LO.FirstOrder.SetTheory.instOfNat
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
(n : ℕ)
:
OfNat V n
Equations
- LO.FirstOrder.SetTheory.instOfNat n = { ofNat := LO.FirstOrder.SetTheory.ofNat n }
Instances For
@[implicit_reducible]
noncomputable def
LO.FirstOrder.SetTheory.instNatCast
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
:
NatCast V
Equations
Instances For
Axiom of foundation #
theorem
LO.FirstOrder.SetTheory.foundation
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
(x : V)
[IsNonempty x]
:
∃ y ∈ x, ∀ z ∈ x, z ∉ y
theorem
LO.FirstOrder.SetTheory.foundation'
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
(x : V)
[IsNonempty x]
:
@[simp]
theorem
LO.FirstOrder.SetTheory.mem_irrefl
{V : Type u_1}
[SetStructure V]
[Nonempty V]
[V↓[ℒₛₑₜ] ⊧* 𝗭]
(x : V)
:
x ∉ x