ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- DFinsupp.single_apply
@[simp]
theorem single_apply {i i' b} :
    (single i b : Π₀ i, β i) i' = if h : i = i' then Eq.recOn h b else 0 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] {i i' : ι} {b : β i}
Goal: (DFinsupp.single i b) i' = if h : i = i' then Eq.recOn h b else 0
-- DFinsupp.single_zero
@[simp]
theorem single_zero (i) : (single i 0 : Π₀ i, β i) = 0 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] (i : ι)
Goal: DFinsupp.single i 0 = 0
-- DFinsupp.single_eq_same
theorem single_eq_same {i b} : (single i b : Π₀ i, β i) i = b 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] {i : ι} {b : β i}
Goal: (DFinsupp.single i b) i = b
-- DFinsupp.single_eq_of_ne
theorem single_eq_of_ne {i i' b} (h : i ≠ i') : (single i b : Π₀ i, β i) i' = 0 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] {i i' : ι} {b : β i} (h : i ≠ i')
Goal: (DFinsupp.single i b) i' = 0
-- DFinsupp.single_injective
theorem single_injective {i} : Function.Injective (single i : β i → Π₀ i, β i) 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] {i : ι}
Goal: Function.Injective (DFinsupp.single i)
-- DFinsupp.single_eq_single_iff
theorem single_eq_single_iff (i j : ι) (xi : β i) (xj : β j) :
    DFinsupp.single i xi = DFinsupp.single j xj ↔ i = j ∧ HEq xi xj ∨ xi = 0 ∧ xj = 0 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] (i j : ι) (xi : β i) (xj : β j)
Goal: DFinsupp.single i xi = DFinsupp.single j xj ↔ i = j ∧ HEq xi xj ∨ xi = 0 ∧ xj = 0
-- DFinsupp.single_left_injective
theorem single_left_injective {b : ∀ i : ι, β i} (h : ∀ i, b i ≠ 0) :
    Function.Injective (fun i => single i (b i) : ι → Π₀ i, β i) 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] {b : (i : ι) → β i} (h : ∀ (i : ι), b i ≠ 0)
Goal: Function.Injective fun i => DFinsupp.single i (b i)
-- DFinsupp.single_eq_zero
@[simp]
theorem single_eq_zero {i : ι} {xi : β i} : single i xi = 0 ↔ xi = 0 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] {i : ι} {xi : β i}
Goal: DFinsupp.single i xi = 0 ↔ xi = 0
-- DFinsupp.filter_single
theorem filter_single (p : ι → Prop) [DecidablePred p] (i : ι) (x : β i) :
    (single i x).filter p = if p i then single i x else 0 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] (p : ι → Prop) [DecidablePred p] (i : ι) (x : β i)
Goal: DFinsupp.filter p (DFinsupp.single i x) = if p i then DFinsupp.single i x else 0
-- DFinsupp.filter_single_pos
@[simp]
theorem filter_single_pos {p : ι → Prop} [DecidablePred p] (i : ι) (x : β i) (h : p i) :
    (single i x).filter p = single i x 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] {p : ι → Prop} [DecidablePred p] (i : ι) (x : β i) (h : p i)
Goal: DFinsupp.filter p (DFinsupp.single i x) = DFinsupp.single i x
-- DFinsupp.filter_single_neg
@[simp]
theorem filter_single_neg {p : ι → Prop} [DecidablePred p] (i : ι) (x : β i) (h : ¬p i) :
    (single i x).filter p = 0 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] {p : ι → Prop} [DecidablePred p] (i : ι) (x : β i) (h : ¬p i)
Goal: DFinsupp.filter p (DFinsupp.single i x) = 0
-- DFinsupp.single_eq_of_sigma_eq
theorem single_eq_of_sigma_eq {i j} {xi : β i} {xj : β j} (h : (⟨i, xi⟩ : Sigma β) = ⟨j, xj⟩) :
    DFinsupp.single i xi = DFinsupp.single j xj 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] {i j : ι} {xi : β i} {xj : β j} (h : ⟨i, xi⟩ = ⟨j, xj⟩)
