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 asPSet
quotiented 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 × y
that can be considered as a ZFC functionx → y
. That is, each member ofx
is 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 ofx
has 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".
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
PSet
function.A set function
f
is the image ofDefinable.out f
.
Instances
Turns a unary definable function into a unary PSet
function.
Equations
Instances For
Turns a binary definable function into a binary PSet
function.
Equations
Instances For
Equations
Equations
Equations
All functions are classically definable.
Equations
Instances For
The membership relation for ZFC sets is inherited from the membership relation for pre-sets.
Equations
Instances For
A nonempty set is one that contains some element.
Equations
Instances For
x ⊆ y
as ZFC sets means that all members of x
are members of y
.
Equations
Instances For
Alias of ZFSet.notMem_empty
.
{x ∈ a | p x}
is the set of elements in a
satisfying p
Equations
Instances For
The powerset operation, the collection of subsets of a ZFC set
Equations
Instances For
The union operator, the collection of elements of elements of a ZFC set. Uses ⋃₀
notation,
scoped under the ZFSet
namespace.
Equations
Instances For
The union operator, the collection of elements of elements of a ZFC set. Uses ⋃₀
notation,
scoped under the ZFSet
namespace.
Equations
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.
Equations
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.
Equations
Instances For
Alias of ZFSet.notMem_sInter_of_notMem
.
The binary intersection operation
Equations
Instances For
Induction on the ∈
relation.
Alias of ZFSet.notMem_of_subset
.
The image of a (definable) ZFC set function
Equations
Instances For
The range of a type-indexed family of sets.
Equations
Instances For
The cartesian product, {(a, b) | a ∈ x, b ∈ y}
Equations
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
.
Equations
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
.
Equations
Instances For
Alias of the forward direction of ZFSet.hereditarily_iff
.