Theorem: Finsupp.mem_support_multiset_sum
File: Mathlib/Data/Finsupp/Basic.lean

tactic: simp at h
state_before: α : Type u_2
β : Type ?u.521672
γ : Type ?u.521675
ι : Type ?u.521678
M : Type u_1
M' : Type ?u.521684
N : Type ?u.521687
P : Type ?u.521690
G : Type ?u.521693
H : Type ?u.521696
R : Type ?u.521699
S : Type ?u.521702
inst✝ : AddCommMonoid M
s : Multiset (α →₀ M)
a : α
h : a ∈ (Multiset.sum 0).support
⊢ False

tactic: intro f s ih ha
state_before: α : Type u_2
β : Type ?u.521672
γ : Type ?u.521675
ι : Type ?u.521678
M : Type u_1
M' : Type ?u.521684
N : Type ?u.521687
P : Type ?u.521690
G : Type ?u.521693
H : Type ?u.521696
R : Type ?u.521699
S : Type ?u.521702
inst✝ : AddCommMonoid M
s : Multiset (α →₀ M)
a : α
⊢ ∀ ⦃a_1 : α →₀ M⦄ {s : Multiset (α →₀ M)},
    (a ∈ (Multiset.sum s).support → ∃ f, f ∈ s ∧ a ∈ f.support) →
      a ∈ (Multiset.sum (a_1 ::ₘ s)).support → ∃ f, f ∈ a_1 ::ₘ s ∧ a ∈ f.support

tactic: by_cases h : a ∈ f.support
state_before: α : Type u_2
β : Type ?u.521672
γ : Type ?u.521675
ι : Type ?u.521678
M : Type u_1
M' : Type ?u.521684
N : Type ?u.521687
P : Type ?u.521690
G : Type ?u.521693
H : Type ?u.521696
R : Type ?u.521699
S : Type ?u.521702
inst✝ : AddCommMonoid M
s✝ : Multiset (α →₀ M)
a : α
f : α →₀ M
s : Multiset (α →₀ M)
ih : a ∈ (Multiset.sum s).support → ∃ f, f ∈ s ∧ a ∈ f.support
ha : a ∈ (Multiset.sum (f ::ₘ s)).support
⊢ ∃ f_1, f_1 ∈ f ::ₘ s ∧ a ∈ f_1.support

tactic: exact ⟨f, Multiset.mem_cons_self _ _, h⟩
state_before: case pos
α : Type u_2
β : Type ?u.521672
γ : Type ?u.521675
ι : Type ?u.521678
M : Type u_1
M' : Type ?u.521684
N : Type ?u.521687
P : Type ?u.521690
G : Type ?u.521693
H : Type ?u.521696
R : Type ?u.521699
S : Type ?u.521702
inst✝ : AddCommMonoid M
s✝ : Multiset (α →₀ M)
a : α
f : α →₀ M
s : Multiset (α →₀ M)
ih : a ∈ (Multiset.sum s).support → ∃ f, f ∈ s ∧ a ∈ f.support
ha : a ∈ (Multiset.sum (f ::ₘ s)).support
h : a ∈ f.support
⊢ ∃ f_1, f_1 ∈ f ::ₘ s ∧ a ∈ f_1.support

tactic: simp only [Multiset.sum_cons, mem_support_iff, add_apply, not_mem_support_iff.1 h,
  zero_add] at ha
state_before: case neg
α : Type u_2
β : Type ?u.521672
γ : Type ?u.521675
ι : Type ?u.521678
M : Type u_1
M' : Type ?u.521684
N : Type ?u.521687
P : Type ?u.521690
G : Type ?u.521693
H : Type ?u.521696
R : Type ?u.521699
S : Type ?u.521702
inst✝ : AddCommMonoid M
s✝ : Multiset (α →₀ M)
a : α
f : α →₀ M
s : Multiset (α →₀ M)
ih : a ∈ (Multiset.sum s).support → ∃ f, f ∈ s ∧ a ∈ f.support
ha : a ∈ (Multiset.sum (f ::ₘ s)).support
h : ¬a ∈ f.support
⊢ ∃ f_1, f_1 ∈ f ::ₘ s ∧ a ∈ f_1.support

tactic: rcases ih (mem_support_iff.2 ha) with ⟨f', h₀, h₁⟩
state_before: case neg
α : Type u_2
β : Type ?u.521672
γ : Type ?u.521675
ι : Type ?u.521678
M : Type u_1
M' : Type ?u.521684
N : Type ?u.521687
P : Type ?u.521690
G : Type ?u.521693
H : Type ?u.521696
R : Type ?u.521699
S : Type ?u.521702
inst✝ : AddCommMonoid M
s✝ : Multiset (α →₀ M)
a : α
f : α →₀ M
s : Multiset (α →₀ M)
ih : a ∈ (Multiset.sum s).support → ∃ f, f ∈ s ∧ a ∈ f.support
h : ¬a ∈ f.support
ha : ↑(Multiset.sum s) a ≠ 0
⊢ ∃ f_1, f_1 ∈ f ::ₘ s ∧ a ∈ f_1.support

tactic: exact ⟨f', Multiset.mem_cons_of_mem h₀, h₁⟩
state_before: case neg.intro.intro
α : Type u_2
β : Type ?u.521672
γ : Type ?u.521675
ι : Type ?u.521678
M : Type u_1
M' : Type ?u.521684
N : Type ?u.521687
P : Type ?u.521690
G : Type ?u.521693
H : Type ?u.521696
R : Type ?u.521699
S : Type ?u.521702
inst✝ : AddCommMonoid M
s✝ : Multiset (α →₀ M)
a : α
f : α →₀ M
s : Multiset (α →₀ M)
ih : a ∈ (Multiset.sum s).support → ∃ f, f ∈ s ∧ a ∈ f.support
h : ¬a ∈ f.support
ha : ↑(Multiset.sum s) a ≠ 0
f' : α →₀ M
h₀ : f' ∈ s
h₁ : a ∈ f'.support
⊢ ∃ f_1, f_1 ∈ f ::ₘ s ∧ a ∈ f_1.support