Theorem: MvPolynomial.support_esymm''
File: Mathlib/RingTheory/MvPolynomial/Symmetric.lean

tactic: rw [esymm_eq_sum_monomial]
state_before: σ : Type u_1
R : Type u_2
τ : Type ?u.175369
S : Type ?u.175372
inst✝⁵ : CommSemiring R
inst✝⁴ : CommSemiring S
inst✝³ : Fintype σ
inst✝² : Fintype τ
n : ℕ
inst✝¹ : DecidableEq σ
inst✝ : Nontrivial R
⊢ support (esymm σ R n) =
    Finset.biUnion (powersetLen n univ) fun t => (Finsupp.single (∑ i in t, Finsupp.single i 1) 1).support

tactic: simp only [← single_eq_monomial]
state_before: σ : Type u_1
R : Type u_2
τ : Type ?u.175369
S : Type ?u.175372
inst✝⁵ : CommSemiring R
inst✝⁴ : CommSemiring S
inst✝³ : Fintype σ
inst✝² : Fintype τ
n : ℕ
inst✝¹ : DecidableEq σ
inst✝ : Nontrivial R
⊢ support (∑ t in powersetLen n univ, ↑(monomial (∑ i in t, Finsupp.single i 1)) 1) =
    Finset.biUnion (powersetLen n univ) fun t => (Finsupp.single (∑ i in t, Finsupp.single i 1) 1).support

tactic: refine' Finsupp.support_sum_eq_biUnion (powersetLen n (univ : Finset σ)) _
state_before: σ : Type u_1
R : Type u_2
τ : Type ?u.175369
S : Type ?u.175372
inst✝⁵ : CommSemiring R
inst✝⁴ : CommSemiring S
inst✝³ : Fintype σ
inst✝² : Fintype τ
n : ℕ
inst✝¹ : DecidableEq σ
inst✝ : Nontrivial R
⊢ support (∑ x in powersetLen n univ, Finsupp.single (∑ i in x, Finsupp.single i 1) 1) =
    Finset.biUnion (powersetLen n univ) fun t => (Finsupp.single (∑ i in t, Finsupp.single i 1) 1).support

tactic: intro s t hst
state_before: σ : Type u_1
R : Type u_2
τ : Type ?u.175369
S : Type ?u.175372
inst✝⁵ : CommSemiring R
inst✝⁴ : CommSemiring S
inst✝³ : Fintype σ
inst✝² : Fintype τ
n : ℕ
inst✝¹ : DecidableEq σ
inst✝ : Nontrivial R
⊢ ∀ (i₁ i₂ : Finset σ),
    i₁ ≠ i₂ →
      Disjoint (Finsupp.single (∑ i in i₁, Finsupp.single i 1) 1).support
        (Finsupp.single (∑ i in i₂, Finsupp.single i 1) 1).support

tactic: rw [Finset.disjoint_left, Finsupp.support_single_ne_zero _ one_ne_zero]
state_before: σ : Type u_1
R : Type u_2
τ : Type ?u.175369
S : Type ?u.175372
inst✝⁵ : CommSemiring R
inst✝⁴ : CommSemiring S
inst✝³ : Fintype σ
inst✝² : Fintype τ
n : ℕ
inst✝¹ : DecidableEq σ
inst✝ : Nontrivial R
s t : Finset σ
hst : s ≠ t
⊢ Disjoint (Finsupp.single (∑ i in s, Finsupp.single i 1) 1).support
    (Finsupp.single (∑ i in t, Finsupp.single i 1) 1).support

tactic: rw [Finsupp.support_single_ne_zero _ one_ne_zero]
state_before: σ : Type u_1
R : Type u_2
τ : Type ?u.175369
S : Type ?u.175372
inst✝⁵ : CommSemiring R
inst✝⁴ : CommSemiring S
inst✝³ : Fintype σ
inst✝² : Fintype τ
n : ℕ
inst✝¹ : DecidableEq σ
inst✝ : Nontrivial R
s t : Finset σ
hst : s ≠ t
⊢ ∀ ⦃a : σ →₀ ℕ⦄, a ∈ {∑ i in s, Finsupp.single i 1} → ¬a ∈ (Finsupp.single (∑ i in t, Finsupp.single i 1) 1).support

