awhecmu/canonical-drafter-extract-mathlib huggingface dataset:
-- Lean 4 proof step from Mathlib.Analysis.Meromorphic.Order (goal)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
x : 𝕜
f g : 𝕜 → 𝕜
hf : MeromorphicAt f x
hg : MeromorphicAt g x
⊢ meromorphicOrderAt (f / g) x = meromorphicOrderAt f x - meromorphicOrderAt g x
have rw : meromorphicOrderAt (f * g⁻¹) x = meromorphicOrderAt f x - meromorphicOrderAt g x
Tactic: rw [div_eq_mul_inv, meromorphicOrderAt_mul hf hg.inv, meromorphicOrderAt_inv, sub_eq_add_neg]
-- Lean 4 proof step from Mathlib.Analysis.Meromorphic.Order (goal)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
x : 𝕜
f g : 𝕜 → 𝕜
hf : MeromorphicAt f x
hg : MeromorphicAt g x
rw : meromorphicOrderAt (f * g⁻¹) x = meromorphicOrderAt f x - meromorphicOrderAt g x
⊢ meromorphicOrderAt (f / g) x = meromorphicOrderAt f x - meromorphicOrderAt g x
have rw₁ : meromorphicOrderAt f x + meromorphicOrderAt g⁻¹ x = meromorphicOrderAt f x - meromorphicOrderAt g x
Tactic: rw [div_eq_mul_inv, meromorphicOrderAt_mul hf hg.inv, meromorphicOrderAt_inv, sub_eq_add_neg]
-- Lean 4 proof step from Mathlib.Analysis.Meromorphic.Order (goal)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
x : 𝕜
f g : 𝕜 → 𝕜
hf : MeromorphicAt f x
hg : MeromorphicAt g x
rw : meromorphicOrderAt (f * g⁻¹) x = meromorphicOrderAt f x - meromorphicOrderAt g x
rw₁ : meromorphicOrderAt f x + meromorphicOrderAt g⁻¹ x = meromorphicOrderAt f x - meromorphicOrderAt g x
⊢ meromorphicOrderAt (f / g) x = meromorphicOrderAt f x - meromorphicOrderAt g x
have rw₂ : meromorphicOrderAt f x + -meromorphicOrderAt g x = meromorphicOrderAt f x - meromorphicOrderAt g x
Tactic: rw [div_eq_mul_inv, meromorphicOrderAt_mul hf hg.inv, meromorphicOrderAt_inv, sub_eq_add_neg]
-- Lean 4 proof step from Mathlib.Analysis.Meromorphic.Order (goal)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
x : 𝕜
f g : 𝕜 → 𝕜
hf : MeromorphicAt f x
hg : MeromorphicAt g x
rw : meromorphicOrderAt (f * g⁻¹) x = meromorphicOrderAt f x - meromorphicOrderAt g x
rw₁ : meromorphicOrderAt f x + meromorphicOrderAt g⁻¹ x = meromorphicOrderAt f x - meromorphicOrderAt g x
rw₂ : meromorphicOrderAt f x + -meromorphicOrderAt g x = meromorphicOrderAt f x - meromorphicOrderAt g x
⊢ meromorphicOrderAt (f / g) x = meromorphicOrderAt f x - meromorphicOrderAt g x
have rw₃ : meromorphicOrderAt f x + -meromorphicOrderAt g x = meromorphicOrderAt f x + -meromorphicOrderAt g x
Tactic: rw [div_eq_mul_inv, meromorphicOrderAt_mul hf hg.inv, meromorphicOrderAt_inv, sub_eq_add_neg]
-- Lean 4 proof step from Mathlib.Analysis.Meromorphic.Order (goal)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
E : Type u_2
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
f₁ f₂ : 𝕜 → E
x : 𝕜
hf₁ : meromorphicOrderAt f₁ x = ⊤
⊢ meromorphicOrderAt (f₁ + f₂) x = meromorphicOrderAt f₂ x
have rw : f₁ + f₂ =ᶠ[𝓝[≠] x] f₂
Tactic: rw [meromorphicOrderAt_congr]
-- Lean 4 proof step from Mathlib.Analysis.Meromorphic.Order (goal)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
E : Type u_2
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
f₁ f₂ : 𝕜 → E
x : 𝕜
hf₁ : meromorphicOrderAt f₁ x = ⊤
⊢ f₁ + f₂ =ᶠ[𝓝[≠] x] f₂
have h : ∀ (z : 𝕜) (hz : f₁ z = 0), (f₁ + f₂) z = f₂ z
Tactic: filter_upwards [meromorphicOrderAt_eq_top_iff.1 hf₁] with z hz
-- Lean 4 proof step from Mathlib.Analysis.Meromorphic.Order (goal)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
E : Type u_2
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
f₁ f₂ : 𝕜 → E
x : 𝕜
hf₂ : meromorphicOrderAt f₂ x = ⊤
⊢ meromorphicOrderAt (f₁ + f₂) x = meromorphicOrderAt f₁ x
have rw : meromorphicOrderAt (f₂ + f₁) x = meromorphicOrderAt f₁ x
Tactic: rw [add_comm, meromorphicOrderAt_add_of_top_left hf₂]
-- Lean 4 proof step from Mathlib.Analysis.Meromorphic.Order (goal)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
E : Type u_2
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
f₁ f₂ : 𝕜 → E
x : 𝕜
hf₂ : meromorphicOrderAt f₂ x = ⊤
rw : meromorphicOrderAt (f₂ + f₁) x = meromorphicOrderAt f₁ x
⊢ meromorphicOrderAt (f₁ + f₂) x = meromorphicOrderAt f₁ x
have rw₁ : meromorphicOrderAt f₁ x = meromorphicOrderAt f₁ x
Tactic: rw [add_comm, meromorphicOrderAt_add_of_top_left hf₂]
-- Lean 4 proof step from Mathlib.Analysis.Meromorphic.Order (goal)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
E : Type u_2
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
f₁ f₂ : 𝕜 → E
x : 𝕜
hf₁ : MeromorphicAt f₁ x
hf₂ : MeromorphicAt f₂ x
⊢ min (meromorphicOrderAt f₁ x) (meromorphicOrderAt f₂ x) ≤ meromorphicOrderAt (f₁ + f₂) x
have pos : ∀ (h₂f₁ : meromorphicOrderAt f₁ x = ⊤),
  min (meromorphicOrderAt f₁ x) (meromorphicOrderAt f₂ x) ≤ meromorphicOrderAt (f₁ + f₂) x
