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_not_mem_univ
: The Burali-Forti paradox. Ordinals form a proper class.
The collection of all classes.
We define Class
as Set ZFSet
, as this allows us to get many instances automatically. However, in
practice, we treat it as (the definitionally equal) ZFSet → Prop
. This means, the preferred way to
state that x : ZFSet
belongs to A : Class
is to write A x
.
Equations
Instances For
Equations
Equations
- instInsertZFSetClass = { insert := Set.insert }
{x ∈ A | p x}
is the class of elements in A
satisfying p
Instances For
Equations
- Class.instCoeZFSet = { coe := Class.ofSet }
Assert that A
is a ZFC set satisfying B
Equations
- B.ToSet A = ∃ (x : ZFSet.{?u.18}), ↑x = A ∧ B x
Instances For
Equations
- Class.instMembership = { mem := Class.Mem }
Equations
- Class.instWellFoundedRelation = { rel := fun (x1 x2 : Class.{?u.5}) => x1 ∈ x2, wf := Class.mem_wf }
Convert a conglomerate (a collection of classes) into a class
Equations
- Class.congToClass x = {y : ZFSet.{?u.2} | ↑y ∈ x}
Instances For
Convert a class into a conglomerate (a collection of classes)
Equations
- x.classToCong = {y : Class.{?u.2} | y ∈ x}
Instances For
The power class of a class is the class of all subclasses that are ZFC sets
Equations
- x.powerset = Class.congToClass (𝒫 x)
Instances For
The union of a class is the class of all members of ZFC sets in the class
Equations
- ⋃₀ x = ⋃₀ x.classToCong
Instances For
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))
Instances For
The intersection of a class is the class of all members of ZFC sets in the class
Equations
- ⋂₀ x = ⋂₀ x.classToCong
Instances For
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))
Instances For
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.
Instances For
Function value
Equations
- F ′ A = Class.iota fun (y : ZFSet.{?u.19}) => Class.ToSet (fun (x : ZFSet.{?u.19}) => F (x.pair y)) A
Instances For
Function value
Equations
- Class.«term_′_» = Lean.ParserDescr.trailingNode `Class.«term_′_» 100 100 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ′ ") (Lean.ParserDescr.cat `term 101))
Instances For
A choice function on the class of nonempty ZFC sets.
Equations
- x.choice = ZFSet.map (fun (y : ZFSet.{?u.15}) => Classical.epsilon fun (z : ZFSet.{?u.15}) => z ∈ y) x
Instances For
ZFSet.toSet
as an equivalence.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The Burali-Forti paradox: ordinals form a proper class.