tactic: simp only [one_ne_zero, mem_singleton, Finsupp.mem_support_iff]
state_before: σ : Type u_1
R : Type u_2
τ : Type ?u.175369
S : Type ?u.175372
inst✝⁵ : CommSemiring R
inst✝⁴ : CommSemiring S
inst✝³ : Fintype σ
inst✝² : Fintype τ
n : ℕ
inst✝¹ : DecidableEq σ
inst✝ : Nontrivial R
s t : Finset σ
hst : s ≠ t
⊢ ∀ ⦃a : σ →₀ ℕ⦄, a ∈ {∑ i in s, Finsupp.single i 1} → ¬a ∈ {∑ i in t, Finsupp.single i 1}

tactic: rintro a h rfl
state_before: σ : Type u_1
R : Type u_2
τ : Type ?u.175369
S : Type ?u.175372
inst✝⁵ : CommSemiring R
inst✝⁴ : CommSemiring S
inst✝³ : Fintype σ
inst✝² : Fintype τ
n : ℕ
inst✝¹ : DecidableEq σ
inst✝ : Nontrivial R
s t : Finset σ
hst : s ≠ t
⊢ ∀ ⦃a : σ →₀ ℕ⦄, a = ∑ i in s, Finsupp.single i 1 → ¬a = ∑ i in t, Finsupp.single i 1

tactic: have := congr_arg Finsupp.support h
state_before: σ : Type u_1
R : Type u_2
τ : Type ?u.175369
S : Type ?u.175372
inst✝⁵ : CommSemiring R
inst✝⁴ : CommSemiring S
inst✝³ : Fintype σ
inst✝² : Fintype τ
n : ℕ
inst✝¹ : DecidableEq σ
inst✝ : Nontrivial R
s t : Finset σ
hst : s ≠ t
h : ∑ i in t, Finsupp.single i 1 = ∑ i in s, Finsupp.single i 1
⊢ False

tactic: rw [Finsupp.support_sum_eq_biUnion, Finsupp.support_sum_eq_biUnion] at this
state_before: σ : Type u_1
R : Type u_2
τ : Type ?u.175369
S : Type ?u.175372
inst✝⁵ : CommSemiring R
inst✝⁴ : CommSemiring S
inst✝³ : Fintype σ
inst✝² : Fintype τ
n : ℕ
inst✝¹ : DecidableEq σ
inst✝ : Nontrivial R
s t : Finset σ
hst : s ≠ t
h : ∑ i in t, Finsupp.single i 1 = ∑ i in s, Finsupp.single i 1
this : (∑ i in t, Finsupp.single i 1).support = (∑ i in s, Finsupp.single i 1).support
⊢ False

tactic: have hsingle : ∀ s : Finset σ, ∀ x : σ, x ∈ s → (Finsupp.single x 1).support = {x} := by
  intros _ x _
  rw [Finsupp.support_single_ne_zero x one_ne_zero]
state_before: σ : Type u_1
R : Type u_2
τ : Type ?u.175369
S : Type ?u.175372
inst✝⁵ : CommSemiring R
inst✝⁴ : CommSemiring S
inst✝³ : Fintype σ
inst✝² : Fintype τ
n : ℕ
inst✝¹ : DecidableEq σ
inst✝ : Nontrivial R
s t : Finset σ
hst : s ≠ t
h : ∑ i in t, Finsupp.single i 1 = ∑ i in s, Finsupp.single i 1
this✝¹ : (∑ i in t, Finsupp.single i 1).support = (∑ i in s, Finsupp.single i 1).support
this✝ : (Finset.biUnion t fun i => (Finsupp.single i 1).support) = (∑ i in s, Finsupp.single i 1).support
this : (Finset.biUnion t fun i => (Finsupp.single i 1).support) = Finset.biUnion s fun i => (Finsupp.single i 1).support
⊢ False

case h
σ : Type u_1
R : Type u_2
τ : Type ?u.175369
S : Type ?u.175372
inst✝⁵ : CommSemiring R
inst✝⁴ : CommSemiring S
inst✝³ : Fintype σ
inst✝² : Fintype τ
n : ℕ
inst✝¹ : DecidableEq σ
inst✝ : Nontrivial R
s t : Finset σ
hst : s ≠ t
h : ∑ i in t, Finsupp.single i 1 = ∑ i in s, Finsupp.single i 1
this✝ : (∑ i in t, Finsupp.single i 1).support = (∑ i in s, Finsupp.single i 1).support
this : (Finset.biUnion t fun i => (Finsupp.single i 1).support) = (∑ i in s, Finsupp.single i 1).support
⊢ ∀ (i₁ i₂ : σ), i₁ ≠ i₂ → Disjoint (Finsupp.single i₁ 1).support (Finsupp.single i₂ 1).support