Tactic: by_cases h₂f₁ : meromorphicOrderAt f₁ x = ⊤
-- Lean 4 proof step from Mathlib.Analysis.Meromorphic.Order (goal)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
E : Type u_2
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
f₁ f₂ : 𝕜 → E
x : 𝕜
hf₁ : MeromorphicAt f₁ x
hf₂ : MeromorphicAt f₂ x
pos :
  ∀ (h₂f₁ : meromorphicOrderAt f₁ x = ⊤),
    min (meromorphicOrderAt f₁ x) (meromorphicOrderAt f₂ x) ≤ meromorphicOrderAt (f₁ + f₂) x
⊢ min (meromorphicOrderAt f₁ x) (meromorphicOrderAt f₂ x) ≤ meromorphicOrderAt (f₁ + f₂) x
have neg : ∀ (h₂f₁ : ¬meromorphicOrderAt f₁ x = ⊤),
  min (meromorphicOrderAt f₁ x) (meromorphicOrderAt f₂ x) ≤ meromorphicOrderAt (f₁ + f₂) x
Tactic: by_cases h₂f₁ : meromorphicOrderAt f₁ x = ⊤
-- Lean 4 proof step from Mathlib.Analysis.Meromorphic.Order (goal)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
E : Type u_2
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
f₁ f₂ : 𝕜 → E
x : 𝕜
hf₁ : MeromorphicAt f₁ x
hf₂ : MeromorphicAt f₂ x
h₂f₁ : meromorphicOrderAt f₁ x = ⊤
⊢ min (meromorphicOrderAt f₁ x) (meromorphicOrderAt f₂ x) ≤ meromorphicOrderAt (f₁ + f₂) x
have pos : f₂ =ᶠ[𝓝[≠] x] f₁ + f₂
Tactic: rw [h₂f₁, min_top_left, meromorphicOrderAt_congr]
-- Lean 4 proof step from Mathlib.Analysis.Meromorphic.Order (goal)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
E : Type u_2
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
f₁ f₂ : 𝕜 → E
x : 𝕜
hf₁ : MeromorphicAt f₁ x
hf₂ : MeromorphicAt f₂ x
h₂f₁ : meromorphicOrderAt f₁ x = ⊤
⊢ f₂ =ᶠ[𝓝[≠] x] f₁ + f₂
have h : ∀ (a : 𝕜), f₁ a = 0 → f₂ a = (f₁ + f₂) a
Tactic: filter_upwards [meromorphicOrderAt_eq_top_iff.1 h₂f₁]
-- Lean 4 proof step from Mathlib.Analysis.Meromorphic.Order (goal)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
E : Type u_2
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
f₁ f₂ : 𝕜 → E
x : 𝕜
hf₁ : MeromorphicAt f₁ x
hf₂ : MeromorphicAt f₂ x
h₂f₁ : ¬meromorphicOrderAt f₁ x = ⊤
⊢ min (meromorphicOrderAt f₁ x) (meromorphicOrderAt f₂ x) ≤ meromorphicOrderAt (f₁ + f₂) x
have pos : ∀ (h₂f₂ : meromorphicOrderAt f₂ x = ⊤),
  min (meromorphicOrderAt f₁ x) (meromorphicOrderAt f₂ x) ≤ meromorphicOrderAt (f₁ + f₂) x
Tactic: by_cases h₂f₂ : meromorphicOrderAt f₂ x = ⊤
-- Lean 4 proof step from Mathlib.Analysis.Meromorphic.Order (goal)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
E : Type u_2
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
f₁ f₂ : 𝕜 → E
x : 𝕜
hf₁ : MeromorphicAt f₁ x
hf₂ : MeromorphicAt f₂ x
h₂f₁ : ¬meromorphicOrderAt f₁ x = ⊤
pos :
  ∀ (h₂f₂ : meromorphicOrderAt f₂ x = ⊤),
    min (meromorphicOrderAt f₁ x) (meromorphicOrderAt f₂ x) ≤ meromorphicOrderAt (f₁ + f₂) x
