Theorem: Finsupp.support_mul
File: Mathlib/Data/Finsupp/Pointwise.lean

tactic: intro a h
state_before: α : Type u₁
β : Type u₂
γ : Type u₃
δ : Type u₄
ι : Type u₅
inst✝¹ : MulZeroClass β
inst✝ : DecidableEq α
g₁ g₂ : α →₀ β
⊢ (g₁ * g₂).support ⊆ g₁.support ∩ g₂.support
state_after: α : Type u₁
β : Type u₂
γ : Type u₃
δ : Type u₄
ι : Type u₅
inst✝¹ : MulZeroClass β
inst✝ : DecidableEq α
g₁ g₂ : α →₀ β
a : α
h : a ∈ (g₁ * g₂).support
⊢ a ∈ g₁.support ∩ g₂.support

tactic: simp only [mul_apply, mem_support_iff] at h
state_before: α : Type u₁
β : Type u₂
γ : Type u₃
δ : Type u₄
ι : Type u₅
inst✝¹ : MulZeroClass β
inst✝ : DecidableEq α
g₁ g₂ : α →₀ β
a : α
h : a ∈ (g₁ * g₂).support
⊢ a ∈ g₁.support ∩ g₂.support
state_after: α : Type u₁
β : Type u₂
γ : Type u₃
δ : Type u₄
ι : Type u₅
inst✝¹ : MulZeroClass β
inst✝ : DecidableEq α
g₁ g₂ : α →₀ β
a : α
h : g₁ a * g₂ a ≠ 0
⊢ a ∈ g₁.support ∩ g₂.support

tactic: simp only [mem_support_iff, mem_inter, Ne]
state_before: α : Type u₁
β : Type u₂
γ : Type u₃
δ : Type u₄
ι : Type u₅
inst✝¹ : MulZeroClass β
inst✝ : DecidableEq α
g₁ g₂ : α →₀ β
a : α
h : g₁ a * g₂ a ≠ 0
⊢ a ∈ g₁.support ∩ g₂.support
state_after: α : Type u₁
β : Type u₂
γ : Type u₃
δ : Type u₄
ι : Type u₅
inst✝¹ : MulZeroClass β
inst✝ : DecidableEq α
g₁ g₂ : α →₀ β
a : α
h : g₁ a * g₂ a ≠ 0
⊢ ¬g₁ a = 0 ∧ ¬g₂ a = 0

tactic: rw [← not_or]
state_before: α : Type u₁
β : Type u₂
γ : Type u₃
δ : Type u₄
ι : Type u₅
inst✝¹ : MulZeroClass β
inst✝ : DecidableEq α
g₁ g₂ : α →₀ β
a : α
h : g₁ a * g₂ a ≠ 0
⊢ ¬g₁ a = 0 ∧ ¬g₂ a = 0
state_after: α : Type u₁
β : Type u₂
γ : Type u₃
δ : Type u₄
ι : Type u₅
inst✝¹ : MulZeroClass β
inst✝ : DecidableEq α
g₁ g₂ : α →₀ β
a : α
h : g₁ a * g₂ a ≠ 0
⊢ ¬(g₁ a = 0 ∨ g₂ a = 0)

tactic: intro w
state_before: α : Type u₁
β : Type u₂
γ : Type u₃
δ : Type u₄
ι : Type u₅
inst✝¹ : MulZeroClass β
inst✝ : DecidableEq α
g₁ g₂ : α →₀ β
a : α
h : g₁ a * g₂ a ≠ 0
⊢ ¬(g₁ a = 0 ∨ g₂ a = 0)
state_after: α : Type u₁
β : Type u₂
γ : Type u₃
δ : Type u₄
ι : Type u₅
inst✝¹ : MulZeroClass β
inst✝ : DecidableEq α
g₁ g₂ : α →₀ β
a : α
h : g₁ a * g₂ a ≠ 0
w : g₁ a = 0 ∨ g₂ a = 0
⊢ False

tactic: apply h
state_before: α : Type u₁
β : Type u₂
γ : Type u₃
δ : Type u₄
ι : Type u₅
inst✝¹ : MulZeroClass β
inst✝ : DecidableEq α
g₁ g₂ : α →₀ β
a : α
h : g₁ a * g₂ a ≠ 0
w : g₁ a = 0 ∨ g₂ a = 0
⊢ False
state_after: α : Type u₁
β : Type u₂
γ : Type u₃
δ : Type u₄
ι : Type u₅
inst✝¹ : MulZeroClass β
inst✝ : DecidableEq α
g₁ g₂ : α →₀ β
a : α
h : g₁ a * g₂ a ≠ 0
w : g₁ a = 0 ∨ g₂ a = 0
⊢ g₁ a * g₂ a = 0

tactic: cases' w with w w <;> (rw [w]; simp)
state_before: α : Type u₁
β : Type u₂
γ : Type u₃
δ : Type u₄
ι : Type u₅
inst✝¹ : MulZeroClass β
inst✝ : DecidableEq α
g₁ g₂ : α →₀ β
a : α
h : g₁ a * g₂ a ≠ 0
w : g₁ a = 0 ∨ g₂ a = 0
⊢ g₁ a * g₂ a = 0
state_after: no goals

tactic: rw [w]
state_before: case inr
α : Type u₁
β : Type u₂
γ : Type u₃
δ : Type u₄
ι : Type u₅
inst✝¹ : MulZeroClass β
inst✝ : DecidableEq α
g₁ g₂ : α →₀ β
a : α
h : g₁ a * g₂ a ≠ 0
w : g₂ a = 0
⊢ g₁ a * g₂ a = 0
state_after: case inr
α : Type u₁
β : Type u₂
γ : Type u₃
δ : Type u₄
ι : Type u₅
inst✝¹ : MulZeroClass β
inst✝ : DecidableEq α
g₁ g₂ : α →₀ β
a : α
h : g₁ a * g₂ a ≠ 0
w : g₂ a = 0
⊢ g₁ a * 0 = 0

tactic: simp
state_before: case inr
α : Type u₁
β : Type u₂
γ : Type u₃
δ : Type u₄
ι : Type u₅
inst✝¹ : MulZeroClass β
inst✝ : DecidableEq α
g₁ g₂ : α →₀ β
a : α
h : g₁ a * g₂ a ≠ 0
w : g₂ a = 0
⊢ g₁ a * 0 = 0
state_after: no goals