case h
σ : Type u_1
R : Type u_2
τ : Type ?u.175369
S : Type ?u.175372
inst✝⁵ : CommSemiring R
inst✝⁴ : CommSemiring S
inst✝³ : Fintype σ
inst✝² : Fintype τ
n : ℕ
inst✝¹ : DecidableEq σ
inst✝ : Nontrivial R
s t : Finset σ
hst : s ≠ t
h : ∑ i in t, Finsupp.single i 1 = ∑ i in s, Finsupp.single i 1
this : (∑ i in t, Finsupp.single i 1).support = (∑ i in s, Finsupp.single i 1).support
⊢ ∀ (i₁ i₂ : σ), i₁ ≠ i₂ → Disjoint (Finsupp.single i₁ 1).support (Finsupp.single i₂ 1).support

tactic: have hs := biUnion_congr (of_eq_true (eq_self s)) (hsingle s)
state_before: σ : Type u_1
R : Type u_2
τ : Type ?u.175369
S : Type ?u.175372
inst✝⁵ : CommSemiring R
inst✝⁴ : CommSemiring S
inst✝³ : Fintype σ
inst✝² : Fintype τ
n : ℕ
inst✝¹ : DecidableEq σ
inst✝ : Nontrivial R
s t : Finset σ
hst : s ≠ t
h : ∑ i in t, Finsupp.single i 1 = ∑ i in s, Finsupp.single i 1
this✝¹ : (∑ i in t, Finsupp.single i 1).support = (∑ i in s, Finsupp.single i 1).support
this✝ : (Finset.biUnion t fun i => (Finsupp.single i 1).support) = (∑ i in s, Finsupp.single i 1).support
this : (Finset.biUnion t fun i => (Finsupp.single i 1).support) = Finset.biUnion s fun i => (Finsupp.single i 1).support
hsingle : ∀ (s : Finset σ) (x : σ), x ∈ s → (Finsupp.single x 1).support = {x}
⊢ False

case h
σ : Type u_1
R : Type u_2
τ : Type ?u.175369
S : Type ?u.175372
inst✝⁵ : CommSemiring R
inst✝⁴ : CommSemiring S
inst✝³ : Fintype σ
inst✝² : Fintype τ
n : ℕ
inst✝¹ : DecidableEq σ
inst✝ : Nontrivial R
s t : Finset σ
hst : s ≠ t
h : ∑ i in t, Finsupp.single i 1 = ∑ i in s, Finsupp.single i 1
this✝ : (∑ i in t, Finsupp.single i 1).support = (∑ i in s, Finsupp.single i 1).support
this : (Finset.biUnion t fun i => (Finsupp.single i 1).support) = (∑ i in s, Finsupp.single i 1).support
⊢ ∀ (i₁ i₂ : σ), i₁ ≠ i₂ → Disjoint (Finsupp.single i₁ 1).support (Finsupp.single i₂ 1).support

case h
σ : Type u_1
R : Type u_2
τ : Type ?u.175369
S : Type ?u.175372
inst✝⁵ : CommSemiring R
inst✝⁴ : CommSemiring S
inst✝³ : Fintype σ
inst✝² : Fintype τ
n : ℕ
inst✝¹ : DecidableEq σ
inst✝ : Nontrivial R
s t : Finset σ
hst : s ≠ t
h : ∑ i in t, Finsupp.single i 1 = ∑ i in s, Finsupp.single i 1
this : (∑ i in t, Finsupp.single i 1).support = (∑ i in s, Finsupp.single i 1).support
⊢ ∀ (i₁ i₂ : σ), i₁ ≠ i₂ → Disjoint (Finsupp.single i₁ 1).support (Finsupp.single i₂ 1).support

