Skip to content

Commit d2e8329

Browse files
grunwegb-mehta
authored andcommitted
chore: use to_fun to auto-generate more duplicate lemmas (leanprover-community#34279)
We use the new functionality of `to_fun` from leanprover-community#34257 to remove a few more duplicate lemmas.
1 parent b04ed28 commit d2e8329

4 files changed

Lines changed: 56 additions & 160 deletions

File tree

β€ŽMathlib/Analysis/Analytic/Constructions.leanβ€Ž

Lines changed: 12 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -972,20 +972,14 @@ theorem analyticAt_iff_analytic_smul [Module 𝕝 F] [IsBoundedSMul 𝕝 F] [IsS
972972
analyticAt_iff_analytic_fun_smul h₁f hβ‚‚f
973973

974974
/- A function is analytic at a point iff it is analytic after multiplication
975-
with a non-vanishing analytic function. -/
976-
theorem analyticAt_iff_analytic_fun_mul {f g : E β†’ 𝕝} {z : E} (h₁f : AnalyticAt π•œ f z)
975+
with a non-vanishing analytic function. -/
976+
@[to_fun analyticAt_iff_analytic_fun_mul]
977+
theorem analyticAt_iff_analytic_mul {f g : E β†’ 𝕝} {z : E} (h₁f : AnalyticAt π•œ f z)
977978
(hβ‚‚f : f z β‰  0) :
978-
AnalyticAt π•œ g z ↔ AnalyticAt π•œ (fun z ↦ f z * g z) z := by
979+
AnalyticAt π•œ g z ↔ AnalyticAt π•œ (f * g) z := by
979980
simp_rw [← smul_eq_mul]
980981
exact analyticAt_iff_analytic_smul h₁f hβ‚‚f
981982

982-
/- A function is analytic at a point iff it is analytic after multiplication
983-
with a non-vanishing analytic function. -/
984-
theorem analyticAt_iff_analytic_mul {f g : E β†’ 𝕝} {z : E} (h₁f : AnalyticAt π•œ f z)
985-
(hβ‚‚f : f z β‰  0) :
986-
AnalyticAt π•œ g z ↔ AnalyticAt π•œ (f * g) z :=
987-
analyticAt_iff_analytic_fun_mul h₁f hβ‚‚f
988-
989983
/-- `f x / g x` is analytic away from `g x = 0` -/
990984
theorem AnalyticWithinAt.div {f g : E β†’ 𝕝} {s : Set E} {x : E}
991985
(fa : AnalyticWithinAt π•œ f s x) (ga : AnalyticWithinAt π•œ g s x) (g0 : g x β‰  0) :
@@ -1016,9 +1010,10 @@ theorem AnalyticOnNhd.div {f g : E β†’ 𝕝} {s : Set E}
10161010
-/
10171011

10181012
/-- Finite sums of analytic functions are analytic -/
1019-
theorem Finset.analyticWithinAt_fun_sum {f : Ξ± β†’ E β†’ F} {c : E} {s : Set E}
1013+
@[to_fun Finset.analyticWithinAt_fun_sum]
1014+
theorem Finset.analyticWithinAt_sum {f : Ξ± β†’ E β†’ F} {c : E} {s : Set E}
10201015
(N : Finset Ξ±) (h : βˆ€ n ∈ N, AnalyticWithinAt π•œ (f n) s c) :
1021-
AnalyticWithinAt π•œ (fun z ↦ βˆ‘ n ∈ N, f n z) s c := by
1016+
AnalyticWithinAt π•œ (βˆ‘ n ∈ N, f n) s c := by
10221017
classical
10231018
induction N using Finset.induction with
10241019
| empty =>
@@ -1030,47 +1025,22 @@ theorem Finset.analyticWithinAt_fun_sum {f : Ξ± β†’ E β†’ F} {c : E} {s : Set E}
10301025
exact (h a (Or.inl rfl)).add (hB fun b m ↦ h b (Or.inr m))
10311026

10321027
/-- Finite sums of analytic functions are analytic -/
1033-
theorem Finset.analyticWithinAt_sum {f : Ξ± β†’ E β†’ F} {c : E} {s : Set E}
1034-
(N : Finset Ξ±) (h : βˆ€ n ∈ N, AnalyticWithinAt π•œ (f n) s c) :
1035-
AnalyticWithinAt π•œ (βˆ‘ n ∈ N, f n) s c := by
1036-
convert N.analyticWithinAt_fun_sum h
1037-
simp
1038-
1039-
/-- Finite sums of analytic functions are analytic -/
1040-
@[fun_prop]
1041-
theorem Finset.analyticAt_fun_sum {f : Ξ± β†’ E β†’ F} {c : E}
1042-
(N : Finset Ξ±) (h : βˆ€ n ∈ N, AnalyticAt π•œ (f n) c) :
1043-
AnalyticAt π•œ (fun z ↦ βˆ‘ n ∈ N, f n z) c := by
1044-
simp_rw [← analyticWithinAt_univ] at h ⊒
1045-
exact N.analyticWithinAt_fun_sum h
1046-
1047-
/-- Finite sums of analytic functions are analytic -/
1048-
@[fun_prop]
1028+
@[to_fun (attr := fun_prop) Finset.analyticAt_fun_sum]
10491029
theorem Finset.analyticAt_sum {f : Ξ± β†’ E β†’ F} {c : E}
10501030
(N : Finset Ξ±) (h : βˆ€ n ∈ N, AnalyticAt π•œ (f n) c) :
10511031
AnalyticAt π•œ (βˆ‘ n ∈ N, f n) c := by
1052-
convert N.analyticAt_fun_sum h
1053-
simp
1054-
1055-
/-- Finite sums of analytic functions are analytic -/
1056-
theorem Finset.analyticOn_fun_sum {f : Ξ± β†’ E β†’ F} {s : Set E}
1057-
(N : Finset Ξ±) (h : βˆ€ n ∈ N, AnalyticOn π•œ (f n) s) :
1058-
AnalyticOn π•œ (fun z ↦ βˆ‘ n ∈ N, f n z) s :=
1059-
fun z zs ↦ N.analyticWithinAt_fun_sum (fun n m ↦ h n m z zs)
1032+
simp_rw [← analyticWithinAt_univ] at h ⊒
1033+
exact N.analyticWithinAt_sum h
10601034

10611035
/-- Finite sums of analytic functions are analytic -/
1036+
@[to_fun Finset.analyticOn_fun_sum]
10621037
theorem Finset.analyticOn_sum {f : Ξ± β†’ E β†’ F} {s : Set E}
10631038
(N : Finset Ξ±) (h : βˆ€ n ∈ N, AnalyticOn π•œ (f n) s) :
10641039
AnalyticOn π•œ (βˆ‘ n ∈ N, f n) s :=
10651040
fun z zs ↦ N.analyticWithinAt_sum (fun n m ↦ h n m z zs)
10661041

10671042
/-- Finite sums of analytic functions are analytic -/
1068-
theorem Finset.analyticOnNhd_fun_sum {f : Ξ± β†’ E β†’ F} {s : Set E}
1069-
(N : Finset Ξ±) (h : βˆ€ n ∈ N, AnalyticOnNhd π•œ (f n) s) :
1070-
AnalyticOnNhd π•œ (fun z ↦ βˆ‘ n ∈ N, f n z) s :=
1071-
fun z zs ↦ N.analyticAt_fun_sum (fun n m ↦ h n m z zs)
1072-
1073-
/-- Finite sums of analytic functions are analytic -/
1043+
@[to_fun Finset.analyticOnNhd_fun_sum]
10741044
theorem Finset.analyticOnNhd_sum {f : Ξ± β†’ E β†’ F} {s : Set E}
10751045
(N : Finset Ξ±) (h : βˆ€ n ∈ N, AnalyticOnNhd π•œ (f n) s) :
10761046
AnalyticOnNhd π•œ (βˆ‘ n ∈ N, f n) s :=

β€ŽMathlib/Analysis/Calculus/Deriv/Pow.leanβ€Ž

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -105,33 +105,21 @@ theorem HasDerivWithinAt.fun_pow (h : HasDerivWithinAt f f' s x) (n : β„•) :
105105
theorem HasDerivWithinAt.pow (h : HasDerivWithinAt f f' s x) (n : β„•) :
106106
HasDerivWithinAt (f ^ n) (n * f x ^ (n - 1) * f') s x := h.fun_pow n
107107

108-
theorem HasDerivAt.fun_pow (h : HasDerivAt f f' x) (n : β„•) :
109-
HasDerivAt (fun x ↦ f x ^ n) (n * f x ^ (n - 1) * f') x := by
110-
simpa using h.hasFDerivAt.pow n |>.hasDerivAt
111-
108+
@[to_fun]
112109
theorem HasDerivAt.pow (h : HasDerivAt f f' x) (n : β„•) :
113-
HasDerivAt (f ^ n) (n * f x ^ (n - 1) * f') x := h.fun_pow n
110+
HasDerivAt (f ^ n) (n * f x ^ (n - 1) * f') x := by
111+
simpa using h.hasFDerivAt.pow n |>.hasDerivAt
114112

115-
@[simp]
116-
theorem derivWithin_fun_pow (h : DifferentiableWithinAt π•œ f s x) (n : β„•) :
117-
derivWithin (fun x => f x ^ n) s x = n * f x ^ (n - 1) * derivWithin f s x := by
113+
@[to_fun (attr := simp) derivWithin_fun_pow]
114+
theorem derivWithin_pow (h : DifferentiableWithinAt π•œ f s x) (n : β„•) :
115+
derivWithin (f ^ n) s x = n * f x ^ (n - 1) * derivWithin f s x := by
118116
by_cases hsx : UniqueDiffWithinAt π•œ s x
119117
Β· exact (h.hasDerivWithinAt.pow n).derivWithin hsx
120118
Β· simp [derivWithin_zero_of_not_uniqueDiffWithinAt hsx]
121119

122-
@[simp]
123-
theorem derivWithin_pow (h : DifferentiableWithinAt π•œ f s x) (n : β„•) :
124-
derivWithin (f ^ n) s x = n * f x ^ (n - 1) * derivWithin f s x :=
125-
derivWithin_fun_pow h n
126-
127-
@[simp]
128-
theorem deriv_fun_pow (h : DifferentiableAt π•œ f x) (n : β„•) :
129-
deriv (fun x => f x ^ n) x = n * f x ^ (n - 1) * deriv f x :=
130-
(h.hasDerivAt.pow n).deriv
131-
132-
@[simp]
120+
@[to_fun (attr := simp) deriv_fun_pow]
133121
theorem deriv_pow (h : DifferentiableAt π•œ f x) (n : β„•) :
134-
deriv (f ^ n) x = n * f x ^ (n - 1) * deriv f x := deriv_fun_pow h n
122+
deriv (f ^ n) x = n * f x ^ (n - 1) * deriv f x := (h.hasDerivAt.pow n).deriv
135123

136124
end NormedCommRing
137125

β€ŽMathlib/Analysis/Calculus/FDeriv/Pow.leanβ€Ž

Lines changed: 28 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -45,60 +45,51 @@ private theorem aux (f : E β†’ 𝔸) (f' : E β†’L[π•œ] 𝔸) (x : E) (n : β„•)
4545
simp only [Finset.mem_range, Nat.lt_succ_iff] at hx
4646
rw [tsub_add_eq_add_tsub hx]
4747

48-
theorem HasStrictFDerivAt.fun_pow' (h : HasStrictFDerivAt f f' x) (n : β„•) :
49-
HasStrictFDerivAt (fun x ↦ f x ^ n)
48+
@[to_fun]
49+
theorem HasStrictFDerivAt.pow' (h : HasStrictFDerivAt f f' x) (n : β„•) :
50+
HasStrictFDerivAt (f ^ n)
5051
(βˆ‘ i ∈ Finset.range n, f x ^ (n.pred - i) β€’> f' <β€’ f x ^ i) x :=
5152
match n with
5253
| 0 => by simpa using hasStrictFDerivAt_const 1 x
5354
| 1 => by simpa using h
5455
| n + 1 + 1 => by
55-
have := h.mul' (h.fun_pow' (n + 1))
56+
have := h.mul' (h.pow' (n + 1))
5657
simp_rw [pow_succ' _ (n + 1)]
5758
refine this.congr_fderiv <| aux _ _ _ _
5859

59-
theorem HasStrictFDerivAt.pow' (h : HasStrictFDerivAt f f' x) (n : β„•) :
60-
HasStrictFDerivAt (f ^ n)
61-
(βˆ‘ i ∈ Finset.range n, f x ^ (n.pred - i) β€’> f' <β€’ f x ^ i) x := h.fun_pow' n
62-
6360
theorem hasStrictFDerivAt_pow' (n : β„•) {x : 𝔸} :
6461
HasStrictFDerivAt (π•œ := π•œ) (fun x ↦ x ^ n)
6562
(βˆ‘ i ∈ Finset.range n, x ^ (n.pred - i) β€’> ContinuousLinearMap.id π•œ _ <β€’ x ^ i) x :=
6663
hasStrictFDerivAt_id _ |>.pow' n
6764

68-
theorem HasFDerivWithinAt.fun_pow' (h : HasFDerivWithinAt f f' s x) (n : β„•) :
69-
HasFDerivWithinAt (fun x ↦ f x ^ n)
65+
@[to_fun]
66+
theorem HasFDerivWithinAt.pow' (h : HasFDerivWithinAt f f' s x) (n : β„•) :
67+
HasFDerivWithinAt (f ^ n)
7068
(βˆ‘ i ∈ Finset.range n, f x ^ (n.pred - i) β€’> f' <β€’ f x ^ i) s x :=
7169
match n with
7270
| 0 => by simpa using hasFDerivWithinAt_const 1 x s
7371
| 1 => by simpa using h
7472
| n + 1 + 1 => by
75-
have := h.mul' (h.fun_pow' (n + 1))
73+
have := h.mul' (h.pow' (n + 1))
7674
simp_rw [pow_succ' _ (n + 1)]
7775
exact this.congr_fderiv <| aux _ _ _ _
7876

79-
theorem HasFDerivWithinAt.pow' (h : HasFDerivWithinAt f f' s x) (n : β„•) :
80-
HasFDerivWithinAt (f ^ n)
81-
(βˆ‘ i ∈ Finset.range n, f x ^ (n.pred - i) β€’> f' <β€’ f x ^ i) s x := h.fun_pow' n
82-
8377
theorem hasFDerivWithinAt_pow' (n : β„•) {x : 𝔸} {s : Set 𝔸} :
8478
HasFDerivWithinAt (π•œ := π•œ) (fun x ↦ x ^ n)
8579
(βˆ‘ i ∈ Finset.range n, x ^ (n.pred - i) β€’> ContinuousLinearMap.id π•œ _ <β€’ x ^ i) s x :=
8680
hasFDerivWithinAt_id _ _ |>.pow' n
8781

88-
theorem HasFDerivAt.fun_pow' (h : HasFDerivAt f f' x) (n : β„•) :
89-
HasFDerivAt (fun x ↦ f x ^ n) (βˆ‘ i ∈ Finset.range n, f x ^ (n.pred - i) β€’> f' <β€’ f x ^ i) x :=
82+
@[to_fun]
83+
theorem HasFDerivAt.pow' (h : HasFDerivAt f f' x) (n : β„•) :
84+
HasFDerivAt (f ^ n) (βˆ‘ i ∈ Finset.range n, f x ^ (n.pred - i) β€’> f' <β€’ f x ^ i) x :=
9085
match n with
9186
| 0 => by simpa using hasFDerivAt_const 1 x
9287
| 1 => by simpa using h
9388
| n + 1 + 1 => by
94-
have := h.mul' (h.fun_pow' (n + 1))
89+
have := h.mul' (h.pow' (n + 1))
9590
simp_rw [pow_succ' _ (n + 1)]
9691
exact this.congr_fderiv <| aux _ _ _ _
9792

98-
theorem HasFDerivAt.pow' (h : HasFDerivAt f f' x) (n : β„•) :
99-
HasFDerivAt (f ^ n) (βˆ‘ i ∈ Finset.range n, f x ^ (n.pred - i) β€’> f' <β€’ f x ^ i) x :=
100-
h.fun_pow' n
101-
10293
theorem hasFDerivAt_pow' (n : β„•) {x : 𝔸} :
10394
HasFDerivAt (π•œ := π•œ) (fun x ↦ x ^ n)
10495
(βˆ‘ i ∈ Finset.range n, x ^ (n.pred - i) β€’> ContinuousLinearMap.id π•œ _ <β€’ x ^ i) x :=
@@ -118,67 +109,45 @@ theorem differentiableWithinAt_pow (n : β„•) {x : 𝔸} {s : Set 𝔸} :
118109
DifferentiableWithinAt π•œ (fun x : 𝔸 => x ^ n) s x :=
119110
differentiableWithinAt_id.pow _
120111

121-
@[simp, fun_prop]
122-
theorem DifferentiableAt.fun_pow (hf : DifferentiableAt π•œ f x) (n : β„•) :
123-
DifferentiableAt π•œ (fun x => f x ^ n) x :=
124-
differentiableWithinAt_univ.mp <| hf.differentiableWithinAt.pow n
125-
126-
@[simp, fun_prop]
112+
@[to_fun (attr := simp, fun_prop)]
127113
theorem DifferentiableAt.pow (hf : DifferentiableAt π•œ f x) (n : β„•) :
128-
DifferentiableAt π•œ (f ^ n) x := hf.fun_pow n
114+
DifferentiableAt π•œ (f ^ n) x :=
115+
differentiableWithinAt_univ.mp <| hf.differentiableWithinAt.pow n
129116

130117
theorem differentiableAt_pow (n : β„•) {x : 𝔸} : DifferentiableAt π•œ (fun x : 𝔸 => x ^ n) x :=
131118
differentiableAt_id.pow _
132119

133-
@[fun_prop]
134-
theorem DifferentiableOn.fun_pow (hf : DifferentiableOn π•œ f s) (n : β„•) :
135-
DifferentiableOn π•œ (fun x => f x ^ n) s := fun x h => (hf x h).pow n
136-
137-
@[fun_prop]
120+
@[to_fun (attr := fun_prop)]
138121
theorem DifferentiableOn.pow (hf : DifferentiableOn π•œ f s) (n : β„•) :
139-
DifferentiableOn π•œ (f ^ n) s := hf.fun_pow n
122+
DifferentiableOn π•œ (f ^ n) s := fun x h => (hf x h).pow n
140123

141124
theorem differentiableOn_pow (n : β„•) {s : Set 𝔸} : DifferentiableOn π•œ (fun x : 𝔸 => x ^ n) s :=
142125
differentiableOn_id.pow n
143126

144-
@[simp, fun_prop]
145-
theorem Differentiable.fun_pow (hf : Differentiable π•œ f) (n : β„•) :
146-
Differentiable π•œ fun x => f x ^ n :=
147-
fun x => (hf x).pow n
148-
149-
@[simp, fun_prop]
127+
@[to_fun (attr := simp, fun_prop)]
150128
theorem Differentiable.pow (hf : Differentiable π•œ f) (n : β„•) : Differentiable π•œ (f ^ n) :=
151-
hf.fun_pow n
129+
fun x => (hf x).pow n
152130

153131
theorem differentiable_pow (n : β„•) : Differentiable π•œ fun x : 𝔸 => x ^ n :=
154132
differentiable_id.pow _
155133

156-
theorem fderiv_fun_pow' (n : β„•) (hf : DifferentiableAt π•œ f x) :
157-
fderiv π•œ (fun x ↦ f x ^ n) x
158-
= (βˆ‘ i ∈ Finset.range n, f x ^ (n.pred - i) β€’> fderiv π•œ f x <β€’ f x ^ i) :=
159-
hf.hasFDerivAt.pow' n |>.fderiv
160-
134+
@[to_fun fderiv_fun_pow']
161135
theorem fderiv_pow' (n : β„•) (hf : DifferentiableAt π•œ f x) :
162136
fderiv π•œ (f ^ n) x
163137
= (βˆ‘ i ∈ Finset.range n, f x ^ (n.pred - i) β€’> fderiv π•œ f x <β€’ f x ^ i) :=
164-
fderiv_fun_pow' n hf
138+
hf.hasFDerivAt.pow' n |>.fderiv
165139

166140
theorem fderiv_pow_ring' {x : 𝔸} (n : β„•) :
167141
fderiv π•œ (fun x : 𝔸 ↦ x ^ n) x
168142
= (βˆ‘ i ∈ Finset.range n, x ^ (n.pred - i) β€’> .id _ _ <β€’ x ^ i) := by
169143
rw [fderiv_fun_pow' n differentiableAt_fun_id, fderiv_fun_id]
170144

171-
theorem fderivWithin_fun_pow' (hxs : UniqueDiffWithinAt π•œ s x)
172-
(n : β„•) (hf : DifferentiableWithinAt π•œ f s x) :
173-
fderivWithin π•œ (fun x ↦ f x ^ n) s x
174-
= (βˆ‘ i ∈ Finset.range n, f x ^ (n.pred - i) β€’> fderivWithin π•œ f s x <β€’ f x ^ i) :=
175-
hf.hasFDerivWithinAt.pow' n |>.fderivWithin hxs
176-
145+
@[to_fun fderivWithin_fun_pow']
177146
theorem fderivWithin_pow' (hxs : UniqueDiffWithinAt π•œ s x)
178147
(n : β„•) (hf : DifferentiableWithinAt π•œ f s x) :
179148
fderivWithin π•œ (f ^ n) s x
180149
= (βˆ‘ i ∈ Finset.range n, f x ^ (n.pred - i) β€’> fderivWithin π•œ f s x <β€’ f x ^ i) :=
181-
fderivWithin_fun_pow' hxs n hf
150+
hf.hasFDerivWithinAt.pow' n |>.fderivWithin hxs
182151

183152
theorem fderivWithin_pow_ring' {s : Set 𝔸} {x : 𝔸} (n : β„•) (hxs : UniqueDiffWithinAt π•œ s x) :
184153
fderivWithin π•œ (fun x : 𝔸 ↦ x ^ n) s x
@@ -228,27 +197,20 @@ theorem hasFDerivAt_pow (n : β„•) {x : 𝔸} :
228197
(fun x : 𝔸 ↦ x ^ n) ((n β€’ x ^ (n - 1)) β€’ ContinuousLinearMap.id π•œ 𝔸) x :=
229198
hasFDerivAt_id _ |>.pow n
230199

231-
theorem fderiv_fun_pow (n : β„•) (hf : DifferentiableAt π•œ f x) :
232-
fderiv π•œ (fun x ↦ f x ^ n) x = (n β€’ f x ^ (n - 1)) β€’ fderiv π•œ f x :=
233-
hf.hasFDerivAt.pow n |>.fderiv
234-
200+
@[to_fun fderiv_fun_pow]
235201
theorem fderiv_pow (n : β„•) (hf : DifferentiableAt π•œ f x) :
236-
fderiv π•œ (fun x ↦ f x ^ n) x = (n β€’ f x ^ (n - 1)) β€’ fderiv π•œ f x :=
237-
fderiv_fun_pow n hf
202+
fderiv π•œ (f ^ n) x = (n β€’ f x ^ (n - 1)) β€’ fderiv π•œ f x :=
203+
hf.hasFDerivAt.pow n |>.fderiv
238204

239205
theorem fderiv_pow_ring {x : 𝔸} (n : β„•) :
240206
fderiv π•œ (fun x : 𝔸 ↦ x ^ n) x = (n β€’ x ^ (n - 1)) β€’ .id _ _ := by
241207
rw [fderiv_fun_pow n differentiableAt_fun_id, fderiv_fun_id]
242208

243-
theorem fderivWithin_fun_pow (hxs : UniqueDiffWithinAt π•œ s x)
244-
(n : β„•) (hf : DifferentiableWithinAt π•œ f s x) :
245-
fderivWithin π•œ (fun x ↦ f x ^ n) s x = (n β€’ f x ^ (n - 1)) β€’ fderivWithin π•œ f s x :=
246-
hf.hasFDerivWithinAt.pow n |>.fderivWithin hxs
247-
209+
@[to_fun fderivWithin_fun_pow]
248210
theorem fderivWithin_pow (hxs : UniqueDiffWithinAt π•œ s x)
249211
(n : β„•) (hf : DifferentiableWithinAt π•œ f s x) :
250212
fderivWithin π•œ (f ^ n) s x = (n β€’ f x ^ (n - 1)) β€’ fderivWithin π•œ f s x :=
251-
fderivWithin_fun_pow hxs n hf
213+
hf.hasFDerivWithinAt.pow n |>.fderivWithin hxs
252214

253215
theorem fderivWithin_pow_ring {s : Set 𝔸} {x : 𝔸} (n : β„•) (hxs : UniqueDiffWithinAt π•œ s x) :
254216
fderivWithin π•œ (fun x : 𝔸 ↦ x ^ n) s x = (n β€’ x ^ (n - 1)) β€’ .id _ _ := by

0 commit comments

Comments
Β (0)