-- Mathlib/RingTheory/HahnSeries/Multiplication.lean
theorem support_smul_subset_vadd_support' [MulZeroClass R] [SMulWithZero R V] {x : HahnSeries Γ R}
    {y : HahnModule Γ' R V} :
    ((of R).symm (x • y)).support ⊆ x.support +ᵥ ((of R).symm y).support

Proof state:
Γ : Type u_1
Γ' : Type u_2
R : Type u_3
V : Type u_5
inst✝⁶ : PartialOrder Γ
inst✝⁵ : PartialOrder Γ'
inst✝⁴ : VAdd Γ Γ'
inst✝³ : IsOrderedCancelVAdd Γ Γ'
inst✝² : AddCommMonoid V
inst✝¹ : MulZeroClass R
inst✝ : SMulWithZero R V
x : HahnSeries Γ R
y : HahnModule Γ' R V
⊢ ((of R).symm y).support.IsPWO

Tactic:
exact y.isPWO_support

Result:
no goals

Proof state:
Γ : Type u_1
Γ' : Type u_2
R : Type u_3
V : Type u_5
inst✝⁶ : PartialOrder Γ
inst✝⁵ : PartialOrder Γ'
inst✝⁴ : VAdd Γ Γ'
inst✝³ : IsOrderedCancelVAdd Γ Γ'
inst✝² : AddCommMonoid V
inst✝¹ : MulZeroClass R
inst✝ : SMulWithZero R V
x : HahnSeries Γ R
y : HahnModule Γ' R V
⊢ ∀ x_1 ∈ ((of R).symm (x • y)).support, x_1 ∈ {a | (VAddAntidiagonal ⋯ ⋯ a).Nonempty}

Tactic:
intro x hx

Result:
Γ : Type u_1
Γ' : Type u_2
R : Type u_3
V : Type u_5
inst✝⁶ : PartialOrder Γ
inst✝⁵ : PartialOrder Γ'
inst✝⁴ : VAdd Γ Γ'
inst✝³ : IsOrderedCancelVAdd Γ Γ'
inst✝² : AddCommMonoid V
inst✝¹ : MulZeroClass R
inst✝ : SMulWithZero R V
x✝ : HahnSeries Γ R
y : HahnModule Γ' R V
x : Γ'
hx : x ∈ ((of R).symm (x✝ • y)).support
⊢ x ∈ {a | (VAddAntidiagonal ⋯ ⋯ a).Nonempty}

Proof state:
Γ : Type u_1
Γ' : Type u_2
R : Type u_3
V : Type u_5
inst✝⁶ : PartialOrder Γ
inst✝⁵ : PartialOrder Γ'
inst✝⁴ : VAdd Γ Γ'
inst✝³ : IsOrderedCancelVAdd Γ Γ'
inst✝² : AddCommMonoid V
inst✝¹ : MulZeroClass R
inst✝ : SMulWithZero R V
x✝ : HahnSeries Γ R
y : HahnModule Γ' R V
x : Γ'
hx : x ∈ ((of R).symm (x✝ • y)).support
⊢ x ∈ {a | (VAddAntidiagonal ⋯ ⋯ a).Nonempty}

Tactic:
contrapose! hx

Result:
Γ : Type u_1
Γ' : Type u_2
R : Type u_3
V : Type u_5
inst✝⁶ : PartialOrder Γ
inst✝⁵ : PartialOrder Γ'
inst✝⁴ : VAdd Γ Γ'
inst✝³ : IsOrderedCancelVAdd Γ Γ'
inst✝² : AddCommMonoid V
inst✝¹ : MulZeroClass R
inst✝ : SMulWithZero R V
x✝ : HahnSeries Γ R
y : HahnModule Γ' R V
x : Γ'
hx : x ∉ {a | (VAddAntidiagonal ⋯ ⋯ a).Nonempty}
⊢ x ∉ ((of R).symm (x✝ • y)).support

Proof state:
Γ : Type u_1
Γ' : Type u_2
R : Type u_3
V : Type u_5
inst✝⁶ : PartialOrder Γ
inst✝⁵ : PartialOrder Γ'
inst✝⁴ : VAdd Γ Γ'
inst✝³ : IsOrderedCancelVAdd Γ Γ'
inst✝² : AddCommMonoid V
inst✝¹ : MulZeroClass R
inst✝ : SMulWithZero R V
x : HahnSeries Γ R
y : HahnModule Γ' R V
⊢ ((of R).symm (x • y)).support ⊆ x.support +ᵥ ((of R).symm y).support

Tactic:
apply Set.Subset.trans (fun x hx => _) support_vaddAntidiagonal_subset_vadd

Result:
Γ : Type u_1
Γ' : Type u_2
R : Type u_3
V : Type u_5
inst✝⁶ : PartialOrder Γ
inst✝⁵ : PartialOrder Γ'
inst✝⁴ : VAdd Γ Γ'
inst✝³ : IsOrderedCancelVAdd Γ Γ'
inst✝² : AddCommMonoid V
inst✝¹ : MulZeroClass R
inst✝ : SMulWithZero R V
x : HahnSeries Γ R
y : HahnModule Γ' R V
⊢ x.support.IsPWO

Γ : Type u_1
Γ' : Type u_2
R : Type u_3
V : Type u_5
inst✝⁶ : PartialOrder Γ
inst✝⁵ : PartialOrder Γ'
inst✝⁴ : VAdd Γ Γ'
inst✝³ : IsOrderedCancelVAdd Γ Γ'
inst✝² : AddCommMonoid V
inst✝¹ : MulZeroClass R
inst✝ : SMulWithZero R V
x : HahnSeries Γ R
y : HahnModule Γ' R V
⊢ ((of R).symm y).support.IsPWO

Γ : Type u_1
Γ' : Type u_2
R : Type u_3
V : Type u_5
inst✝⁶ : PartialOrder Γ
inst✝⁵ : PartialOrder Γ'
inst✝⁴ : VAdd Γ Γ'
inst✝³ : IsOrderedCancelVAdd Γ Γ'
inst✝² : AddCommMonoid V
inst✝¹ : MulZeroClass R
inst✝ : SMulWithZero R V
x : HahnSeries Γ R
y : HahnModule Γ' R V
⊢ ∀ x_1 ∈ ((of R).symm (x • y)).support, x_1 ∈ {a | (VAddAntidiagonal ?m.140321 ?m.140322 a).Nonempty}

Proof state:
Γ : Type u_1
Γ' : Type u_2
R : Type u_3
V : Type u_5
inst✝⁶ : PartialOrder Γ
inst✝⁵ : PartialOrder Γ'
inst✝⁴ : VAdd Γ Γ'
inst✝³ : IsOrderedCancelVAdd Γ Γ'
inst✝² : AddCommMonoid V
inst✝¹ : MulZeroClass R
inst✝ : SMulWithZero R V
x✝ : HahnSeries Γ R
y : HahnModule Γ' R V
x : Γ'
hx : x ∉ {a | (VAddAntidiagonal ⋯ ⋯ a).Nonempty}
⊢ x ∉ ((of R).symm (x✝ • y)).support

Tactic:
simp only [Set.mem_setOf_eq, not_nonempty_iff_eq_empty] at hx

Result:
Γ : Type u_1
Γ' : Type u_2
R : Type u_3
V : Type u_5
inst✝⁶ : PartialOrder Γ
inst✝⁵ : PartialOrder Γ'
inst✝⁴ : VAdd Γ Γ'
inst✝³ : IsOrderedCancelVAdd Γ Γ'
inst✝² : AddCommMonoid V
inst✝¹ : MulZeroClass R
inst✝ : SMulWithZero R V
x✝ : HahnSeries Γ R
y : HahnModule Γ' R V
x : Γ'
hx : VAddAntidiagonal ⋯ ⋯ x = ∅
⊢ x ∉ ((of R).symm (x✝ • y)).support

Proof state:
Γ : Type u_1
Γ' : Type u_2
R : Type u_3
V : Type u_5
inst✝⁶ : PartialOrder Γ
inst✝⁵ : PartialOrder Γ'
inst✝⁴ : VAdd Γ Γ'
inst✝³ : IsOrderedCancelVAdd Γ Γ'
inst✝² : AddCommMonoid V
inst✝¹ : MulZeroClass R
inst✝ : SMulWithZero R V
x✝ : HahnSeries Γ R
y : HahnModule Γ' R V
x : Γ'
hx : VAddAntidiagonal ⋯ ⋯ x = ∅
⊢ x ∉ ((of R).symm (x✝ • y)).support

Tactic:
simp [hx, coeff_smul]

Result:
no goals

Proof state:
Γ : Type u_1
Γ' : Type u_2
R : Type u_3
V : Type u_5
inst✝⁶ : PartialOrder Γ
inst✝⁵ : PartialOrder Γ'
inst✝⁴ : VAdd Γ Γ'
inst✝³ : IsOrderedCancelVAdd Γ Γ'
inst✝² : AddCommMonoid V
inst✝¹ : MulZeroClass R
inst✝ : SMulWithZero R V
x : HahnSeries Γ R
y : HahnModule Γ' R V
⊢ x.support.IsPWO

Tactic:
exact x.isPWO_support

Result:
no goals