Goal: DFinsupp.single i xi = DFinsupp.single j xj
-- DFinsupp.equivFunOnFintype_single
@[simp]
theorem equivFunOnFintype_single [Fintype ι] (i : ι) (m : β i) :
    (@DFinsupp.equivFunOnFintype ι β _ _) (DFinsupp.single i m) = Pi.single i m 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] [Fintype ι] (i : ι) (m : β i)
Goal: DFinsupp.equivFunOnFintype (DFinsupp.single i m) = Pi.single i m
-- DFinsupp.equivFunOnFintype_symm_single
@[simp]
theorem equivFunOnFintype_symm_single [Fintype ι] (i : ι) (m : β i) :
    (@DFinsupp.equivFunOnFintype ι β _ _).symm (Pi.single i m) = DFinsupp.single i m 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] [Fintype ι] (i : ι) (m : β i)
Goal: DFinsupp.equivFunOnFintype.symm (Pi.single i m) = DFinsupp.single i m
-- DFinsupp.zipWith_single_single
@[simp]
theorem zipWith_single_single (f : ∀ i, β₁ i → β₂ i → β i) (hf : ∀ i, f i 0 0 = 0)
    {i} (b₁ : β₁ i) (b₂ : β₂ i) :
    zipWith f hf (single i b₁) (single i b₂) = single i (f i b₁ b₂) 
Arguments: {ι : Type u} {β : ι → Type v} {β₁ : ι → Type v₁} {β₂ : ι → Type v₂} [DecidableEq ι] [(i : ι) → Zero (β i)] [(i : ι) → Zero (β₁ i)] [(i : ι) → Zero (β₂ i)] (f : (i : ι) → β₁ i → β₂ i → β i) (hf : ∀ (i : ι), f i 0 0 = 0) {i : ι} (b₁ : β₁ i) (b₂ : β₂ i)
Goal: DFinsupp.zipWith f hf (DFinsupp.single i b₁) (DFinsupp.single i b₂) = DFinsupp.single i (f i b₁ b₂)
-- DFinsupp.erase_apply
@[simp]
theorem erase_apply {i j : ι} {f : Π₀ i, β i} : (f.erase i) j = if j = i then 0 else f j 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] {i j : ι} {f : Π₀ (i : ι), β i}
Goal: (DFinsupp.erase i f) j = if j = i then 0 else f j
-- DFinsupp.erase_same
theorem erase_same {i : ι} {f : Π₀ i, β i} : (f.erase i) i = 0 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] {i : ι} {f : Π₀ (i : ι), β i}
Goal: (DFinsupp.erase i f) i = 0
-- DFinsupp.erase_ne
theorem erase_ne {i i' : ι} {f : Π₀ i, β i} (h : i' ≠ i) : (f.erase i) i' = f i' 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] {i i' : ι} {f : Π₀ (i : ι), β i} (h : i' ≠ i)
Goal: (DFinsupp.erase i f) i' = f i'
-- DFinsupp.piecewise_single_erase
theorem piecewise_single_erase (x : Π₀ i, β i) (i : ι)
    [∀ i' : ι, Decidable <| (i' ∈ ({i} : Set ι))] : -- Porting note: added Decidable hypothesis
    (single i (x i)).piecewise (x.erase i) {i} = x 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] (x : Π₀ (i : ι), β i) (i : ι) [(i' : ι) → Decidable (i' ∈ {i})]
Goal: (DFinsupp.single i (x i)).piecewise (DFinsupp.erase i x) {i} = x
-- DFinsupp.erase_eq_sub_single
theorem erase_eq_sub_single {β : ι → Type*} [∀ i, AddGroup (β i)] (f : Π₀ i, β i) (i : ι) :
    f.erase i = f - single i (f i) 
