Fixed points of normal functions #
We prove various statements about the fixed points of normal ordinal functions. We state them in three forms: as statements about type-indexed families of normal functions, as statements about ordinal-indexed families of normal functions, and as statements about a single normal function. For the most part, the first case encompasses the others.
Moreover, we prove some lemmas about the fixed points of specific normal functions.
Main definitions and results #
nfpFamily
,nfpBFamily
,nfp
: the next fixed point of a (family of) normal function(s).fp_family_unbounded
,fp_bfamily_unbounded
,fp_unbounded
: the (common) fixed points of a (family of) normal function(s) are unbounded in the ordinals.deriv_add_eq_mul_omega_add
: a characterization of the derivative of addition.deriv_mul_eq_opow_omega_mul
: a characterization of the derivative of multiplication.
Fixed points of type-indexed families of ordinals #
The next common fixed point, at least a
, for a family of normal functions.
This is defined for any family of functions, as the supremum of all values reachable by applying
finitely many functions in the family to a
.
Ordinal.nfpFamily_fp
shows this is a fixed point, Ordinal.le_nfpFamily
shows it's at
least a
, and Ordinal.nfpFamily_le_fp
shows this is the least ordinal with these properties.
Equations
- Ordinal.nfpFamily f a = Ordinal.sup (List.foldr f a)
Instances For
A generalization of the fixed point lemma for normal functions: any family of normal functions has an unbounded set of common fixed points.
The derivative of a family of normal functions is the sequence of their common fixed points.
This is defined for all functions such that Ordinal.derivFamily_zero
,
Ordinal.derivFamily_succ
, and Ordinal.derivFamily_limit
are satisfied.
Equations
- One or more equations did not get rendered due to their size.
Instances For
For a family of normal functions, Ordinal.derivFamily
enumerates the common fixed points.
Fixed points of ordinal-indexed families of ordinals #
The next common fixed point, at least a
, for a family of normal functions indexed by ordinals.
This is defined as Ordinal.nfpFamily
of the type-indexed family associated to f
.
Equations
- o.nfpBFamily f = Ordinal.nfpFamily (o.familyOfBFamily f)
Instances For
A generalization of the fixed point lemma for normal functions: any family of normal functions has an unbounded set of common fixed points.
The derivative of a family of normal functions is the sequence of their common fixed points.
This is defined as Ordinal.derivFamily
of the type-indexed family associated to f
.
Equations
- o.derivBFamily f = Ordinal.derivFamily (o.familyOfBFamily f)
Instances For
For a family of normal functions, Ordinal.derivBFamily
enumerates the common fixed points.
Fixed points of a single function #
The next fixed point function, the least fixed point of the normal function f
, at least a
.
This is defined as ordinal.nfpFamily
applied to a family consisting only of f
.
Equations
- Ordinal.nfp f = Ordinal.nfpFamily fun (x : Unit) => f
Instances For
The fixed point lemma for normal functions: any normal function has an unbounded set of fixed points.
The derivative of a normal function f
is the sequence of fixed points of f
.
This is defined as Ordinal.derivFamily
applied to a trivial family consisting only of f
.
Equations
- Ordinal.deriv f = Ordinal.derivFamily fun (x : Unit) => f
Instances For
Ordinal.deriv
enumerates the fixed points of a normal function.