tactic: have ht := biUnion_congr (of_eq_true (eq_self t)) (hsingle t)
state_before: σ : Type u_1
R : Type u_2
τ : Type ?u.175369
S : Type ?u.175372
inst✝⁵ : CommSemiring R
inst✝⁴ : CommSemiring S
inst✝³ : Fintype σ
inst✝² : Fintype τ
n : ℕ
inst✝¹ : DecidableEq σ
inst✝ : Nontrivial R
s t : Finset σ
hst : s ≠ t
h : ∑ i in t, Finsupp.single i 1 = ∑ i in s, Finsupp.single i 1
this✝¹ : (∑ i in t, Finsupp.single i 1).support = (∑ i in s, Finsupp.single i 1).support
this✝ : (Finset.biUnion t fun i => (Finsupp.single i 1).support) = (∑ i in s, Finsupp.single i 1).support
this : (Finset.biUnion t fun i => (Finsupp.single i 1).support) = Finset.biUnion s fun i => (Finsupp.single i 1).support
hsingle : ∀ (s : Finset σ) (x : σ), x ∈ s → (Finsupp.single x 1).support = {x}
hs : (Finset.biUnion s fun a => (Finsupp.single a 1).support) = Finset.biUnion s fun a => {a}
⊢ False

case h
σ : Type u_1
R : Type u_2
τ : Type ?u.175369
S : Type ?u.175372
inst✝⁵ : CommSemiring R
inst✝⁴ : CommSemiring S
inst✝³ : Fintype σ
inst✝² : Fintype τ
n : ℕ
inst✝¹ : DecidableEq σ
inst✝ : Nontrivial R
s t : Finset σ
hst : s ≠ t
h : ∑ i in t, Finsupp.single i 1 = ∑ i in s, Finsupp.single i 1
this✝ : (∑ i in t, Finsupp.single i 1).support = (∑ i in s, Finsupp.single i 1).support
this : (Finset.biUnion t fun i => (Finsupp.single i 1).support) = (∑ i in s, Finsupp.single i 1).support
⊢ ∀ (i₁ i₂ : σ), i₁ ≠ i₂ → Disjoint (Finsupp.single i₁ 1).support (Finsupp.single i₂ 1).support

case h
σ : Type u_1
R : Type u_2
τ : Type ?u.175369
S : Type ?u.175372
inst✝⁵ : CommSemiring R
inst✝⁴ : CommSemiring S
inst✝³ : Fintype σ
inst✝² : Fintype τ
n : ℕ
inst✝¹ : DecidableEq σ
inst✝ : Nontrivial R
s t : Finset σ
hst : s ≠ t
h : ∑ i in t, Finsupp.single i 1 = ∑ i in s, Finsupp.single i 1
this : (∑ i in t, Finsupp.single i 1).support = (∑ i in s, Finsupp.single i 1).support
⊢ ∀ (i₁ i₂ : σ), i₁ ≠ i₂ → Disjoint (Finsupp.single i₁ 1).support (Finsupp.single i₂ 1).support

tactic: rw [hs, ht] at this
state_before: σ : Type u_1
R : Type u_2
τ : Type ?u.175369
S : Type ?u.175372
inst✝⁵ : CommSemiring R
inst✝⁴ : CommSemiring S
inst✝³ : Fintype σ
inst✝² : Fintype τ
n : ℕ
inst✝¹ : DecidableEq σ
inst✝ : Nontrivial R
s t : Finset σ
hst : s ≠ t
h : ∑ i in t, Finsupp.single i 1 = ∑ i in s, Finsupp.single i 1
this✝¹ : (∑ i in t, Finsupp.single i 1).support = (∑ i in s, Finsupp.single i 1).support
this✝ : (Finset.biUnion t fun i => (Finsupp.single i 1).support) = (∑ i in s, Finsupp.single i 1).support
this : (Finset.biUnion t fun i => (Finsupp.single i 1).support) = Finset.biUnion s fun i => (Finsupp.single i 1).support
hsingle : ∀ (s : Finset σ) (x : σ), x ∈ s → (Finsupp.single x 1).support = {x}
hs : (Finset.biUnion s fun a => (Finsupp.single a 1).support) = Finset.biUnion s fun a => {a}
ht : (Finset.biUnion t fun a => (Finsupp.single a 1).support) = Finset.biUnion t fun a => {a}
⊢ False