Arguments: {ι : Type u} [DecidableEq ι] {β : ι → Type u_1} [(i : ι) → AddGroup (β i)] (f : Π₀ (i : ι), β i) (i : ι)
Goal: DFinsupp.erase i f = f - DFinsupp.single i (f i)
-- DFinsupp.erase_zero
@[simp]
theorem erase_zero (i : ι) : erase i (0 : Π₀ i, β i) = 0 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] (i : ι)
Goal: DFinsupp.erase i 0 = 0
-- DFinsupp.filter_ne_eq_erase
@[simp]
theorem filter_ne_eq_erase (f : Π₀ i, β i) (i : ι) : f.filter (· ≠ i) = f.erase i 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] (f : Π₀ (i : ι), β i) (i : ι)
Goal: DFinsupp.filter (fun x => x ≠ i) f = DFinsupp.erase i f
-- DFinsupp.filter_ne_eq_erase'
@[simp]
theorem filter_ne_eq_erase' (f : Π₀ i, β i) (i : ι) : f.filter (i ≠ ·) = f.erase i 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] (f : Π₀ (i : ι), β i) (i : ι)
Goal: DFinsupp.filter (fun x => i ≠ x) f = DFinsupp.erase i f
-- DFinsupp.erase_single
theorem erase_single (j : ι) (i : ι) (x : β i) :
    (single i x).erase j = if i = j then 0 else single i x 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] (j i : ι) (x : β i)
Goal: DFinsupp.erase j (DFinsupp.single i x) = if i = j then 0 else DFinsupp.single i x
-- DFinsupp.erase_single_same
@[simp]
theorem erase_single_same (i : ι) (x : β i) : (single i x).erase i = 0 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] (i : ι) (x : β i)
Goal: DFinsupp.erase i (DFinsupp.single i x) = 0
-- DFinsupp.erase_single_ne
@[simp]
theorem erase_single_ne {i j : ι} (x : β i) (h : i ≠ j) : (single i x).erase j = single i x 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] {i j : ι} (x : β i) (h : i ≠ j)
Goal: DFinsupp.erase j (DFinsupp.single i x) = DFinsupp.single i x
-- DFinsupp.coe_update
@[simp, norm_cast] lemma coe_update : (f.update i b : ∀ i : ι, β i) = Function.update f i b 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] (i : ι) (f : Π₀ (i : ι), β i) (b : β i)
Goal: ⇑(DFinsupp.update i f b) = Function.update (⇑f) i b
-- DFinsupp.update_self
@[simp]
theorem update_self : f.update i (f i) = f 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] (i : ι) (f : Π₀ (i : ι), β i)
Goal: DFinsupp.update i f (f i) = f
-- DFinsupp.update_eq_erase
@[simp]
theorem update_eq_erase : f.update i 0 = f.erase i 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] (i : ι) (f : Π₀ (i : ι), β i)
Goal: DFinsupp.update i f 0 = DFinsupp.erase i f
-- DFinsupp.update_eq_single_add_erase
theorem update_eq_single_add_erase {β : ι → Type*} [∀ i, AddZeroClass (β i)] (f : Π₀ i, β i)
    (i : ι) (b : β i) : f.update i b = single i b + f.erase i 
Arguments: {ι : Type u} [DecidableEq ι] {β : ι → Type u_1} [(i : ι) → AddZeroClass (β i)] (f : Π₀ (i : ι), β i) (i : ι) (b : β i)
Goal: DFinsupp.update i f b = DFinsupp.single i b + DFinsupp.erase i f
-- DFinsupp.update_eq_erase_add_single
theorem update_eq_erase_add_single {β : ι → Type*} [∀ i, AddZeroClass (β i)] (f : Π₀ i, β i)
    (i : ι) (b : β i) : f.update i b = f.erase i + single i b 
Arguments: {ι : Type u} [DecidableEq ι] {β : ι → Type u_1} [(i : ι) → AddZeroClass (β i)] (f : Π₀ (i : ι), β i) (i : ι) (b : β i)
Goal: DFinsupp.update i f b = DFinsupp.erase i f + DFinsupp.single i b
-- DFinsupp.update_eq_sub_add_single
theorem update_eq_sub_add_single {β : ι → Type*} [∀ i, AddGroup (β i)] (f : Π₀ i, β i) (i : ι)
    (b : β i) : f.update i b = f - single i (f i) + single i b 
