Semiconjugate and commuting maps #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
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)`;f : α → αcommutes withg : α → αiff ∘ g = g ∘ f, or equivalently `semiconj 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)
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
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 monoid_hom
semiconjugates (*) to (*).
Equations
- function.semiconj₂ f ga gb = ∀ (x y : α), f (ga x y) = gb (f x) (f y)