Theorem: Polynomial.ascPochhammer_smeval_cast
File: Mathlib/RingTheory/Binomial.lean

tactic: induction' n with n hn
state_before: R : Type u_1
inst✝⁵ : Semiring R
S : Type u_2
inst✝⁴ : NonAssocSemiring S
inst✝³ : Pow S ℕ
inst✝² : Module R S
inst✝¹ : IsScalarTower R S S
inst✝ : NatPowAssoc S
x : S
n : ℕ
⊢ (ascPochhammer R n).smeval x = (ascPochhammer ℕ n).smeval x
state_after: case zero
R : Type u_1
inst✝⁵ : Semiring R
S : Type u_2
inst✝⁴ : NonAssocSemiring S
inst✝³ : Pow S ℕ
inst✝² : Module R S
inst✝¹ : IsScalarTower R S S
inst✝ : NatPowAssoc S
x : S
⊢ (ascPochhammer R 0).smeval x = (ascPochhammer ℕ 0).smeval x

case succ
R : Type u_1
inst✝⁵ : Semiring R
S : Type u_2
inst✝⁴ : NonAssocSemiring S
inst✝³ : Pow S ℕ
inst✝² : Module R S
inst✝¹ : IsScalarTower R S S
inst✝ : NatPowAssoc S
x : S
n : ℕ
hn : (ascPochhammer R n).smeval x = (ascPochhammer ℕ n).smeval x
⊢ (ascPochhammer R (n + 1)).smeval x = (ascPochhammer ℕ (n + 1)).smeval x

tactic: simp only [Nat.zero_eq, ascPochhammer_zero, smeval_one, one_smul]
state_before: case zero
R : Type u_1
inst✝⁵ : Semiring R
S : Type u_2
inst✝⁴ : NonAssocSemiring S
inst✝³ : Pow S ℕ
inst✝² : Module R S
inst✝¹ : IsScalarTower R S S
inst✝ : NatPowAssoc S
x : S
⊢ (ascPochhammer R 0).smeval x = (ascPochhammer ℕ 0).smeval x
state_after: no goals

tactic: simp only [ascPochhammer_succ_right, mul_add, smeval_add, smeval_mul_X, ← Nat.cast_comm]
state_before: case succ
R : Type u_1
inst✝⁵ : Semiring R
S : Type u_2
inst✝⁴ : NonAssocSemiring S
inst✝³ : Pow S ℕ
inst✝² : Module R S
inst✝¹ : IsScalarTower R S S
inst✝ : NatPowAssoc S
x : S
n : ℕ
hn : (ascPochhammer R n).smeval x = (ascPochhammer ℕ n).smeval x
⊢ (ascPochhammer R (n + 1)).smeval x = (ascPochhammer ℕ (n + 1)).smeval x
state_after: case succ
R : Type u_1
inst✝⁵ : Semiring R
S : Type u_2
inst✝⁴ : NonAssocSemiring S
inst✝³ : Pow S ℕ
inst✝² : Module R S
inst✝¹ : IsScalarTower R S S
inst✝ : NatPowAssoc S
x : S
n : ℕ
hn : (ascPochhammer R n).smeval x = (ascPochhammer ℕ n).smeval x
⊢ (ascPochhammer R n).smeval x * x + (↑n * ascPochhammer R n).smeval x =
    (ascPochhammer ℕ n).smeval x * x + (↑n * ascPochhammer ℕ n).smeval x

tactic: simp only [← C_eq_natCast, smeval_C_mul, hn, ← nsmul_eq_smul_cast R n]
state_before: case succ
R : Type u_1
inst✝⁵ : Semiring R
S : Type u_2
inst✝⁴ : NonAssocSemiring S
inst✝³ : Pow S ℕ
inst✝² : Module R S
inst✝¹ : IsScalarTower R S S
inst✝ : NatPowAssoc S
x : S
n : ℕ
hn : (ascPochhammer R n).smeval x = (ascPochhammer ℕ n).smeval x
⊢ (ascPochhammer R n).smeval x * x + (↑n * ascPochhammer R n).smeval x =
    (ascPochhammer ℕ n).smeval x * x + (↑n * ascPochhammer ℕ n).smeval x
state_after: case succ
R : Type u_1
inst✝⁵ : Semiring R
S : Type u_2
inst✝⁴ : NonAssocSemiring S
inst✝³ : Pow S ℕ
inst✝² : Module R S
inst✝¹ : IsScalarTower R S S
inst✝ : NatPowAssoc S
x : S
n : ℕ
hn : (ascPochhammer R n).smeval x = (ascPochhammer ℕ n).smeval x
⊢ (ascPochhammer ℕ n).smeval x * x + n • (ascPochhammer ℕ n).smeval x =
    (ascPochhammer ℕ n).smeval x * x + ↑n • (ascPochhammer ℕ n).smeval x

tactic: simp only [nsmul_eq_mul, Nat.cast_id]
state_before: case succ
R : Type u_1
inst✝⁵ : Semiring R
S : Type u_2
inst✝⁴ : NonAssocSemiring S
inst✝³ : Pow S ℕ
inst✝² : Module R S
inst✝¹ : IsScalarTower R S S
inst✝ : NatPowAssoc S
x : S
n : ℕ
hn : (ascPochhammer R n).smeval x = (ascPochhammer ℕ n).smeval x
⊢ (ascPochhammer ℕ n).smeval x * x + n • (ascPochhammer ℕ n).smeval x =
    (ascPochhammer ℕ n).smeval x * x + ↑n • (ascPochhammer ℕ n).smeval x
state_after: no goals