Atoms #
In this file, we define atoms: the elements of the base type of our model. They are not atoms in the
ZFU sense (for example), they are simply the elements of the model which are in type ⊥
.
This base type does not appear in the final construction, it is just used as the foundation on which the subsequent layers can be built.
Main declarations #
ConNF.Atom
: The type of atoms.
The base type of the construction, denoted by τ₋₁
in various papers. Instead of declaring it as an
arbitrary type of cardinality μ
and partitioning it into suitable sets of litters afterwards, we
define it as Litter × κ
, which has the correct cardinality and comes with a natural partition.
These are not 'atoms' in the ZFU, TTTU or NFU sense; they are simply the elements of the model which
are in type τ₋₁
.
- litter : ConNF.Litter
- index : ConNF.κ
Instances For
Equations
- ConNF.instSuperLAtomLitter = { superL := ConNF.Atom.litter }
If L
is a litter, Lᴬ
is the set of atoms associated to that litter.
Strips away the name of the type of atoms, converting it into a combination of types well-known to mathlib.
Equations
Instances For
The cardinality of Atom
is the cardinality of μ
.
We will prove that all types constructed in our model have cardinality equal to μ
.
Each litter set is equivalent as a type to κ
.
Equations
- ConNF.litterSetEquiv L = { toFun := fun (a : ↑Lᴬ) => (↑a).index, invFun := fun (i : ConNF.κ) => ⟨{ litter := L, index := i }, ⋯⟩, left_inv := ⋯, right_inv := ⋯ }
Instances For
Each litter set has cardinality κ
.
If two litters are near each other, then they are equal.