Enumerations #
In this file, we define sequences indexed by "small ordinals", which here is taken to mean
some inhabitant of κ
.
Main declarations #
ConNF.Enumeration
: The type of enumerations.ConNF.mk_enumeration
andConNF.mk_enumeration_le
: Bounds on the size of the type of enumerations.
An α
-enumeration is a function from a proper initial segment of κ
to α
.
- max : ConNF.κ
- f : (i : ConNF.κ) → i < self.max → α
Instances For
The main induction principle for enumerations. This statement of extensionality avoids dealing with heterogeneous equality.
The range of an enumeration. We say that some inhabitant of α
is "in" an enumeration E
if it is an element of the carrier.
Instances For
Equations
- ConNF.instCoeTCEnumerationSet = { coe := fun (E : ConNF.Enumeration α) => E.carrier }
Equations
- ConNF.instMembershipEnumeration = { mem := fun (x : α) (E : ConNF.Enumeration α) => x ∈ E.carrier }
Enumerations give rise to small sets.
Equations
- ConNF.Enumeration.singleton x = { max := 1, f := fun (x_1 : ConNF.κ) (x_2 : x_1 < 1) => x }
Instances For
Counting enumerations #
We now establish that there are precisely μ
enumerations taking values in α
, given that α
has
size μ
. This requires a technical lemma about cardinal arithmetic, given in mk_fun_le
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- ConNF.funMap α β f = (⟨Set.range f, ⋯⟩, InvImage (fun (x x_1 : β) => x < x_1) f)
Instances For
Suppose that β
is well-ordered. Then, a function f : α → β
is uniquely determined by its
range together with the inverse image of the <
relation under f
.
The amount of functions α → β
is bounded by the amount of subsets of β
of size at most α
,
multiplied by the amount of relations on α
. We prove this by giving β
an arbitrary well-ordering
and using funMap_injective
.
If μ
is a strong limit cardinal and κ
is less than the cofinality of μ
, then
μ ^ κ ≤ μ
. This is a partial converse to a certain form of König's theorem
(Cardinal.lt_power_cof
), which implies that μ < μ ^ κ
if κ
is at least the
cofinality of μ
.
Strong limits are closed under exponentials.
Given that #α = #μ
, there are exactly μ
enumerations.
Equations
- ⋯ = ⋯
A bound on the amount of enumerations.
A bound on the amount of enumerations.
Operations on enumerations #
The image of an enumeration under a function.
Instances For
The pointwise image of an enumeration under a group action (or similar).
Equations
- ConNF.Enumeration.instSMul = { smul := fun (g : G) (E : ConNF.Enumeration α) => E.image fun (x : α) => g • x }
Any group that acts on α
also acts on α
-valued enumerations pointwise.
Equations
- ConNF.Enumeration.instMulAction = MulAction.mk ⋯ ⋯
The concatenation of two enumerations.
Equations
- One or more equations did not get rendered due to their size.
Group actions distribute over sums of enumerations.
The partial order on enumerations #
We say that E ≤ F
when F
has larger domain than E
and agrees on the smaller domain.
Equations
- ConNF.Enumeration.instPartialOrder = PartialOrder.mk ⋯
Converting sets to enumerations #
We describe a procedure to produce an enumeration whose carrier is any given small set.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Converts a small set s
into an enumeration with carrier set s
.
Equations
- ConNF.Enumeration.ofSet s hs = ConNF.Enumeration.ofSet' s hs