case h
σ : Type u_1
R : Type u_2
τ : Type ?u.175369
S : Type ?u.175372
inst✝⁵ : CommSemiring R
inst✝⁴ : CommSemiring S
inst✝³ : Fintype σ
inst✝² : Fintype τ
n : ℕ
inst✝¹ : DecidableEq σ
inst✝ : Nontrivial R
s t : Finset σ
hst : s ≠ t
h : ∑ i in t, Finsupp.single i 1 = ∑ i in s, Finsupp.single i 1
this✝ : (∑ i in t, Finsupp.single i 1).support = (∑ i in s, Finsupp.single i 1).support
this : (Finset.biUnion t fun i => (Finsupp.single i 1).support) = (∑ i in s, Finsupp.single i 1).support
⊢ ∀ (i₁ i₂ : σ), i₁ ≠ i₂ → Disjoint (Finsupp.single i₁ 1).support (Finsupp.single i₂ 1).support

case h
σ : Type u_1
R : Type u_2
τ : Type ?u.175369
S : Type ?u.175372
inst✝⁵ : CommSemiring R
inst✝⁴ : CommSemiring S
inst✝³ : Fintype σ
inst✝² : Fintype τ
n : ℕ
inst✝¹ : DecidableEq σ
inst✝ : Nontrivial R
s t : Finset σ
hst : s ≠ t
h : ∑ i in t, Finsupp.single i 1 = ∑ i in s, Finsupp.single i 1
this : (∑ i in t, Finsupp.single i 1).support = (∑ i in s, Finsupp.single i 1).support
⊢ ∀ (i₁ i₂ : σ), i₁ ≠ i₂ → Disjoint (Finsupp.single i₁ 1).support (Finsupp.single i₂ 1).support

tactic: simp only [Finsupp.support_single_ne_zero _ one_ne_zero] at this
state_before: σ : Type u_1
R : Type u_2
τ : Type ?u.175369
S : Type ?u.175372
inst✝⁵ : CommSemiring R
inst✝⁴ : CommSemiring S
inst✝³ : Fintype σ
inst✝² : Fintype τ
n : ℕ
inst✝¹ : DecidableEq σ
inst✝ : Nontrivial R
s t : Finset σ
hst : s ≠ t
h : ∑ i in t, Finsupp.single i 1 = ∑ i in s, Finsupp.single i 1
this✝¹ : (∑ i in t, Finsupp.single i 1).support = (∑ i in s, Finsupp.single i 1).support
this✝ : (Finset.biUnion t fun i => (Finsupp.single i 1).support) = (∑ i in s, Finsupp.single i 1).support
this : (Finset.biUnion t fun a => {a}) = Finset.biUnion s fun a => {a}
hsingle : ∀ (s : Finset σ) (x : σ), x ∈ s → (Finsupp.single x 1).support = {x}
hs : (Finset.biUnion s fun a => (Finsupp.single a 1).support) = Finset.biUnion s fun a => {a}
ht : (Finset.biUnion t fun a => (Finsupp.single a 1).support) = Finset.biUnion t fun a => {a}
⊢ False

case h
σ : Type u_1
R : Type u_2
τ : Type ?u.175369
S : Type ?u.175372
inst✝⁵ : CommSemiring R
inst✝⁴ : CommSemiring S
inst✝³ : Fintype σ
inst✝² : Fintype τ
n : ℕ
inst✝¹ : DecidableEq σ
inst✝ : Nontrivial R
s t : Finset σ
hst : s ≠ t
h : ∑ i in t, Finsupp.single i 1 = ∑ i in s, Finsupp.single i 1
this✝ : (∑ i in t, Finsupp.single i 1).support = (∑ i in s, Finsupp.single i 1).support
this : (Finset.biUnion t fun i => (Finsupp.single i 1).support) = (∑ i in s, Finsupp.single i 1).support
⊢ ∀ (i₁ i₂ : σ), i₁ ≠ i₂ → Disjoint (Finsupp.single i₁ 1).support (Finsupp.single i₂ 1).support

