Theorem: Complex.differentiableAt_Gamma
File: Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean

Proof steps:
state_before: s : ℂ
hs : ∀ (m : ℕ), s ≠ -↑m
⊢ DifferentiableAt ℂ Gamma s
state_after: s : ℂ
hs : ∀ (m : ℕ), s ≠ -↑m
n : ℕ := ⌊1 - s.re⌋₊ + 1
⊢ DifferentiableAt ℂ Gamma s
tactic: let n := ⌊1 - s.re⌋₊ + 1
state_before: s : ℂ
hs : ∀ (m : ℕ), s ≠ -↑m
n : ℕ := ⌊1 - s.re⌋₊ + 1
⊢ DifferentiableAt ℂ Gamma s
state_after: s : ℂ
hs : ∀ (m : ℕ), s ≠ -↑m
n : ℕ := ⌊1 - s.re⌋₊ + 1
hn : 1 - s.re < ↑n
⊢ DifferentiableAt ℂ Gamma s
tactic: have hn : 1 - s.re < n := mod_cast Nat.lt_floor_add_one (1 - s.re)
state_before: s : ℂ
hs : ∀ (m : ℕ), s ≠ -↑m
n : ℕ := ⌊1 - s.re⌋₊ + 1
hn : 1 - s.re < ↑n
⊢ DifferentiableAt ℂ Gamma s
state_after: s : ℂ
hs : ∀ (m : ℕ), s ≠ -↑m
n : ℕ := ⌊1 - s.re⌋₊ + 1
hn : 1 - s.re < ↑n
⊢ Gamma =ᶠ[𝓝 s] GammaAux n
tactic: apply (differentiableAt_GammaAux s n hn hs).congr_of_eventuallyEq
state_before: s : ℂ
hs : ∀ (m : ℕ), s ≠ -↑m
n : ℕ := ⌊1 - s.re⌋₊ + 1
hn : 1 - s.re < ↑n
⊢ Gamma =ᶠ[𝓝 s] GammaAux n
state_after: s : ℂ
hs : ∀ (m : ℕ), s ≠ -↑m
n : ℕ := ⌊1 - s.re⌋₊ + 1
hn : 1 - s.re < ↑n
S : Set ℂ := {t | 1 - t.re < ↑n}
⊢ Gamma =ᶠ[𝓝 s] GammaAux n
tactic: let S := {t : ℂ | 1 - t.re < n}
state_before: s : ℂ
hs : ∀ (m : ℕ), s ≠ -↑m
n : ℕ := ⌊1 - s.re⌋₊ + 1
hn : 1 - s.re < ↑n
S : Set ℂ := {t | 1 - t.re < ↑n}
⊢ Gamma =ᶠ[𝓝 s] GammaAux n
state_after: s : ℂ
hs : ∀ (m : ℕ), s ≠ -↑m
n : ℕ := ⌊1 - s.re⌋₊ + 1
hn : 1 - s.re < ↑n
S : Set ℂ := {t | 1 - t.re < ↑n}
this : S ∈ 𝓝 s
⊢ Gamma =ᶠ[𝓝 s] GammaAux n
tactic: have : S ∈ 𝓝 s := by
    rw [mem_nhds_iff]; use S
    refine ⟨Subset.rfl, ?_, hn⟩
    have : S = re ⁻¹' Ioi (1 - n : ℝ) := by
      ext; rw [preimage, Ioi, mem_setOf_eq, mem_setOf_eq, mem_setOf_eq]; exact sub_lt_comm
    rw [this]
    exact Continuous.isOpen_preimage continuous_re _ isOpen_Ioi
state_before: s : ℂ
hs : ∀ (m : ℕ), s ≠ -↑m
n : ℕ := ⌊1 - s.re⌋₊ + 1
hn : 1 - s.re < ↑n
S : Set ℂ := {t | 1 - t.re < ↑n}
this : S ∈ 𝓝 s
⊢ Gamma =ᶠ[𝓝 s] GammaAux n
state_after: s : ℂ
hs : ∀ (m : ℕ), s ≠ -↑m
n : ℕ := ⌊1 - s.re⌋₊ + 1
hn : 1 - s.re < ↑n
S : Set ℂ := {t | 1 - t.re < ↑n}
this : S ∈ 𝓝 s
⊢ EqOn Gamma (GammaAux n) S
tactic: apply eventuallyEq_of_mem this
state_before: s : ℂ
hs : ∀ (m : ℕ), s ≠ -↑m
n : ℕ := ⌊1 - s.re⌋₊ + 1
hn : 1 - s.re < ↑n
S : Set ℂ := {t | 1 - t.re < ↑n}
this : S ∈ 𝓝 s
⊢ EqOn Gamma (GammaAux n) S
state_after: s : ℂ
hs : ∀ (m : ℕ), s ≠ -↑m
n : ℕ := ⌊1 - s.re⌋₊ + 1
hn : 1 - s.re < ↑n
S : Set ℂ := {t | 1 - t.re < ↑n}
this : S ∈ 𝓝 s
t : ℂ
ht : t ∈ S
⊢ Gamma t = GammaAux n t
tactic: intro t ht
state_before: s : ℂ
hs : ∀ (m : ℕ), s ≠ -↑m
n : ℕ := ⌊1 - s.re⌋₊ + 1
hn : 1 - s.re < ↑n
S : Set ℂ := {t | 1 - t.re < ↑n}
this : S ∈ 𝓝 s
t : ℂ
ht : t ∈ S
⊢ Gamma t = GammaAux n t
state_after: s : ℂ
hs : ∀ (m : ℕ), s ≠ -↑m
n : ℕ := ⌊1 - s.re⌋₊ + 1
hn : 1 - s.re < ↑n
S : Set ℂ := {t | 1 - t.re < ↑n}
this : S ∈ 𝓝 s
t : ℂ
ht : 1 - t.re < ↑n
⊢ Gamma t = GammaAux n t
tactic: rw [mem_setOf_eq] at ht
state_before: s : ℂ
hs : ∀ (m : ℕ), s ≠ -↑m
n : ℕ := ⌊1 - s.re⌋₊ + 1
hn : 1 - s.re < ↑n
S : Set ℂ := {t | 1 - t.re < ↑n}
this : S ∈ 𝓝 s
t : ℂ
ht : 1 - t.re < ↑n
⊢ Gamma t = GammaAux n t
state_after: case h1
s : ℂ
hs : ∀ (m : ℕ), s ≠ -↑m
n : ℕ := ⌊1 - s.re⌋₊ + 1
hn : 1 - s.re < ↑n
S : Set ℂ := {t | 1 - t.re < ↑n}
this : S ∈ 𝓝 s
t : ℂ
ht : 1 - t.re < ↑n
⊢ -t.re < ↑n
tactic: apply Gamma_eq_GammaAux
state_before: case h1
s : ℂ
hs : ∀ (m : ℕ), s ≠ -↑m
n : ℕ := ⌊1 - s.re⌋₊ + 1
hn : 1 - s.re < ↑n
S : Set ℂ := {t | 1 - t.re < ↑n}
this : S ∈ 𝓝 s
t : ℂ
ht : 1 - t.re < ↑n
⊢ -t.re < ↑n
state_after: no goals
tactic: linarith