⊢ min (meromorphicOrderAt f₁ x) (meromorphicOrderAt f₂ x) ≤ meromorphicOrderAt (f₁ + f₂) x
have neg : ∀ (h₂f₂ : ¬meromorphicOrderAt f₂ x = ⊤),
  min (meromorphicOrderAt f₁ x) (meromorphicOrderAt f₂ x) ≤ meromorphicOrderAt (f₁ + f₂) x
Tactic: by_cases h₂f₂ : meromorphicOrderAt f₂ x = ⊤
-- Lean 4 proof step from Mathlib.Analysis.Meromorphic.Order (goal)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
E : Type u_2
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
f₁ f₂ : 𝕜 → E
x : 𝕜
hf₁ : MeromorphicAt f₁ x
hf₂ : MeromorphicAt f₂ x
h₂f₁ : ¬meromorphicOrderAt f₁ x = ⊤
h₂f₂ : meromorphicOrderAt f₂ x = ⊤
⊢ min (meromorphicOrderAt f₁ x) (meromorphicOrderAt f₂ x) ≤ meromorphicOrderAt (f₁ + f₂) x
have pos : meromorphicOrderAt f₁ x ≤ meromorphicOrderAt (f₁ + f₂) x
Tactic: simp only [h₂f₂, le_top, inf_of_le_left]
-- Lean 4 proof step from Mathlib.Analysis.Meromorphic.Order (goal)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
E : Type u_2
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
f₁ f₂ : 𝕜 → E
x : 𝕜
hf₁ : MeromorphicAt f₁ x
hf₂ : MeromorphicAt f₂ x
h₂f₁ : ¬meromorphicOrderAt f₁ x = ⊤
h₂f₂ : meromorphicOrderAt f₂ x = ⊤
⊢ meromorphicOrderAt f₁ x ≤ meromorphicOrderAt (f₁ + f₂) x
have pos : f₁ =ᶠ[𝓝[≠] x] f₁ + f₂
Tactic: rw [meromorphicOrderAt_congr]
-- Lean 4 proof step from Mathlib.Analysis.Meromorphic.Order (goal)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
E : Type u_2
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
f₁ f₂ : 𝕜 → E
x : 𝕜
hf₁ : MeromorphicAt f₁ x
hf₂ : MeromorphicAt f₂ x
h₂f₁ : ¬meromorphicOrderAt f₁ x = ⊤
h₂f₂ : meromorphicOrderAt f₂ x = ⊤
⊢ f₁ =ᶠ[𝓝[≠] x] f₁ + f₂
have h : ∀ (a : 𝕜), f₂ a = 0 → f₁ a = (f₁ + f₂) a
Tactic: filter_upwards [meromorphicOrderAt_eq_top_iff.1 h₂f₂]
-- Lean 4 proof step from Mathlib.Analysis.Meromorphic.Order (goal)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
E : Type u_2
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
f₁ f₂ : 𝕜 → E
x : 𝕜
hf₁ : MeromorphicAt f₁ x
hf₂ : MeromorphicAt f₂ x
h₂f₁ : ¬meromorphicOrderAt f₁ x = ⊤
h₂f₂ : ¬meromorphicOrderAt f₂ x = ⊤
⊢ min (meromorphicOrderAt f₁ x) (meromorphicOrderAt f₂ x) ≤ meromorphicOrderAt (f₁ + f₂) x
have neg : ∀ (n₁ : ℤ) (hn₁ : (↑n₁ : WithTop ℤ) = meromorphicOrderAt f₁ x)
  (meromorphicOrderAt_add :
    ∀ (hf₁ : MeromorphicAt f₁ x) (hf₂ : MeromorphicAt f₂ x),
      min (↑n₁ : WithTop ℤ) (meromorphicOrderAt f₂ x) ≤ meromorphicOrderAt (f₁ + f₂) x),
  min (↑n₁ : WithTop ℤ) (meromorphicOrderAt f₂ x) ≤ meromorphicOrderAt (f₁ + f₂) x
Tactic: lift meromorphicOrderAt f₁ x to ℤ using h₂f₁ with n₁ hn₁
Cleared hypotheses: h₂f₁
-- Lean 4 proof step from Mathlib.Analysis.Meromorphic.Order (goal)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
E : Type u_2
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
f₁ f₂ : 𝕜 → E
x : 𝕜
hf₁ : MeromorphicAt f₁ x
hf₂ : MeromorphicAt f₂ x
h₂f₂ : ¬meromorphicOrderAt f₂ x = ⊤
n₁ : ℤ
hn₁ : (↑n₁ : WithTop ℤ) = meromorphicOrderAt f₁ x
meromorphicOrderAt_add :
  ∀ (hf₁ : MeromorphicAt f₁ x) (hf₂ : MeromorphicAt f₂ x),
    min (↑n₁ : WithTop ℤ) (meromorphicOrderAt f₂ x) ≤ meromorphicOrderAt (f₁ + f₂) x
⊢ min (↑n₁ : WithTop ℤ) (meromorphicOrderAt f₂ x) ≤ meromorphicOrderAt (f₁ + f₂) x
have neg : ∀ (n₂ : ℤ) (hn₂ : (↑n₂ : WithTop ℤ) = meromorphicOrderAt f₂ x)
  (meromorphicOrderAt_add :
    ∀ (hf₁ : MeromorphicAt f₁ x) (hf₂ : MeromorphicAt f₂ x),
      min (↑n₁ : WithTop ℤ) (↑n₂ : WithTop ℤ) ≤ meromorphicOrderAt (f₁ + f₂) x),
  min (↑n₁ : WithTop ℤ) (↑n₂ : WithTop ℤ) ≤ meromorphicOrderAt (f₁ + f₂) x
