Skip to content

Commit f0fb0d6

Browse files
committed
chore(Geometry/Manifold/MFDeriv): golf using custom elaborators (leanprover-community#36010)
1 parent 4877fda commit f0fb0d6

File tree

4 files changed

+64
-70
lines changed

4 files changed

+64
-70
lines changed

โ€ŽMathlib/Geometry/Manifold/MFDeriv/Atlas.leanโ€Ž

Lines changed: 48 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ module
77

88
public import Mathlib.Geometry.Manifold.MFDeriv.SpecificFunctions
99
public import Mathlib.Geometry.Manifold.VectorBundle.Tangent
10+
public import Mathlib.Geometry.Manifold.Notation
1011

1112
/-!
1213
# Differentiability of models with corners and (extended) charts
@@ -59,27 +60,27 @@ protected theorem hasMFDerivWithinAt {s x} :
5960
HasMFDerivWithinAt I ๐“˜(๐•œ, E) I s x (ContinuousLinearMap.id _ _) :=
6061
I.hasMFDerivAt.hasMFDerivWithinAt
6162

62-
protected theorem mdifferentiableWithinAt {s x} : MDifferentiableWithinAt I ๐“˜(๐•œ, E) I s x :=
63+
protected theorem mdifferentiableWithinAt {s x} : MDiffAt[s] I x :=
6364
I.hasMFDerivWithinAt.mdifferentiableWithinAt
6465

65-
protected theorem mdifferentiableAt {x} : MDifferentiableAt I ๐“˜(๐•œ, E) I x :=
66+
protected theorem mdifferentiableAt {x} : MDiffAt I x :=
6667
I.hasMFDerivAt.mdifferentiableAt
6768

68-
protected theorem mdifferentiableOn {s} : MDifferentiableOn I ๐“˜(๐•œ, E) I s := fun _ _ =>
69+
protected theorem mdifferentiableOn {s} : MDiff[s] I := fun _ _ =>
6970
I.mdifferentiableWithinAt
7071

71-
protected theorem mdifferentiable : MDifferentiable I ๐“˜(๐•œ, E) I := fun _ => I.mdifferentiableAt
72+
protected theorem mdifferentiable : MDiff I := fun _ => I.mdifferentiableAt
7273

7374
theorem hasMFDerivWithinAt_symm {x} (hx : x โˆˆ range I) :
7475
HasMFDerivWithinAt ๐“˜(๐•œ, E) I I.symm (range I) x (ContinuousLinearMap.id _ _) :=
7576
โŸจI.continuousWithinAt_symm,
7677
(hasFDerivWithinAt_id _ _).congr' (fun _y hy => I.rightInvOn hy.1) โŸจhx, mem_range_self _โŸฉโŸฉ
7778

78-
theorem mdifferentiableOn_symm : MDifferentiableOn ๐“˜(๐•œ, E) I I.symm (range I) := fun _x hx =>
79+
theorem mdifferentiableOn_symm : MDiff[range I] I.symm := fun _x hx =>
7980
(I.hasMFDerivWithinAt_symm hx).mdifferentiableWithinAt
8081

8182
theorem mdifferentiableWithinAt_symm {z : E} (hz : z โˆˆ range I) :
82-
MDifferentiableWithinAt ๐“˜(๐•œ, E) I I.symm (range I) z :=
83+
MDiffAt[range I] I.symm z :=
8384
I.mdifferentiableOn_symm z hz
8485

8586
end ModelWithCorners
@@ -91,8 +92,7 @@ section Charts
9192
variable [IsManifold I 1 M] [IsManifold I' 1 M']
9293
[IsManifold I'' 1 M''] {e : OpenPartialHomeomorph M H}
9394

94-
theorem mdifferentiableAt_atlas (h : e โˆˆ atlas H M) {x : M} (hx : x โˆˆ e.source) :
95-
MDifferentiableAt I I e x := by
95+
theorem mdifferentiableAt_atlas (h : e โˆˆ atlas H M) {x : M} (hx : x โˆˆ e.source) : MDiffAt e x := by
9696
rw [mdifferentiableAt_iff]
9797
refine โŸจ(e.continuousOn x hx).continuousAt (e.open_source.mem_nhds hx), ?_โŸฉ
9898
have mem :
@@ -110,11 +110,11 @@ theorem mdifferentiableAt_atlas (h : e โˆˆ atlas H M) {x : M} (hx : x โˆˆ e.sour
110110
ยท simpa only [mfld_simps]
111111
ยท apply IsOpen.mem_nhds ((OpenPartialHomeomorph.open_source _).preimage I.continuous_symm) mem.1
112112

113-
theorem mdifferentiableOn_atlas (h : e โˆˆ atlas H M) : MDifferentiableOn I I e e.source :=
113+
theorem mdifferentiableOn_atlas (h : e โˆˆ atlas H M) : MDiff[e.source] e :=
114114
fun _x hx => (mdifferentiableAt_atlas h hx).mdifferentiableWithinAt
115115

116116
theorem mdifferentiableAt_atlas_symm (h : e โˆˆ atlas H M) {x : H} (hx : x โˆˆ e.target) :
117-
MDifferentiableAt I I e.symm x := by
117+
MDiffAt e.symm x := by
118118
rw [mdifferentiableAt_iff]
119119
refine โŸจ(e.continuousOn_symm x hx).continuousAt (e.open_target.mem_nhds hx), ?_โŸฉ
120120
have mem : I x โˆˆ I.symm โปยน' (e.symm โ‰ซโ‚• chartAt H (e.symm x)).source โˆฉ range I := by
@@ -131,7 +131,7 @@ theorem mdifferentiableAt_atlas_symm (h : e โˆˆ atlas H M) {x : H} (hx : x โˆˆ e
131131
ยท simpa only [mfld_simps]
132132
ยท apply IsOpen.mem_nhds ((OpenPartialHomeomorph.open_source _).preimage I.continuous_symm) mem.1
133133

134-
theorem mdifferentiableOn_atlas_symm (h : e โˆˆ atlas H M) : MDifferentiableOn I I e.symm e.target :=
134+
theorem mdifferentiableOn_atlas_symm (h : e โˆˆ atlas H M) : MDiff[e.target] e.symm :=
135135
fun _x hx => (mdifferentiableAt_atlas_symm h hx).mdifferentiableWithinAt
136136

137137
theorem mdifferentiable_of_mem_atlas (h : e โˆˆ atlas H M) : e.MDifferentiable I I :=
@@ -151,37 +151,37 @@ include he
151151

152152
nonrec theorem symm : e.symm.MDifferentiable I' I := he.symm
153153

154-
protected theorem mdifferentiableAt {x : M} (hx : x โˆˆ e.source) : MDifferentiableAt I I' e x :=
154+
protected theorem mdifferentiableAt {x : M} (hx : x โˆˆ e.source) : MDiffAt e x :=
155155
(he.1 x hx).mdifferentiableAt (e.open_source.mem_nhds hx)
156156

157-
theorem mdifferentiableAt_symm {x : M'} (hx : x โˆˆ e.target) : MDifferentiableAt I' I e.symm x :=
157+
theorem mdifferentiableAt_symm {x : M'} (hx : x โˆˆ e.target) : MDiffAt e.symm x :=
158158
(he.2 x hx).mdifferentiableAt (e.open_target.mem_nhds hx)
159159

160160
theorem symm_comp_deriv {x : M} (hx : x โˆˆ e.source) :
161-
(mfderiv I' I e.symm (e x)).comp (mfderiv I I' e x) =
161+
(mfderiv% e.symm (e x)).comp (mfderiv% e x) =
162162
ContinuousLinearMap.id ๐•œ (TangentSpace I x) := by
163-
have : mfderiv I I (e.symm โˆ˜ e) x = (mfderiv I' I e.symm (e x)).comp (mfderiv I I' e x) :=
163+
have : mfderiv% (e.symm โˆ˜ e) x = (mfderiv% e.symm (e x)).comp (mfderiv% e x) :=
164164
mfderiv_comp x (he.mdifferentiableAt_symm (e.map_source hx)) (he.mdifferentiableAt hx)
165165
rw [โ† this]
166-
have : mfderiv I I (_root_.id : M โ†’ M) x = ContinuousLinearMap.id _ _ := mfderiv_id
166+
have : mfderiv% (_root_.id : M โ†’ M) x = ContinuousLinearMap.id _ _ := mfderiv_id
167167
rw [โ† this]
168168
apply Filter.EventuallyEq.mfderiv_eq
169169
have : e.source โˆˆ ๐“ x := e.open_source.mem_nhds hx
170170
exact Filter.mem_of_superset this (by mfld_set_tac)
171171

172172
theorem comp_symm_deriv {x : M'} (hx : x โˆˆ e.target) :
173-
(mfderiv I I' e (e.symm x)).comp (mfderiv I' I e.symm x) =
173+
(mfderiv% e (e.symm x)).comp (mfderiv% e.symm x) =
174174
ContinuousLinearMap.id ๐•œ (TangentSpace I' x) :=
175175
he.symm.symm_comp_deriv hx
176176

177177
/-- The derivative of a differentiable open partial homeomorphism, as a continuous linear
178178
equivalence between the tangent spaces at `x` and `e x`. -/
179179
protected def mfderiv (he : e.MDifferentiable I I') {x : M} (hx : x โˆˆ e.source) :
180180
TangentSpace I x โ‰ƒL[๐•œ] TangentSpace I' (e x) :=
181-
{ mfderiv I I' e x with
182-
invFun := mfderiv I' I e.symm (e x)
183-
continuous_toFun := (mfderiv I I' e x).cont
184-
continuous_invFun := (mfderiv I' I e.symm (e x)).cont
181+
{ mfderiv% e x with
182+
invFun := mfderiv% e.symm (e x)
183+
continuous_toFun := (mfderiv% e x).cont
184+
continuous_invFun := (mfderiv% e.symm (e x)).cont
185185
left_inv := fun y => by
186186
have : (ContinuousLinearMap.id _ _ : TangentSpace I x โ†’L[๐•œ] TangentSpace I x) y = y := rfl
187187
conv_rhs => rw [โ† this, โ† he.symm_comp_deriv hx]
@@ -194,22 +194,22 @@ protected def mfderiv (he : e.MDifferentiable I I') {x : M} (hx : x โˆˆ e.source
194194
rw [e.left_inv hx]
195195
rfl }
196196

197-
theorem mfderiv_bijective {x : M} (hx : x โˆˆ e.source) : Function.Bijective (mfderiv I I' e x) :=
197+
theorem mfderiv_bijective {x : M} (hx : x โˆˆ e.source) : Function.Bijective (mfderiv% e x) :=
198198
(he.mfderiv hx).bijective
199199

200-
theorem mfderiv_injective {x : M} (hx : x โˆˆ e.source) : Function.Injective (mfderiv I I' e x) :=
200+
theorem mfderiv_injective {x : M} (hx : x โˆˆ e.source) : Function.Injective (mfderiv% e x) :=
201201
(he.mfderiv hx).injective
202202

203-
theorem mfderiv_surjective {x : M} (hx : x โˆˆ e.source) : Function.Surjective (mfderiv I I' e x) :=
203+
theorem mfderiv_surjective {x : M} (hx : x โˆˆ e.source) : Function.Surjective (mfderiv% e x) :=
204204
(he.mfderiv hx).surjective
205205

206-
theorem ker_mfderiv_eq_bot {x : M} (hx : x โˆˆ e.source) : (mfderiv I I' e x).ker = โŠฅ :=
206+
theorem ker_mfderiv_eq_bot {x : M} (hx : x โˆˆ e.source) : (mfderiv% e x).ker = โŠฅ :=
207207
(he.mfderiv hx).toLinearEquiv.ker
208208

209-
theorem range_mfderiv_eq_top {x : M} (hx : x โˆˆ e.source) : (mfderiv I I' e x).range = โŠค :=
209+
theorem range_mfderiv_eq_top {x : M} (hx : x โˆˆ e.source) : (mfderiv% e x).range = โŠค :=
210210
(he.mfderiv hx).toLinearEquiv.range
211211

212-
theorem range_mfderiv_eq_univ {x : M} (hx : x โˆˆ e.source) : range (mfderiv I I' e x) = univ :=
212+
theorem range_mfderiv_eq_univ {x : M} (hx : x โˆˆ e.source) : range (mfderiv% e x) = univ :=
213213
(he.mfderiv_surjective hx).range_eq
214214

215215
theorem trans (he' : e'.MDifferentiable I' I'') : (e.trans e').MDifferentiable I I'' := by
@@ -233,23 +233,22 @@ section extChartAt
233233
variable [IsManifold I 1 M] {s : Set M} {x y : M} {z : E}
234234

235235
theorem hasMFDerivAt_extChartAt (h : y โˆˆ (chartAt H x).source) :
236-
HasMFDerivAt I ๐“˜(๐•œ, E) (extChartAt I x) y (mfderiv I I (chartAt H x) y :) :=
236+
HasMFDerivAt% (extChartAt I x) y (mfderiv% (chartAt H x) y :) :=
237237
I.hasMFDerivAt.comp y ((mdifferentiable_chart x).mdifferentiableAt h).hasMFDerivAt
238238

239239
theorem hasMFDerivWithinAt_extChartAt (h : y โˆˆ (chartAt H x).source) :
240-
HasMFDerivWithinAt I ๐“˜(๐•œ, E) (extChartAt I x) s y (mfderiv I I (chartAt H x) y :) :=
240+
HasMFDerivAt[s] (extChartAt I x) y (mfderiv% (chartAt H x) y :) :=
241241
(hasMFDerivAt_extChartAt h).hasMFDerivWithinAt
242242

243243
theorem mdifferentiableAt_extChartAt (h : y โˆˆ (chartAt H x).source) :
244-
MDifferentiableAt I ๐“˜(๐•œ, E) (extChartAt I x) y :=
244+
MDiffAt (extChartAt I x) y :=
245245
(hasMFDerivAt_extChartAt h).mdifferentiableAt
246246

247-
theorem mdifferentiableOn_extChartAt :
248-
MDifferentiableOn I ๐“˜(๐•œ, E) (extChartAt I x) (chartAt H x).source := fun _y hy =>
249-
(hasMFDerivWithinAt_extChartAt hy).mdifferentiableWithinAt
247+
theorem mdifferentiableOn_extChartAt : MDiff[(chartAt H x).source] (extChartAt I x) :=
248+
fun _y hy โ†ฆ (hasMFDerivWithinAt_extChartAt hy).mdifferentiableWithinAt
250249

251250
theorem mdifferentiableWithinAt_extChartAt_symm (h : z โˆˆ (extChartAt I x).target) :
252-
MDifferentiableWithinAt ๐“˜(๐•œ, E) I (extChartAt I x).symm (range I) z := by
251+
MDiffAt[range I] (extChartAt I x).symm z := by
253252
have Z := I.mdifferentiableWithinAt_symm (extChartAt_target_subset_range x h)
254253
apply MDifferentiableAt.comp_mdifferentiableWithinAt (I' := I) _ _ Z
255254
apply mdifferentiableAt_atlas_symm (ChartedSpace.chart_mem_atlas x)
@@ -259,7 +258,7 @@ theorem mdifferentiableWithinAt_extChartAt_symm (h : z โˆˆ (extChartAt I x).targ
259258
exact h.2
260259

261260
theorem mdifferentiableOn_extChartAt_symm :
262-
MDifferentiableOn ๐“˜(๐•œ, E) I (extChartAt I x).symm (extChartAt I x).target := by
261+
MDiff[(extChartAt I x).target] (extChartAt I x).symm := by
263262
intro y hy
264263
exact (mdifferentiableWithinAt_extChartAt_symm hy).mono (extChartAt_target_subset_range x)
265264

@@ -268,8 +267,8 @@ theorem mdifferentiableOn_extChartAt_symm :
268267
Version where the basepoint belongs to `(extChartAt I x).target`. -/
269268
lemma mfderiv_extChartAt_comp_mfderivWithin_extChartAt_symm {x : M}
270269
{y : E} (hy : y โˆˆ (extChartAt I x).target) :
271-
(mfderiv I ๐“˜(๐•œ, E) (extChartAt I x) ((extChartAt I x).symm y)) โˆ˜L
272-
(mfderivWithin ๐“˜(๐•œ, E) I (extChartAt I x).symm (range I) y) = ContinuousLinearMap.id _ _ := by
270+
(mfderiv% (extChartAt I x) ((extChartAt I x).symm y)) โˆ˜L
271+
(mfderiv[range I] (extChartAt I x).symm y) = ContinuousLinearMap.id _ _ := by
273272
have U : UniqueMDiffWithinAt ๐“˜(๐•œ, E) (range โ†‘I) y := by
274273
apply I.uniqueMDiffOn
275274
exact extChartAt_target_subset_range x hy
@@ -291,8 +290,7 @@ lemma mfderiv_extChartAt_comp_mfderivWithin_extChartAt_symm {x : M}
291290
Version where the basepoint belongs to `(extChartAt I x).source`. -/
292291
lemma mfderiv_extChartAt_comp_mfderivWithin_extChartAt_symm' {x : M}
293292
{y : M} (hy : y โˆˆ (extChartAt I x).source) :
294-
(mfderiv I ๐“˜(๐•œ, E) (extChartAt I x) y) โˆ˜L
295-
(mfderivWithin ๐“˜(๐•œ, E) I (extChartAt I x).symm (range I) (extChartAt I x y))
293+
(mfderiv% (extChartAt I x) y) โˆ˜L (mfderiv[range I] (extChartAt I x).symm (extChartAt I x y))
296294
= ContinuousLinearMap.id _ _ := by
297295
have : y = (extChartAt I x).symm (extChartAt I x y) := ((extChartAt I x).left_inv hy).symm
298296
convert mfderiv_extChartAt_comp_mfderivWithin_extChartAt_symm ((extChartAt I x).map_source hy)
@@ -302,17 +300,16 @@ lemma mfderiv_extChartAt_comp_mfderivWithin_extChartAt_symm' {x : M}
302300
Version where the basepoint belongs to `(extChartAt I x).target`. -/
303301
lemma mfderivWithin_extChartAt_symm_comp_mfderiv_extChartAt
304302
{y : E} (hy : y โˆˆ (extChartAt I x).target) :
305-
(mfderivWithin ๐“˜(๐•œ, E) I (extChartAt I x).symm (range I) y) โˆ˜L
306-
(mfderiv I ๐“˜(๐•œ, E) (extChartAt I x) ((extChartAt I x).symm y))
303+
(mfderiv[range I] (extChartAt I x).symm y) โˆ˜L
304+
(mfderiv% (extChartAt I x) ((extChartAt I x).symm y))
307305
= ContinuousLinearMap.id _ _ := by
308306
have h'y : (extChartAt I x).symm y โˆˆ (extChartAt I x).source := (extChartAt I x).map_target hy
309307
have h''y : (extChartAt I x).symm y โˆˆ (chartAt H x).source := by
310308
rwa [โ† extChartAt_source (I := I)]
311309
have U' : UniqueMDiffWithinAt I (extChartAt I x).source ((extChartAt I x).symm y) :=
312310
(isOpen_extChartAt_source x).uniqueMDiffWithinAt h'y
313-
have : mfderiv I ๐“˜(๐•œ, E) (extChartAt I x) ((extChartAt I x).symm y)
314-
= mfderivWithin I ๐“˜(๐•œ, E) (extChartAt I x) (extChartAt I x).source
315-
((extChartAt I x).symm y) := by
311+
have : mfderiv% (extChartAt I x) ((extChartAt I x).symm y)
312+
= mfderiv[(extChartAt I x).source] (extChartAt I x) ((extChartAt I x).symm y) := by
316313
rw [mfderivWithin_eq_mfderiv U']
317314
exact mdifferentiableAt_extChartAt h''y
318315
rw [this, โ† mfderivWithin_comp_of_eq]; rotate_left
@@ -335,20 +332,19 @@ set_option backward.isDefEq.respectTransparency false in
335332
Version where the basepoint belongs to `(extChartAt I x).source`. -/
336333
lemma mfderivWithin_extChartAt_symm_comp_mfderiv_extChartAt'
337334
{y : M} (hy : y โˆˆ (extChartAt I x).source) :
338-
(mfderivWithin ๐“˜(๐•œ, E) I (extChartAt I x).symm (range I) (extChartAt I x y)) โˆ˜L
339-
(mfderiv I ๐“˜(๐•œ, E) (extChartAt I x) y)
335+
(mfderiv[range I] (extChartAt I x).symm (extChartAt I x y)) โˆ˜L (mfderiv% (extChartAt I x) y)
340336
= ContinuousLinearMap.id _ _ := by
341337
have : y = (extChartAt I x).symm (extChartAt I x y) := ((extChartAt I x).left_inv hy).symm
342338
convert mfderivWithin_extChartAt_symm_comp_mfderiv_extChartAt ((extChartAt I x).map_source hy)
343339

344340
lemma isInvertible_mfderivWithin_extChartAt_symm {y : E} (hy : y โˆˆ (extChartAt I x).target) :
345-
(mfderivWithin ๐“˜(๐•œ, E) I (extChartAt I x).symm (range I) y).IsInvertible :=
341+
(mfderiv[range I] (extChartAt I x).symm y).IsInvertible :=
346342
ContinuousLinearMap.IsInvertible.of_inverse
347343
(mfderivWithin_extChartAt_symm_comp_mfderiv_extChartAt hy)
348344
(mfderiv_extChartAt_comp_mfderivWithin_extChartAt_symm hy)
349345

350346
lemma isInvertible_mfderiv_extChartAt {y : M} (hy : y โˆˆ (extChartAt I x).source) :
351-
(mfderiv I ๐“˜(๐•œ, E) (extChartAt I x) y).IsInvertible := by
347+
(mfderiv% (extChartAt I x) y).IsInvertible := by
352348
have h'y : extChartAt I x y โˆˆ (extChartAt I x).target := (extChartAt I x).map_source hy
353349
have Z := ContinuousLinearMap.IsInvertible.of_inverse
354350
(mfderiv_extChartAt_comp_mfderivWithin_extChartAt_symm h'y)
@@ -363,8 +359,8 @@ Use with care as this abuses the defeq `TangentSpace ๐“˜(๐•œ, E) y = E` for `y
363359
theorem TangentBundle.continuousLinearMapAt_trivializationAt
364360
{xโ‚€ x : M} (hx : x โˆˆ (chartAt H xโ‚€).source) :
365361
(trivializationAt E (TangentSpace I) xโ‚€).continuousLinearMapAt ๐•œ x =
366-
mfderiv I ๐“˜(๐•œ, E) (extChartAt I xโ‚€) x := by
367-
have : MDifferentiableAt I ๐“˜(๐•œ, E) (extChartAt I xโ‚€) x := mdifferentiableAt_extChartAt hx
362+
mfderiv% (extChartAt I xโ‚€) x := by
363+
have : MDiffAt (extChartAt I xโ‚€) x := mdifferentiableAt_extChartAt hx
368364
simp only [extChartAt, OpenPartialHomeomorph.extend, PartialEquiv.coe_trans,
369365
ModelWithCorners.toPartialEquiv_coe, OpenPartialHomeomorph.toFun_eq_coe] at this
370366
simp [hx, mfderiv, this]
@@ -376,9 +372,8 @@ Use with care as this abuses the defeq `TangentSpace ๐“˜(๐•œ, E) y = E` for `y
376372
theorem TangentBundle.symmL_trivializationAt
377373
{xโ‚€ x : M} (hx : x โˆˆ (chartAt H xโ‚€).source) :
378374
(trivializationAt E (TangentSpace I) xโ‚€).symmL ๐•œ x =
379-
mfderivWithin ๐“˜(๐•œ, E) I (extChartAt I xโ‚€).symm (range I) (extChartAt I xโ‚€ x) := by
380-
have : MDifferentiableWithinAt ๐“˜(๐•œ, E) I ((chartAt H xโ‚€).symm โˆ˜ I.symm) (range I)
381-
(I (chartAt H xโ‚€ x)) := by
375+
mfderiv[range I] (extChartAt I xโ‚€).symm (extChartAt I xโ‚€ x) := by
376+
have : MDiffAt[range I] ((chartAt H xโ‚€).symm โˆ˜ I.symm) (I (chartAt H xโ‚€ x)) := by
382377
simpa using mdifferentiableWithinAt_extChartAt_symm (by simp [hx])
383378
simp [hx, mfderivWithin, this]
384379

โ€ŽMathlib/Geometry/Manifold/MFDeriv/FDeriv.leanโ€Ž

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ Authors: Sรฉbastien Gouรซzel, Floris van Doorn
66
module
77

88
public import Mathlib.Geometry.Manifold.MFDeriv.Basic
9+
public import Mathlib.Geometry.Manifold.Notation
910

1011
/-!
1112
### Relations between vector space derivative and manifold derivative
@@ -68,7 +69,7 @@ alias โŸจHasMFDerivAt.hasFDerivAt, HasFDerivAt.hasMFDerivAtโŸฉ := hasMFDerivAt_i
6869
/-- For maps between vector spaces, `MDifferentiableWithinAt` and `DifferentiableWithinAt`
6970
coincide -/
7071
theorem mdifferentiableWithinAt_iff_differentiableWithinAt :
71-
MDifferentiableWithinAt ๐“˜(๐•œ, E) ๐“˜(๐•œ, E') f s x โ†” DifferentiableWithinAt ๐•œ f s x := by
72+
MDiffAt[s] f x โ†” DifferentiableWithinAt ๐•œ f s x := by
7273
simp only [mdifferentiableWithinAt_iff', mfld_simps]
7374
exact โŸจfun H => H.2, fun H => โŸจH.continuousWithinAt, HโŸฉโŸฉ
7475

@@ -78,7 +79,7 @@ alias โŸจMDifferentiableWithinAt.differentiableWithinAt,
7879

7980
/-- For maps between vector spaces, `MDifferentiableAt` and `DifferentiableAt` coincide -/
8081
theorem mdifferentiableAt_iff_differentiableAt :
81-
MDifferentiableAt ๐“˜(๐•œ, E) ๐“˜(๐•œ, E') f x โ†” DifferentiableAt ๐•œ f x := by
82+
MDiffAt f x โ†” DifferentiableAt ๐•œ f x := by
8283
simp only [mdifferentiableAt_iff, differentiableWithinAt_univ, mfld_simps]
8384
exact โŸจfun H => H.2, fun H => โŸจH.continuousAt, HโŸฉโŸฉ
8485

@@ -87,16 +88,15 @@ alias โŸจMDifferentiableAt.differentiableAt, DifferentiableAt.mdifferentiableAt
8788

8889
/-- For maps between vector spaces, `MDifferentiableOn` and `DifferentiableOn` coincide -/
8990
theorem mdifferentiableOn_iff_differentiableOn :
90-
MDifferentiableOn ๐“˜(๐•œ, E) ๐“˜(๐•œ, E') f s โ†” DifferentiableOn ๐•œ f s := by
91+
MDiff[s] f โ†” DifferentiableOn ๐•œ f s := by
9192
simp only [MDifferentiableOn, DifferentiableOn,
9293
mdifferentiableWithinAt_iff_differentiableWithinAt]
9394

9495
alias โŸจMDifferentiableOn.differentiableOn, DifferentiableOn.mdifferentiableOnโŸฉ :=
9596
mdifferentiableOn_iff_differentiableOn
9697

9798
/-- For maps between vector spaces, `MDifferentiable` and `Differentiable` coincide -/
98-
theorem mdifferentiable_iff_differentiable :
99-
MDifferentiable ๐“˜(๐•œ, E) ๐“˜(๐•œ, E') f โ†” Differentiable ๐•œ f := by
99+
theorem mdifferentiable_iff_differentiable : MDiff f โ†” Differentiable ๐•œ f := by
100100
simp only [MDifferentiable, Differentiable, mdifferentiableAt_iff_differentiableAt]
101101

102102
alias โŸจMDifferentiable.differentiable, Differentiable.mdifferentiableโŸฉ :=
@@ -106,16 +106,16 @@ set_option backward.isDefEq.respectTransparency false in
106106
/-- For maps between vector spaces, `mfderivWithin` and `fderivWithin` coincide -/
107107
@[simp]
108108
theorem mfderivWithin_eq_fderivWithin :
109-
mfderivWithin ๐“˜(๐•œ, E) ๐“˜(๐•œ, E') f s x = fderivWithin ๐•œ f s x := by
110-
by_cases h : MDifferentiableWithinAt ๐“˜(๐•œ, E) ๐“˜(๐•œ, E') f s x
109+
mfderiv[s] f x = fderivWithin ๐•œ f s x := by
110+
by_cases h : MDiffAt[s] f x
111111
ยท simp only [mfderivWithin, h, if_pos, mfld_simps]
112112
ยท simp only [mfderivWithin, h, if_neg, not_false_iff]
113113
rw [mdifferentiableWithinAt_iff_differentiableWithinAt] at h
114114
exact (fderivWithin_zero_of_not_differentiableWithinAt h).symm
115115

116116
/-- For maps between vector spaces, `mfderiv` and `fderiv` coincide -/
117117
@[simp]
118-
theorem mfderiv_eq_fderiv : mfderiv ๐“˜(๐•œ, E) ๐“˜(๐•œ, E') f x = fderiv ๐•œ f x := by
118+
theorem mfderiv_eq_fderiv : mfderiv% f x = fderiv ๐•œ f x := by
119119
rw [โ† mfderivWithin_univ, โ† fderivWithin_univ]
120120
exact mfderivWithin_eq_fderivWithin
121121

0 commit comments

Comments
ย (0)