case h
σ : Type u_1
R : Type u_2
τ : Type ?u.175369
S : Type ?u.175372
inst✝⁵ : CommSemiring R
inst✝⁴ : CommSemiring S
inst✝³ : Fintype σ
inst✝² : Fintype τ
n : ℕ
inst✝¹ : DecidableEq σ
inst✝ : Nontrivial R
s t : Finset σ
hst : s ≠ t
h : ∑ i in t, Finsupp.single i 1 = ∑ i in s, Finsupp.single i 1
this : (∑ i in t, Finsupp.single i 1).support = (∑ i in s, Finsupp.single i 1).support
⊢ ∀ (i₁ i₂ : σ), i₁ ≠ i₂ → Disjoint (Finsupp.single i₁ 1).support (Finsupp.single i₂ 1).support

tactic: all_goals intro x y; simp [Finsupp.support_single_disjoint]
state_before: case h
σ : Type u_1
R : Type u_2
τ : Type ?u.175369
S : Type ?u.175372
inst✝⁵ : CommSemiring R
inst✝⁴ : CommSemiring S
inst✝³ : Fintype σ
inst✝² : Fintype τ
n : ℕ
inst✝¹ : DecidableEq σ
inst✝ : Nontrivial R
s t : Finset σ
hst : s ≠ t
h : ∑ i in t, Finsupp.single i 1 = ∑ i in s, Finsupp.single i 1
this✝ : (∑ i in t, Finsupp.single i 1).support = (∑ i in s, Finsupp.single i 1).support
this : (Finset.biUnion t fun i => (Finsupp.single i 1).support) = (∑ i in s, Finsupp.single i 1).support
⊢ ∀ (i₁ i₂ : σ), i₁ ≠ i₂ → Disjoint (Finsupp.single i₁ 1).support (Finsupp.single i₂ 1).support

case h
σ : Type u_1
R : Type u_2
τ : Type ?u.175369
S : Type ?u.175372
inst✝⁵ : CommSemiring R
inst✝⁴ : CommSemiring S
inst✝³ : Fintype σ
inst✝² : Fintype τ
n : ℕ
inst✝¹ : DecidableEq σ
inst✝ : Nontrivial R
s t : Finset σ
hst : s ≠ t
h : ∑ i in t, Finsupp.single i 1 = ∑ i in s, Finsupp.single i 1
this : (∑ i in t, Finsupp.single i 1).support = (∑ i in s, Finsupp.single i 1).support
⊢ ∀ (i₁ i₂ : σ), i₁ ≠ i₂ → Disjoint (Finsupp.single i₁ 1).support (Finsupp.single i₂ 1).support

tactic: intros _ x _
state_before: σ : Type u_1
R : Type u_2
τ : Type ?u.175369
S : Type ?u.175372
inst✝⁵ : CommSemiring R
inst✝⁴ : CommSemiring S
inst✝³ : Fintype σ
inst✝² : Fintype τ
n : ℕ
inst✝¹ : DecidableEq σ
inst✝ : Nontrivial R
s t : Finset σ
hst : s ≠ t
h : ∑ i in t, Finsupp.single i 1 = ∑ i in s, Finsupp.single i 1
this✝¹ : (∑ i in t, Finsupp.single i 1).support = (∑ i in s, Finsupp.single i 1).support
this✝ : (Finset.biUnion t fun i => (Finsupp.single i 1).support) = (∑ i in s, Finsupp.single i 1).support
this : (Finset.biUnion t fun i => (Finsupp.single i 1).support) = Finset.biUnion s fun i => (Finsupp.single i 1).support
⊢ ∀ (s : Finset σ) (x : σ), x ∈ s → (Finsupp.single x 1).support = {x}

tactic: rw [Finsupp.support_single_ne_zero x one_ne_zero]
state_before: σ : Type u_1
R : Type u_2
τ : Type ?u.175369
S : Type ?u.175372
inst✝⁵ : CommSemiring R
inst✝⁴ : CommSemiring S
inst✝³ : Fintype σ
inst✝² : Fintype τ
n : ℕ
inst✝¹ : DecidableEq σ
inst✝ : Nontrivial R
s t : Finset σ
hst : s ≠ t
h : ∑ i in t, Finsupp.single i 1 = ∑ i in s, Finsupp.single i 1
this✝¹ : (∑ i in t, Finsupp.single i 1).support = (∑ i in s, Finsupp.single i 1).support
this✝ : (Finset.biUnion t fun i => (Finsupp.single i 1).support) = (∑ i in s, Finsupp.single i 1).support
this : (Finset.biUnion t fun i => (Finsupp.single i 1).support) = Finset.biUnion s fun i => (Finsupp.single i 1).support
s✝ : Finset σ
x : σ
a✝ : x ∈ s✝
⊢ (Finsupp.single x 1).support = {x}

