Affine isometries #
In this file we define AffineIsometry 𝕜 P P₂
to be an affine isometric embedding of normed
add-torsors P
into P₂
over normed 𝕜
-spaces and AffineIsometryEquiv
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 LinearIsometry
and AffineMap
theories.
Since many elementary properties don't require ‖x‖ = 0 → x = 0
we initially set up the theory for
SeminormedAddCommGroup
and specialize to NormedAddCommGroup
only when needed.
Notation #
We introduce the notation P →ᵃⁱ[𝕜] P₂
for AffineIsometry 𝕜 P P₂
, and P ≃ᵃⁱ[𝕜] P₂
for
AffineIsometryEquiv 𝕜 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.)
A 𝕜
-affine isometric embedding of one normed add-torsor over a normed 𝕜
-space into
another.
- toFun : P → P₂
Instances For
A 𝕜
-affine isometric embedding of one normed add-torsor over a normed 𝕜
-space into
another.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The underlying linear map of an affine isometry is in fact a linear isometry.
Equations
- f.linearIsometry = let __src := f.linear; { toLinearMap := __src, norm_map' := ⋯ }
Instances For
Reinterpret a linear isometry as an affine isometry.
Equations
- f.toAffineIsometry = let __src := f.toAffineMap; { toAffineMap := __src, norm_map := ⋯ }
Instances For
The identity affine isometry.
Equations
- AffineIsometry.id = { toAffineMap := AffineMap.id 𝕜 P, norm_map := ⋯ }
Instances For
Equations
- AffineIsometry.instInhabited = { default := AffineIsometry.id }
Composition of affine isometries.
Equations
- g.comp f = { toAffineMap := g.comp f.toAffineMap, norm_map := ⋯ }
Instances For
AffineSubspace.subtype
as an AffineIsometry
.
Equations
- s.subtypeₐᵢ = let __src := s.subtype; { toAffineMap := __src, norm_map := ⋯ }
Instances For
An affine isometric equivalence between two normed vector spaces.
- toFun : P → P₂
- invFun : P₂ → P
- left_inv : Function.LeftInverse self.invFun self.toFun
- right_inv : Function.RightInverse self.invFun self.toFun
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
The underlying linear equiv of an affine isometry equiv is in fact a linear isometry equiv.
Equations
- e.linearIsometryEquiv = let __src := e.linear; { toLinearEquiv := __src, norm_map' := ⋯ }
Instances For
Reinterpret an AffineIsometryEquiv
as an AffineIsometry
.
Equations
- e.toAffineIsometry = { toAffineMap := ↑e.toAffineEquiv, norm_map := ⋯ }
Instances For
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
- AffineIsometryEquiv.mk' e e' p h = let __src := AffineEquiv.mk' e e'.toLinearEquiv p h; { toAffineEquiv := __src, norm_map := ⋯ }
Instances For
Reinterpret a linear isometry equiv as an affine isometry equiv.
Equations
- e.toAffineIsometryEquiv = let __src := e.toAffineEquiv; { toAffineEquiv := __src, norm_map := ⋯ }
Instances For
Reinterpret an AffineIsometryEquiv
as an IsometryEquiv
.
Equations
- e.toIsometryEquiv = { toEquiv := e.toEquiv, isometry_toFun := ⋯ }
Instances For
Reinterpret an AffineIsometryEquiv
as a Homeomorph
.
Equations
- e.toHomeomorph = e.toIsometryEquiv.toHomeomorph
Instances For
Identity map as an AffineIsometryEquiv
.
Equations
- AffineIsometryEquiv.refl 𝕜 P = { toAffineEquiv := AffineEquiv.refl 𝕜 P, norm_map := ⋯ }
Instances For
Equations
- AffineIsometryEquiv.instInhabited = { default := AffineIsometryEquiv.refl 𝕜 P }
The inverse AffineIsometryEquiv
.
Equations
- e.symm = let __src := e.symm; { toAffineEquiv := __src, norm_map := ⋯ }
Instances For
Composition of AffineIsometryEquiv
s as an AffineIsometryEquiv
.
Equations
- e.trans e' = { toAffineEquiv := e.trans e'.toAffineEquiv, norm_map := ⋯ }
Instances For
The group of affine isometries of a NormedAddTorsor
, P
.
The map v ↦ v +ᵥ p
as an affine isometric equivalence between V
and P
.
Equations
- AffineIsometryEquiv.vaddConst 𝕜 p = let __src := AffineEquiv.vaddConst 𝕜 p; { toAffineEquiv := __src, norm_map := ⋯ }
Instances For
p' ↦ p -ᵥ p'
as an affine isometric equivalence.
Equations
- AffineIsometryEquiv.constVSub 𝕜 p = let __src := AffineEquiv.constVSub 𝕜 p; { toAffineEquiv := __src, norm_map := ⋯ }
Instances For
Translation by v
(that is, the map p ↦ v +ᵥ p
) as an affine isometric automorphism of P
.
Equations
- AffineIsometryEquiv.constVAdd 𝕜 P v = let __src := AffineEquiv.constVAdd 𝕜 P v; { toAffineEquiv := __src, norm_map := ⋯ }
Instances For
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
- AffineIsometryEquiv.pointReflection 𝕜 x = (AffineIsometryEquiv.constVSub 𝕜 x).trans (AffineIsometryEquiv.vaddConst 𝕜 x)
Instances For
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.
An affine subspace is isomorphic to its image under an injective affine map.
This is the affine version of Submodule.equivMapOfInjective
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Restricts an affine isometry to an affine isometry equivalence between a nonempty affine
subspace E
and its image.
This is an isometry version of AffineSubspace.equivMap
, having a stronger premise and a stronger
conclusion.
Equations
- AffineSubspace.isometryEquivMap φ E = { toAffineEquiv := E.equivMapOfInjective φ.toAffineMap ⋯, norm_map := ⋯ }