Theorem: Cubic.coeffs
File: Mathlib/Algebra/CubicDiscriminant.lean

tactic: simp only [toPoly, coeff_add, coeff_C, coeff_C_mul_X, coeff_C_mul_X_pow]
state_before: R : Type u_1
S : Type ?u.270809
F : Type ?u.270812
K : Type ?u.270815
P Q : Cubic R
a b c d a' b' c' d' : R
inst✝ : Semiring R
⊢ (∀ (n : ℕ), n > 3 → coeff (toPoly P) n = 0) ∧
    coeff (toPoly P) 3 = P.a ∧ coeff (toPoly P) 2 = P.b ∧ coeff (toPoly P) 1 = P.c ∧ coeff (toPoly P) 0 = P.d

tactic: norm_num
state_before: R : Type u_1
S : Type ?u.270809
F : Type ?u.270812
K : Type ?u.270815
P Q : Cubic R
a b c d a' b' c' d' : R
inst✝ : Semiring R
⊢ (∀ (n : ℕ),
      n > 3 →
        ((((if n = 3 then P.a else 0) + if n = 2 then P.b else 0) + if n = 1 then P.c else 0) +
            if n = 0 then P.d else 0) =
          0) ∧
    ((((if True then P.a else 0) + if False then P.b else 0) + if False then P.c else 0) + if False then P.d else 0) =
        P.a ∧
      ((((if False then P.a else 0) + if True then P.b else 0) + if False then P.c else 0) + if False then P.d else 0) =
          P.b ∧
        ((((if False then P.a else 0) + if False then P.b else 0) + if True then P.c else 0) +
              if False then P.d else 0) =
            P.c ∧
          ((((if False then P.a else 0) + if False then P.b else 0) + if False then P.c else 0) +
              if True then P.d else 0) =
            P.d

tactic: intro n hn
state_before: R : Type u_1
S : Type ?u.270809
F : Type ?u.270812
K : Type ?u.270815
P Q : Cubic R
a b c d a' b' c' d' : R
inst✝ : Semiring R
⊢ ∀ (n : ℕ),
    3 < n →
      ((((if n = 3 then P.a else 0) + if n = 2 then P.b else 0) + if n = 1 then P.c else 0) +
          if n = 0 then P.d else 0) =
        0

tactic: repeat' rw [if_neg]
state_before: R : Type u_1
S : Type ?u.270809
F : Type ?u.270812
K : Type ?u.270815
P Q : Cubic R
a b c d a' b' c' d' : R
inst✝ : Semiring R
n : ℕ
hn : 3 < n
⊢ ((((if n = 3 then P.a else 0) + if n = 2 then P.b else 0) + if n = 1 then P.c else 0) + if n = 0 then P.d else 0) = 0

tactic: any_goals linarith only [hn]
state_before: R : Type u_1
S : Type ?u.270809
F : Type ?u.270812
K : Type ?u.270815
P Q : Cubic R
a b c d a' b' c' d' : R
inst✝ : Semiring R
n : ℕ
hn : 3 < n
⊢ 0 + 0 + 0 + 0 = 0

case hnc
R : Type u_1
S : Type ?u.270809
F : Type ?u.270812
K : Type ?u.270815
P Q : Cubic R
a b c d a' b' c' d' : R
inst✝ : Semiring R
n : ℕ
hn : 3 < n
⊢ ¬n = 0

case hnc
R : Type u_1
S : Type ?u.270809
F : Type ?u.270812
K : Type ?u.270815
P Q : Cubic R
a b c d a' b' c' d' : R
inst✝ : Semiring R
n : ℕ
hn : 3 < n
⊢ ¬n = 1

case hnc
R : Type u_1
S : Type ?u.270809
F : Type ?u.270812
K : Type ?u.270815
P Q : Cubic R
a b c d a' b' c' d' : R
inst✝ : Semiring R
n : ℕ
hn : 3 < n
⊢ ¬n = 2

case hnc
R : Type u_1
S : Type ?u.270809
F : Type ?u.270812
K : Type ?u.270815
P Q : Cubic R
a b c d a' b' c' d' : R
inst✝ : Semiring R
n : ℕ
hn : 3 < n
⊢ ¬n = 3

tactic: repeat' rw [zero_add]
state_before: R : Type u_1
S : Type ?u.270809
F : Type ?u.270812
K : Type ?u.270815
P Q : Cubic R
a b c d a' b' c' d' : R
inst✝ : Semiring R
n : ℕ
hn : 3 < n
⊢ 0 + 0 + 0 + 0 = 0

tactic: rw [if_neg]
state_before: case hnc
R : Type u_1
S : Type ?u.270809
F : Type ?u.270812
K : Type ?u.270815
P Q : Cubic R
a b c d a' b' c' d' : R
inst✝ : Semiring R
n : ℕ
hn : 3 < n
⊢ ¬n = 3

tactic: linarith only [hn]
state_before: case hnc
R : Type u_1
S : Type ?u.270809
F : Type ?u.270812
K : Type ?u.270815
P Q : Cubic R
a b c d a' b' c' d' : R
inst✝ : Semiring R
n : ℕ
hn : 3 < n
⊢ ¬n = 3

tactic: rw [zero_add]
state_before: R : Type u_1
S : Type ?u.270809
F : Type ?u.270812
K : Type ?u.270815
P Q : Cubic R
a b c d a' b' c' d' : R
inst✝ : Semiring R
n : ℕ
hn : 3 < n
⊢ 0 + 0 = 0