Group actions by isometries #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
In this file we define two typeclasses:
has_isometric_smul M X
says thatM
multiplicatively acts on a (pseudo extended) metric spaceX
by isometries;has_isometric_vadd
is an additive version ofhas_isometric_smul
.
We also prove basic facts about isometric actions and define bundled isometries
isometry_equiv.const_mul
, isometry_equiv.mul_left
, isometry_equiv.mul_right
,
isometry_equiv.div_left
, isometry_equiv.div_right
, and isometry_equiv.inv
, as well as their
additive versions.
If G
is a group, then has_isometric_smul G G
means that G
has a left-invariant metric while
has_isometric_smul Gᵐᵒᵖ G
means that G
has a right-invariant metric. For a commutative group,
these two notions are equivalent. A group with a right-invariant metric can be also represented as a
normed_group
.
- isometry_vadd : ∀ (c : M), isometry (has_vadd.vadd c)
An additive action is isometric if each map x ↦ c +ᵥ x
is an isometry.
Instances of this typeclass
- has_isometric_vadd.opposite_of_comm
- normed_add_torsor.to_has_isometric_vadd
- prod.has_isometric_vadd
- prod.has_isometric_vadd'
- prod.has_isometric_vadd''
- add_units.has_isometric_vadd
- add_opposite.has_isometric_vadd
- ulift.has_isometric_vadd
- ulift.has_isometric_vadd'
- pi.has_isometric_vadd
- pi.has_isometric_vadd'
- pi.has_isometric_vadd''
- additive.has_isometric_vadd
- additive.has_isometric_vadd'
- additive.has_isometric_vadd''
- normed_add_group.to_has_isometric_vadd_right
- normed_add_group.to_has_isometric_vadd_left
- isometry_smul : ∀ (c : M), isometry (has_smul.smul c)
A multiplicative action is isometric if each map x ↦ c • x
is an isometry.
Instances of this typeclass
- has_isometric_smul.opposite_of_comm
- prod.has_isometric_smul
- prod.has_isometric_smul'
- prod.has_isometric_smul''
- units.has_isometric_smul
- mul_opposite.has_isometric_smul
- ulift.has_isometric_smul
- ulift.has_isometric_smul'
- pi.has_isometric_smul
- pi.has_isometric_smul'
- pi.has_isometric_smul''
- multiplicative.has_isometric_smul
- multiplicative.has_isometric_smul'
- multiplicative.has_isometric_vadd''
- normed_group.to_has_isometric_smul_right
- normed_group.to_has_isometric_smul_left
If an additive group G
acts on X
by isometries, then isometry_equiv.const_vadd
is the isometry of X
given by addition of a constant element of the group.
Equations
- isometry_equiv.const_vadd c = {to_equiv := add_action.to_perm c, isometry_to_fun := _}
If a group G
acts on X
by isometries, then isometry_equiv.const_smul
is the isometry of
X
given by multiplication of a constant element of the group.
Equations
- isometry_equiv.const_smul c = {to_equiv := mul_action.to_perm c, isometry_to_fun := _}
Addition y ↦ x + y
as an isometry_equiv
.
Equations
- isometry_equiv.add_left c = {to_equiv := equiv.add_left c, isometry_to_fun := _}
Multiplication y ↦ x * y
as an isometry_equiv
.
Equations
- isometry_equiv.mul_left c = {to_equiv := equiv.mul_left c, isometry_to_fun := _}
Multiplication y ↦ y * x
as an isometry_equiv
.
Equations
- isometry_equiv.mul_right c = {to_equiv := equiv.mul_right c, isometry_to_fun := _}
Addition y ↦ y + x
as an isometry_equiv
.
Equations
- isometry_equiv.add_right c = {to_equiv := equiv.add_right c, isometry_to_fun := _}
Division y ↦ y / x
as an isometry_equiv
.
Equations
- isometry_equiv.div_right c = {to_equiv := equiv.div_right c, isometry_to_fun := _}
Subtraction y ↦ y - x
as an isometry_equiv
.
Equations
- isometry_equiv.sub_right c = {to_equiv := equiv.sub_right c, isometry_to_fun := _}
Subtraction y ↦ x - y
as an isometry_equiv
.
Equations
- isometry_equiv.sub_left c = {to_equiv := equiv.sub_left c, isometry_to_fun := _}
Division y ↦ x / y
as an isometry_equiv
.
Equations
- isometry_equiv.div_left c = {to_equiv := equiv.div_left c, isometry_to_fun := _}
Negation x ↦ -x
as an isometry_equiv
.
Equations
- isometry_equiv.neg G = {to_equiv := equiv.neg G (subtraction_monoid.to_has_involutive_neg G), isometry_to_fun := _}
Inversion x ↦ x⁻¹
as an isometry_equiv
.
Equations
- isometry_equiv.inv G = {to_equiv := equiv.inv G (division_monoid.to_has_involutive_inv G), isometry_to_fun := _}