Tactic: lift meromorphicOrderAt f₂ x to ℤ using h₂f₂ with n₂ hn₂
Cleared hypotheses: h₂f₂, meromorphicOrderAt_add
-- Lean 4 proof step from Mathlib.Analysis.Meromorphic.Order (goal)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
E : Type u_2
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
f₁ f₂ : 𝕜 → E
x : 𝕜
hf₁ : MeromorphicAt f₁ x
hf₂ : MeromorphicAt f₂ x
n₁ : ℤ
hn₁ : (↑n₁ : WithTop ℤ) = meromorphicOrderAt f₁ x
n₂ : ℤ
hn₂ : (↑n₂ : WithTop ℤ) = meromorphicOrderAt f₂ x
meromorphicOrderAt_add :
  ∀ (hf₁ : MeromorphicAt f₁ x) (hf₂ : MeromorphicAt f₂ x),
    min (↑n₁ : WithTop ℤ) (↑n₂ : WithTop ℤ) ≤ meromorphicOrderAt (f₁ + f₂) x
⊢ min (↑n₁ : WithTop ℤ) (↑n₂ : WithTop ℤ) ≤ meromorphicOrderAt (f₁ + f₂) x
have neg : ∀ (g₁ : 𝕜 → E) (h₁g₁ : AnalyticAt 𝕜 g₁ x) (h₂g₁ : g₁ x ≠ 0) (h₃g₁ : ∀ᶠ (z : 𝕜) in 𝓝[≠] x, f₁ z = (z - x) ^ n₁ • g₁ z),
  min (↑n₁ : WithTop ℤ) (↑n₂ : WithTop ℤ) ≤ meromorphicOrderAt (f₁ + f₂) x
Tactic: obtain ⟨g₁, h₁g₁, h₂g₁, h₃g₁⟩ := (meromorphicOrderAt_eq_int_iff hf₁).1 hn₁.symm
-- Lean 4 proof step from Mathlib.Analysis.Meromorphic.Order (goal)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
E : Type u_2
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
f₁ f₂ : 𝕜 → E
x : 𝕜
hf₁ : MeromorphicAt f₁ x
hf₂ : MeromorphicAt f₂ x
n₁ : ℤ
hn₁ : (↑n₁ : WithTop ℤ) = meromorphicOrderAt f₁ x
n₂ : ℤ
hn₂ : (↑n₂ : WithTop ℤ) = meromorphicOrderAt f₂ x
meromorphicOrderAt_add :
  ∀ (hf₁ : MeromorphicAt f₁ x) (hf₂ : MeromorphicAt f₂ x),
    min (↑n₁ : WithTop ℤ) (↑n₂ : WithTop ℤ) ≤ meromorphicOrderAt (f₁ + f₂) x
g₁ : 𝕜 → E
h₁g₁ : AnalyticAt 𝕜 g₁ x
h₂g₁ : g₁ x ≠ 0
h₃g₁ : ∀ᶠ (z : 𝕜) in 𝓝[≠] x, f₁ z = (z - x) ^ n₁ • g₁ z
⊢ min (↑n₁ : WithTop ℤ) (↑n₂ : WithTop ℤ) ≤ meromorphicOrderAt (f₁ + f₂) x
have neg : ∀ (g₂ : 𝕜 → E) (h₁g₂ : AnalyticAt 𝕜 g₂ x) (h₂g₂ : g₂ x ≠ 0) (h₃g₂ : ∀ᶠ (z : 𝕜) in 𝓝[≠] x, f₂ z = (z - x) ^ n₂ • g₂ z),
  min (↑n₁ : WithTop ℤ) (↑n₂ : WithTop ℤ) ≤ meromorphicOrderAt (f₁ + f₂) x
Tactic: obtain ⟨g₂, h₁g₂, h₂g₂, h₃g₂⟩ := (meromorphicOrderAt_eq_int_iff hf₂).1 hn₂.symm
-- Lean 4 proof step from Mathlib.Analysis.Meromorphic.Order (goal)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
E : Type u_2
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
f₁ f₂ : 𝕜 → E
x : 𝕜
hf₁ : MeromorphicAt f₁ x
hf₂ : MeromorphicAt f₂ x
n₁ : ℤ
hn₁ : (↑n₁ : WithTop ℤ) = meromorphicOrderAt f₁ x
n₂ : ℤ
hn₂ : (↑n₂ : WithTop ℤ) = meromorphicOrderAt f₂ x
meromorphicOrderAt_add :
  ∀ (hf₁ : MeromorphicAt f₁ x) (hf₂ : MeromorphicAt f₂ x),
    min (↑n₁ : WithTop ℤ) (↑n₂ : WithTop ℤ) ≤ meromorphicOrderAt (f₁ + f₂) x
