# Documentation

Mathlib.Analysis.NormedSpace.ContinuousAffineMap

# Continuous affine maps between normed spaces. #

This file develops the theory of continuous affine maps between affine spaces modelled on normed spaces.

In the particular case that the affine spaces are just normed vector spaces V, W, we define a norm on the space of continuous affine maps by defining the norm of f : V →A[𝕜] W to be ‖f‖ = max ‖f 0‖ ‖f.cont_linear‖. This is chosen so that we have a linear isometry: (V →A[𝕜] W) ≃ₗᵢ[𝕜] W × (V →L[𝕜] W).

The abstract picture is that for an affine space P modelled on a vector space V, together with a vector space W, there is an exact sequence of 𝕜-modules: 0 → C → A → L → 0 where C, A are the spaces of constant and affine maps P → W and L is the space of linear maps V → W.

Any choice of a base point in P corresponds to a splitting of this sequence so in particular if we take P = V, using 0 : V as the base point provides a splitting, and we prove this is an isometric decomposition.

On the other hand, choosing a base point breaks the affine invariance so the norm fails to be submultiplicative: for a composition of maps, we have only ‖f.comp g‖ ≤ ‖f‖ * ‖g‖ + ‖f 0‖.

## Main definitions: #

• ContinuousAffineMap.contLinear
• ContinuousAffineMap.hasNorm
• ContinuousAffineMap.norm_comp_le
• ContinuousAffineMap.toConstProdContinuousLinearMap
def ContinuousAffineMap.contLinear {R : Type u_2} {V : Type u_3} {W : Type u_4} {P : Type u_6} {Q : Type u_7} [] [] [] [] [] [] [] (f : P →A[R] Q) :
V →L[R] W

The linear map underlying a continuous affine map is continuous.

Instances For
@[simp]
theorem ContinuousAffineMap.coe_contLinear {R : Type u_2} {V : Type u_3} {W : Type u_4} {P : Type u_6} {Q : Type u_7} [] [] [] [] [] [] [] (f : P →A[R] Q) :
= f.linear
@[simp]
theorem ContinuousAffineMap.coe_contLinear_eq_linear {R : Type u_2} {V : Type u_3} {W : Type u_4} {P : Type u_6} {Q : Type u_7} [] [] [] [] [] [] [] (f : P →A[R] Q) :
= f.linear
@[simp]
theorem ContinuousAffineMap.coe_mk_const_linear_eq_linear {R : Type u_2} {V : Type u_3} {W : Type u_4} {P : Type u_6} {Q : Type u_7} [] [] [] [] [] [] [] (f : P →ᵃ[R] Q) (h : Continuous f.toFun) :
↑(ContinuousAffineMap.contLinear { toAffineMap := f, cont := h }) = f.linear
theorem ContinuousAffineMap.coe_linear_eq_coe_contLinear {R : Type u_2} {V : Type u_3} {W : Type u_4} {P : Type u_6} {Q : Type u_7} [] [] [] [] [] [] [] (f : P →A[R] Q) :
f.linear =
@[simp]
theorem ContinuousAffineMap.comp_contLinear {R : Type u_2} {V : Type u_3} {W : Type u_4} {W₂ : Type u_5} {P : Type u_6} {Q : Type u_7} {Q₂ : Type u_8} [] [] [] [] [] [] [NormedAddTorsor W₂ Q₂] [] [] [] [NormedSpace R W₂] (f : P →A[R] Q) (g : Q →A[R] Q₂) :
@[simp]
theorem ContinuousAffineMap.map_vadd {R : Type u_2} {V : Type u_3} {W : Type u_4} {P : Type u_6} {Q : Type u_7} [] [] [] [] [] [] [] (f : P →A[R] Q) (p : P) (v : V) :
f (v +ᵥ p) = +ᵥ f p
@[simp]
theorem ContinuousAffineMap.contLinear_map_vsub {R : Type u_2} {V : Type u_3} {W : Type u_4} {P : Type u_6} {Q : Type u_7} [] [] [] [] [] [] [] (f : P →A[R] Q) (p₁ : P) (p₂ : P) :
↑() (p₁ -ᵥ p₂) = f p₁ -ᵥ f p₂
@[simp]
theorem ContinuousAffineMap.const_contLinear {R : Type u_2} {V : Type u_3} {W : Type u_4} {P : Type u_6} {Q : Type u_7} [] [] [] [] [] [] [] (q : Q) :
theorem ContinuousAffineMap.contLinear_eq_zero_iff_exists_const {R : Type u_2} {V : Type u_3} {W : Type u_4} {P : Type u_6} {Q : Type u_7} [] [] [] [] [] [] [] (f : P →A[R] Q) :
q, f =
@[simp]
theorem ContinuousAffineMap.to_affine_map_contLinear {R : Type u_2} {V : Type u_3} {W : Type u_4} [] [] [] (f : V →L[R] W) :
@[simp]
theorem ContinuousAffineMap.zero_contLinear {R : Type u_2} {V : Type u_3} {W : Type u_4} {P : Type u_6} [] [] [] [] [] :
@[simp]
theorem ContinuousAffineMap.add_contLinear {R : Type u_2} {V : Type u_3} {W : Type u_4} {P : Type u_6} [] [] [] [] [] (f : P →A[R] W) (g : P →A[R] W) :
@[simp]
theorem ContinuousAffineMap.sub_contLinear {R : Type u_2} {V : Type u_3} {W : Type u_4} {P : Type u_6} [] [] [] [] [] (f : P →A[R] W) (g : P →A[R] W) :
@[simp]
theorem ContinuousAffineMap.neg_contLinear {R : Type u_2} {V : Type u_3} {W : Type u_4} {P : Type u_6} [] [] [] [] [] (f : P →A[R] W) :
@[simp]
theorem ContinuousAffineMap.smul_contLinear {R : Type u_2} {V : Type u_3} {W : Type u_4} {P : Type u_6} [] [] [] [] [] (t : R) (f : P →A[R] W) :
theorem ContinuousAffineMap.decomp {R : Type u_2} {V : Type u_3} {W : Type u_4} [] [] [] (f : V →A[R] W) :
f = + Function.const V (f 0)
noncomputable instance ContinuousAffineMap.hasNorm {𝕜 : Type u_1} {V : Type u_3} {W : Type u_4} [] [] :
Norm (V →A[𝕜] W)

