ZFC classes #
Classes in set theory are usually defined as collections of elements satisfying some property.
Here, however, we define Class
as Set ZFSet
to derive many instances automatically,
most of them being the lifting of set operations to classes. The usual definition is then
definitionally equal to ours.
Main definitions #
Class
: Defined asSet ZFSet
.Class.iota
: Definite description operator.ZFSet.isOrdinal_notMem_univ
: The Burali-Forti paradox. Ordinals form a proper class.
Equations
Equations
- instInsertZFSetClass = { insert := Set.insert }
{x ∈ A | p x}
is the class of elements in A
satisfying p
Equations
- Class.instCoeZFSet = { coe := Class.ofSet }
Assert that A
is a ZFC set satisfying B
Equations
- B.ToSet A = ∃ (x : ZFSet.{?u.11}), ↑x = A ∧ B x
Equations
- Class.instMembership = { mem := Class.Mem }
Alias of Class.notMem_empty
.
Equations
- Class.instWellFoundedRelation = { rel := fun (x1 x2 : Class.{?u.4}) => x1 ∈ x2, wf := Class.mem_wf }
Alias of Class.univ_notMem_univ
.
There is no universal set.
This is stated as univ ∉ univ
, meaning that univ
(the class of all sets) is proper (does not
belong to the class of all sets).
Convert a conglomerate (a collection of classes) into a class
Equations
- Class.congToClass x = {y : ZFSet.{?u.2} | ↑y ∈ x}
Convert a class into a conglomerate (a collection of classes)
Equations
- x.classToCong = {y : Class.{?u.2} | y ∈ x}
The power class of a class is the class of all subclasses that are ZFC sets
Equations
- x.powerset = Class.congToClass (𝒫 x)
The union of a class is the class of all members of ZFC sets in the class
Equations
- ⋃₀ x = ⋃₀ x.classToCong
The union of a class is the class of all members of ZFC sets in the class
Equations
- Class.«term⋃₀_» = Lean.ParserDescr.node `Class.«term⋃₀_» 110 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "⋃₀ ") (Lean.ParserDescr.cat `term 110))
The intersection of a class is the class of all members of ZFC sets in the class
Equations
- ⋂₀ x = ⋂₀ x.classToCong
The intersection of a class is the class of all members of ZFC sets in the class
Equations
- Class.«term⋂₀_» = Lean.ParserDescr.node `Class.«term⋂₀_» 110 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "⋂₀ ") (Lean.ParserDescr.cat `term 110))
An induction principle for sets. If every subset of a class is a member, then the class is universal.
The definite description operator, which is {x}
if {y | A y} = {x}
and ∅
otherwise.
Function value
Equations
- F ′ A = Class.iota fun (y : ZFSet.{?u.12}) => Class.ToSet (fun (x : ZFSet.{?u.12}) => F (x.pair y)) A
Function value
Equations
- Class.«term_′_» = Lean.ParserDescr.trailingNode `Class.«term_′_» 100 100 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ′ ") (Lean.ParserDescr.cat `term 101))
A choice function on the class of nonempty ZFC sets.
Equations
- x.choice = ZFSet.map (fun (y : ZFSet.{?u.10}) => Classical.epsilon fun (z : ZFSet.{?u.10}) => z ∈ y) x
ZFSet.toSet
as an equivalence.
Equations
- One or more equations did not get rendered due to their size.
The Burali-Forti paradox: ordinals form a proper class.
Alias of ZFSet.isOrdinal_notMem_univ
.
The Burali-Forti paradox: ordinals form a proper class.