g₁ : 𝕜 → E
h₁g₁ : AnalyticAt 𝕜 g₁ x
h₂g₁ : g₁ x ≠ 0
h₃g₁ : ∀ᶠ (z : 𝕜) in 𝓝[≠] x, f₁ z = (z - x) ^ n₁ • g₁ z
g₂ : 𝕜 → E
h₁g₂ : AnalyticAt 𝕜 g₂ x
h₂g₂ : g₂ x ≠ 0
h₃g₂ : ∀ᶠ (z : 𝕜) in 𝓝[≠] x, f₂ z = (z - x) ^ n₂ • g₂ z
n : ℤ := min n₁ n₂
g : 𝕜 → E :=
  HSMul.hSMul (α := (z : 𝕜) → 𝕜) (fun (z : 𝕜) ↦ (z - x) ^ (n₁ - n)) g₁ +
    HSMul.hSMul (α := (z : 𝕜) → 𝕜) (fun (z : 𝕜) ↦ (z - x) ^ (n₂ - n)) g₂
⊢ AnalyticAt 𝕜 g x
have hf : AnalyticAt 𝕜 (HSMul.hSMul (α := (z : 𝕜) → 𝕜) (fun (z : 𝕜) ↦ (z - x) ^ (n₁ - n)) g₁) x
Tactic: apply AnalyticAt.add
-- Lean 4 proof step from Mathlib.Analysis.Meromorphic.Order (goal)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
E : Type u_2
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
f₁ f₂ : 𝕜 → E
x : 𝕜
hf₁ : MeromorphicAt f₁ x
hf₂ : MeromorphicAt f₂ x
n₁ : ℤ
hn₁ : (↑n₁ : WithTop ℤ) = meromorphicOrderAt f₁ x
n₂ : ℤ
hn₂ : (↑n₂ : WithTop ℤ) = meromorphicOrderAt f₂ x
meromorphicOrderAt_add :
  ∀ (hf₁ : MeromorphicAt f₁ x) (hf₂ : MeromorphicAt f₂ x),
    min (↑n₁ : WithTop ℤ) (↑n₂ : WithTop ℤ) ≤ meromorphicOrderAt (f₁ + f₂) x
g₁ : 𝕜 → E
h₁g₁ : AnalyticAt 𝕜 g₁ x
h₂g₁ : g₁ x ≠ 0
h₃g₁ : ∀ᶠ (z : 𝕜) in 𝓝[≠] x, f₁ z = (z - x) ^ n₁ • g₁ z
g₂ : 𝕜 → E
h₁g₂ : AnalyticAt 𝕜 g₂ x
h₂g₂ : g₂ x ≠ 0
h₃g₂ : ∀ᶠ (z : 𝕜) in 𝓝[≠] x, f₂ z = (z - x) ^ n₂ • g₂ z
n : ℤ := min n₁ n₂
g : 𝕜 → E :=
  HSMul.hSMul (α := (z : 𝕜) → 𝕜) (fun (z : 𝕜) ↦ (z - x) ^ (n₁ - n)) g₁ +
    HSMul.hSMul (α := (z : 𝕜) → 𝕜) (fun (z : 𝕜) ↦ (z - x) ^ (n₂ - n)) g₂
hf : AnalyticAt 𝕜 (HSMul.hSMul (α := (z : 𝕜) → 𝕜) (fun (z : 𝕜) ↦ (z - x) ^ (n₁ - n)) g₁) x
⊢ AnalyticAt 𝕜 g x
have hg : AnalyticAt 𝕜 (HSMul.hSMul (α := (z : 𝕜) → 𝕜) (fun (z : 𝕜) ↦ (z - x) ^ (n₂ - n)) g₂) x
Tactic: apply AnalyticAt.add
-- Lean 4 proof step from Mathlib.Analysis.Meromorphic.Order (hypothesis)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
E : Type u_2
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
f₁ f₂ : 𝕜 → E
x : 𝕜
hf₁ : MeromorphicAt f₁ x
hf₂ : MeromorphicAt f₂ x
n₁ : ℤ
hn₁ : (↑n₁ : WithTop ℤ) = meromorphicOrderAt f₁ x
n₂ : ℤ
hn₂ : (↑n₂ : WithTop ℤ) = meromorphicOrderAt f₂ x
meromorphicOrderAt_add :
  ∀ (hf₁ : MeromorphicAt f₁ x) (hf₂ : MeromorphicAt f₂ x),
    min (↑n₁ : WithTop ℤ) (↑n₂ : WithTop ℤ) ≤ meromorphicOrderAt (f₁ + f₂) x
g₁ : 𝕜 → E
h₁g₁ : AnalyticAt 𝕜 g₁ x
h₂g₁ : g₁ x ≠ 0
h₃g₁ : ∀ᶠ (z : 𝕜) in 𝓝[≠] x, f₁ z = (z - x) ^ n₁ • g₁ z
g₂ : 𝕜 → E
h₁g₂ : AnalyticAt 𝕜 g₂ x
h₂g₂ : g₂ x ≠ 0
h₃g₂ : ∀ᶠ (z : 𝕜) in 𝓝[≠] x, f₂ z = (z - x) ^ n₂ • g₂ z
n : ℤ := min n₁ n₂
g : 𝕜 → E :=
  HSMul.hSMul (α := (z : 𝕜) → 𝕜) (fun (z : 𝕜) ↦ (z - x) ^ (n₁ - n)) g₁ +
    HSMul.hSMul (α := (z : 𝕜) → 𝕜) (fun (z : 𝕜) ↦ (z - x) ^ (n₂ - n)) g₂
