Skip to content

Commit fb469c7

Browse files
committed
chore: use the to_fun attribute (leanprover-community#32231)
Reduce code duplication using the to_fun attribute. This is not exhaustive, neither does it constitute an endorsement "we always want to generate the applied form of a lemma".
1 parent 3cd4988 commit fb469c7

2 files changed

Lines changed: 76 additions & 257 deletions

File tree

Mathlib/Analysis/Analytic/Constructions.lean

Lines changed: 51 additions & 165 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ public import Mathlib.Analysis.Analytic.Linear
1010
public import Mathlib.Analysis.Normed.Operator.Mul
1111
public import Mathlib.Analysis.Normed.Ring.Units
1212
public import Mathlib.Analysis.Analytic.OfScalars
13+
import Mathlib.Tactic.ToFun
1314

1415
/-!
1516
# Various ways to combine analytic functions
@@ -102,17 +103,13 @@ theorem AnalyticWithinAt.add (hf : AnalyticWithinAt 𝕜 f s x) (hg : AnalyticWi
102103
let ⟨_, hqf⟩ := hg
103104
(hpf.add hqf).analyticWithinAt
104105

105-
@[fun_prop]
106-
theorem AnalyticAt.fun_add (hf : AnalyticAt 𝕜 f x) (hg : AnalyticAt 𝕜 g x) :
107-
AnalyticAt 𝕜 (fun z ↦ f z + g z) x :=
106+
@[to_fun (attr := fun_prop)]
107+
theorem AnalyticAt.add (hf : AnalyticAt 𝕜 f x) (hg : AnalyticAt 𝕜 g x) :
108+
AnalyticAt 𝕜 (f + g) x :=
108109
let ⟨_, hpf⟩ := hf
109110
let ⟨_, hqf⟩ := hg
110111
(hpf.add hqf).analyticAt
111112

112-
@[fun_prop]
113-
theorem AnalyticAt.add (hf : AnalyticAt 𝕜 f x) (hg : AnalyticAt 𝕜 g x) : AnalyticAt 𝕜 (f + g) x :=
114-
hf.fun_add hg
115-
116113
theorem HasFPowerSeriesWithinOnBall.neg (hf : HasFPowerSeriesWithinOnBall f pf s x r) :
117114
HasFPowerSeriesWithinOnBall (-f) (-pf) s x r :=
118115
{ r_le := by
@@ -142,15 +139,11 @@ theorem AnalyticWithinAt.neg (hf : AnalyticWithinAt 𝕜 f s x) : AnalyticWithin
142139
let ⟨_, hpf⟩ := hf
143140
hpf.neg.analyticWithinAt
144141

145-
@[fun_prop]
146-
theorem AnalyticAt.fun_neg (hf : AnalyticAt 𝕜 f x) : AnalyticAt 𝕜 (fun z ↦ -f z) x :=
142+
@[to_fun (attr := fun_prop)]
143+
theorem AnalyticAt.neg (hf : AnalyticAt 𝕜 f x) : AnalyticAt 𝕜 (-f) x :=
147144
let ⟨_, hpf⟩ := hf
148145
hpf.neg.analyticAt
149146

150-
@[fun_prop]
151-
theorem AnalyticAt.neg (hf : AnalyticAt 𝕜 f x) : AnalyticAt 𝕜 (-f) x :=
152-
hf.fun_neg
153-
154147
@[simp] lemma analyticAt_neg : AnalyticAt 𝕜 (-f) x ↔ AnalyticAt 𝕜 f x where
155148
mp hf := by simpa using hf.neg
156149
mpr := .neg
@@ -177,15 +170,10 @@ theorem AnalyticWithinAt.sub (hf : AnalyticWithinAt 𝕜 f s x) (hg : AnalyticWi
177170
AnalyticWithinAt 𝕜 (f - g) s x := by
178171
simpa only [sub_eq_add_neg] using hf.add hg.neg
179172

180-
@[fun_prop]
181-
theorem AnalyticAt.fun_sub (hf : AnalyticAt 𝕜 f x) (hg : AnalyticAt 𝕜 g x) :
182-
AnalyticAt 𝕜 (fun z ↦ f z - g z) x := by
183-
simpa only [sub_eq_add_neg] using hf.add hg.neg
184-
185-
@[fun_prop]
173+
@[to_fun (attr := fun_prop)]
186174
theorem AnalyticAt.sub (hf : AnalyticAt 𝕜 f x) (hg : AnalyticAt 𝕜 g x) :
187-
AnalyticAt 𝕜 (f - g) x :=
188-
hf.fun_sub hg
175+
AnalyticAt 𝕜 (f - g) x := by
176+
simpa only [sub_eq_add_neg] using hf.add hg.neg
189177

190178
theorem HasFPowerSeriesWithinOnBall.const_smul (hf : HasFPowerSeriesWithinOnBall f pf s x r) :
191179
HasFPowerSeriesWithinOnBall (c • f) (c • pf) s x r where
@@ -214,15 +202,11 @@ theorem AnalyticWithinAt.const_smul (hf : AnalyticWithinAt 𝕜 f s x) :
214202
let ⟨_, hpf⟩ := hf
215203
hpf.const_smul.analyticWithinAt
216204

217-
@[fun_prop]
218-
theorem AnalyticAt.fun_const_smul (hf : AnalyticAt 𝕜 f x) : AnalyticAt 𝕜 (fun z ↦ c • f z) x :=
205+
@[to_fun (attr := fun_prop)]
206+
theorem AnalyticAt.const_smul (hf : AnalyticAt 𝕜 f x) : AnalyticAt 𝕜 (c • f) x :=
219207
let ⟨_, hpf⟩ := hf
220208
hpf.const_smul.analyticAt
221209

222-
@[fun_prop]
223-
theorem AnalyticAt.const_smul (hf : AnalyticAt 𝕜 f x) : AnalyticAt 𝕜 (c • f) x :=
224-
hf.fun_const_smul
225-
226210
theorem AnalyticOn.add (hf : AnalyticOn 𝕜 f s) (hg : AnalyticOn 𝕜 g s) :
227211
AnalyticOn 𝕜 (f + g) s :=
228212
fun z hz => (hf z hz).add (hg z hz)
@@ -604,18 +588,11 @@ lemma AnalyticWithinAt.smul [NormedSpace 𝕝 F] [IsScalarTower 𝕜 𝕝 F]
604588
(analyticAt_smul _).comp₂_analyticWithinAt hf hg
605589

606590
/-- Scalar multiplication of one analytic function by another. -/
607-
@[fun_prop]
608-
lemma AnalyticAt.fun_smul [NormedSpace 𝕝 F] [IsScalarTower 𝕜 𝕝 F] {f : E → 𝕝} {g : E → F} {z : E}
609-
(hf : AnalyticAt 𝕜 f z) (hg : AnalyticAt 𝕜 g z) :
610-
AnalyticAt 𝕜 (fun x ↦ f x • g x) z :=
611-
(analyticAt_smul _).comp₂ hf hg
612-
613-
/-- Scalar multiplication of one analytic function by another. -/
614-
@[fun_prop]
591+
@[to_fun]
615592
lemma AnalyticAt.smul [NormedSpace 𝕝 F] [IsScalarTower 𝕜 𝕝 F] {f : E → 𝕝} {g : E → F} {z : E}
616593
(hf : AnalyticAt 𝕜 f z) (hg : AnalyticAt 𝕜 g z) :
617594
AnalyticAt 𝕜 (f • g) z :=
618-
hf.fun_smul hg
595+
(analyticAt_smul _).comp₂ hf hg
619596

620597
/-- Scalar multiplication of one analytic function by another. -/
621598
lemma AnalyticOn.smul [NormedSpace 𝕝 F] [IsScalarTower 𝕜 𝕝 F]
@@ -637,16 +614,10 @@ lemma AnalyticWithinAt.mul {f g : E → A} {s : Set E} {z : E}
637614
(analyticAt_mul _).comp₂_analyticWithinAt hf hg
638615

639616
/-- Multiplication of analytic functions (valued in a normed `𝕜`-algebra) is analytic. -/
640-
@[fun_prop]
641-
lemma AnalyticAt.fun_mul {f g : E → A} {z : E} (hf : AnalyticAt 𝕜 f z) (hg : AnalyticAt 𝕜 g z) :
642-
AnalyticAt 𝕜 (fun x ↦ f x * g x) z :=
643-
(analyticAt_mul _).comp₂ hf hg
644-
645-
/-- Multiplication of analytic functions (valued in a normed `𝕜`-algebra) is analytic. -/
646-
@[fun_prop]
617+
@[to_fun (attr := fun_prop)]
647618
lemma AnalyticAt.mul {f g : E → A} {z : E} (hf : AnalyticAt 𝕜 f z) (hg : AnalyticAt 𝕜 g z) :
648619
AnalyticAt 𝕜 (f * g) z :=
649-
hf.fun_mul hg
620+
(analyticAt_mul _).comp₂ hf hg
650621

651622
/-- Multiplication of analytic functions (valued in a normed `𝕜`-algebra) is analytic. -/
652623
lemma AnalyticOn.mul {f g : E → A} {s : Set E}
@@ -661,9 +632,10 @@ lemma AnalyticOnNhd.mul {f g : E → A} {s : Set E}
661632
fun _ m ↦ (hf _ m).mul (hg _ m)
662633

663634
/-- Powers of analytic functions (into a normed `𝕜`-algebra) are analytic. -/
664-
lemma AnalyticWithinAt.fun_pow {f : E → A} {z : E} {s : Set E} (hf : AnalyticWithinAt 𝕜 f s z)
635+
@[to_fun]
636+
lemma AnalyticWithinAt.pow {f : E → A} {z : E} {s : Set E} (hf : AnalyticWithinAt 𝕜 f s z)
665637
(n : ℕ) :
666-
AnalyticWithinAt 𝕜 (fun x ↦ f x ^ n) s z := by
638+
AnalyticWithinAt 𝕜 (f ^ n) s z := by
667639
induction n with
668640
| zero =>
669641
simp only [pow_zero]
@@ -673,99 +645,56 @@ lemma AnalyticWithinAt.fun_pow {f : E → A} {z : E} {s : Set E} (hf : AnalyticW
673645
exact hm.mul hf
674646

675647
/-- Powers of analytic functions (into a normed `𝕜`-algebra) are analytic. -/
676-
lemma AnalyticWithinAt.pow {f : E → A} {z : E} {s : Set E} (hf : AnalyticWithinAt 𝕜 f s z)
677-
(n : ℕ) :
678-
AnalyticWithinAt 𝕜 (f ^ n) s z :=
679-
AnalyticWithinAt.fun_pow hf n
680-
681-
/-- Powers of analytic functions (into a normed `𝕜`-algebra) are analytic. -/
682-
@[fun_prop]
683-
lemma AnalyticAt.fun_pow {f : E → A} {z : E} (hf : AnalyticAt 𝕜 f z) (n : ℕ) :
684-
AnalyticAt 𝕜 (fun x ↦ f x ^ n) z := by
648+
@[to_fun (attr := fun_prop)]
649+
lemma AnalyticAt.pow {f : E → A} {z : E} (hf : AnalyticAt 𝕜 f z) (n : ℕ) :
650+
AnalyticAt 𝕜 (f ^ n) z := by
685651
rw [← analyticWithinAt_univ] at hf ⊢
686652
exact hf.pow n
687653

688654
/-- Powers of analytic functions (into a normed `𝕜`-algebra) are analytic. -/
689-
@[fun_prop]
690-
lemma AnalyticAt.pow {f : E → A} {z : E} (hf : AnalyticAt 𝕜 f z) (n : ℕ) :
691-
AnalyticAt 𝕜 (f ^ n) z :=
692-
AnalyticAt.fun_pow hf n
693-
694-
/-- Powers of analytic functions (into a normed `𝕜`-algebra) are analytic. -/
695-
lemma AnalyticOn.fun_pow {f : E → A} {s : Set E} (hf : AnalyticOn 𝕜 f s) (n : ℕ) :
696-
AnalyticOn 𝕜 (fun x ↦ f x ^ n) s :=
697-
fun _ m ↦ (hf _ m).pow n
698-
699-
/-- Powers of analytic functions (into a normed `𝕜`-algebra) are analytic. -/
655+
@[to_fun]
700656
lemma AnalyticOn.pow {f : E → A} {s : Set E} (hf : AnalyticOn 𝕜 f s) (n : ℕ) :
701657
AnalyticOn 𝕜 (f ^ n) s :=
702658
fun _ m ↦ (hf _ m).pow n
703659

704660
/-- Powers of analytic functions (into a normed `𝕜`-algebra) are analytic. -/
705-
lemma AnalyticOnNhd.fun_pow {f : E → A} {s : Set E} (hf : AnalyticOnNhd 𝕜 f s) (n : ℕ) :
706-
AnalyticOnNhd 𝕜 (fun x ↦ f x ^ n) s :=
707-
fun _ m ↦ (hf _ m).pow n
708-
709-
/-- Powers of analytic functions (into a normed `𝕜`-algebra) are analytic. -/
661+
@[to_fun]
710662
lemma AnalyticOnNhd.pow {f : E → A} {s : Set E} (hf : AnalyticOnNhd 𝕜 f s) (n : ℕ) :
711663
AnalyticOnNhd 𝕜 (f ^ n) s :=
712-
AnalyticOnNhd.fun_pow hf n
713-
714-
/-- ZPowers of analytic functions (into a normed field over `𝕜`) are analytic if the exponent is
715-
nonnegative. -/
716-
lemma AnalyticWithinAt.fun_zpow_nonneg {f : E → 𝕝} {z : E} {s : Set E} {n : ℤ}
717-
(hf : AnalyticWithinAt 𝕜 f s z) (hn : 0 ≤ n) :
718-
AnalyticWithinAt 𝕜 (fun x ↦ f x ^ n) s z := by
719-
simpa [← zpow_natCast, hn] using hf.pow n.toNat
664+
fun _ m ↦ (hf _ m).pow n
720665

721666
/-- ZPowers of analytic functions (into a normed field over `𝕜`) are analytic if the exponent is
722667
nonnegative. -/
668+
@[to_fun]
723669
lemma AnalyticWithinAt.zpow_nonneg {f : E → 𝕝} {z : E} {s : Set E} {n : ℤ}
724670
(hf : AnalyticWithinAt 𝕜 f s z) (hn : 0 ≤ n) :
725-
AnalyticWithinAt 𝕜 (f ^ n) s z :=
726-
fun_zpow_nonneg hf hn
727-
728-
/-- ZPowers of analytic functions (into a normed field over `𝕜`) are analytic if the exponent is
729-
nonnegative. -/
730-
lemma AnalyticAt.fun_zpow_nonneg {f : E → 𝕝} {z : E} {n : ℤ} (hf : AnalyticAt 𝕜 f z) (hn : 0 ≤ n) :
731-
AnalyticAt 𝕜 (fun x ↦ f x ^ n) z := by
671+
AnalyticWithinAt 𝕜 (f ^ n) s z := by
732672
simpa [← zpow_natCast, hn] using hf.pow n.toNat
733673

734674
/-- ZPowers of analytic functions (into a normed field over `𝕜`) are analytic if the exponent is
735675
nonnegative. -/
676+
@[to_fun]
736677
lemma AnalyticAt.zpow_nonneg {f : E → 𝕝} {z : E} {n : ℤ} (hf : AnalyticAt 𝕜 f z) (hn : 0 ≤ n) :
737-
AnalyticAt 𝕜 (f ^ n) z :=
738-
fun_zpow_nonneg hf hn
739-
740-
/-- ZPowers of analytic functions (into a normed field over `𝕜`) are analytic if the exponent is
741-
nonnegative. -/
742-
lemma AnalyticOn.fun_zpow_nonneg {f : E → 𝕝} {s : Set E} {n : ℤ} (hf : AnalyticOn 𝕜 f s)
743-
(hn : 0 ≤ n) :
744-
AnalyticOn 𝕜 (fun x ↦ f x ^ n) s := by
678+
AnalyticAt 𝕜 (f ^ n) z := by
745679
simpa [← zpow_natCast, hn] using hf.pow n.toNat
746680

747681
/-- ZPowers of analytic functions (into a normed field over `𝕜`) are analytic if the exponent is
748682
nonnegative. -/
683+
@[to_fun]
749684
lemma AnalyticOn.zpow_nonneg {f : E → 𝕝} {s : Set E} {n : ℤ} (hf : AnalyticOn 𝕜 f s)
750685
(hn : 0 ≤ n) :
751-
AnalyticOn 𝕜 (f ^ n) s :=
752-
fun_zpow_nonneg hf hn
686+
AnalyticOn 𝕜 (f ^ n) s := by
687+
simpa [← zpow_natCast, hn] using hf.pow n.toNat
753688

754689
/-- ZPowers of analytic functions (into a normed field over `𝕜`) are analytic if the exponent is
755690
nonnegative. -/
756-
lemma AnalyticOnNhd.fun_zpow_nonneg {f : E → 𝕝} {s : Set E} {n : ℤ} (hf : AnalyticOnNhd 𝕜 f s)
691+
@[to_fun]
692+
lemma AnalyticOnNhd.zpow_nonneg {f : E → 𝕝} {s : Set E} {n : ℤ} (hf : AnalyticOnNhd 𝕜 f s)
757693
(hn : 0 ≤ n) :
758-
AnalyticOnNhd 𝕜 (fun x ↦ f x ^ n) s := by
694+
AnalyticOnNhd 𝕜 (f ^ n) s := by
759695
simp_rw [(Eq.symm (Int.toNat_of_nonneg hn) : n = OfNat.ofNat n.toNat), zpow_ofNat]
760696
apply pow hf
761697

762-
/-- ZPowers of analytic functions (into a normed field over `𝕜`) are analytic if the exponent is
763-
nonnegative. -/
764-
lemma AnalyticOnNhd.zpow_nonneg {f : E → 𝕝} {s : Set E} {n : ℤ} (hf : AnalyticOnNhd 𝕜 f s)
765-
(hn : 0 ≤ n) :
766-
AnalyticOnNhd 𝕜 (f ^ n) s :=
767-
fun_zpow_nonneg hf hn
768-
769698
/-!
770699
### Restriction of scalars
771700
-/
@@ -943,56 +872,37 @@ lemma analyticOn_inv : AnalyticOn 𝕜 (fun z ↦ z⁻¹) {z : 𝕝 | z ≠ 0} :
943872
analyticOnNhd_inv.analyticOn
944873

945874
/-- `(f x)⁻¹` is analytic away from `f x = 0` -/
946-
theorem AnalyticWithinAt.fun_inv {f : E → 𝕝} {x : E} {s : Set E} (fa : AnalyticWithinAt 𝕜 f s x)
947-
(f0 : f x ≠ 0) :
948-
AnalyticWithinAt 𝕜 (fun x ↦ (f x)⁻¹) s x :=
949-
(analyticAt_inv f0).comp_analyticWithinAt fa
950-
951-
/-- `(f x)⁻¹` is analytic away from `f x = 0` -/
875+
@[to_fun]
952876
theorem AnalyticWithinAt.inv {f : E → 𝕝} {x : E} {s : Set E} (fa : AnalyticWithinAt 𝕜 f s x)
953877
(f0 : f x ≠ 0) :
954878
AnalyticWithinAt 𝕜 f⁻¹ s x :=
955-
fun_inv fa f0
956-
957-
/-- `(f x)⁻¹` is analytic away from `f x = 0` -/
958-
@[fun_prop]
959-
theorem AnalyticAt.fun_inv {f : E → 𝕝} {x : E} (fa : AnalyticAt 𝕜 f x) (f0 : f x ≠ 0) :
960-
AnalyticAt 𝕜 (fun x ↦ (f x)⁻¹) x :=
961-
(analyticAt_inv f0).comp fa
879+
(analyticAt_inv f0).comp_analyticWithinAt fa
962880

963881
/-- `(f x)⁻¹` is analytic away from `f x = 0` -/
964-
@[fun_prop]
882+
@[to_fun (attr := fun_prop)]
965883
theorem AnalyticAt.inv {f : E → 𝕝} {x : E} (fa : AnalyticAt 𝕜 f x) (f0 : f x ≠ 0) :
966884
AnalyticAt 𝕜 f⁻¹ x :=
967-
fa.fun_inv f0
968-
969-
/-- `(f x)⁻¹` is analytic away from `f x = 0` -/
970-
theorem AnalyticOn.fun_inv {f : E → 𝕝} {s : Set E} (fa : AnalyticOn 𝕜 f s) (f0 : ∀ x ∈ s, f x ≠ 0) :
971-
AnalyticOn 𝕜 (fun x ↦ (f x)⁻¹) s :=
972-
fun x m ↦ (fa x m).inv (f0 x m)
885+
(analyticAt_inv f0).comp fa
973886

974887
/-- `(f x)⁻¹` is analytic away from `f x = 0` -/
888+
@[to_fun]
975889
theorem AnalyticOn.inv {f : E → 𝕝} {s : Set E} (fa : AnalyticOn 𝕜 f s) (f0 : ∀ x ∈ s, f x ≠ 0) :
976890
AnalyticOn 𝕜 f⁻¹ s :=
977-
fun_inv fa f0
978-
979-
/-- `(f x)⁻¹` is analytic away from `f x = 0` -/
980-
theorem AnalyticOnNhd.fun_inv {f : E → 𝕝} {s : Set E} (fa : AnalyticOnNhd 𝕜 f s)
981-
(f0 : ∀ x ∈ s, f x ≠ 0) :
982-
AnalyticOnNhd 𝕜 (fun x ↦ (f x)⁻¹) s :=
983891
fun x m ↦ (fa x m).inv (f0 x m)
984892

985893
/-- `(f x)⁻¹` is analytic away from `f x = 0` -/
894+
@[to_fun]
986895
theorem AnalyticOnNhd.inv {f : E → 𝕝} {s : Set E} (fa : AnalyticOnNhd 𝕜 f s)
987896
(f0 : ∀ x ∈ s, f x ≠ 0) :
988897
AnalyticOnNhd 𝕜 f⁻¹ s :=
989-
fun_inv fa f0
898+
fun x m ↦ (fa x m).inv (f0 x m)
990899

991900
/-- ZPowers of analytic functions (into a normed field over `𝕜`) are analytic away from the zeros.
992901
-/
993-
lemma AnalyticWithinAt.fun_zpow {f : E → 𝕝} {z : E} {s : Set E} {n : ℤ}
902+
@[to_fun]
903+
lemma AnalyticWithinAt.zpow {f : E → 𝕝} {z : E} {s : Set E} {n : ℤ}
994904
(h₁f : AnalyticWithinAt 𝕜 f s z) (h₂f : f z ≠ 0) :
995-
AnalyticWithinAt 𝕜 (fun x ↦ f x ^ n) s z := by
905+
AnalyticWithinAt 𝕜 (f ^ n) s z := by
996906
by_cases hn : 0 ≤ n
997907
· exact zpow_nonneg h₁f hn
998908
· rw [(Int.eq_neg_comm.mp rfl : n = - (- n))]
@@ -1001,15 +911,9 @@ lemma AnalyticWithinAt.fun_zpow {f : E → 𝕝} {z : E} {s : Set E} {n : ℤ}
1001911

1002912
/-- ZPowers of analytic functions (into a normed field over `𝕜`) are analytic away from the zeros.
1003913
-/
1004-
lemma AnalyticWithinAt.zpow {f : E → 𝕝} {z : E} {s : Set E} {n : ℤ}
1005-
(h₁f : AnalyticWithinAt 𝕜 f s z) (h₂f : f z ≠ 0) :
1006-
AnalyticWithinAt 𝕜 (f ^ n) s z :=
1007-
fun_zpow h₁f h₂f
1008-
1009-
/-- ZPowers of analytic functions (into a normed field over `𝕜`) are analytic away from the zeros.
1010-
-/
1011-
lemma AnalyticAt.fun_zpow {f : E → 𝕝} {z : E} {n : ℤ} (h₁f : AnalyticAt 𝕜 f z) (h₂f : f z ≠ 0) :
1012-
AnalyticAt 𝕜 (fun x ↦ f x ^ n) z := by
914+
@[to_fun]
915+
lemma AnalyticAt.zpow {f : E → 𝕝} {z : E} {n : ℤ} (h₁f : AnalyticAt 𝕜 f z) (h₂f : f z ≠ 0) :
916+
AnalyticAt 𝕜 (f ^ n) z := by
1013917
by_cases hn : 0 ≤ n
1014918
· exact zpow_nonneg h₁f hn
1015919
· rw [(Int.eq_neg_comm.mp rfl : n = - (- n))]
@@ -1018,37 +922,19 @@ lemma AnalyticAt.fun_zpow {f : E → 𝕝} {z : E} {n : ℤ} (h₁f : AnalyticAt
1018922

1019923
/-- ZPowers of analytic functions (into a normed field over `𝕜`) are analytic away from the zeros.
1020924
-/
1021-
lemma AnalyticAt.zpow {f : E → 𝕝} {z : E} {n : ℤ} (h₁f : AnalyticAt 𝕜 f z) (h₂f : f z ≠ 0) :
1022-
AnalyticAt 𝕜 (f ^ n) z := by
1023-
exact fun_zpow h₁f h₂f
1024-
1025-
/-- ZPowers of analytic functions (into a normed field over `𝕜`) are analytic away from the zeros.
1026-
-/
1027-
lemma AnalyticOn.fun_zpow {f : E → 𝕝} {s : Set E} {n : ℤ} (h₁f : AnalyticOn 𝕜 f s)
1028-
(h₂f : ∀ z ∈ s, f z ≠ 0) :
1029-
AnalyticOn 𝕜 (fun x ↦ f x ^ n) s :=
1030-
fun z hz ↦ (h₁f z hz).zpow (h₂f z hz)
1031-
1032-
/-- ZPowers of analytic functions (into a normed field over `𝕜`) are analytic away from the zeros.
1033-
-/
925+
@[to_fun]
1034926
lemma AnalyticOn.zpow {f : E → 𝕝} {s : Set E} {n : ℤ} (h₁f : AnalyticOn 𝕜 f s)
1035927
(h₂f : ∀ z ∈ s, f z ≠ 0) :
1036-
AnalyticOn 𝕜 (f ^ n) s := by
1037-
exact fun_zpow h₁f h₂f
1038-
1039-
/-- ZPowers of analytic functions (into a normed field over `𝕜`) are analytic away from the zeros.
1040-
-/
1041-
lemma AnalyticOnNhd.fun_zpow {f : E → 𝕝} {s : Set E} {n : ℤ} (h₁f : AnalyticOnNhd 𝕜 f s)
1042-
(h₂f : ∀ z ∈ s, f z ≠ 0) :
1043-
AnalyticOnNhd 𝕜 (fun x ↦ f x ^ n) s :=
928+
AnalyticOn 𝕜 (f ^ n) s :=
1044929
fun z hz ↦ (h₁f z hz).zpow (h₂f z hz)
1045930

1046931
/-- ZPowers of analytic functions (into a normed field over `𝕜`) are analytic away from the zeros.
1047932
-/
933+
@[to_fun]
1048934
lemma AnalyticOnNhd.zpow {f : E → 𝕝} {s : Set E} {n : ℤ} (h₁f : AnalyticOnNhd 𝕜 f s)
1049935
(h₂f : ∀ z ∈ s, f z ≠ 0) :
1050936
AnalyticOnNhd 𝕜 (f ^ n) s :=
1051-
fun_zpow h₁f h₂f
937+
fun z hz ↦ (h₁f z hz).zpow (h₂f z hz)
1052938

1053939
/- A function is analytic at a point iff it is analytic after scalar
1054940
multiplication with a non-vanishing analytic function. -/

0 commit comments

Comments
 (0)