A model of ZFC #
In this file, we model Zermelo-Fraenkel set theory (+ choice) using Lean's underlying type theory,
building on the pre-sets defined in Mathlib/SetTheory/ZFC/PSet.lean.
The theory of classes is developed in Mathlib/SetTheory/ZFC/Class.lean.
Main definitions #
ZFSet: ZFC set. Defined asPSetquotiented byPSet.Equiv, the extensional equivalence.ZFSet.choice: Axiom of choice. Proved from Lean's axiom of choice.ZFSet.omega: The von Neumann ordinalωas aSet.Classical.allZFSetDefinable: All functions are classically definable.ZFSet.IsFunc: Predicate that a ZFC set is a subset ofx × ythat can be considered as a ZFC functionx → y. That is, each member ofxis related by the ZFC set to exactly one member ofy.ZFSet.funs: ZFC set of ZFC functionsx → y.ZFSet.Hereditarily p x: Predicate that every set in the transitive closure ofxhas propertyp.
Notes #
To avoid confusion between the Lean Set and the ZFC Set, docstrings in this file refer to them
respectively as "Set" and "ZFC set".
The ZFC universe of sets consists of the type of pre-sets, quotiented by extensional equivalence.
Instances For
Turns a pre-set into a ZFC set.
Instances For
A set function is "definable" if it is the image of some n-ary PSet
function. This isn't exactly definability, but is useful as a sufficient
condition for functions that have a computable image.
Turns a definable function into an n-ary
PSetfunction.A set function
fis the image ofDefinable.out f.
Instances
A simpler constructor for ZFSet.Definable₁.
Instances For
A simpler constructor for ZFSet.Definable₂.
Instances For
Turns a binary definable function into a binary PSet function.
Instances For
All functions are classically definable.
Instances For
Convert a ZFC set into a Set of ZFC sets
Instances For
The membership relation for ZFC sets is inherited from the membership relation for pre-sets.
Instances For
Alias of ZFSet.small_coe.
A nonempty set is one that contains some element.
Instances For
Alias of ZFSet.nonempty_coe.
x ⊆ y as ZFC sets means that all members of x are members of y.
Instances For
Alias of ZFSet.coe_subset_coe.
Alias of ZFSet.coe_empty.
Insert x y is the set {x} ∪ y
Instances For
Alias of ZFSet.coe_insert.
Alias of ZFSet.coe_singleton.
omega is the first infinite von Neumann ordinal
Instances For
{x ∈ a | p x} is the set of elements in a satisfying p
Instances For
Alias of ZFSet.coe_sep.
The powerset operation, the collection of subsets of a ZFC set
Instances For
The union operator, the collection of elements of elements of a ZFC set. Uses ⋃₀ notation,
scoped under the ZFSet namespace.
Instances For
The union operator, the collection of elements of elements of a ZFC set. Uses ⋃₀ notation,
scoped under the ZFSet namespace.
Instances For
The intersection operator, the collection of elements in all of the elements of a ZFC set. We
define ⋂₀ ∅ = ∅. Uses ⋂₀ notation, scoped under the ZFSet namespace.
Instances For
The intersection operator, the collection of elements in all of the elements of a ZFC set. We
define ⋂₀ ∅ = ∅. Uses ⋂₀ notation, scoped under the ZFSet namespace.
Instances For
Alias of ZFSet.coe_sUnion.
Alias of ZFSet.coe_sInter.
The binary union operation
Instances For
The binary intersection operation
Instances For
The set difference operation
Instances For
Alias of ZFSet.mem_sdiff.
Alias of ZFSet.coe_union.
Alias of ZFSet.coe_inter.
Alias of ZFSet.coe_sdiff.
ZFSet.powerset is equivalent to Set.powerset.
Instances For
Induction on the ∈ relation.
The image of a (definable) ZFC set function
Instances For
Alias of ZFSet.coe_image.
The range of a type-indexed family of sets.
Instances For
Alias of ZFSet.coe_range.
Indexed union of a family of ZFC sets. Uses ⋃ notation, scoped under the ZFSet namespace.
Instances For
Indexed union of a family of ZFC sets. Uses ⋃ notation, scoped under the ZFSet namespace.
Instances For
Alias of ZFSet.coe_iUnion.
Alias of ZFSet.coe_pair.
A subset of pairs {(a, b) ∈ x × y | p a b}
Instances For
The Cartesian product, {(a, b) | a ∈ x, b ∈ y}
Instances For
isFunc x y f is the assertion that f is a subset of x × y which relates to each element
of x a unique element of y, so that we can consider f as a ZFC function x → y.
Instances For
funs x y is y ^ x, the set of all set functions x → y
Instances For
Graph of a function: map f x is the ZFC function which maps a ∈ x to f a
Instances For
Given a predicate p on ZFC sets. Hereditarily p x means that x has property p and the
members of x are all Hereditarily p.
Instances For
Alias of the forward direction of ZFSet.hereditarily_iff.