Note that unlike the operator norm for linear maps, this norm is not submultiplicative: we do not necessarily have ‖f.comp g‖ ≤ ‖f‖ * ‖g‖. See norm_comp_le for what we can say.

theorem ContinuousAffineMap.norm_def {𝕜 : Type u_1} {V : Type u_3} {W : Type u_4} [] [] (f : V →A[𝕜] W) :
theorem ContinuousAffineMap.norm_contLinear_le {𝕜 : Type u_1} {V : Type u_3} {W : Type u_4} [] [] (f : V →A[𝕜] W) :
theorem ContinuousAffineMap.norm_image_zero_le {𝕜 : Type u_1} {V : Type u_3} {W : Type u_4} [] [] (f : V →A[𝕜] W) :
@[simp]
theorem ContinuousAffineMap.norm_eq {𝕜 : Type u_1} {V : Type u_3} {W : Type u_4} [] [] (f : V →A[𝕜] W) (h : f 0 = 0) :
theorem ContinuousAffineMap.norm_comp_le {𝕜 : Type u_1} {V : Type u_3} {W : Type u_4} {W₂ : Type u_5} [] [] [] [NormedSpace 𝕜 W₂] (f : V →A[𝕜] W) (g : W₂ →A[𝕜] V) :
def ContinuousAffineMap.toConstProdContinuousLinearMap (𝕜 : Type u_1) (V : Type u_3) (W : Type u_4) [] [] :
(V →A[𝕜] W) ≃ₗᵢ[𝕜] W × (V →L[𝕜] W)

The space of affine maps between two normed spaces is linearly isometric to the product of the codomain with the space of linear maps, by taking the value of the affine map at (0 : V) and the linear part.

Instances For
@[simp]
theorem ContinuousAffineMap.toConstProdContinuousLinearMap_fst (𝕜 : Type u_1) (V : Type u_3) (W : Type u_4) [] [] (f : V →A[𝕜] W) :
().fst = f 0
@[simp]
theorem ContinuousAffineMap.toConstProdContinuousLinearMap_snd (𝕜 : Type u_1) (V : Type u_3) (W : Type u_4) [] [] (f : V →A[𝕜] W) :