Arguments: {ι : Type u} [DecidableEq ι] {β : ι → Type u_1} [(i : ι) → AddGroup (β i)] (f : Π₀ (i : ι), β i) (i : ι) (b : β i)
Goal: DFinsupp.update i f b = f - DFinsupp.single i (f i) + DFinsupp.single i b
-- DFinsupp.single_add
@[simp]
theorem single_add (i : ι) (b₁ b₂ : β i) : single i (b₁ + b₂) = single i b₁ + single i b₂ 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → AddZeroClass (β i)] (i : ι) (b₁ b₂ : β i)
Goal: DFinsupp.single i (b₁ + b₂) = DFinsupp.single i b₁ + DFinsupp.single i b₂
-- DFinsupp.erase_add
@[simp]
theorem erase_add (i : ι) (f₁ f₂ : Π₀ i, β i) : erase i (f₁ + f₂) = erase i f₁ + erase i f₂ 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → AddZeroClass (β i)] (i : ι) (f₁ f₂ : Π₀ (i : ι), β i)
Goal: DFinsupp.erase i (f₁ + f₂) = DFinsupp.erase i f₁ + DFinsupp.erase i f₂
-- DFinsupp.singleAddHom_apply
@[simps]
def singleAddHom (i : ι) : β i →+ Π₀ i, β i 
Arguments: {ι : Type u} (β : ι → Type v) [DecidableEq ι] [(i : ι) → AddZeroClass (β i)] (i : ι) (b : β i)
Goal: (DFinsupp.singleAddHom β i) b = DFinsupp.single i b
-- DFinsupp.eraseAddHom_apply
@[simps]
def eraseAddHom (i : ι) : (Π₀ i, β i) →+ Π₀ i, β i 
Arguments: {ι : Type u} (β : ι → Type v) [DecidableEq ι] [(i : ι) → AddZeroClass (β i)] (i : ι) (x : Π₀ (i : ι), β i)
Goal: (DFinsupp.eraseAddHom β i) x = DFinsupp.erase i x
-- DFinsupp.single_neg
@[simp]
theorem single_neg {β : ι → Type v} [∀ i, AddGroup (β i)] (i : ι) (x : β i) :
    single i (-x) = -single i x 
Arguments: {ι : Type u} [DecidableEq ι] {β : ι → Type v} [(i : ι) → AddGroup (β i)] (i : ι) (x : β i)
Goal: DFinsupp.single i (-x) = -DFinsupp.single i x
-- DFinsupp.single_sub
@[simp]
theorem single_sub {β : ι → Type v} [∀ i, AddGroup (β i)] (i : ι) (x y : β i) :
    single i (x - y) = single i x - single i y 
Arguments: {ι : Type u} [DecidableEq ι] {β : ι → Type v} [(i : ι) → AddGroup (β i)] (i : ι) (x y : β i)
Goal: DFinsupp.single i (x - y) = DFinsupp.single i x - DFinsupp.single i y
-- DFinsupp.erase_neg
@[simp]
theorem erase_neg {β : ι → Type v} [∀ i, AddGroup (β i)] (i : ι) (f : Π₀ i, β i) :
    (-f).erase i = -f.erase i 
Arguments: {ι : Type u} [DecidableEq ι] {β : ι → Type v} [(i : ι) → AddGroup (β i)] (i : ι) (f : Π₀ (i : ι), β i)
Goal: DFinsupp.erase i (-f) = -DFinsupp.erase i f
-- DFinsupp.erase_sub
@[simp]
theorem erase_sub {β : ι → Type v} [∀ i, AddGroup (β i)] (i : ι) (f g : Π₀ i, β i) :
    (f - g).erase i = f.erase i - g.erase i 
