Theorem: BoundedAtFilter.add_const (PrimeNumberTheoremAnd/Wiener.lean)

State before:
n : ℕ
A a b c✝ d u✝ x y t σ' : ℝ
ψ Ψ : ℝ → ℂ
F G : ℂ → ℂ
f : ℕ → ℂ
𝕜 : Type
inst✝ : _root_.RCLike 𝕜
u : ℕ → ℝ
c : ℝ
⊢ (atTop.BoundedAtFilter fun n => u n + c) ↔ atTop.BoundedAtFilter u
Tactic:
have : u = fun n => (u n + c) + (-c) := by ext n ; ring
State after:
n : ℕ
A a b c✝ d u✝ x y t σ' : ℝ
ψ Ψ : ℝ → ℂ
F G : ℂ → ℂ
f : ℕ → ℂ
𝕜 : Type
inst✝ : _root_.RCLike 𝕜
u : ℕ → ℝ
c : ℝ
this : u = fun n => u n + c + -c
⊢ (atTop.BoundedAtFilter fun n => u n + c) ↔ atTop.BoundedAtFilter u

State before:
n : ℕ
A a b c✝ d u✝ x y t σ' : ℝ
ψ Ψ : ℝ → ℂ
F G : ℂ → ℂ
f : ℕ → ℂ
𝕜 : Type
inst✝ : _root_.RCLike 𝕜
u : ℕ → ℝ
c : ℝ
this : u = fun n => u n + c + -c
⊢ (atTop.BoundedAtFilter fun n => u n + c) ↔ atTop.BoundedAtFilter u
Tactic:
simp [BoundedAtFilter]
State after:
n : ℕ
A a b c✝ d u✝ x y t σ' : ℝ
ψ Ψ : ℝ → ℂ
F G : ℂ → ℂ
f : ℕ → ℂ
𝕜 : Type
inst✝ : _root_.RCLike 𝕜
u : ℕ → ℝ
c : ℝ
this : u = fun n => u n + c + -c
⊢ (fun n => u n + c) =O[atTop] 1 ↔ u =O[atTop] 1

State before:
n : ℕ
A a b c✝ d u✝ x y t σ' : ℝ
ψ Ψ : ℝ → ℂ
F G : ℂ → ℂ
f : ℕ → ℂ
𝕜 : Type
inst✝ : _root_.RCLike 𝕜
u : ℕ → ℝ
c : ℝ
this : u = fun n => u n + c + -c
⊢ (fun n => u n + c) =O[atTop] 1 ↔ u =O[atTop] 1
Tactic:
constructor <;> intro h
State after:
case mp
n : ℕ
A a b c✝ d u✝ x y t σ' : ℝ
ψ Ψ : ℝ → ℂ
F G : ℂ → ℂ
f : ℕ → ℂ
𝕜 : Type
inst✝ : _root_.RCLike 𝕜
u : ℕ → ℝ
c : ℝ
this : u = fun n => u n + c + -c
h : (fun n => u n + c) =O[atTop] 1
⊢ u =O[atTop] 1

case mpr
n : ℕ
A a b c✝ d u✝ x y t σ' : ℝ
ψ Ψ : ℝ → ℂ
F G : ℂ → ℂ
f : ℕ → ℂ
𝕜 : Type
inst✝ : _root_.RCLike 𝕜
u : ℕ → ℝ
c : ℝ
this : u = fun n => u n + c + -c
h : u =O[atTop] 1
⊢ (fun n => u n + c) =O[atTop] 1

State before:
case mp
n : ℕ
A a b c✝ d u✝ x y t σ' : ℝ
ψ Ψ : ℝ → ℂ
F G : ℂ → ℂ
f : ℕ → ℂ
𝕜 : Type
inst✝ : _root_.RCLike 𝕜
u : ℕ → ℝ
c : ℝ
this : u = fun n => u n + c + -c
h : (fun n => u n + c) =O[atTop] 1
⊢ u =O[atTop] 1

