Affine isometries #
In this file we define affine_isometry π P Pβ
to be an affine isometric embedding of normed
add-torsors P
into Pβ
over normed π
-spaces and affine_isometry_equiv
to be an affine
isometric equivalence between P
and Pβ
.
We also prove basic lemmas and provide convenience constructors. The choice of these lemmas and
constructors is closely modelled on those for the linear_isometry
and affine_map
theories.
Since many elementary properties don't require β₯xβ₯ = 0 β x = 0
we initially set up the theory for
seminormed_add_comm_group
and specialize to normed_add_comm_group
only when needed.
Notation #
We introduce the notation P βα΅β±[π] Pβ
for affine_isometry π P Pβ
, and P βα΅β±[π] Pβ
for
affine_isometry_equiv π P Pβ
. In contrast with the notation ββα΅’
for linear isometries, βα΅’
for isometric equivalences, etc., the "i" here is a superscript. This is for aesthetic reasons to
match the superscript "a" (note that in mathlib βα΅
is an affine map, since ββ
has been taken by
algebra-homomorphisms.)
- to_affine_map : P βα΅[π] Pβ
- norm_map : β (x : V), β₯β(self.to_affine_map.linear) xβ₯ = β₯xβ₯
An π
-affine isometric embedding of one normed add-torsor over a normed π
-space into
another.
Instances for affine_isometry
- affine_isometry.has_sizeof_inst
- affine_isometry.has_coe_to_fun
- affine_isometry.inhabited
- affine_isometry.monoid
The underlying linear map of an affine isometry is in fact a linear isometry.
Equations
- f.linear_isometry = {to_linear_map := {to_fun := f.to_affine_map.linear.to_fun, map_add' := _, map_smul' := _}, norm_map' := _}
Equations
- affine_isometry.has_coe_to_fun = {coe := Ξ» (f : P βα΅β±[π] Pβ), f.to_affine_map.to_fun}
Reinterpret a linear isometry as an affine isometry.
Equations
- f.to_affine_isometry = {to_affine_map := {to_fun := f.to_linear_map.to_affine_map.to_fun, linear := f.to_linear_map.to_affine_map.linear, map_vadd' := _}, norm_map := _}
The identity affine isometry.
Equations
- affine_isometry.id = {to_affine_map := affine_map.id π P normed_add_torsor.to_add_torsor, norm_map := _}
Equations
- affine_isometry.inhabited = {default := affine_isometry.id _inst_17}
Composition of affine isometries.
Equations
- g.comp f = {to_affine_map := g.to_affine_map.comp f.to_affine_map, norm_map := _}
Equations
- affine_isometry.monoid = {mul := affine_isometry.comp _inst_17, mul_assoc := _, one := affine_isometry.id _inst_17, one_mul := _, mul_one := _, npow := npow_rec (mul_one_class.to_has_mul (P βα΅β±[π] P)), npow_zero' := _, npow_succ' := _}
- to_affine_equiv : P βα΅[π] Pβ
- norm_map : β (x : V), β₯β(self.to_affine_equiv.linear) xβ₯ = β₯xβ₯
A affine isometric equivalence between two normed vector spaces.
Instances for affine_isometry_equiv
- affine_isometry_equiv.has_sizeof_inst
- affine_isometry_equiv.has_coe_to_fun
- affine_isometry_equiv.inhabited
- affine_isometry_equiv.group
The underlying linear equiv of an affine isometry equiv is in fact a linear isometry equiv.
Equations
- e.linear_isometry_equiv = {to_linear_equiv := {to_fun := e.to_affine_equiv.linear.to_fun, map_add' := _, map_smul' := _, inv_fun := e.to_affine_equiv.linear.inv_fun, left_inv := _, right_inv := _}, norm_map' := _}
Equations
- affine_isometry_equiv.has_coe_to_fun = {coe := Ξ» (f : P βα΅β±[π] Pβ), f.to_affine_equiv.to_equiv.to_fun}
Reinterpret a affine_isometry_equiv
as a affine_isometry
.
Equations
- e.to_affine_isometry = {to_affine_map := e.to_affine_equiv.to_affine_map, norm_map := _}
Construct an affine isometry equivalence by verifying the relation between the map and its
linear part at one base point. Namely, this function takes a map e : Pβ β Pβ
, a linear isometry
equivalence e' : Vβ βα΅’β[k] Vβ
, and a point p
such that for any other point p'
we have
e p' = e' (p' -α΅₯ p) +α΅₯ e p
.
Equations
- affine_isometry_equiv.mk' e e' p h = {to_affine_equiv := {to_equiv := (affine_equiv.mk' e e'.to_linear_equiv p h).to_equiv, linear := (affine_equiv.mk' e e'.to_linear_equiv p h).linear, map_vadd' := _}, norm_map := _}
Reinterpret a linear isometry equiv as an affine isometry equiv.
Equations
- e.to_affine_isometry_equiv = {to_affine_equiv := {to_equiv := e.to_linear_equiv.to_affine_equiv.to_equiv, linear := e.to_linear_equiv.to_affine_equiv.linear, map_vadd' := _}, norm_map := _}
Reinterpret a affine_isometry_equiv
as an isometric
.
Equations
- e.to_isometric = {to_equiv := e.to_affine_equiv.to_equiv, isometry_to_fun := _}
Reinterpret a affine_isometry_equiv
as an homeomorph
.
Equations
Identity map as a affine_isometry_equiv
.
Equations
- affine_isometry_equiv.refl π P = {to_affine_equiv := affine_equiv.refl π P normed_add_torsor.to_add_torsor, norm_map := _}
Equations
- affine_isometry_equiv.inhabited = {default := affine_isometry_equiv.refl π P _inst_17}
The inverse affine_isometry_equiv
.
Equations
- e.symm = {to_affine_equiv := {to_equiv := e.to_affine_equiv.symm.to_equiv, linear := e.to_affine_equiv.symm.linear, map_vadd' := _}, norm_map := _}
Composition of affine_isometry_equiv
s as a affine_isometry_equiv
.
Equations
- e.trans e' = {to_affine_equiv := e.to_affine_equiv.trans e'.to_affine_equiv, norm_map := _}
The group of affine isometries of a normed_add_torsor
, P
.
Equations
- affine_isometry_equiv.group = {mul := Ξ» (eβ eβ : P βα΅β±[π] P), eβ.trans eβ, mul_assoc := _, one := affine_isometry_equiv.refl π P _inst_17, one_mul := _, mul_one := _, npow := div_inv_monoid.npow._default (affine_isometry_equiv.refl π P) (Ξ» (eβ eβ : P βα΅β±[π] P), eβ.trans eβ) affine_isometry_equiv.trans_refl affine_isometry_equiv.refl_trans, npow_zero' := _, npow_succ' := _, inv := affine_isometry_equiv.symm _inst_17, div := div_inv_monoid.div._default (Ξ» (eβ eβ : P βα΅β±[π] P), eβ.trans eβ) affine_isometry_equiv.group._proof_4 (affine_isometry_equiv.refl π P) affine_isometry_equiv.trans_refl affine_isometry_equiv.refl_trans (div_inv_monoid.npow._default (affine_isometry_equiv.refl π P) (Ξ» (eβ eβ : P βα΅β±[π] P), eβ.trans eβ) affine_isometry_equiv.trans_refl affine_isometry_equiv.refl_trans) affine_isometry_equiv.group._proof_5 affine_isometry_equiv.group._proof_6 affine_isometry_equiv.symm, div_eq_mul_inv := _, zpow := div_inv_monoid.zpow._default (Ξ» (eβ eβ : P βα΅β±[π] P), eβ.trans eβ) affine_isometry_equiv.group._proof_8 (affine_isometry_equiv.refl π P) affine_isometry_equiv.trans_refl affine_isometry_equiv.refl_trans (div_inv_monoid.npow._default (affine_isometry_equiv.refl π P) (Ξ» (eβ eβ : P βα΅β±[π] P), eβ.trans eβ) affine_isometry_equiv.trans_refl affine_isometry_equiv.refl_trans) affine_isometry_equiv.group._proof_9 affine_isometry_equiv.group._proof_10 affine_isometry_equiv.symm, zpow_zero' := _, zpow_succ' := _, zpow_neg' := _, mul_left_inv := _}
The map v β¦ v +α΅₯ p
as an affine isometric equivalence between V
and P
.
Equations
- affine_isometry_equiv.vadd_const π p = {to_affine_equiv := {to_equiv := (affine_equiv.vadd_const π p).to_equiv, linear := (affine_equiv.vadd_const π p).linear, map_vadd' := _}, norm_map := _}
p' β¦ p -α΅₯ p'
as an affine isometric equivalence.
Equations
- affine_isometry_equiv.const_vsub π p = {to_affine_equiv := {to_equiv := (affine_equiv.const_vsub π p).to_equiv, linear := (affine_equiv.const_vsub π p).linear, map_vadd' := _}, norm_map := _}
Translation by v
(that is, the map p β¦ v +α΅₯ p
) as an affine isometric automorphism of P
.
Equations
- affine_isometry_equiv.const_vadd π P v = {to_affine_equiv := {to_equiv := (affine_equiv.const_vadd π P v).to_equiv, linear := (affine_equiv.const_vadd π P v).linear, map_vadd' := _}, norm_map := _}
The map g
from V
to Vβ
corresponding to a map f
from P
to Pβ
, at a base point p
,
is an isometry if f
is one.
Point reflection in x
as an affine isometric automorphism.
Equations
- affine_isometry_equiv.point_reflection π x = (affine_isometry_equiv.const_vsub π x).trans (affine_isometry_equiv.vadd_const π x)
If f
is an affine map, then its linear part is continuous iff f
is continuous.
If f
is an affine map, then its linear part is an open map iff f
is an open map.