Arguments: {ι : Type u} [DecidableEq ι] {β : ι → Type v} [(i : ι) → AddGroup (β i)] (i : ι) (f g : Π₀ (i : ι), β i)
Goal: DFinsupp.erase i (f - g) = DFinsupp.erase i f - DFinsupp.erase i g
-- DFinsupp.single_add_erase
theorem single_add_erase (i : ι) (f : Π₀ i, β i) : single i (f i) + f.erase i = f 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → AddZeroClass (β i)] (i : ι) (f : Π₀ (i : ι), β i)
Goal: DFinsupp.single i (f i) + DFinsupp.erase i f = f
-- DFinsupp.erase_add_single
theorem erase_add_single (i : ι) (f : Π₀ i, β i) : f.erase i + single i (f i) = f 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → AddZeroClass (β i)] (i : ι) (f : Π₀ (i : ι), β i)
Goal: DFinsupp.erase i f + DFinsupp.single i (f i) = f
-- DFinsupp.induction
protected theorem induction {p : (Π₀ i, β i) → Prop} (f : Π₀ i, β i) (h0 : p 0)
    (ha : ∀ (i b) (f : Π₀ i, β i), f i = 0 → b ≠ 0 → p f → p (single i b + f)) : p f 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → AddZeroClass (β i)] {p : (Π₀ (i : ι), β i) → Prop} (f : Π₀ (i : ι), β i) (h0 : p 0) (ha : ∀ (i : ι) (b : β i) (f : Π₀ (i : ι), β i), f i = 0 → b ≠ 0 → p f → p (DFinsupp.single i b + f))
Goal: p f
-- DFinsupp.induction₂
theorem induction₂ {p : (Π₀ i, β i) → Prop} (f : Π₀ i, β i) (h0 : p 0)
    (ha : ∀ (i b) (f : Π₀ i, β i), f i = 0 → b ≠ 0 → p f → p (f + single i b)) : p f 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → AddZeroClass (β i)] {p : (Π₀ (i : ι), β i) → Prop} (f : Π₀ (i : ι), β i) (h0 : p 0) (ha : ∀ (i : ι) (b : β i) (f : Π₀ (i : ι), β i), f i = 0 → b ≠ 0 → p f → p (f + DFinsupp.single i b))
Goal: p f
-- DFinsupp.add_closure_iUnion_range_single
@[simp]
theorem add_closure_iUnion_range_single :
    AddSubmonoid.closure (⋃ i : ι, Set.range (single i : β i → Π₀ i, β i)) = ⊤ 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → AddZeroClass (β i)]
Goal: AddSubmonoid.closure (⋃ i, Set.range (DFinsupp.single i)) = ⊤
-- DFinsupp.addHom_ext
theorem addHom_ext {γ : Type w} [AddZeroClass γ] ⦃f g : (Π₀ i, β i) →+ γ⦄
    (H : ∀ (i : ι) (y : β i), f (single i y) = g (single i y)) : f = g 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → AddZeroClass (β i)] {γ : Type w} [AddZeroClass γ] ⦃f g : (Π₀ (i : ι), β i) →+ γ⦄ (H : ∀ (i : ι) (y : β i), f (DFinsupp.single i y) = g (DFinsupp.single i y))
Goal: f = g
-- DFinsupp.addHom_ext'
@[ext]
theorem addHom_ext' {γ : Type w} [AddZeroClass γ] ⦃f g : (Π₀ i, β i) →+ γ⦄
    (H : ∀ x, f.comp (singleAddHom β x) = g.comp (singleAddHom β x)) : f = g 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → AddZeroClass (β i)] {γ : Type w} [AddZeroClass γ] ⦃f g : (Π₀ (i : ι), β i) →+ γ⦄ (H : ∀ (x : ι), f.comp (DFinsupp.singleAddHom β x) = g.comp (DFinsupp.singleAddHom β x))
