Theorem: HahnModule.smul_coeff_order_add_order
File: Mathlib/RingTheory/HahnSeries/Multiplication.lean

Proof steps:
state_before: Γ✝ : Type u_1
Γ' : Type u_2
R : Type u_3
V : Type u_4
inst✝⁷ : PartialOrder Γ✝
inst✝⁶ : PartialOrder Γ'
inst✝⁵ : VAdd Γ✝ Γ'
inst✝⁴ : IsOrderedCancelVAdd Γ✝ Γ'
inst✝³ : AddCommMonoid V
Γ : Type u_5
inst✝² : LinearOrderedCancelAddCommMonoid Γ
inst✝¹ : Zero R
inst✝ : SMulWithZero R V
x : HahnSeries Γ R
y : HahnModule Γ R V
⊢ ((of R).symm (x • y)).coeff (x.order + ((of R).symm y).order) = x.leadingCoeff • ((of R).symm y).leadingCoeff
state_after: case pos
Γ✝ : Type u_1
Γ' : Type u_2
R : Type u_3
V : Type u_4
inst✝⁷ : PartialOrder Γ✝
inst✝⁶ : PartialOrder Γ'
inst✝⁵ : VAdd Γ✝ Γ'
inst✝⁴ : IsOrderedCancelVAdd Γ✝ Γ'
inst✝³ : AddCommMonoid V
Γ : Type u_5
inst✝² : LinearOrderedCancelAddCommMonoid Γ
inst✝¹ : Zero R
inst✝ : SMulWithZero R V
x : HahnSeries Γ R
y : HahnModule Γ R V
hx : x = 0
⊢ ((of R).symm (x • y)).coeff (x.order + ((of R).symm y).order) = x.leadingCoeff • ((of R).symm y).leadingCoeff

case neg
Γ✝ : Type u_1
Γ' : Type u_2
R : Type u_3
V : Type u_4
inst✝⁷ : PartialOrder Γ✝
inst✝⁶ : PartialOrder Γ'
inst✝⁵ : VAdd Γ✝ Γ'
inst✝⁴ : IsOrderedCancelVAdd Γ✝ Γ'
inst✝³ : AddCommMonoid V
Γ : Type u_5
inst✝² : LinearOrderedCancelAddCommMonoid Γ
inst✝¹ : Zero R
inst✝ : SMulWithZero R V
x : HahnSeries Γ R
y : HahnModule Γ R V
hx : ¬x = 0
⊢ ((of R).symm (x • y)).coeff (x.order + ((of R).symm y).order) = x.leadingCoeff • ((of R).symm y).leadingCoeff
tactic: by_cases hx : x = (0 : HahnSeries Γ R)
state_before: case neg
Γ✝ : Type u_1
Γ' : Type u_2
R : Type u_3
V : Type u_4
inst✝⁷ : PartialOrder Γ✝
inst✝⁶ : PartialOrder Γ'
inst✝⁵ : VAdd Γ✝ Γ'
inst✝⁴ : IsOrderedCancelVAdd Γ✝ Γ'
inst✝³ : AddCommMonoid V
Γ : Type u_5
inst✝² : LinearOrderedCancelAddCommMonoid Γ
inst✝¹ : Zero R
inst✝ : SMulWithZero R V
x : HahnSeries Γ R
y : HahnModule Γ R V
hx : ¬x = 0
⊢ ((of R).symm (x • y)).coeff (x.order + ((of R).symm y).order) = x.leadingCoeff • ((of R).symm y).leadingCoeff
state_after: case pos
Γ✝ : Type u_1
Γ' : Type u_2
R : Type u_3
V : Type u_4
inst✝⁷ : PartialOrder Γ✝
inst✝⁶ : PartialOrder Γ'
inst✝⁵ : VAdd Γ✝ Γ'
inst✝⁴ : IsOrderedCancelVAdd Γ✝ Γ'
inst✝³ : AddCommMonoid V
Γ : Type u_5
inst✝² : LinearOrderedCancelAddCommMonoid Γ
inst✝¹ : Zero R
inst✝ : SMulWithZero R V
x : HahnSeries Γ R
y : HahnModule Γ R V
hx : ¬x = 0
hy : (of R).symm y = 0
⊢ ((of R).symm (x • y)).coeff (x.order + ((of R).symm y).order) = x.leadingCoeff • ((of R).symm y).leadingCoeff