case mpr
n : ℕ
A a b c✝ d u✝ x y t σ' : ℝ
ψ Ψ : ℝ → ℂ
F G : ℂ → ℂ
f : ℕ → ℂ
𝕜 : Type
inst✝ : _root_.RCLike 𝕜
u : ℕ → ℝ
c : ℝ
this : u = fun n => u n + c + -c
h : u =O[atTop] 1
⊢ (fun n => u n + c) =O[atTop] 1
Tactic:
rw [this]
State after:
case mp
n : ℕ
A a b c✝ d u✝ x y t σ' : ℝ
ψ Ψ : ℝ → ℂ
F G : ℂ → ℂ
f : ℕ → ℂ
𝕜 : Type
inst✝ : _root_.RCLike 𝕜
u : ℕ → ℝ
c : ℝ
this : u = fun n => u n + c + -c
h : (fun n => u n + c) =O[atTop] 1
⊢ (fun n => u n + c + -c) =O[atTop] 1

case mpr
n : ℕ
A a b c✝ d u✝ x y t σ' : ℝ
ψ Ψ : ℝ → ℂ
F G : ℂ → ℂ
f : ℕ → ℂ
𝕜 : Type
inst✝ : _root_.RCLike 𝕜
u : ℕ → ℝ
c : ℝ
this : u = fun n => u n + c + -c
h : u =O[atTop] 1
⊢ (fun n => u n + c) =O[atTop] 1

State before:
case mp
n : ℕ
A a b c✝ d u✝ x y t σ' : ℝ
ψ Ψ : ℝ → ℂ
F G : ℂ → ℂ
f : ℕ → ℂ
𝕜 : Type
inst✝ : _root_.RCLike 𝕜
u : ℕ → ℝ
c : ℝ
this : u = fun n => u n + c + -c
h : (fun n => u n + c) =O[atTop] 1
⊢ (fun n => u n + c + -c) =O[atTop] 1

case mpr
n : ℕ
A a b c✝ d u✝ x y t σ' : ℝ
ψ Ψ : ℝ → ℂ
F G : ℂ → ℂ
f : ℕ → ℂ
𝕜 : Type
inst✝ : _root_.RCLike 𝕜
u : ℕ → ℝ
c : ℝ
this : u = fun n => u n + c + -c
h : u =O[atTop] 1
⊢ (fun n => u n + c) =O[atTop] 1
Tactic:
all_goals { exact h.add (const_boundedAtFilter _ _) }
State after:
no goals

State before:
n : ℕ
A a b c✝ d u✝ x y t σ' : ℝ
ψ Ψ : ℝ → ℂ
F G : ℂ → ℂ
f : ℕ → ℂ
𝕜 : Type
inst✝ : _root_.RCLike 𝕜
u : ℕ → ℝ
c : ℝ
⊢ u = fun n => u n + c + -c
Tactic:
ext n
State after:
case h
n✝ : ℕ
A a b c✝ d u✝ x y t σ' : ℝ
ψ Ψ : ℝ → ℂ
F G : ℂ → ℂ
f : ℕ → ℂ
𝕜 : Type
inst✝ : _root_.RCLike 𝕜
u : ℕ → ℝ
c : ℝ
n : ℕ
⊢ u n = u n + c + -c

State before:
case h
n✝ : ℕ
A a b c✝ d u✝ x y t σ' : ℝ
ψ Ψ : ℝ → ℂ
F G : ℂ → ℂ
f : ℕ → ℂ
𝕜 : Type
inst✝ : _root_.RCLike 𝕜
u : ℕ → ℝ
c : ℝ
n : ℕ
⊢ u n = u n + c + -c
Tactic:
ring
State after:
no goals

State before:
case mpr
n : ℕ
A a b c✝ d u✝ x y t σ' : ℝ
ψ Ψ : ℝ → ℂ
F G : ℂ → ℂ
f : ℕ → ℂ
𝕜 : Type
inst✝ : _root_.RCLike 𝕜
u : ℕ → ℝ
c : ℝ
this : u = fun n => u n + c + -c
h : u =O[atTop] 1
⊢ (fun n => u n + c) =O[atTop] 1
Tactic:
exact h.add (const_boundedAtFilter _ _)
State after:
no goals