@@ -42,32 +42,26 @@ section CLMCompApply
4242variable {H : Type *} [NormedAddCommGroup H] [NormedSpace 𝕜 H] {c : E → G →L[𝕜] H}
4343 {c' : E →L[𝕜] G →L[𝕜] H} {d : E → F →L[𝕜] G} {d' : E →L[𝕜] F →L[𝕜] G} {u : E → G} {u' : E →L[𝕜] G}
4444
45- #adaptation_note /-- https://github.com/leanprover/lean4/pull/6024
46- split proof term into steps to solve unification issues. -/
4745@[fun_prop]
4846theorem HasStrictFDerivAt.clm_comp (hc : HasStrictFDerivAt c c' x) (hd : HasStrictFDerivAt d d' x) :
4947 HasStrictFDerivAt (fun y => (c y).comp (d y))
50- ((compL 𝕜 F G H (c x)).comp d' + ((compL 𝕜 F G H).flip (d x)).comp c') x := by
51- have := isBoundedBilinearMap_comp.hasStrictFDerivAt (c x, d x)
52- have := this.comp x (hc.prodMk hd)
53- exact this
48+ ((compL 𝕜 F G H (c x)).comp d' + ((compL 𝕜 F G H).flip (d x)).comp c') x :=
49+ (isBoundedBilinearMap_comp.hasStrictFDerivAt (c x, d x)).comp x (hc.prodMk hd)
5450
55- #adaptation_note /-- https://github.com/leanprover/lean4/pull/6024
56- `by exact` to solve unification issues. -/
5751@[fun_prop]
5852theorem HasFDerivWithinAt.clm_comp (hc : HasFDerivWithinAt c c' s x)
5953 (hd : HasFDerivWithinAt d d' s x) :
6054 HasFDerivWithinAt (fun y => (c y).comp (d y))
6155 ((compL 𝕜 F G H (c x)).comp d' + ((compL 𝕜 F G H).flip (d x)).comp c') s x := by
62- exact (isBoundedBilinearMap_comp.hasFDerivAt (c x, d x) :).comp_hasFDerivWithinAt x (hc.prodMk hd)
56+ -- `by exact` to solve unification issues.
57+ exact (isBoundedBilinearMap_comp.hasFDerivAt (c x, d x)).comp_hasFDerivWithinAt x (hc.prodMk hd)
6358
64- #adaptation_note /-- https://github.com/leanprover/lean4/pull/6024
65- `by exact` to solve unification issues. -/
6659@[fun_prop]
6760theorem HasFDerivAt.clm_comp (hc : HasFDerivAt c c' x) (hd : HasFDerivAt d d' x) :
6861 HasFDerivAt (fun y => (c y).comp (d y))
6962 ((compL 𝕜 F G H (c x)).comp d' + ((compL 𝕜 F G H).flip (d x)).comp c') x := by
70- exact (isBoundedBilinearMap_comp.hasFDerivAt (c x, d x) :).comp x <| hc.prodMk hd
63+ -- `by exact` to solve unification issues.
64+ exact (isBoundedBilinearMap_comp.hasFDerivAt (c x, d x)).comp x <| hc.prodMk hd
7165
7266@[fun_prop]
7367theorem DifferentiableWithinAt.clm_comp (hc : DifferentiableWithinAt 𝕜 c s x)
@@ -107,21 +101,19 @@ theorem HasStrictFDerivAt.clm_apply (hc : HasStrictFDerivAt c c' x)
107101 HasStrictFDerivAt (fun y => (c y) (u y)) ((c x).comp u' + c'.flip (u x)) x :=
108102 (isBoundedBilinearMap_apply.hasStrictFDerivAt (c x, u x)).comp x (hc.prodMk hu)
109103
110- #adaptation_note /-- https://github.com/leanprover/lean4/pull/6024
111- `by exact` to solve unification issues. -/
112104@[fun_prop]
113105theorem HasFDerivWithinAt.clm_apply (hc : HasFDerivWithinAt c c' s x)
114106 (hu : HasFDerivWithinAt u u' s x) :
115107 HasFDerivWithinAt (fun y => (c y) (u y)) ((c x).comp u' + c'.flip (u x)) s x := by
116- exact (isBoundedBilinearMap_apply.hasFDerivAt (c x, u x) :).comp_hasFDerivWithinAt x
108+ -- `by exact` to solve unification issues.
109+ exact (isBoundedBilinearMap_apply.hasFDerivAt (c x, u x)).comp_hasFDerivWithinAt x
117110 (hc.prodMk hu)
118111
119- #adaptation_note /-- https://github.com/leanprover/lean4/pull/6024
120- `by exact` to solve unification issues. -/
121112@[fun_prop]
122113theorem HasFDerivAt.clm_apply (hc : HasFDerivAt c c' x) (hu : HasFDerivAt u u' x) :
123114 HasFDerivAt (fun y => (c y) (u y)) ((c x).comp u' + c'.flip (u x)) x := by
124- exact (isBoundedBilinearMap_apply.hasFDerivAt (c x, u x) :).comp x (hc.prodMk hu)
115+ -- `by exact` to solve unification issues.
116+ exact (isBoundedBilinearMap_apply.hasFDerivAt (c x, u x)).comp x (hc.prodMk hu)
125117
126118@[fun_prop]
127119theorem DifferentiableWithinAt.clm_apply (hc : DifferentiableWithinAt 𝕜 c s x)
@@ -250,26 +242,24 @@ theorem HasStrictFDerivAt.smul (hc : HasStrictFDerivAt c c' x) (hf : HasStrictFD
250242 HasStrictFDerivAt (c • f) (c x • f' + c'.smulRight (f x)) x :=
251243 (isBoundedBilinearMap_smul.hasStrictFDerivAt (c x, f x)).comp x <| hc.prodMk hf
252244
253- #adaptation_note /-- https://github.com/leanprover/lean4/pull/6024
254- `by exact` to solve unification issues. -/
255245@[fun_prop]
256246theorem HasFDerivWithinAt.fun_smul
257247 (hc : HasFDerivWithinAt c c' s x) (hf : HasFDerivWithinAt f f' s x) :
258248 HasFDerivWithinAt (fun y => c y • f y) (c x • f' + c'.smulRight (f x)) s x := by
259- exact (isBoundedBilinearMap_smul.hasFDerivAt (𝕜 := 𝕜) (c x, f x) :).comp_hasFDerivWithinAt x <|
249+ -- `by exact` to solve unification issues.
250+ exact (isBoundedBilinearMap_smul.hasFDerivAt (𝕜 := 𝕜) (c x, f x)).comp_hasFDerivWithinAt x <|
260251 hc.prodMk hf
261252
262253@[fun_prop]
263254theorem HasFDerivWithinAt.smul (hc : HasFDerivWithinAt c c' s x) (hf : HasFDerivWithinAt f f' s x) :
264255 HasFDerivWithinAt (c • f) (c x • f' + c'.smulRight (f x)) s x :=
265256 hc.fun_smul hf
266257
267- #adaptation_note /-- https://github.com/leanprover/lean4/pull/6024
268- `by exact` to solve unification issues. -/
269258@[fun_prop]
270259theorem HasFDerivAt.fun_smul (hc : HasFDerivAt c c' x) (hf : HasFDerivAt f f' x) :
271260 HasFDerivAt (fun y => c y • f y) (c x • f' + c'.smulRight (f x)) x := by
272- exact (isBoundedBilinearMap_smul.hasFDerivAt (𝕜 := 𝕜) (c x, f x) :).comp x <| hc.prodMk hf
261+ -- `by exact` to solve unification issues.
262+ exact (isBoundedBilinearMap_smul.hasFDerivAt (𝕜 := 𝕜) (c x, f x)).comp x <| hc.prodMk hf
273263
274264@[fun_prop]
275265theorem HasFDerivAt.smul (hc : HasFDerivAt c c' x) (hf : HasFDerivAt f f' x) :
@@ -414,12 +404,11 @@ theorem HasStrictFDerivAt.mul (hc : HasStrictFDerivAt c c' x) (hd : HasStrictFDe
414404 ext z
415405 apply mul_comm
416406
417- #adaptation_note /-- https://github.com/leanprover/lean4/pull/6024
418- `by exact` to solve unification issues. -/
419407@[fun_prop]
420408theorem HasFDerivWithinAt.fun_mul'
421409 (ha : HasFDerivWithinAt a a' s x) (hb : HasFDerivWithinAt b b' s x) :
422410 HasFDerivWithinAt (fun y => a y * b y) (a x • b' + a' <• b x) s x := by
411+ -- `by exact` to solve unification issues.
423412 exact ((ContinuousLinearMap.mul 𝕜 𝔸).isBoundedBilinearMap.hasFDerivAt
424413 (a x, b x)).comp_hasFDerivWithinAt x (ha.prodMk hb)
425414
@@ -441,11 +430,10 @@ theorem HasFDerivWithinAt.mul (hc : HasFDerivWithinAt c c' s x) (hd : HasFDerivW
441430 HasFDerivWithinAt (c * d) (c x • d' + d x • c') s x :=
442431 hc.fun_mul hd
443432
444- #adaptation_note /-- https://github.com/leanprover/lean4/pull/6024
445- `by exact` to solve unification issues. -/
446433@[fun_prop]
447434theorem HasFDerivAt.fun_mul' (ha : HasFDerivAt a a' x) (hb : HasFDerivAt b b' x) :
448435 HasFDerivAt (fun y => a y * b y) (a x • b' + a' <• b x) x := by
436+ -- `by exact` to solve unification issues.
449437 exact ((ContinuousLinearMap.mul 𝕜 𝔸).isBoundedBilinearMap.hasFDerivAt
450438 (a x, b x)).comp x (ha.prodMk hb)
451439
0 commit comments