Affine isometries #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
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.)
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
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' := _}
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 isometry_equiv.
Equations
- e.to_isometry_equiv = {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
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_equivs 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
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.equiv_map_of_injective.
Equations
- E.equiv_map_of_injective φ hφ = {to_equiv := {to_fun := (equiv.set.image ⇑φ ↑E hφ).to_fun, inv_fun := (equiv.set.image ⇑φ ↑E hφ).inv_fun, left_inv := _, right_inv := _}, linear := (submodule.equiv_map_of_injective φ.linear _ E.direction).trans (linear_equiv.of_eq (submodule.map φ.linear E.direction) (affine_subspace.map φ E).direction _), map_vadd' := _}
Restricts an affine isometry to an affine isometry equivalence between a nonempty affine
subspace E and its image.
This is an isometry version of affine_subspace.equiv_map, having a stronger premise and a stronger
conclusion.
Equations
- affine_subspace.isometry_equiv_map φ E = {to_affine_equiv := E.equiv_map_of_injective φ.to_affine_map _, norm_map := _}