tactic: simp only [biUnion_singleton_eq_self] at this
state_before: σ : Type u_1
R : Type u_2
τ : Type ?u.175369
S : Type ?u.175372
inst✝⁵ : CommSemiring R
inst✝⁴ : CommSemiring S
inst✝³ : Fintype σ
inst✝² : Fintype τ
n : ℕ
inst✝¹ : DecidableEq σ
inst✝ : Nontrivial R
s t : Finset σ
hst : s ≠ t
h : ∑ i in t, Finsupp.single i 1 = ∑ i in s, Finsupp.single i 1
this✝¹ : (∑ i in t, Finsupp.single i 1).support = (∑ i in s, Finsupp.single i 1).support
this✝ : (Finset.biUnion t fun i => (Finsupp.single i 1).support) = (∑ i in s, Finsupp.single i 1).support
this : (Finset.biUnion t fun a => {a}) = Finset.biUnion s fun a => {a}
hsingle : ∀ (s : Finset σ) (x : σ), x ∈ s → (Finsupp.single x 1).support = {x}
hs : (Finset.biUnion s fun a => (Finsupp.single a 1).support) = Finset.biUnion s fun a => {a}
ht : (Finset.biUnion t fun a => (Finsupp.single a 1).support) = Finset.biUnion t fun a => {a}
⊢ False

tactic: exact absurd this hst.symm
state_before: σ : Type u_1
R : Type u_2
τ : Type ?u.175369
S : Type ?u.175372
inst✝⁵ : CommSemiring R
inst✝⁴ : CommSemiring S
inst✝³ : Fintype σ
inst✝² : Fintype τ
n : ℕ
inst✝¹ : DecidableEq σ
inst✝ : Nontrivial R
s t : Finset σ
hst : s ≠ t
h : ∑ i in t, Finsupp.single i 1 = ∑ i in s, Finsupp.single i 1
this✝¹ : (∑ i in t, Finsupp.single i 1).support = (∑ i in s, Finsupp.single i 1).support
this✝ : (Finset.biUnion t fun i => (Finsupp.single i 1).support) = (∑ i in s, Finsupp.single i 1).support
hsingle : ∀ (s : Finset σ) (x : σ), x ∈ s → (Finsupp.single x 1).support = {x}
hs : (Finset.biUnion s fun a => (Finsupp.single a 1).support) = Finset.biUnion s fun a => {a}
ht : (Finset.biUnion t fun a => (Finsupp.single a 1).support) = Finset.biUnion t fun a => {a}
this : t = s
⊢ False

tactic: intro x y
state_before: case h
σ : Type u_1
R : Type u_2
τ : Type ?u.175369
S : Type ?u.175372
inst✝⁵ : CommSemiring R
inst✝⁴ : CommSemiring S
inst✝³ : Fintype σ
inst✝² : Fintype τ
n : ℕ
inst✝¹ : DecidableEq σ
inst✝ : Nontrivial R
s t : Finset σ
hst : s ≠ t
h : ∑ i in t, Finsupp.single i 1 = ∑ i in s, Finsupp.single i 1
this : (∑ i in t, Finsupp.single i 1).support = (∑ i in s, Finsupp.single i 1).support
⊢ ∀ (i₁ i₂ : σ), i₁ ≠ i₂ → Disjoint (Finsupp.single i₁ 1).support (Finsupp.single i₂ 1).support

tactic: simp [Finsupp.support_single_disjoint]
state_before: case h
σ : Type u_1
R : Type u_2
τ : Type ?u.175369
S : Type ?u.175372
inst✝⁵ : CommSemiring R
inst✝⁴ : CommSemiring S
inst✝³ : Fintype σ
inst✝² : Fintype τ
n : ℕ
inst✝¹ : DecidableEq σ
inst✝ : Nontrivial R
s t : Finset σ
hst : s ≠ t
h : ∑ i in t, Finsupp.single i 1 = ∑ i in s, Finsupp.single i 1
this : (∑ i in t, Finsupp.single i 1).support = (∑ i in s, Finsupp.single i 1).support
x y : σ
⊢ x ≠ y → Disjoint (Finsupp.single x 1).support (Finsupp.single y 1).support