Semiconjugate and commuting maps #
We define the following predicates:
Function.Semiconj:f : α → βsemiconjugatesga : α → αtogb : β → βiff ∘ ga = gb ∘ f;Function.Semiconj₂:f : α → βsemiconjugates a binary operationga : α → α → αtogb : β → β → βiff (ga x y) = gb (f x) (f y);Function.Commute:f : α → αcommutes withg : α → αiff ∘ g = g ∘ f, or equivalentlySemiconj f g g.
We say that f : α → β semiconjugates ga : α → α to gb : β → β if f ∘ ga = gb ∘ f.
We use ∀ x, f (ga x) = gb (f x) as the definition, so given h : Function.Semiconj f ga gb and
a : α, we have h a : f (ga a) = gb (f a) and h.comp_eq : f ∘ ga = gb ∘ f.
Equations
- Function.Semiconj f ga gb = ∀ (x : α), f (ga x) = gb (f x)
Instances For
Definition of Function.Semiconj in terms of functional equality.
Alias of the forward direction of Function.semiconj_iff_comp_eq.
Definition of Function.Semiconj in terms of functional equality.
If fab : α → β semiconjugates ga to gb and fbc : β → γ semiconjugates gb to gc,
then fbc ∘ fab semiconjugates ga to gc.
See also Function.Semiconj.comp_left for a version with reversed arguments.
If fbc : β → γ semiconjugates gb to gc and fab : α → β semiconjugates ga to gb,
then fbc ∘ fab semiconjugates ga to gc.
See also Function.Semiconj.trans for a version with reversed arguments.
Backward compatibility note: before 2024-01-13,
this lemma used to have the same order of arguments that Function.Semiconj.trans has now.
The identity function semiconjugates any function to itself.
If f : α → β semiconjugates ga : α → α to gb : β → β,
ga' is a right inverse of ga, and gb' is a left inverse of gb,
then f semiconjugates ga' to gb' as well.
If f semiconjugates ga to gb and f' is both a left and a right inverse of f,
then f' semiconjugates gb to ga.
If f : α → β semiconjugates ga : α → α to gb : β → β,
then Option.map f semiconjugates Option.map ga to Option.map gb.
Two maps f g : α → α commute if f (g x) = g (f x) for all x : α.
Given h : Function.commute f g and a : α, we have h a : f (g a) = g (f a) and
h.comp_eq : f ∘ g = g ∘ f.
Equations
- Function.Commute f g = Function.Semiconj f g g
Instances For
Reinterpret Function.Semiconj f g g as Function.Commute f g. These two predicates are
definitionally equal but have different dot-notation lemmas.
Reinterpret Function.Commute f g as Function.Semiconj f g g. These two predicates are
definitionally equal but have different dot-notation lemmas.
If f commutes with g and g', then it commutes with g ∘ g'.
If f and f' commute with g, then f ∘ f' commutes with g as well.
Any self-map commutes with the identity map.
The identity map commutes with any self-map.
If f commutes with g, then Option.map f commutes with Option.map g.
A map f semiconjugates a binary operation ga to a binary operation gb if
for all x, y we have f (ga x y) = gb (f x) (f y). E.g., a MonoidHom
semiconjugates (*) to (*).
Equations
- Function.Semiconj₂ f ga gb = ∀ (x y : α), f (ga x y) = gb (f x) (f y)