⊢ min (↑n₁ : WithTop ℤ) (↑n₂ : WithTop ℤ) ≤ meromorphicOrderAt (f₁ + f₂) x
have h₁g : AnalyticAt 𝕜 g x
Tactic: have h₁g : AnalyticAt 𝕜 g x := by
    apply AnalyticAt.add
    · apply (AnalyticAt.zpow_nonneg (by fun_prop) (sub_nonneg.2 (min_le_left n₁ n₂))).smul h₁g₁
    apply (AnalyticAt.zpow_nonneg (by fun_prop) (sub_nonneg.2 (min_le_right n₁ n₂))).smul h₁g₂
-- Lean 4 proof step from Mathlib.Analysis.Meromorphic.Order (goal)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
E : Type u_2
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
f₁ f₂ : 𝕜 → E
x : 𝕜
hf₁ : MeromorphicAt f₁ x
hf₂ : MeromorphicAt f₂ x
n₁ : ℤ
hn₁ : (↑n₁ : WithTop ℤ) = meromorphicOrderAt f₁ x
n₂ : ℤ
hn₂ : (↑n₂ : WithTop ℤ) = meromorphicOrderAt f₂ x
meromorphicOrderAt_add :
  ∀ (hf₁ : MeromorphicAt f₁ x) (hf₂ : MeromorphicAt f₂ x),
    min (↑n₁ : WithTop ℤ) (↑n₂ : WithTop ℤ) ≤ meromorphicOrderAt (f₁ + f₂) x
g₁ : 𝕜 → E
h₁g₁ : AnalyticAt 𝕜 g₁ x
h₂g₁ : g₁ x ≠ 0
h₃g₁ : ∀ᶠ (z : 𝕜) in 𝓝[≠] x, f₁ z = (z - x) ^ n₁ • g₁ z
g₂ : 𝕜 → E
h₁g₂ : AnalyticAt 𝕜 g₂ x
h₂g₂ : g₂ x ≠ 0
h₃g₂ : ∀ᶠ (z : 𝕜) in 𝓝[≠] x, f₂ z = (z - x) ^ n₂ • g₂ z
n : ℤ := min n₁ n₂
g : 𝕜 → E :=
  HSMul.hSMul (α := (z : 𝕜) → 𝕜) (fun (z : 𝕜) ↦ (z - x) ^ (n₁ - n)) g₁ +
    HSMul.hSMul (α := (z : 𝕜) → 𝕜) (fun (z : 𝕜) ↦ (z - x) ^ (n₂ - n)) g₂
h₁g : AnalyticAt 𝕜 g x
⊢ f₁ + f₂ =ᶠ[𝓝[≠] x] HPow.hPow (α := 𝕜 → 𝕜) (fun (x_1 : 𝕜) ↦ x_1 - x) n • g
have h : ∀ (a : 𝕜),
  f₁ a = (a - x) ^ n₁ • g₁ a →
    f₂ a = (a - x) ^ n₂ • g₂ a →
      Membership.mem (γ := Set 𝕜) {x}ᶜ a → (f₁ + f₂) a = (HPow.hPow (α := 𝕜 → 𝕜) (fun (x_1 : 𝕜) ↦ x_1 - x) n • g) a
Tactic: filter_upwards [h₃g₁, h₃g₂, self_mem_nhdsWithin]
-- Lean 4 proof step from Mathlib.Analysis.Meromorphic.Order (hypothesis)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
E : Type u_2
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
f₁ f₂ : 𝕜 → E
x : 𝕜
hf₁ : MeromorphicAt f₁ x
hf₂ : MeromorphicAt f₂ x
n₁ : ℤ
hn₁ : (↑n₁ : WithTop ℤ) = meromorphicOrderAt f₁ x
n₂ : ℤ
hn₂ : (↑n₂ : WithTop ℤ) = meromorphicOrderAt f₂ x
meromorphicOrderAt_add :
  ∀ (hf₁ : MeromorphicAt f₁ x) (hf₂ : MeromorphicAt f₂ x),
    min (↑n₁ : WithTop ℤ) (↑n₂ : WithTop ℤ) ≤ meromorphicOrderAt (f₁ + f₂) x
g₁ : 𝕜 → E
h₁g₁ : AnalyticAt 𝕜 g₁ x
h₂g₁ : g₁ x ≠ 0
h₃g₁ : ∀ᶠ (z : 𝕜) in 𝓝[≠] x, f₁ z = (z - x) ^ n₁ • g₁ z
g₂ : 𝕜 → E
h₁g₂ : AnalyticAt 𝕜 g₂ x
h₂g₂ : g₂ x ≠ 0
h₃g₂ : ∀ᶠ (z : 𝕜) in 𝓝[≠] x, f₂ z = (z - x) ^ n₂ • g₂ z
n : ℤ := min n₁ n₂
g : 𝕜 → E :=
  HSMul.hSMul (α := (z : 𝕜) → 𝕜) (fun (z : 𝕜) ↦ (z - x) ^ (n₁ - n)) g₁ +
    HSMul.hSMul (α := (z : 𝕜) → 𝕜) (fun (z : 𝕜) ↦ (z - x) ^ (n₂ - n)) g₂
