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)