Goal: f = g
-- DFinsupp.mk_add
@[simp]
theorem mk_add [∀ i, AddZeroClass (β i)] {s : Finset ι} {x y : ∀ i : (↑s : Set ι), β i} :
    mk s (x + y) = mk s x + mk s y 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → AddZeroClass (β i)] {s : Finset ι} {x y : (i : ↑↑s) → β ↑i}
Goal: DFinsupp.mk s (x + y) = DFinsupp.mk s x + DFinsupp.mk s y
-- DFinsupp.mk_zero
@[simp]
theorem mk_zero [∀ i, Zero (β i)] {s : Finset ι} : mk s (0 : ∀ i : (↑s : Set ι), β i.1) = 0 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] {s : Finset ι}
Goal: DFinsupp.mk s 0 = 0
-- DFinsupp.mk_neg
@[simp]
theorem mk_neg [∀ i, AddGroup (β i)] {s : Finset ι} {x : ∀ i : (↑s : Set ι), β i.1} :
    mk s (-x) = -mk s x 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → AddGroup (β i)] {s : Finset ι} {x : (i : ↑↑s) → β ↑i}
Goal: DFinsupp.mk s (-x) = -DFinsupp.mk s x
-- DFinsupp.mk_sub
@[simp]
theorem mk_sub [∀ i, AddGroup (β i)] {s : Finset ι} {x y : ∀ i : (↑s : Set ι), β i.1} :
    mk s (x - y) = mk s x - mk s y 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → AddGroup (β i)] {s : Finset ι} {x y : (i : ↑↑s) → β ↑i}
Goal: DFinsupp.mk s (x - y) = DFinsupp.mk s x - DFinsupp.mk s y
-- DFinsupp.mk_smul
@[simp]
theorem mk_smul {s : Finset ι} (c : γ) (x : ∀ i : (↑s : Set ι), β (i : ι)) :
    mk s (c • x) = c • mk s x 
