Semiconjugate elements of a semigroup #
Main definitions #
We say that x is semiconjugate to y by a (semiconj_by a x y), if a * x = y * a.
In this file we provide operations on semiconj_by _ _ _.
In the names of these operations, we treat a as the “left” argument, and both x and y as
“right” arguments. This way most names in this file agree with the names of the corresponding lemmas
for commute a b = semiconj_by a b b. As a side effect, some lemmas have only _right version.
Lean does not immediately recognise these terms as equations, so for rewriting we need syntax like
rw [(h.pow_right 5).eq] rather than just rw [h.pow_right 5].
This file provides only basic operations (mul_left, mul_right, inv_right etc). Other
operations (pow_right, field inverse etc) are in the files that define corresponding notions.
x is additive semiconjugate to y by a if a + x = y + a
Equations
- add_semiconj_by a x y = (a + x = y + a)
x is semiconjugate to y by a, if a * x = y * a.
Equations
- semiconj_by a x y = (a * x = y * a)
Equality behind semiconj_by a x y; useful for rewriting.
Equality behind add_semiconj_by a x y; useful for rewriting.
If a semiconjugates x to y and x' to y',
then it semiconjugates x * x' to y * y'.
If a semiconjugates x to y and x' to y', then it semiconjugates
x + x' to y + y'.
If both a and b semiconjugate x to y, then so does a * b.
If both a and b semiconjugate x to y, then so does a + b.
The relation “there exists an element that semiconjugates a to b” on a semigroup
is transitive.
The relation “there exists an element that semiconjugates a to b” on an additive
semigroup is transitive.
Any element additively semiconjugates 0 to 0.
Any element semiconjugates 1 to 1.
Zero additively semiconjugates any element to itself.
One semiconjugates any element to itself.
The relation “there exists an element that semiconjugates a to b” on a monoid (or, more
generally, on mul_one_class type) is reflexive.
The relation “there exists an element that semiconjugates a to b” on an additive
monoid (or, more generally, on a add_zero_class type) is reflexive.
If a semiconjugates an additive unit x to an additive unit y, then it
semiconjugates -x to -y.
If a semiconjugates a unit x to a unit y, then it semiconjugates x⁻¹ to y⁻¹.
If an additive unit a semiconjugates x to y, then -a semiconjugates y to
x.
If a unit a semiconjugates x to y, then a⁻¹ semiconjugates y to x.
a semiconjugates x to a * x * a⁻¹.
a semiconjugates x to a + x + -a.
a semiconjugates x to a + x + -a.