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 operation
ga : α → α → αto
gb : β → β → βif
f (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)