h₁g : AnalyticAt 𝕜 g x
⊢ min (↑n₁ : WithTop ℤ) (↑n₂ : WithTop ℤ) ≤ meromorphicOrderAt (f₁ + f₂) x
have this : f₁ + f₂ =ᶠ[𝓝[≠] x] HPow.hPow (α := 𝕜 → 𝕜) (fun (x_1 : 𝕜) ↦ x_1 - x) n • g
Tactic: have : f₁ + f₂ =ᶠ[𝓝[≠] x] ((· - x) ^ n) • g := by
    filter_upwards [h₃g₁, h₃g₂, self_mem_nhdsWithin]
    simp_all [g, ← smul_assoc, ← zpow_add', sub_ne_zero]
-- Lean 4 proof step from Mathlib.Analysis.Meromorphic.Order (hypothesis)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
E : Type u_2
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
f₁ f₂ : 𝕜 → E
x : 𝕜
hf₁ : MeromorphicAt f₁ x
hf₂ : MeromorphicAt f₂ x
n₁ : ℤ
hn₁ : (↑n₁ : WithTop ℤ) = meromorphicOrderAt f₁ x
n₂ : ℤ
hn₂ : (↑n₂ : WithTop ℤ) = meromorphicOrderAt f₂ x
meromorphicOrderAt_add :
  ∀ (hf₁ : MeromorphicAt f₁ x) (hf₂ : MeromorphicAt f₂ x),
    min (↑n₁ : WithTop ℤ) (↑n₂ : WithTop ℤ) ≤ meromorphicOrderAt (f₁ + f₂) x
g₁ : 𝕜 → E
h₁g₁ : AnalyticAt 𝕜 g₁ x
h₂g₁ : g₁ x ≠ 0
h₃g₁ : ∀ᶠ (z : 𝕜) in 𝓝[≠] x, f₁ z = (z - x) ^ n₁ • g₁ z
g₂ : 𝕜 → E
h₁g₂ : AnalyticAt 𝕜 g₂ x
h₂g₂ : g₂ x ≠ 0
h₃g₂ : ∀ᶠ (z : 𝕜) in 𝓝[≠] x, f₂ z = (z - x) ^ n₂ • g₂ z
n : ℤ := min n₁ n₂
g : 𝕜 → E :=
  HSMul.hSMul (α := (z : 𝕜) → 𝕜) (fun (z : 𝕜) ↦ (z - x) ^ (n₁ - n)) g₁ +
    HSMul.hSMul (α := (z : 𝕜) → 𝕜) (fun (z : 𝕜) ↦ (z - x) ^ (n₂ - n)) g₂
h₁g : AnalyticAt 𝕜 g x
this : f₁ + f₂ =ᶠ[𝓝[≠] x] HPow.hPow (α := 𝕜 → 𝕜) (fun (x_1 : 𝕜) ↦ x_1 - x) n • g
⊢ min (↑n₁ : WithTop ℤ) (↑n₂ : WithTop ℤ) ≤ meromorphicOrderAt (f₁ + f₂) x
have t₀ : MeromorphicAt (HPow.hPow (α := 𝕜 → 𝕜) (fun (x_1 : 𝕜) ↦ x_1 - x) n) x
Tactic: have t₀ : MeromorphicAt ((· - x) ^ n) x := by fun_prop
-- Lean 4 proof step from Mathlib.Analysis.Meromorphic.Order (hypothesis)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
E : Type u_2
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
f₁ f₂ : 𝕜 → E
x : 𝕜
hf₁ : MeromorphicAt f₁ x
hf₂ : MeromorphicAt f₂ x
n₁ : ℤ
hn₁ : (↑n₁ : WithTop ℤ) = meromorphicOrderAt f₁ x
n₂ : ℤ
hn₂ : (↑n₂ : WithTop ℤ) = meromorphicOrderAt f₂ x
meromorphicOrderAt_add :
  ∀ (hf₁ : MeromorphicAt f₁ x) (hf₂ : MeromorphicAt f₂ x),
    min (↑n₁ : WithTop ℤ) (↑n₂ : WithTop ℤ) ≤ meromorphicOrderAt (f₁ + f₂) x
g₁ : 𝕜 → E
h₁g₁ : AnalyticAt 𝕜 g₁ x
h₂g₁ : g₁ x ≠ 0
h₃g₁ : ∀ᶠ (z : 𝕜) in 𝓝[≠] x, f₁ z = (z - x) ^ n₁ • g₁ z
g₂ : 𝕜 → E
h₁g₂ : AnalyticAt 𝕜 g₂ x
h₂g₂ : g₂ x ≠ 0
h₃g₂ : ∀ᶠ (z : 𝕜) in 𝓝[≠] x, f₂ z = (z - x) ^ n₂ • g₂ z
n : ℤ := min n₁ n₂
g : 𝕜 → E :=
  HSMul.hSMul (α := (z : 𝕜) → 𝕜) (fun (z : 𝕜) ↦ (z - x) ^ (n₁ - n)) g₁ +
    HSMul.hSMul (α := (z : 𝕜) → 𝕜) (fun (z : 𝕜) ↦ (z - x) ^ (n₂ - n)) g₂
h₁g : AnalyticAt 𝕜 g x
this : f₁ + f₂ =ᶠ[𝓝[≠] x] HPow.hPow (α := 𝕜 → 𝕜) (fun (x_1 : 𝕜) ↦ x_1 - x) n • g
t₀ : MeromorphicAt (HPow.hPow (α := 𝕜 → 𝕜) (fun (x_1 : 𝕜) ↦ x_1 - x) n) x
⊢ min (↑n₁ : WithTop ℤ) (↑n₂ : WithTop ℤ) ≤ meromorphicOrderAt (f₁ + f₂) x
have t₁ : meromorphicOrderAt (HPow.hPow (α := 𝕜 → 𝕜) (fun (x_1 : 𝕜) ↦ x_1 - x) n) x = (↑n : WithTop ℤ)
Tactic: have t₁ : meromorphicOrderAt ((· - x) ^ n) x = n :=
    (meromorphicOrderAt_eq_int_iff t₀).2 ⟨1, analyticAt_const, by simp⟩
-- Lean 4 proof step from Mathlib.Analysis.Meromorphic.Order (goal)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
E : Type u_2
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
f₁ f₂ : 𝕜 → E
x : 𝕜
hf₁ : MeromorphicAt f₁ x
hf₂ : MeromorphicAt f₂ x
n₁ : ℤ
hn₁ : (↑n₁ : WithTop ℤ) = meromorphicOrderAt f₁ x
n₂ : ℤ
hn₂ : (↑n₂ : WithTop ℤ) = meromorphicOrderAt f₂ x
meromorphicOrderAt_add :
  ∀ (hf₁ : MeromorphicAt f₁ x) (hf₂ : MeromorphicAt f₂ x),
    min (↑n₁ : WithTop ℤ) (↑n₂ : WithTop ℤ) ≤ meromorphicOrderAt (f₁ + f₂) x
g₁ : 𝕜 → E
h₁g₁ : AnalyticAt 𝕜 g₁ x
h₂g₁ : g₁ x ≠ 0
h₃g₁ : ∀ᶠ (z : 𝕜) in 𝓝[≠] x, f₁ z = (z - x) ^ n₁ • g₁ z
g₂ : 𝕜 → E
h₁g₂ : AnalyticAt 𝕜 g₂ x
h₂g₂ : g₂ x ≠ 0
h₃g₂ : ∀ᶠ (z : 𝕜) in 𝓝[≠] x, f₂ z = (z - x) ^ n₂ • g₂ z
n : ℤ := min n₁ n₂
g : 𝕜 → E :=
  HSMul.hSMul (α := (z : 𝕜) → 𝕜) (fun (z : 𝕜) ↦ (z - x) ^ (n₁ - n)) g₁ +
    HSMul.hSMul (α := (z : 𝕜) → 𝕜) (fun (z : 𝕜) ↦ (z - x) ^ (n₂ - n)) g₂
h₁g : AnalyticAt 𝕜 g x
this : f₁ + f₂ =ᶠ[𝓝[≠] x] HPow.hPow (α := 𝕜 → 𝕜) (fun (x_1 : 𝕜) ↦ x_1 - x) n • g
t₀ : MeromorphicAt (HPow.hPow (α := 𝕜 → 𝕜) (fun (x_1 : 𝕜) ↦ x_1 - x) n) x
t₁ : meromorphicOrderAt (HPow.hPow (α := 𝕜 → 𝕜) (fun (x_1 : 𝕜) ↦ x_1 - x) n) x = (↑n : WithTop ℤ)
⊢ min (↑n₁ : WithTop ℤ) (↑n₂ : WithTop ℤ) ≤ meromorphicOrderAt (f₁ + f₂) x
have neg : min (↑n₁ : WithTop ℤ) (↑n₂ : WithTop ℤ) ≤ (↑n : WithTop ℤ) + meromorphicOrderAt g x
Tactic: rw [meromorphicOrderAt_congr this, meromorphicOrderAt_smul t₀ h₁g.meromorphicAt, t₁]
-- Lean 4 proof step from Mathlib.Analysis.Meromorphic.Order (goal)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
E : Type u_2
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
f₁ f₂ : 𝕜 → E
x : 𝕜
hf₂ : MeromorphicAt f₂ x
h : meromorphicOrderAt f₁ x < meromorphicOrderAt f₂ x
⊢ meromorphicOrderAt (f₁ + f₂) x = meromorphicOrderAt f₁ x
have pos : ∀ (hf₁ : MeromorphicAt f₁ x), meromorphicOrderAt (f₁ + f₂) x = meromorphicOrderAt f₁ x
Tactic: by_cases hf₁ : MeromorphicAt f₁ x
-- Lean 4 proof step from Mathlib.Analysis.Meromorphic.Order (goal)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
E : Type u_2
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
f₁ f₂ : 𝕜 → E
x : 𝕜
hf₂ : MeromorphicAt f₂ x
h : meromorphicOrderAt f₁ x < meromorphicOrderAt f₂ x
pos : ∀ (hf₁ : MeromorphicAt f₁ x), meromorphicOrderAt (f₁ + f₂) x = meromorphicOrderAt f₁ x
⊢ meromorphicOrderAt (f₁ + f₂) x = meromorphicOrderAt f₁ x
have neg : ∀ (hf₁ : ¬MeromorphicAt f₁ x), meromorphicOrderAt (f₁ + f₂) x = meromorphicOrderAt f₁ x
Tactic: by_cases hf₁ : MeromorphicAt f₁ x