Skip to content

Commit 0ce4969

Browse files
committed
chore(Topology/Algebra/ContinuousAffineMap): change notation (#12864)
We change the notation for `ContinuousAffineMap` from [→A](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Algebra/ContinuousAffineMap.html#ContinuousAffineMap) to `→ᴬ`, so that `→A` can be used for `ContinuousAlgHom` (see #12800). This seems consistent with the Mathlib notations [→ᵃ](https://leanprover-community.github.io/mathlib4_docs/Mathlib/LinearAlgebra/AffineSpace/AffineMap.html#AffineMap) for `AffineMap` and [→ₐ](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Algebra/Hom.html#AlgHom) for `AlgHom`.
1 parent 6c4d20f commit 0ce4969

File tree

5 files changed

+78
-77
lines changed

5 files changed

+78
-77
lines changed

Mathlib/Analysis/Calculus/AffineMap.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ variable [NormedAddCommGroup V] [NormedSpace 𝕜 V]
2727
variable [NormedAddCommGroup W] [NormedSpace 𝕜 W]
2828

2929
/-- A continuous affine map between normed vector spaces is smooth. -/
30-
theorem contDiff {n : ℕ∞} (f : V →A[𝕜] W) : ContDiff 𝕜 n f := by
30+
theorem contDiff {n : ℕ∞} (f : V →[𝕜] W) : ContDiff 𝕜 n f := by
3131
rw [f.decomp]
3232
apply f.contLinear.contDiff.add
3333
exact contDiff_const

Mathlib/Analysis/Convex/KreinMilman.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ theorem closure_convexHull_extremePoints (hscomp : IsCompact s) (hAconv : Convex
108108

109109
/-- A continuous affine map is surjective from the extreme points of a compact set to the extreme
110110
points of the image of that set. This inclusion is in general strict. -/
111-
lemma surjOn_extremePoints_image (f : E →A[ℝ] F) (hs : IsCompact s) :
111+
lemma surjOn_extremePoints_image (f : E →[ℝ] F) (hs : IsCompact s) :
112112
SurjOn f (extremePoints ℝ s) (extremePoints ℝ (f '' s)) := by
113113
rintro w hw
114114
-- The fiber of `w` is nonempty and compact

Mathlib/Analysis/NormedSpace/AddTorsorBases.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ theorem continuous_barycentric_coord (i : ι) : Continuous (b.coord i) :=
4646
#align continuous_barycentric_coord continuous_barycentric_coord
4747

4848
theorem smooth_barycentric_coord (b : AffineBasis ι 𝕜 E) (i : ι) : ContDiff 𝕜 ⊤ (b.coord i) :=
49-
(⟨b.coord i, continuous_barycentric_coord b i⟩ : E →A[𝕜] 𝕜).contDiff
49+
(⟨b.coord i, continuous_barycentric_coord b i⟩ : E →[𝕜] 𝕜).contDiff
5050
#align smooth_barycentric_coord smooth_barycentric_coord
5151

5252
end Barycentric

Mathlib/Analysis/NormedSpace/ContinuousAffineMap.lean

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ This file develops the theory of continuous affine maps between affine spaces mo
1616
spaces.
1717
1818
In the particular case that the affine spaces are just normed vector spaces `V`, `W`, we define a
19-
norm on the space of continuous affine maps by defining the norm of `f : V →A[𝕜] W` to be
19+
norm on the space of continuous affine maps by defining the norm of `f : V →[𝕜] W` to be
2020
`‖f‖ = max ‖f 0‖ ‖f.cont_linear‖`. This is chosen so that we have a linear isometry:
21-
`(V →A[𝕜] W) ≃ₗᵢ[𝕜] W × (V →L[𝕜] W)`.
21+
`(V →[𝕜] W) ≃ₗᵢ[𝕜] W × (V →L[𝕜] W)`.
2222
2323
The abstract picture is that for an affine space `P` modelled on a vector space `V`, together with
2424
a vector space `W`, there is an exact sequence of `𝕜`-modules: `0 → C → A → L → 0` where `C`, `A`
@@ -51,46 +51,46 @@ variable [NormedField R] [NormedSpace R V] [NormedSpace R W] [NormedSpace R W₂
5151
variable [NontriviallyNormedField 𝕜] [NormedSpace 𝕜 V] [NormedSpace 𝕜 W] [NormedSpace 𝕜 W₂]
5252

5353
/-- The linear map underlying a continuous affine map is continuous. -/
54-
def contLinear (f : P →A[R] Q) : V →L[R] W :=
54+
def contLinear (f : P →[R] Q) : V →L[R] W :=
5555
{ f.linear with
5656
toFun := f.linear
5757
cont := by rw [AffineMap.continuous_linear_iff]; exact f.cont }
5858
#align continuous_affine_map.cont_linear ContinuousAffineMap.contLinear
5959

6060
@[simp]
61-
theorem coe_contLinear (f : P →A[R] Q) : (f.contLinear : V → W) = f.linear :=
61+
theorem coe_contLinear (f : P →[R] Q) : (f.contLinear : V → W) = f.linear :=
6262
rfl
6363
#align continuous_affine_map.coe_cont_linear ContinuousAffineMap.coe_contLinear
6464

6565
@[simp]
66-
theorem coe_contLinear_eq_linear (f : P →A[R] Q) :
66+
theorem coe_contLinear_eq_linear (f : P →[R] Q) :
6767
(f.contLinear : V →ₗ[R] W) = (f : P →ᵃ[R] Q).linear := by ext; rfl
6868
#align continuous_affine_map.coe_cont_linear_eq_linear ContinuousAffineMap.coe_contLinear_eq_linear
6969

7070
@[simp]
7171
theorem coe_mk_const_linear_eq_linear (f : P →ᵃ[R] Q) (h) :
72-
((⟨f, h⟩ : P →A[R] Q).contLinear : V → W) = f.linear :=
72+
((⟨f, h⟩ : P →[R] Q).contLinear : V → W) = f.linear :=
7373
rfl
7474
#align continuous_affine_map.coe_mk_const_linear_eq_linear ContinuousAffineMap.coe_mk_const_linear_eq_linear
7575

76-
theorem coe_linear_eq_coe_contLinear (f : P →A[R] Q) :
76+
theorem coe_linear_eq_coe_contLinear (f : P →[R] Q) :
7777
((f : P →ᵃ[R] Q).linear : V → W) = (⇑f.contLinear : V → W) :=
7878
rfl
7979
#align continuous_affine_map.coe_linear_eq_coe_cont_linear ContinuousAffineMap.coe_linear_eq_coe_contLinear
8080

8181
@[simp]
82-
theorem comp_contLinear (f : P →A[R] Q) (g : Q →A[R] Q₂) :
82+
theorem comp_contLinear (f : P →[R] Q) (g : Q →[R] Q₂) :
8383
(g.comp f).contLinear = g.contLinear.comp f.contLinear :=
8484
rfl
8585
#align continuous_affine_map.comp_cont_linear ContinuousAffineMap.comp_contLinear
8686

8787
@[simp]
88-
theorem map_vadd (f : P →A[R] Q) (p : P) (v : V) : f (v +ᵥ p) = f.contLinear v +ᵥ f p :=
88+
theorem map_vadd (f : P →[R] Q) (p : P) (v : V) : f (v +ᵥ p) = f.contLinear v +ᵥ f p :=
8989
f.map_vadd' p v
9090
#align continuous_affine_map.map_vadd ContinuousAffineMap.map_vadd
9191

9292
@[simp]
93-
theorem contLinear_map_vsub (f : P →A[R] Q) (p₁ p₂ : P) : f.contLinear (p₁ -ᵥ p₂) = f p₁ -ᵥ f p₂ :=
93+
theorem contLinear_map_vsub (f : P →[R] Q) (p₁ p₂ : P) : f.contLinear (p₁ -ᵥ p₂) = f p₁ -ᵥ f p₂ :=
9494
f.toAffineMap.linearMap_vsub p₁ p₂
9595
#align continuous_affine_map.cont_linear_map_vsub ContinuousAffineMap.contLinear_map_vsub
9696

@@ -99,7 +99,7 @@ theorem const_contLinear (q : Q) : (const R P q).contLinear = 0 :=
9999
rfl
100100
#align continuous_affine_map.const_cont_linear ContinuousAffineMap.const_contLinear
101101

102-
theorem contLinear_eq_zero_iff_exists_const (f : P →A[R] Q) :
102+
theorem contLinear_eq_zero_iff_exists_const (f : P →[R] Q) :
103103
f.contLinear = 0 ↔ ∃ q, f = const R P q := by
104104
have h₁ : f.contLinear = 0 ↔ (f : P →ᵃ[R] Q).linear = 0 := by
105105
refine' ⟨fun h => _, fun h => _⟩ <;> ext
@@ -121,43 +121,43 @@ theorem to_affine_map_contLinear (f : V →L[R] W) : f.toContinuousAffineMap.con
121121
#align continuous_affine_map.to_affine_map_cont_linear ContinuousAffineMap.to_affine_map_contLinear
122122

123123
@[simp]
124-
theorem zero_contLinear : (0 : P →A[R] W).contLinear = 0 :=
124+
theorem zero_contLinear : (0 : P →[R] W).contLinear = 0 :=
125125
rfl
126126
#align continuous_affine_map.zero_cont_linear ContinuousAffineMap.zero_contLinear
127127

128128
@[simp]
129-
theorem add_contLinear (f g : P →A[R] W) : (f + g).contLinear = f.contLinear + g.contLinear :=
129+
theorem add_contLinear (f g : P →[R] W) : (f + g).contLinear = f.contLinear + g.contLinear :=
130130
rfl
131131
#align continuous_affine_map.add_cont_linear ContinuousAffineMap.add_contLinear
132132

133133
@[simp]
134-
theorem sub_contLinear (f g : P →A[R] W) : (f - g).contLinear = f.contLinear - g.contLinear :=
134+
theorem sub_contLinear (f g : P →[R] W) : (f - g).contLinear = f.contLinear - g.contLinear :=
135135
rfl
136136
#align continuous_affine_map.sub_cont_linear ContinuousAffineMap.sub_contLinear
137137

138138
@[simp]
139-
theorem neg_contLinear (f : P →A[R] W) : (-f).contLinear = -f.contLinear :=
139+
theorem neg_contLinear (f : P →[R] W) : (-f).contLinear = -f.contLinear :=
140140
rfl
141141
#align continuous_affine_map.neg_cont_linear ContinuousAffineMap.neg_contLinear
142142

143143
@[simp]
144-
theorem smul_contLinear (t : R) (f : P →A[R] W) : (t • f).contLinear = t • f.contLinear :=
144+
theorem smul_contLinear (t : R) (f : P →[R] W) : (t • f).contLinear = t • f.contLinear :=
145145
rfl
146146
#align continuous_affine_map.smul_cont_linear ContinuousAffineMap.smul_contLinear
147147

148-
theorem decomp (f : V →A[R] W) : (f : V → W) = f.contLinear + Function.const V (f 0) := by
148+
theorem decomp (f : V →[R] W) : (f : V → W) = f.contLinear + Function.const V (f 0) := by
149149
rcases f with ⟨f, h⟩
150150
rw [coe_mk_const_linear_eq_linear, coe_mk, f.decomp, Pi.add_apply, LinearMap.map_zero, zero_add,
151151
← Function.const_def]
152152
#align continuous_affine_map.decomp ContinuousAffineMap.decomp
153153

154154
section NormedSpaceStructure
155155

156-
variable (f : V →A[𝕜] W)
156+
variable (f : V →[𝕜] W)
157157

158158
/-- Note that unlike the operator norm for linear maps, this norm is _not_ submultiplicative:
159159
we do _not_ necessarily have `‖f.comp g‖ ≤ ‖f‖ * ‖g‖`. See `norm_comp_le` for what we can say. -/
160-
noncomputable instance hasNorm : Norm (V →A[𝕜] W) :=
160+
noncomputable instance hasNorm : Norm (V →[𝕜] W) :=
161161
fun f => max ‖f 0‖ ‖f.contLinear‖⟩
162162
#align continuous_affine_map.has_norm ContinuousAffineMap.hasNorm
163163

@@ -182,7 +182,7 @@ theorem norm_eq (h : f 0 = 0) : ‖f‖ = ‖f.contLinear‖ :=
182182

183183
#align continuous_affine_map.norm_eq ContinuousAffineMap.norm_eq
184184

185-
noncomputable instance : NormedAddCommGroup (V →A[𝕜] W) :=
185+
noncomputable instance : NormedAddCommGroup (V →[𝕜] W) :=
186186
AddGroupNorm.toNormedAddCommGroup
187187
{ toFun := fun f => max ‖f 0‖ ‖f.contLinear‖
188188
map_zero' := by simp [(ContinuousAffineMap.zero_apply)]
@@ -206,18 +206,18 @@ noncomputable instance : NormedAddCommGroup (V →A[𝕜] W) :=
206206
rw [h₂]
207207
rfl }
208208

209-
instance : NormedSpace 𝕜 (V →A[𝕜] W) where
209+
instance : NormedSpace 𝕜 (V →[𝕜] W) where
210210
norm_smul_le t f := by
211211
simp only [SMul.smul, norm_def, smul_contLinear, norm_smul]
212212
-- Porting note: previously all these rewrites were in the `simp only`,
213213
-- but now they don't fire.
214214
-- (in fact, `norm_smul` fires, but only once rather than twice!)
215-
have : NormedAddCommGroup (V →A[𝕜] W) := inferInstance -- this is necessary for `norm_smul`
215+
have : NormedAddCommGroup (V →[𝕜] W) := inferInstance -- this is necessary for `norm_smul`
216216
rw [coe_smul, Pi.smul_apply, norm_smul, norm_smul _ (f.contLinear),
217217
← mul_max_of_nonneg _ _ (norm_nonneg t)]
218218

219219

220-
theorem norm_comp_le (g : W₂ →A[𝕜] V) : ‖f.comp g‖ ≤ ‖f‖ * ‖g‖ + ‖f 0‖ := by
220+
theorem norm_comp_le (g : W₂ →[𝕜] V) : ‖f.comp g‖ ≤ ‖f‖ * ‖g‖ + ‖f 0‖ := by
221221
rw [norm_def, max_le_iff]
222222
constructor
223223
· calc
@@ -242,7 +242,7 @@ variable (𝕜 V W)
242242
/-- The space of affine maps between two normed spaces is linearly isometric to the product of the
243243
codomain with the space of linear maps, by taking the value of the affine map at `(0 : V)` and the
244244
linear part. -/
245-
def toConstProdContinuousLinearMap : (V →A[𝕜] W) ≃ₗᵢ[𝕜] W × (V →L[𝕜] W) where
245+
def toConstProdContinuousLinearMap : (V →[𝕜] W) ≃ₗᵢ[𝕜] W × (V →L[𝕜] W) where
246246
toFun f := ⟨f 0, f.contLinear⟩
247247
invFun p := p.2.toContinuousAffineMap + const 𝕜 V p.1
248248
left_inv f := by
@@ -256,13 +256,13 @@ def toConstProdContinuousLinearMap : (V →A[𝕜] W) ≃ₗᵢ[𝕜] W × (V
256256
#align continuous_affine_map.to_const_prod_continuous_linear_map ContinuousAffineMap.toConstProdContinuousLinearMap
257257

258258
@[simp]
259-
theorem toConstProdContinuousLinearMap_fst (f : V →A[𝕜] W) :
259+
theorem toConstProdContinuousLinearMap_fst (f : V →[𝕜] W) :
260260
(toConstProdContinuousLinearMap 𝕜 V W f).fst = f 0 :=
261261
rfl
262262
#align continuous_affine_map.to_const_prod_continuous_linear_map_fst ContinuousAffineMap.toConstProdContinuousLinearMap_fst
263263

264264
@[simp]
265-
theorem toConstProdContinuousLinearMap_snd (f : V →A[𝕜] W) :
265+
theorem toConstProdContinuousLinearMap_snd (f : V →[𝕜] W) :
266266
(toConstProdContinuousLinearMap 𝕜 V W f).snd = f.contLinear :=
267267
rfl
268268
#align continuous_affine_map.to_const_prod_continuous_linear_map_snd ContinuousAffineMap.toConstProdContinuousLinearMap_snd

0 commit comments

Comments
 (0)