Theorem: Finset.finsuppAntidiag_empty_of_ne_zero
File: Mathlib/Algebra/Order/Antidiag/Finsupp.lean

tactic: ext f
state_before: ι : Type u_1
μ : Type u_2
μ' : Type u_3
inst✝⁶ : DecidableEq ι
inst✝⁵ : AddCommMonoid μ
inst✝⁴ : HasAntidiagonal μ
inst✝³ : DecidableEq μ
inst✝² : AddCommMonoid μ'
inst✝¹ : HasAntidiagonal μ'
inst✝ : DecidableEq μ'
n : μ
hn : n ≠ 0
⊢ ∅.finsuppAntidiag n = ∅
state_after: case a
ι : Type u_1
μ : Type u_2
μ' : Type u_3
inst✝⁶ : DecidableEq ι
inst✝⁵ : AddCommMonoid μ
inst✝⁴ : HasAntidiagonal μ
inst✝³ : DecidableEq μ
inst✝² : AddCommMonoid μ'
inst✝¹ : HasAntidiagonal μ'
inst✝ : DecidableEq μ'
n : μ
hn : n ≠ 0
f : ι →₀ μ
⊢ f ∈ ∅.finsuppAntidiag n ↔ f ∈ ∅

tactic: rw [mem_finsuppAntidiag]
state_before: case a
ι : Type u_1
μ : Type u_2
μ' : Type u_3
inst✝⁶ : DecidableEq ι
inst✝⁵ : AddCommMonoid μ
inst✝⁴ : HasAntidiagonal μ
inst✝³ : DecidableEq μ
inst✝² : AddCommMonoid μ'
inst✝¹ : HasAntidiagonal μ'
inst✝ : DecidableEq μ'
n : μ
hn : n ≠ 0
f : ι →₀ μ
⊢ f ∈ ∅.finsuppAntidiag n ↔ f ∈ ∅
state_after: case a
ι : Type u_1
μ : Type u_2
μ' : Type u_3
inst✝⁶ : DecidableEq ι
inst✝⁵ : AddCommMonoid μ
inst✝⁴ : HasAntidiagonal μ
inst✝³ : DecidableEq μ
inst✝² : AddCommMonoid μ'
inst✝¹ : HasAntidiagonal μ'
inst✝ : DecidableEq μ'
n : μ
hn : n ≠ 0
f : ι →₀ μ
⊢ f.support ⊆ ∅ ∧ (f.sum fun x x => x) = n ↔ f ∈ ∅

tactic: simp only [subset_empty, support_eq_empty, sum_empty,
  not_mem_empty, iff_false, not_and]
state_before: case a
ι : Type u_1
μ : Type u_2
μ' : Type u_3
inst✝⁶ : DecidableEq ι
inst✝⁵ : AddCommMonoid μ
inst✝⁴ : HasAntidiagonal μ
inst✝³ : DecidableEq μ
inst✝² : AddCommMonoid μ'
inst✝¹ : HasAntidiagonal μ'
inst✝ : DecidableEq μ'
n : μ
hn : n ≠ 0
f : ι →₀ μ
⊢ f.support ⊆ ∅ ∧ (f.sum fun x x => x) = n ↔ f ∈ ∅
state_after: case a
ι : Type u_1
μ : Type u_2
μ' : Type u_3
inst✝⁶ : DecidableEq ι
inst✝⁵ : AddCommMonoid μ
inst✝⁴ : HasAntidiagonal μ
inst✝³ : DecidableEq μ
inst✝² : AddCommMonoid μ'
inst✝¹ : HasAntidiagonal μ'
inst✝ : DecidableEq μ'
n : μ
hn : n ≠ 0
f : ι →₀ μ
⊢ f = 0 → ¬(f.sum fun x x => x) = n

tactic: intro hf
state_before: case a
ι : Type u_1
μ : Type u_2
μ' : Type u_3
inst✝⁶ : DecidableEq ι
inst✝⁵ : AddCommMonoid μ
inst✝⁴ : HasAntidiagonal μ
inst✝³ : DecidableEq μ
inst✝² : AddCommMonoid μ'
inst✝¹ : HasAntidiagonal μ'
inst✝ : DecidableEq μ'
n : μ
hn : n ≠ 0
f : ι →₀ μ
⊢ f = 0 → ¬(f.sum fun x x => x) = n
state_after: case a
ι : Type u_1
μ : Type u_2
μ' : Type u_3
inst✝⁶ : DecidableEq ι
inst✝⁵ : AddCommMonoid μ
inst✝⁴ : HasAntidiagonal μ
inst✝³ : DecidableEq μ
inst✝² : AddCommMonoid μ'
inst✝¹ : HasAntidiagonal μ'
inst✝ : DecidableEq μ'
n : μ
hn : n ≠ 0
f : ι →₀ μ
hf : f = 0
⊢ ¬(f.sum fun x x => x) = n

tactic: rw [hf, sum_zero_index]
state_before: case a
ι : Type u_1
μ : Type u_2
μ' : Type u_3
inst✝⁶ : DecidableEq ι
inst✝⁵ : AddCommMonoid μ
inst✝⁴ : HasAntidiagonal μ
inst✝³ : DecidableEq μ
inst✝² : AddCommMonoid μ'
inst✝¹ : HasAntidiagonal μ'
inst✝ : DecidableEq μ'
n : μ
hn : n ≠ 0
f : ι →₀ μ
hf : f = 0
⊢ ¬(f.sum fun x x => x) = n
state_after: case a
ι : Type u_1
μ : Type u_2
μ' : Type u_3
inst✝⁶ : DecidableEq ι
inst✝⁵ : AddCommMonoid μ
inst✝⁴ : HasAntidiagonal μ
inst✝³ : DecidableEq μ
inst✝² : AddCommMonoid μ'
inst✝¹ : HasAntidiagonal μ'
inst✝ : DecidableEq μ'
n : μ
hn : n ≠ 0
f : ι →₀ μ
hf : f = 0
⊢ ¬0 = n

tactic: exact Ne.symm hn
state_before: case a
ι : Type u_1
μ : Type u_2
μ' : Type u_3
inst✝⁶ : DecidableEq ι
inst✝⁵ : AddCommMonoid μ
inst✝⁴ : HasAntidiagonal μ
inst✝³ : DecidableEq μ
inst✝² : AddCommMonoid μ'
inst✝¹ : HasAntidiagonal μ'
inst✝ : DecidableEq μ'
n : μ
hn : n ≠ 0
f : ι →₀ μ
hf : f = 0
⊢ ¬0 = n
state_after: no goals