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 f
semiconjugates ga
to gb
and ga'
to gb'
,
then it semiconjugates ga ∘ ga'
to gb ∘ gb'
.
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.
Any function semiconjugates the identity function to the identity function.
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)