Arguments: {ι : Type u} {γ : Type w} {β : ι → Type v} [DecidableEq ι] [Monoid γ] [(i : ι) → AddMonoid (β i)] [(i : ι) → DistribMulAction γ (β i)] {s : Finset ι} (c : γ) (x : (i : ↑↑s) → β ↑i)
Goal: DFinsupp.mk s (c • x) = c • DFinsupp.mk s x
-- DFinsupp.single_smul
@[simp]
theorem single_smul {i : ι} (c : γ) (x : β i) : single i (c • x) = c • single i x 
Arguments: {ι : Type u} {γ : Type w} {β : ι → Type v} [DecidableEq ι] [Monoid γ] [(i : ι) → AddMonoid (β i)] [(i : ι) → DistribMulAction γ (β i)] {i : ι} (c : γ) (x : β i)
Goal: DFinsupp.single i (c • x) = c • DFinsupp.single i x
-- DFinsupp.support_mk_subset
@[simp]
theorem support_mk_subset {s : Finset ι} {x : ∀ i : (↑s : Set ι), β i.1} : (mk s x).support ⊆ s 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] [(i : ι) → (x : β i) → Decidable (x ≠ 0)] {s : Finset ι} {x : (i : ↑↑s) → β ↑i}
Goal: (DFinsupp.mk s x).support ⊆ s
-- DFinsupp.support_mk'_subset
@[simp]
theorem support_mk'_subset {f : ∀ i, β i} {s : Multiset ι} {h} :
    (mk' f <| Trunc.mk ⟨s, h⟩).support ⊆ s.toFinset 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] [(i : ι) → (x : β i) → Decidable (x ≠ 0)] {f : (i : ι) → β i} {s : Multiset ι} {h : ∀ (i : ι), i ∈ s ∨ f i = 0}
Goal: { toFun := f, support' := Trunc.mk ⟨s, h⟩ }.support ⊆ s.toFinset
-- DFinsupp.mem_support_toFun
@[simp]
theorem mem_support_toFun (f : Π₀ i, β i) (i) : i ∈ f.support ↔ f i ≠ 0 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] [(i : ι) → (x : β i) → Decidable (x ≠ 0)] (f : Π₀ (i : ι), β i) (i : ι)
Goal: i ∈ f.support ↔ f i ≠ 0
-- DFinsupp.eq_mk_support
theorem eq_mk_support (f : Π₀ i, β i) : f = mk f.support fun i => f i 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] [(i : ι) → (x : β i) → Decidable (x ≠ 0)] (f : Π₀ (i : ι), β i)
Goal: f = DFinsupp.mk f.support fun i => f ↑i
-- DFinsupp.subtypeSupportEqEquiv_apply_coe
@[simps]
def subtypeSupportEqEquiv (s : Finset ι) :
    {f : Π₀ i, β i // f.support = s} ≃ ∀ i : s, {x : β i // x ≠ 0} 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] [(i : ι) → (x : β i) → Decidable (x ≠ 0)] (s : Finset ι)
Goal: ∀ (x : { f // f.support = s }) (i : { x // x ∈ s }), ↑((DFinsupp.subtypeSupportEqEquiv s) x i) = ↑x ↑i
-- DFinsupp.subtypeSupportEqEquiv_symm_apply_coe
@[simps]
def subtypeSupportEqEquiv (s : Finset ι) :
    {f : Π₀ i, β i // f.support = s} ≃ ∀ i : s, {x : β i // x ≠ 0} 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] [(i : ι) → (x : β i) → Decidable (x ≠ 0)] (s : Finset ι) (f : (i : { x // x ∈ s }) → { x // x ≠ 0 })
Goal: ↑((DFinsupp.subtypeSupportEqEquiv s).symm f) = DFinsupp.mk s fun i => ↑(f i)
-- DFinsupp.sigmaFinsetFunEquiv_apply_snd_coe
@[simps! apply_fst apply_snd_coe]
def sigmaFinsetFunEquiv : (Π₀ i, β i) ≃ Σ s : Finset ι, ∀ i : s, {x : β i // x ≠ 0} 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] [(i : ι) → (x : β i) → Decidable (x ≠ 0)]
Goal: ∀ (a : Π₀ (i : ι), β i) (i : { x // x ∈ ((Equiv.sigmaFiberEquiv DFinsupp.support).symm a).fst }),
  ↑((DFinsupp.sigmaFinsetFunEquiv a).snd i) = a ↑i
-- DFinsupp.sigmaFinsetFunEquiv_apply_fst
@[simps! apply_fst apply_snd_coe]
def sigmaFinsetFunEquiv : (Π₀ i, β i) ≃ Σ s : Finset ι, ∀ i : s, {x : β i // x ≠ 0} 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] [(i : ι) → (x : β i) → Decidable (x ≠ 0)]
Goal: ∀ (a : Π₀ (i : ι), β i), (DFinsupp.sigmaFinsetFunEquiv a).fst = a.support
-- DFinsupp.support_zero
@[simp]
theorem support_zero : (0 : Π₀ i, β i).support = ∅ 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] [(i : ι) → (x : β i) → Decidable (x ≠ 0)]
Goal: DFinsupp.support 0 = ∅
-- DFinsupp.mem_support_iff
theorem mem_support_iff {f : Π₀ i, β i} {i : ι} : i ∈ f.support ↔ f i ≠ 0 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] [(i : ι) → (x : β i) → Decidable (x ≠ 0)] {f : Π₀ (i : ι), β i} {i : ι}
Goal: i ∈ f.support ↔ f i ≠ 0
-- DFinsupp.not_mem_support_iff
theorem not_mem_support_iff {f : Π₀ i, β i} {i : ι} : i ∉ f.support ↔ f i = 0 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] [(i : ι) → (x : β i) → Decidable (x ≠ 0)] {f : Π₀ (i : ι), β i} {i : ι}
Goal: i ∉ f.support ↔ f i = 0
-- DFinsupp.support_eq_empty
@[simp]
theorem support_eq_empty {f : Π₀ i, β i} : f.support = ∅ ↔ f = 0 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] [(i : ι) → (x : β i) → Decidable (x ≠ 0)] {f : Π₀ (i : ι), β i}
Goal: f.support = ∅ ↔ f = 0
-- DFinsupp.support_subset_iff
theorem support_subset_iff {s : Set ι} {f : Π₀ i, β i} : ↑f.support ⊆ s ↔ ∀ i ∉ s, f i = 0 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] [(i : ι) → (x : β i) → Decidable (x ≠ 0)] {s : Set ι} {f : Π₀ (i : ι), β i}
Goal: ↑f.support ⊆ s ↔ ∀ i ∉ s, f i = 0
-- DFinsupp.support_single_ne_zero
theorem support_single_ne_zero {i : ι} {b : β i} (hb : b ≠ 0) : (single i b).support = {i} 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] [(i : ι) → (x : β i) → Decidable (x ≠ 0)] {i : ι} {b : β i} (hb : b ≠ 0)
Goal: (DFinsupp.single i b).support = {i}
-- DFinsupp.support_single_subset
theorem support_single_subset {i : ι} {b : β i} : (single i b).support ⊆ {i} 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] [(i : ι) → (x : β i) → Decidable (x ≠ 0)] {i : ι} {b : β i}
Goal: (DFinsupp.single i b).support ⊆ {i}
-- DFinsupp.mapRange_def
theorem mapRange_def [∀ (i) (x : β₁ i), Decidable (x ≠ 0)] {f : ∀ i, β₁ i → β₂ i}
    {hf : ∀ i, f i 0 = 0} {g : Π₀ i, β₁ i} :
    mapRange f hf g = mk g.support fun i => f i.1 (g i.1) 
Arguments: {ι : Type u} {β₁ : ι → Type v₁} {β₂ : ι → Type v₂} [DecidableEq ι] [(i : ι) → Zero (β₁ i)] [(i : ι) → Zero (β₂ i)] [(i : ι) → (x : β₁ i) → Decidable (x ≠ 0)] {f : (i : ι) → β₁ i → β₂ i} {hf : ∀ (i : ι), f i 0 = 0} {g : Π₀ (i : ι), β₁ i}
Goal: DFinsupp.mapRange f hf g = DFinsupp.mk g.support fun i => f (↑i) (g ↑i)
-- DFinsupp.mapRange_single
@[simp]
theorem mapRange_single {f : ∀ i, β₁ i → β₂ i} {hf : ∀ i, f i 0 = 0} {i : ι} {b : β₁ i} :
    mapRange f hf (single i b) = single i (f i b) 
Arguments: {ι : Type u} {β₁ : ι → Type v₁} {β₂ : ι → Type v₂} [DecidableEq ι] [(i : ι) → Zero (β₁ i)] [(i : ι) → Zero (β₂ i)] {f : (i : ι) → β₁ i → β₂ i} {hf : ∀ (i : ι), f i 0 = 0} {i : ι} {b : β₁ i}
Goal: DFinsupp.mapRange f hf (DFinsupp.single i b) = DFinsupp.single i (f i b)
-- DFinsupp.support_mapRange
theorem support_mapRange {f : ∀ i, β₁ i → β₂ i} {hf : ∀ i, f i 0 = 0} {g : Π₀ i, β₁ i} :
    (mapRange f hf g).support ⊆ g.support 
Arguments: {ι : Type u} {β₁ : ι → Type v₁} {β₂ : ι → Type v₂} [DecidableEq ι] [(i : ι) → Zero (β₁ i)] [(i : ι) → Zero (β₂ i)] [(i : ι) → (x : β₁ i) → Decidable (x ≠ 0)] [(i : ι) → (x : β₂ i) → Decidable (x ≠ 0)] {f : (i : ι) → β₁ i → β₂ i} {hf : ∀ (i : ι), f i 0 = 0} {g : Π₀ (i : ι), β₁ i}
Goal: (DFinsupp.mapRange f hf g).support ⊆ g.support