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.
The base type of the construction, denoted by τ₋₁
in various papers.
An atom consists of a litter together with an index in κ
.
This gives a partition of atoms into litters: we say that two atoms are in the same litter
if their first projections are equal. These equivalence classes will be called litter sets.
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
If a
is an atom, aᴸ
is its first projection; that is, the litter associated to it.
Equations
- ConNF.instSuperLAtomLitter = { superL := ConNF.Atom.litter }
If L
is a litter, Lᴬ
is the set of atoms associated to that litter.
This is sometimes called the litter set of L
.
The definition of membership in a litter set.
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 that of μ
.
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 κ
.
Litter sets are not small.
Litter sets are nonempty.
Litter sets are pairwise disjoint.
If two litters are near each other, then they are equal.