Periodic points #
A point x : α
is a periodic point of f : α → α
of period n
if f^[n] x = x
.
Main definitions #
is_periodic_pt f n x
:x
is a periodic point off
of periodn
, i.e.f^[n] x = x
. We do not requiren > 0
in the definition.pts_of_period f n
: the set{x | is_periodic_pt f n x}
. Note thatn
is not required to be the minimal period ofx
.periodic_pts f
: the set of all periodic points off
.minimal_period f x
: the minimal period of a pointx
under an endomorphismf
or zero ifx
is not a periodic point off
.
Main statements #
We provide “dot syntax”-style operations on terms of the form h : is_periodic_pt f n x
including
arithmetic operations on n
and h.map (hg : semiconj_by g f f')
. We also prove that f
is bijective on each set pts_of_period f n
and on periodic_pts f
. Finally, we prove that x
is a periodic point of f
of period n
if and only if minimal_period f x | n
.
References #
A point x
is a periodic point of f : α → α
of period n
if f^[n] x = x
.
Note that we do not require 0 < n
in this definition. Many theorems about periodic points
need this assumption.
Equations
- function.is_periodic_pt f n x = function.is_fixed_pt f^[n] x
A fixed point of f
is a periodic point of f
of any prescribed period.
For the identity map, all points are periodic.
Any point is a periodic point of period 0
.
If f
sends two periodic points x
and y
of the same positive period to the same point,
then x = y
. For a similar statement about points of different periods see eq_of_apply_eq
.
If f
sends two periodic points x
and y
of positive periods to the same point,
then x = y
.
The set of periodic points of a given (possibly non-minimal) period.
Equations
- function.pts_of_period f n = {x : α | function.is_periodic_pt f n x}
The set of periodic points of a map f : α → α
.
Equations
- function.periodic_pts f = {x : α | ∃ (n : ℕ) (H : n > 0), function.is_periodic_pt f n x}
Minimal period of a point x
under an endomorphism f
. If x
is not a periodic point of f
,
then minimal_period f x = 0
.
Equations
- function.minimal_period f x = dite (x ∈ function.periodic_pts f) (λ (h : x ∈ function.periodic_pts f), nat.find h) (λ (h : x ∉ function.periodic_pts f), 0)