case neg
Γ✝ : Type u_1
Γ' : Type u_2
R : Type u_3
V : Type u_4
inst✝⁷ : PartialOrder Γ✝
inst✝⁶ : PartialOrder Γ'
inst✝⁵ : VAdd Γ✝ Γ'
inst✝⁴ : IsOrderedCancelVAdd Γ✝ Γ'
inst✝³ : AddCommMonoid V
Γ : Type u_5
inst✝² : LinearOrderedCancelAddCommMonoid Γ
inst✝¹ : Zero R
inst✝ : SMulWithZero R V
x : HahnSeries Γ R
y : HahnModule Γ R V
hx : ¬x = 0
hy : ¬(of R).symm y = 0
⊢ ((of R).symm (x • y)).coeff (x.order + ((of R).symm y).order) = x.leadingCoeff • ((of R).symm y).leadingCoeff
tactic: by_cases hy : (of R).symm y = 0
state_before: case neg
Γ✝ : Type u_1
Γ' : Type u_2
R : Type u_3
V : Type u_4
inst✝⁷ : PartialOrder Γ✝
inst✝⁶ : PartialOrder Γ'
inst✝⁵ : VAdd Γ✝ Γ'
inst✝⁴ : IsOrderedCancelVAdd Γ✝ Γ'
inst✝³ : AddCommMonoid V
Γ : Type u_5
inst✝² : LinearOrderedCancelAddCommMonoid Γ
inst✝¹ : Zero R
inst✝ : SMulWithZero R V
x : HahnSeries Γ R
y : HahnModule Γ R V
hx : ¬x = 0
hy : ¬(of R).symm y = 0
⊢ ((of R).symm (x • y)).coeff (x.order + ((of R).symm y).order) = x.leadingCoeff • ((of R).symm y).leadingCoeff
state_after: case neg
Γ✝ : Type u_1
Γ' : Type u_2
R : Type u_3
V : Type u_4
inst✝⁷ : PartialOrder Γ✝
inst✝⁶ : PartialOrder Γ'
inst✝⁵ : VAdd Γ✝ Γ'
inst✝⁴ : IsOrderedCancelVAdd Γ✝ Γ'
inst✝³ : AddCommMonoid V
Γ : Type u_5
inst✝² : LinearOrderedCancelAddCommMonoid Γ
inst✝¹ : Zero R
inst✝ : SMulWithZero R V
x : HahnSeries Γ R
y : HahnModule Γ R V
hx : ¬x = 0
hy : ¬(of R).symm y = 0
⊢ ∑ ij ∈ VAddAntidiagonal ⋯ ⋯ (⋯.min ⋯ + ⋯.min ⋯), x.coeff ij.1 • ((of R).symm y).coeff ij.2 =
    x.coeff (⋯.min ⋯) • ((of R).symm y).coeff (⋯.min ⋯)
tactic: rw [HahnSeries.order_of_ne hx, HahnSeries.order_of_ne hy, smul_coeff,
    HahnSeries.leadingCoeff_of_ne hx, HahnSeries.leadingCoeff_of_ne hy]
state_before: case neg
Γ✝ : Type u_1
Γ' : Type u_2
R : Type u_3
V : Type u_4
inst✝⁷ : PartialOrder Γ✝
inst✝⁶ : PartialOrder Γ'
inst✝⁵ : VAdd Γ✝ Γ'
inst✝⁴ : IsOrderedCancelVAdd Γ✝ Γ'
inst✝³ : AddCommMonoid V
Γ : Type u_5
inst✝² : LinearOrderedCancelAddCommMonoid Γ
inst✝¹ : Zero R
inst✝ : SMulWithZero R V
x : HahnSeries Γ R
y : HahnModule Γ R V
hx : ¬x = 0
hy : ¬(of R).symm y = 0
⊢ ∑ ij ∈ VAddAntidiagonal ⋯ ⋯ (⋯.min ⋯ + ⋯.min ⋯), x.coeff ij.1 • ((of R).symm y).coeff ij.2 =
    x.coeff (⋯.min ⋯) • ((of R).symm y).coeff (⋯.min ⋯)
state_after: no goals
tactic: erw [Finset.vaddAntidiagonal_min_vadd_min, Finset.sum_singleton]