Theorem: quadratic_pos (PrimeNumberTheoremAnd/Wiener.lean)

State before:
n : ℕ
A a✝ b✝ c✝ d u x✝ y t σ' : ℝ
ψ Ψ : ℝ → ℂ
F G : ℂ → ℂ
f : ℕ → ℂ
𝕜 : Type
inst✝ : _root_.RCLike 𝕜
a b c x : ℝ
ha : 0 < a
hΔ : discrim a b c < 0
⊢ 0 < a * x ^ 2 + b * x + c
Tactic:
have l1 : a * x ^ 2 + b * x + c = a * (x + b / (2 * a)) ^ 2 - discrim a b c / (4 * a) := by
  field_simp [discrim] ; ring
State after:
n : ℕ
A a✝ b✝ c✝ d u x✝ y t σ' : ℝ
ψ Ψ : ℝ → ℂ
F G : ℂ → ℂ
f : ℕ → ℂ
𝕜 : Type
inst✝ : _root_.RCLike 𝕜
a b c x : ℝ
ha : 0 < a
hΔ : discrim a b c < 0
l1 : a * x ^ 2 + b * x + c = a * (x + b / (2 * a)) ^ 2 - discrim a b c / (4 * a)
⊢ 0 < a * x ^ 2 + b * x + c

State before:
n : ℕ
A a✝ b✝ c✝ d u x✝ y t σ' : ℝ
ψ Ψ : ℝ → ℂ
F G : ℂ → ℂ
f : ℕ → ℂ
𝕜 : Type
inst✝ : _root_.RCLike 𝕜
a b c x : ℝ
ha : 0 < a
hΔ : discrim a b c < 0
l1 : a * x ^ 2 + b * x + c = a * (x + b / (2 * a)) ^ 2 - discrim a b c / (4 * a)
⊢ 0 < a * x ^ 2 + b * x + c
Tactic:
have l2 : 0 < - discrim a b c := by linarith
State after:
n : ℕ
A a✝ b✝ c✝ d u x✝ y t σ' : ℝ
ψ Ψ : ℝ → ℂ
F G : ℂ → ℂ
f : ℕ → ℂ
𝕜 : Type
inst✝ : _root_.RCLike 𝕜
a b c x : ℝ
ha : 0 < a
hΔ : discrim a b c < 0
l1 : a * x ^ 2 + b * x + c = a * (x + b / (2 * a)) ^ 2 - discrim a b c / (4 * a)
l2 : 0 < -discrim a b c
⊢ 0 < a * x ^ 2 + b * x + c

State before:
n : ℕ
A a✝ b✝ c✝ d u x✝ y t σ' : ℝ
ψ Ψ : ℝ → ℂ
F G : ℂ → ℂ
f : ℕ → ℂ
𝕜 : Type
inst✝ : _root_.RCLike 𝕜
a b c x : ℝ
ha : 0 < a
hΔ : discrim a b c < 0
l1 : a * x ^ 2 + b * x + c = a * (x + b / (2 * a)) ^ 2 - discrim a b c / (4 * a)
l2 : 0 < -discrim a b c
⊢ 0 < a * x ^ 2 + b * x + c
Tactic:
rw [l1, sub_eq_add_neg, ← neg_div]
State after:
n : ℕ
A a✝ b✝ c✝ d u x✝ y t σ' : ℝ
ψ Ψ : ℝ → ℂ
F G : ℂ → ℂ
f : ℕ → ℂ
𝕜 : Type
inst✝ : _root_.RCLike 𝕜
a b c x : ℝ
ha : 0 < a
hΔ : discrim a b c < 0
l1 : a * x ^ 2 + b * x + c = a * (x + b / (2 * a)) ^ 2 - discrim a b c / (4 * a)
l2 : 0 < -discrim a b c
⊢ 0 < a * (x + b / (2 * a)) ^ 2 + -discrim a b c / (4 * a)

State before:
n : ℕ
A a✝ b✝ c✝ d u x✝ y t σ' : ℝ
ψ Ψ : ℝ → ℂ
F G : ℂ → ℂ
f : ℕ → ℂ
𝕜 : Type
inst✝ : _root_.RCLike 𝕜
a b c x : ℝ
ha : 0 < a
hΔ : discrim a b c < 0
l1 : a * x ^ 2 + b * x + c = a * (x + b / (2 * a)) ^ 2 - discrim a b c / (4 * a)
l2 : 0 < -discrim a b c
⊢ 0 < a * (x + b / (2 * a)) ^ 2 + -discrim a b c / (4 * a)
Tactic:
positivity
State after:
no goals

State before:
n : ℕ
A a✝ b✝ c✝ d u x✝ y t σ' : ℝ
ψ Ψ : ℝ → ℂ
F G : ℂ → ℂ
f : ℕ → ℂ
𝕜 : Type
inst✝ : _root_.RCLike 𝕜
a b c x : ℝ
ha : 0 < a
hΔ : discrim a b c < 0
⊢ a * x ^ 2 + b * x + c = a * (x + b / (2 * a)) ^ 2 - discrim a b c / (4 * a)
Tactic:
field_simp [discrim]
State after:
n : ℕ
A a✝ b✝ c✝ d u x✝ y t σ' : ℝ
ψ Ψ : ℝ → ℂ
F G : ℂ → ℂ
f : ℕ → ℂ
𝕜 : Type
inst✝ : _root_.RCLike 𝕜
a b c x : ℝ
ha : 0 < a
hΔ : discrim a b c < 0
⊢ (a * x ^ 2 + b * x + c) * ((2 * a) ^ 2 * (4 * a)) =
    a * (x * (2 * a) + b) ^ 2 * (4 * a) - (2 * a) ^ 2 * (b ^ 2 - 4 * a * c)

State before:
n : ℕ
A a✝ b✝ c✝ d u x✝ y t σ' : ℝ
ψ Ψ : ℝ → ℂ
F G : ℂ → ℂ
f : ℕ → ℂ
𝕜 : Type
inst✝ : _root_.RCLike 𝕜
a b c x : ℝ
ha : 0 < a
hΔ : discrim a b c < 0
⊢ (a * x ^ 2 + b * x + c) * ((2 * a) ^ 2 * (4 * a)) =
    a * (x * (2 * a) + b) ^ 2 * (4 * a) - (2 * a) ^ 2 * (b ^ 2 - 4 * a * c)
Tactic:
ring
State after:
no goals

State before:
n : ℕ
A a✝ b✝ c✝ d u x✝ y t σ' : ℝ
ψ Ψ : ℝ → ℂ
F G : ℂ → ℂ
f : ℕ → ℂ
𝕜 : Type
inst✝ : _root_.RCLike 𝕜
a b c x : ℝ
ha : 0 < a
hΔ : discrim a b c < 0
l1 : a * x ^ 2 + b * x + c = a * (x + b / (2 * a)) ^ 2 - discrim a b c / (4 * a)
⊢ 0 < -discrim a b c
Tactic:
linarith
State after:
no goals