ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- skewAdjoint.I_smul_neg_I
theorem skewAdjoint.I_smul_neg_I (a : skewAdjoint A) : I • (skewAdjoint.negISMul a : A) = a 
Arguments: {A : Type u_1} [AddCommGroup A] [Module ℂ A] [StarAddMonoid A] [StarModule ℂ A] (a : ↥(skewAdjoint A))
Goal: Complex.I • ↑(skewAdjoint.negISMul a) = ↑a
-- realPart_apply_coe
theorem realPart_apply_coe (a : A) : (ℜ a : A) = (2 : ℝ)⁻¹ • (a + star a) 
Arguments: {A : Type u_1} [AddCommGroup A] [Module ℂ A] [StarAddMonoid A] [StarModule ℂ A] (a : A)
Goal: ↑(realPart a) = 2⁻¹ • (a + star a)
-- imaginaryPart_apply_coe
theorem imaginaryPart_apply_coe (a : A) : (ℑ a : A) = -I • (2 : ℝ)⁻¹ • (a - star a) 
Arguments: {A : Type u_1} [AddCommGroup A] [Module ℂ A] [StarAddMonoid A] [StarModule ℂ A] (a : A)
Goal: ↑(imaginaryPart a) = -Complex.I • 2⁻¹ • (a - star a)
-- realPart_add_I_smul_imaginaryPart
theorem realPart_add_I_smul_imaginaryPart (a : A) : (ℜ a : A) + I • (ℑ a : A) = a 
Arguments: {A : Type u_1} [AddCommGroup A] [Module ℂ A] [StarAddMonoid A] [StarModule ℂ A] (a : A)
Goal: ↑(realPart a) + Complex.I • ↑(imaginaryPart a) = a
-- realPart_I_smul
@[simp]
theorem realPart_I_smul (a : A) : ℜ (I • a) = -ℑ a 
Arguments: {A : Type u_1} [AddCommGroup A] [Module ℂ A] [StarAddMonoid A] [StarModule ℂ A] (a : A)
Goal: realPart (Complex.I • a) = -imaginaryPart a
-- imaginaryPart_I_smul
@[simp]
theorem imaginaryPart_I_smul (a : A) : ℑ (I • a) = ℜ a 
Arguments: {A : Type u_1} [AddCommGroup A] [Module ℂ A] [StarAddMonoid A] [StarModule ℂ A] (a : A)
Goal: imaginaryPart (Complex.I • a) = realPart a
-- realPart_smul
theorem realPart_smul (z : ℂ) (a : A) : ℜ (z • a) = z.re • ℜ a - z.im • ℑ a 
Arguments: {A : Type u_1} [AddCommGroup A] [Module ℂ A] [StarAddMonoid A] [StarModule ℂ A] (z : ℂ) (a : A)
Goal: realPart (z • a) = z.re • realPart a - z.im • imaginaryPart a
-- imaginaryPart_smul
theorem imaginaryPart_smul (z : ℂ) (a : A) : ℑ (z • a) = z.re • ℑ a + z.im • ℜ a 
Arguments: {A : Type u_1} [AddCommGroup A] [Module ℂ A] [StarAddMonoid A] [StarModule ℂ A] (z : ℂ) (a : A)
Goal: imaginaryPart (z • a) = z.re • imaginaryPart a + z.im • realPart a
-- skewAdjointPart_eq_I_smul_imaginaryPart
lemma skewAdjointPart_eq_I_smul_imaginaryPart (x : A) :
    (skewAdjointPart ℝ x : A) = I • (imaginaryPart x : A) 
Arguments: {A : Type u_1} [AddCommGroup A] [Module ℂ A] [StarAddMonoid A] [StarModule ℂ A] (x : A)
Goal: ↑((skewAdjointPart ℝ) x) = Complex.I • ↑(imaginaryPart x)
-- imaginaryPart_eq_neg_I_smul_skewAdjointPart
lemma imaginaryPart_eq_neg_I_smul_skewAdjointPart (x : A) :
    (imaginaryPart x : A) = -I • (skewAdjointPart ℝ x : A) 
Arguments: {A : Type u_1} [AddCommGroup A] [Module ℂ A] [StarAddMonoid A] [StarModule ℂ A] (x : A)
Goal: ↑(imaginaryPart x) = -Complex.I • ↑((skewAdjointPart ℝ) x)
-- IsSelfAdjoint.coe_realPart
lemma IsSelfAdjoint.coe_realPart {x : A} (hx : IsSelfAdjoint x) :
    (ℜ x : A) = x 
Arguments: {A : Type u_1} [AddCommGroup A] [Module ℂ A] [StarAddMonoid A] [StarModule ℂ A] {x : A} (hx : IsSelfAdjoint x)
Goal: ↑(realPart x) = x
-- IsSelfAdjoint.imaginaryPart
nonrec lemma IsSelfAdjoint.imaginaryPart {x : A} (hx : IsSelfAdjoint x) :
    ℑ x = 0 
Arguments: {A : Type u_1} [AddCommGroup A] [Module ℂ A] [StarAddMonoid A] [StarModule ℂ A] {x : A} (hx : IsSelfAdjoint x)
Goal: imaginaryPart x = 0
-- realPart_comp_subtype_selfAdjoint
lemma realPart_comp_subtype_selfAdjoint :
    realPart.comp (selfAdjoint.submodule ℝ A).subtype = LinearMap.id 
Arguments: {A : Type u_1} [AddCommGroup A] [Module ℂ A] [StarAddMonoid A] [StarModule ℂ A]
Goal: realPart ∘ₗ (selfAdjoint.submodule ℝ A).subtype = LinearMap.id
-- imaginaryPart_comp_subtype_selfAdjoint
lemma imaginaryPart_comp_subtype_selfAdjoint :
    imaginaryPart.comp (selfAdjoint.submodule ℝ A).subtype = 0 
Arguments: {A : Type u_1} [AddCommGroup A] [Module ℂ A] [StarAddMonoid A] [StarModule ℂ A]
Goal: imaginaryPart ∘ₗ (selfAdjoint.submodule ℝ A).subtype = 0
-- imaginaryPart_realPart
@[simp]
lemma imaginaryPart_realPart {x : A} : ℑ (ℜ x : A) = 0 
Arguments: {A : Type u_1} [AddCommGroup A] [Module ℂ A] [StarAddMonoid A] [StarModule ℂ A] {x : A}
Goal: imaginaryPart ↑(realPart x) = 0
-- imaginaryPart_imaginaryPart
@[simp]
lemma imaginaryPart_imaginaryPart {x : A} : ℑ (ℑ x : A) = 0 
Arguments: {A : Type u_1} [AddCommGroup A] [Module ℂ A] [StarAddMonoid A] [StarModule ℂ A] {x : A}
Goal: imaginaryPart ↑(imaginaryPart x) = 0
-- realPart_idem
@[simp]
lemma realPart_idem {x : A} : ℜ (ℜ x : A) = ℜ x 
Arguments: {A : Type u_1} [AddCommGroup A] [Module ℂ A] [StarAddMonoid A] [StarModule ℂ A] {x : A}
Goal: realPart ↑(realPart x) = realPart x
-- realPart_imaginaryPart
@[simp]
lemma realPart_imaginaryPart {x : A} : ℜ (ℑ x : A) = ℑ x 
Arguments: {A : Type u_1} [AddCommGroup A] [Module ℂ A] [StarAddMonoid A] [StarModule ℂ A] {x : A}
Goal: realPart ↑(imaginaryPart x) = imaginaryPart x
-- realPart_surjective
lemma realPart_surjective : Function.Surjective (realPart (A := A)) 
Arguments: {A : Type u_1} [AddCommGroup A] [Module ℂ A] [StarAddMonoid A] [StarModule ℂ A]
Goal: Function.Surjective ⇑realPart
-- imaginaryPart_surjective
lemma imaginaryPart_surjective : Function.Surjective (imaginaryPart (A := A)) 
Arguments: {A : Type u_1} [AddCommGroup A] [Module ℂ A] [StarAddMonoid A] [StarModule ℂ A]
Goal: Function.Surjective ⇑imaginaryPart
-- span_selfAdjoint
lemma span_selfAdjoint : span ℂ (selfAdjoint A : Set A) = ⊤ 
Arguments: {A : Type u_1} [AddCommGroup A] [Module ℂ A] [StarAddMonoid A] [StarModule ℂ A]
Goal: Submodule.span ℂ ↑(selfAdjoint A) = ⊤
-- Complex.selfAdjointEquiv_apply
@[simps apply symm_apply]
def Complex.selfAdjointEquiv : selfAdjoint ℂ ≃ₗ[ℝ] ℝ 
Arguments: (z : ↥(selfAdjoint ℂ))
Goal: Complex.selfAdjointEquiv z = (↑z).re
-- Complex.selfAdjointEquiv_symm_apply
@[simps apply symm_apply]
def Complex.selfAdjointEquiv : selfAdjoint ℂ ≃ₗ[ℝ] ℝ 
Arguments: (x : ℝ)
Goal: Complex.selfAdjointEquiv.symm x = ⟨↑x, ⋯⟩
-- Complex.coe_selfAdjointEquiv
lemma Complex.coe_selfAdjointEquiv (z : selfAdjoint ℂ) :
    (selfAdjointEquiv z : ℂ) = z 
Arguments: (z : ↥(selfAdjoint ℂ))
Goal: ↑(Complex.selfAdjointEquiv z) = ↑z
-- realPart_ofReal
@[simp]
lemma realPart_ofReal (r : ℝ) : (ℜ (r : ℂ) : ℂ) = r 
Arguments: (r : ℝ)
Goal: ↑(realPart ↑r) = ↑r
-- imaginaryPart_ofReal
@[simp]
lemma imaginaryPart_ofReal (r : ℝ) : ℑ (r : ℂ) = 0 
Arguments: (r : ℝ)
Goal: imaginaryPart ↑r = 0
-- Complex.coe_realPart
lemma Complex.coe_realPart (z : ℂ) : (ℜ z : ℂ) = z.re 
Arguments: (z : ℂ)
Goal: ↑(realPart z) = ↑z.re
-- star_mul_self_add_self_mul_star
lemma star_mul_self_add_self_mul_star {A : Type*} [NonUnitalRing A] [StarRing A]
    [Module ℂ A] [IsScalarTower ℂ A A] [SMulCommClass ℂ A A] [StarModule ℂ A] (a : A) :
    star a * a + a * star a = 2 • (ℜ a * ℜ a + ℑ a * ℑ a) 
Arguments: {A : Type u_2} [NonUnitalRing A] [StarRing A] [Module ℂ A] [IsScalarTower ℂ A A] [SMulCommClass ℂ A A] [StarModule ℂ A] (a : A)
Goal: star a * a + a * star a = 2 • (↑(realPart a) * ↑(realPart a) + ↑(imaginaryPart a) * ↑(imaginaryPart a))
-- DFinsupp.toFun_eq_coe
@[simp]
theorem toFun_eq_coe (f : Π₀ i, β i) : f.toFun = f 
Arguments: {ι : Type u} {β : ι → Type v} [(i : ι) → Zero (β i)] (f : Π₀ (i : ι), β i)
Goal: f.toFun = ⇑f
-- DFinsupp.ext
@[ext]
theorem ext {f g : Π₀ i, β i} (h : ∀ i, f i = g i) : f = g 
Arguments: {ι : Type u} {β : ι → Type v} [(i : ι) → Zero (β i)] {f g : Π₀ (i : ι), β i} (h : ∀ (i : ι), f i = g i)
Goal: f = g
-- DFinsupp.ne_iff
lemma ne_iff {f g : Π₀ i, β i} : f ≠ g ↔ ∃ i, f i ≠ g i 
Arguments: {ι : Type u} {β : ι → Type v} [(i : ι) → Zero (β i)] {f g : Π₀ (i : ι), β i}
Goal: f ≠ g ↔ ∃ i, f i ≠ g i
-- DFinsupp.coe_mk'
@[simp, norm_cast] lemma coe_mk' (f : ∀ i, β i) (s) : ⇑(⟨f, s⟩ : Π₀ i, β i) = f 
Arguments: {ι : Type u} {β : ι → Type v} [(i : ι) → Zero (β i)] (f : (i : ι) → β i) (s : Trunc { s // ∀ (i : ι), i ∈ s ∨ f i = 0 })
Goal: ⇑{ toFun := f, support' := s } = f
-- DFinsupp.coe_zero
@[simp, norm_cast] lemma coe_zero : ⇑(0 : Π₀ i, β i) = 0 
Arguments: {ι : Type u} {β : ι → Type v} [(i : ι) → Zero (β i)]
Goal: ⇑0 = 0
-- DFinsupp.zero_apply
theorem zero_apply (i : ι) : (0 : Π₀ i, β i) i = 0 
Arguments: {ι : Type u} {β : ι → Type v} [(i : ι) → Zero (β i)] (i : ι)
Goal: 0 i = 0
-- DFinsupp.mapRange_apply
@[simp]
theorem mapRange_apply (f : ∀ i, β₁ i → β₂ i) (hf : ∀ i, f i 0 = 0) (g : Π₀ i, β₁ i) (i : ι) :
    mapRange f hf g i = f i (g i) 
Arguments: {ι : Type u} {β₁ : ι → Type v₁} {β₂ : ι → Type v₂} [(i : ι) → Zero (β₁ i)] [(i : ι) → Zero (β₂ i)] (f : (i : ι) → β₁ i → β₂ i) (hf : ∀ (i : ι), f i 0 = 0) (g : Π₀ (i : ι), β₁ i) (i : ι)
Goal: (DFinsupp.mapRange f hf g) i = f i (g i)
-- DFinsupp.mapRange_id
@[simp]
theorem mapRange_id (h : ∀ i, id (0 : β₁ i) = 0 := fun i => rfl) (g : Π₀ i : ι, β₁ i) :
    mapRange (fun i => (id : β₁ i → β₁ i)) h g = g 
Arguments: {ι : Type u} {β₁ : ι → Type v₁} [(i : ι) → Zero (β₁ i)] (h : ∀ (i : ι), id 0 = 0 := ⋯) (g : Π₀ (i : ι), β₁ i)
Goal: DFinsupp.mapRange (fun i => id) h g = g
-- DFinsupp.mapRange_comp
theorem mapRange_comp (f : ∀ i, β₁ i → β₂ i) (f₂ : ∀ i, β i → β₁ i) (hf : ∀ i, f i 0 = 0)
    (hf₂ : ∀ i, f₂ i 0 = 0) (h : ∀ i, (f i ∘ f₂ i) 0 = 0) (g : Π₀ i : ι, β i) :
    mapRange (fun i => f i ∘ f₂ i) h g = mapRange f hf (mapRange f₂ hf₂ g) 
Arguments: {ι : Type u} {β : ι → Type v} {β₁ : ι → Type v₁} {β₂ : ι → Type v₂} [(i : ι) → Zero (β i)] [(i : ι) → Zero (β₁ i)] [(i : ι) → Zero (β₂ i)] (f : (i : ι) → β₁ i → β₂ i) (f₂ : (i : ι) → β i → β₁ i) (hf : ∀ (i : ι), f i 0 = 0) (hf₂ : ∀ (i : ι), f₂ i 0 = 0) (h : ∀ (i : ι), (f i ∘ f₂ i) 0 = 0) (g : Π₀ (i : ι), β i)
Goal: DFinsupp.mapRange (fun i => f i ∘ f₂ i) h g = DFinsupp.mapRange f hf (DFinsupp.mapRange f₂ hf₂ g)
-- DFinsupp.mapRange_zero
@[simp]
theorem mapRange_zero (f : ∀ i, β₁ i → β₂ i) (hf : ∀ i, f i 0 = 0) :
    mapRange f hf (0 : Π₀ i, β₁ i) = 0 
Arguments: {ι : Type u} {β₁ : ι → Type v₁} {β₂ : ι → Type v₂} [(i : ι) → Zero (β₁ i)] [(i : ι) → Zero (β₂ i)] (f : (i : ι) → β₁ i → β₂ i) (hf : ∀ (i : ι), f i 0 = 0)
Goal: DFinsupp.mapRange f hf 0 = 0
-- DFinsupp.zipWith_apply
@[simp]
theorem zipWith_apply (f : ∀ i, β₁ i → β₂ i → β i) (hf : ∀ i, f i 0 0 = 0) (g₁ : Π₀ i, β₁ i)
    (g₂ : Π₀ i, β₂ i) (i : ι) : zipWith f hf g₁ g₂ i = f i (g₁ i) (g₂ i) 
Arguments: {ι : Type u} {β : ι → Type v} {β₁ : ι → Type v₁} {β₂ : ι → Type v₂} [(i : ι) → Zero (β i)] [(i : ι) → Zero (β₁ i)] [(i : ι) → Zero (β₂ i)] (f : (i : ι) → β₁ i → β₂ i → β i) (hf : ∀ (i : ι), f i 0 0 = 0) (g₁ : Π₀ (i : ι), β₁ i) (g₂ : Π₀ (i : ι), β₂ i) (i : ι)
Goal: (DFinsupp.zipWith f hf g₁ g₂) i = f i (g₁ i) (g₂ i)
-- DFinsupp.piecewise_apply
theorem piecewise_apply (i : ι) : x.piecewise y s i = if i ∈ s then x i else y i 
Arguments: {ι : Type u} {β : ι → Type v} [(i : ι) → Zero (β i)] (x y : Π₀ (i : ι), β i) (s : Set ι) [(i : ι) → Decidable (i ∈ s)] (i : ι)
Goal: (x.piecewise y s) i = if i ∈ s then x i else y i
-- DFinsupp.coe_piecewise
@[simp, norm_cast]
theorem coe_piecewise : ⇑(x.piecewise y s) = s.piecewise x y 
Arguments: {ι : Type u} {β : ι → Type v} [(i : ι) → Zero (β i)] (x y : Π₀ (i : ι), β i) (s : Set ι) [(i : ι) → Decidable (i ∈ s)]
Goal: ⇑(x.piecewise y s) = s.piecewise ⇑x ⇑y
-- DFinsupp.add_apply
theorem add_apply [∀ i, AddZeroClass (β i)] (g₁ g₂ : Π₀ i, β i) (i : ι) :
    (g₁ + g₂) i = g₁ i + g₂ i 
Arguments: {ι : Type u} {β : ι → Type v} [(i : ι) → AddZeroClass (β i)] (g₁ g₂ : Π₀ (i : ι), β i) (i : ι)
Goal: (g₁ + g₂) i = g₁ i + g₂ i
-- DFinsupp.coe_add
@[simp, norm_cast]
theorem coe_add [∀ i, AddZeroClass (β i)] (g₁ g₂ : Π₀ i, β i) : ⇑(g₁ + g₂) = g₁ + g₂ 
Arguments: {ι : Type u} {β : ι → Type v} [(i : ι) → AddZeroClass (β i)] (g₁ g₂ : Π₀ (i : ι), β i)
Goal: ⇑(g₁ + g₂) = ⇑g₁ + ⇑g₂
-- DFinsupp.nsmul_apply
theorem nsmul_apply [∀ i, AddMonoid (β i)] (b : ℕ) (v : Π₀ i, β i) (i : ι) : (b • v) i = b • v i 
Arguments: {ι : Type u} {β : ι → Type v} [(i : ι) → AddMonoid (β i)] (b : ℕ) (v : Π₀ (i : ι), β i) (i : ι)
Goal: (b • v) i = b • v i
-- DFinsupp.coe_nsmul
@[simp, norm_cast]
theorem coe_nsmul [∀ i, AddMonoid (β i)] (b : ℕ) (v : Π₀ i, β i) : ⇑(b • v) = b • ⇑v 
Arguments: {ι : Type u} {β : ι → Type v} [(i : ι) → AddMonoid (β i)] (b : ℕ) (v : Π₀ (i : ι), β i)
Goal: ⇑(b • v) = b • ⇑v
-- DFinsupp.coe_finset_sum
@[simp, norm_cast]
theorem coe_finset_sum {α} [∀ i, AddCommMonoid (β i)] (s : Finset α) (g : α → Π₀ i, β i) :
    ⇑(∑ a ∈ s, g a) = ∑ a ∈ s, ⇑(g a) 
Arguments: {ι : Type u} {β : ι → Type v} {α : Type u_1} [(i : ι) → AddCommMonoid (β i)] (s : Finset α) (g : α → Π₀ (i : ι), β i)
Goal: ⇑(∑ a ∈ s, g a) = ∑ a ∈ s, ⇑(g a)
-- DFinsupp.finset_sum_apply
@[simp]
theorem finset_sum_apply {α} [∀ i, AddCommMonoid (β i)] (s : Finset α) (g : α → Π₀ i, β i) (i : ι) :
    (∑ a ∈ s, g a) i = ∑ a ∈ s, g a i 
Arguments: {ι : Type u} {β : ι → Type v} {α : Type u_1} [(i : ι) → AddCommMonoid (β i)] (s : Finset α) (g : α → Π₀ (i : ι), β i) (i : ι)
Goal: (∑ a ∈ s, g a) i = ∑ a ∈ s, (g a) i
-- DFinsupp.neg_apply
theorem neg_apply [∀ i, AddGroup (β i)] (g : Π₀ i, β i) (i : ι) : (-g) i = -g i 
Arguments: {ι : Type u} {β : ι → Type v} [(i : ι) → AddGroup (β i)] (g : Π₀ (i : ι), β i) (i : ι)
Goal: (-g) i = -g i
-- DFinsupp.coe_neg
@[simp, norm_cast] lemma coe_neg [∀ i, AddGroup (β i)] (g : Π₀ i, β i) : ⇑(-g) = -g 
Arguments: {ι : Type u} {β : ι → Type v} [(i : ι) → AddGroup (β i)] (g : Π₀ (i : ι), β i)
Goal: ⇑(-g) = -⇑g
-- DFinsupp.sub_apply
theorem sub_apply [∀ i, AddGroup (β i)] (g₁ g₂ : Π₀ i, β i) (i : ι) : (g₁ - g₂) i = g₁ i - g₂ i 
Arguments: {ι : Type u} {β : ι → Type v} [(i : ι) → AddGroup (β i)] (g₁ g₂ : Π₀ (i : ι), β i) (i : ι)
Goal: (g₁ - g₂) i = g₁ i - g₂ i
-- DFinsupp.coe_sub
@[simp, norm_cast]
theorem coe_sub [∀ i, AddGroup (β i)] (g₁ g₂ : Π₀ i, β i) : ⇑(g₁ - g₂) = g₁ - g₂ 
Arguments: {ι : Type u} {β : ι → Type v} [(i : ι) → AddGroup (β i)] (g₁ g₂ : Π₀ (i : ι), β i)
Goal: ⇑(g₁ - g₂) = ⇑g₁ - ⇑g₂
-- DFinsupp.zsmul_apply
theorem zsmul_apply [∀ i, AddGroup (β i)] (b : ℤ) (v : Π₀ i, β i) (i : ι) : (b • v) i = b • v i 
Arguments: {ι : Type u} {β : ι → Type v} [(i : ι) → AddGroup (β i)] (b : ℤ) (v : Π₀ (i : ι), β i) (i : ι)
Goal: (b • v) i = b • v i
-- DFinsupp.coe_zsmul
@[simp, norm_cast]
theorem coe_zsmul [∀ i, AddGroup (β i)] (b : ℤ) (v : Π₀ i, β i) : ⇑(b • v) = b • ⇑v 
Arguments: {ι : Type u} {β : ι → Type v} [(i : ι) → AddGroup (β i)] (b : ℤ) (v : Π₀ (i : ι), β i)
Goal: ⇑(b • v) = b • ⇑v
-- DFinsupp.smul_apply
theorem smul_apply [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)] (b : γ)
    (v : Π₀ i, β i) (i : ι) : (b • v) i = b • v i 
Arguments: {ι : Type u} {γ : Type w} {β : ι → Type v} [Monoid γ] [(i : ι) → AddMonoid (β i)] [(i : ι) → DistribMulAction γ (β i)] (b : γ) (v : Π₀ (i : ι), β i) (i : ι)
Goal: (b • v) i = b • v i
-- DFinsupp.coe_smul
@[simp, norm_cast]
theorem coe_smul [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)] (b : γ)
    (v : Π₀ i, β i) : ⇑(b • v) = b • ⇑v 
Arguments: {ι : Type u} {γ : Type w} {β : ι → Type v} [Monoid γ] [(i : ι) → AddMonoid (β i)] [(i : ι) → DistribMulAction γ (β i)] (b : γ) (v : Π₀ (i : ι), β i)
Goal: ⇑(b • v) = b • ⇑v
-- DFinsupp.filter_apply
@[simp]
theorem filter_apply [∀ i, Zero (β i)] (p : ι → Prop) [DecidablePred p] (i : ι) (f : Π₀ i, β i) :
    f.filter p i = if p i then f i else 0 
Arguments: {ι : Type u} {β : ι → Type v} [(i : ι) → Zero (β i)] (p : ι → Prop) [DecidablePred p] (i : ι) (f : Π₀ (i : ι), β i)
Goal: (DFinsupp.filter p f) i = if p i then f i else 0
-- DFinsupp.filter_apply_pos
theorem filter_apply_pos [∀ i, Zero (β i)] {p : ι → Prop} [DecidablePred p] (f : Π₀ i, β i) {i : ι}
    (h : p i) : f.filter p i = f i 
Arguments: {ι : Type u} {β : ι → Type v} [(i : ι) → Zero (β i)] {p : ι → Prop} [DecidablePred p] (f : Π₀ (i : ι), β i) {i : ι} (h : p i)
Goal: (DFinsupp.filter p f) i = f i
-- DFinsupp.filter_apply_neg
theorem filter_apply_neg [∀ i, Zero (β i)] {p : ι → Prop} [DecidablePred p] (f : Π₀ i, β i) {i : ι}
    (h : ¬p i) : f.filter p i = 0 
Arguments: {ι : Type u} {β : ι → Type v} [(i : ι) → Zero (β i)] {p : ι → Prop} [DecidablePred p] (f : Π₀ (i : ι), β i) {i : ι} (h : ¬p i)
Goal: (DFinsupp.filter p f) i = 0
-- DFinsupp.filter_pos_add_filter_neg
theorem filter_pos_add_filter_neg [∀ i, AddZeroClass (β i)] (f : Π₀ i, β i) (p : ι → Prop)
    [DecidablePred p] : (f.filter p + f.filter fun i => ¬p i) = f 
Arguments: {ι : Type u} {β : ι → Type v} [(i : ι) → AddZeroClass (β i)] (f : Π₀ (i : ι), β i) (p : ι → Prop) [DecidablePred p]
Goal: DFinsupp.filter p f + DFinsupp.filter (fun i => ¬p i) f = f
-- DFinsupp.filter_zero
@[simp]
theorem filter_zero [∀ i, Zero (β i)] (p : ι → Prop) [DecidablePred p] :
    (0 : Π₀ i, β i).filter p = 0 
Arguments: {ι : Type u} {β : ι → Type v} [(i : ι) → Zero (β i)] (p : ι → Prop) [DecidablePred p]
Goal: DFinsupp.filter p 0 = 0
-- DFinsupp.filter_add
@[simp]
theorem filter_add [∀ i, AddZeroClass (β i)] (p : ι → Prop) [DecidablePred p] (f g : Π₀ i, β i) :
    (f + g).filter p = f.filter p + g.filter p 
Arguments: {ι : Type u} {β : ι → Type v} [(i : ι) → AddZeroClass (β i)] (p : ι → Prop) [DecidablePred p] (f g : Π₀ (i : ι), β i)
Goal: DFinsupp.filter p (f + g) = DFinsupp.filter p f + DFinsupp.filter p g
-- DFinsupp.filter_smul
@[simp]
theorem filter_smul [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)] (p : ι → Prop)
    [DecidablePred p] (r : γ) (f : Π₀ i, β i) : (r • f).filter p = r • f.filter p 
Arguments: {ι : Type u} {γ : Type w} {β : ι → Type v} [Monoid γ] [(i : ι) → AddMonoid (β i)] [(i : ι) → DistribMulAction γ (β i)] (p : ι → Prop) [DecidablePred p] (r : γ) (f : Π₀ (i : ι), β i)
Goal: DFinsupp.filter p (r • f) = r • DFinsupp.filter p f
-- DFinsupp.filterAddMonoidHom_apply
@[simps]
def filterAddMonoidHom [∀ i, AddZeroClass (β i)] (p : ι → Prop) [DecidablePred p] :
    (Π₀ i, β i) →+ Π₀ i, β i 
Arguments: {ι : Type u} (β : ι → Type v) [(i : ι) → AddZeroClass (β i)] (p : ι → Prop) [DecidablePred p] (x : Π₀ (i : ι), β i)
Goal: (DFinsupp.filterAddMonoidHom β p) x = DFinsupp.filter p x
-- DFinsupp.filterLinearMap_apply
@[simps]
def filterLinearMap [Semiring γ] [∀ i, AddCommMonoid (β i)] [∀ i, Module γ (β i)] (p : ι → Prop)
    [DecidablePred p] : (Π₀ i, β i) →ₗ[γ] Π₀ i, β i 
Arguments: {ι : Type u} (γ : Type w) (β : ι → Type v) [Semiring γ] [(i : ι) → AddCommMonoid (β i)] [(i : ι) → Module γ (β i)] (p : ι → Prop) [DecidablePred p] (x : Π₀ (i : ι), β i)
Goal: (DFinsupp.filterLinearMap γ β p) x = DFinsupp.filter p x
-- DFinsupp.filter_neg
@[simp]
theorem filter_neg [∀ i, AddGroup (β i)] (p : ι → Prop) [DecidablePred p] (f : Π₀ i, β i) :
    (-f).filter p = -f.filter p 
Arguments: {ι : Type u} {β : ι → Type v} [(i : ι) → AddGroup (β i)] (p : ι → Prop) [DecidablePred p] (f : Π₀ (i : ι), β i)
Goal: DFinsupp.filter p (-f) = -DFinsupp.filter p f
-- DFinsupp.filter_sub
@[simp]
theorem filter_sub [∀ i, AddGroup (β i)] (p : ι → Prop) [DecidablePred p] (f g : Π₀ i, β i) :
    (f - g).filter p = f.filter p - g.filter p 
Arguments: {ι : Type u} {β : ι → Type v} [(i : ι) → AddGroup (β i)] (p : ι → Prop) [DecidablePred p] (f g : Π₀ (i : ι), β i)
Goal: DFinsupp.filter p (f - g) = DFinsupp.filter p f - DFinsupp.filter p g
-- DFinsupp.subtypeDomain_zero
@[simp]
theorem subtypeDomain_zero [∀ i, Zero (β i)] {p : ι → Prop} [DecidablePred p] :
    subtypeDomain p (0 : Π₀ i, β i) = 0 
Arguments: {ι : Type u} {β : ι → Type v} [(i : ι) → Zero (β i)] {p : ι → Prop} [DecidablePred p]
Goal: DFinsupp.subtypeDomain p 0 = 0
-- DFinsupp.subtypeDomain_apply
@[simp]
theorem subtypeDomain_apply [∀ i, Zero (β i)] {p : ι → Prop} [DecidablePred p] {i : Subtype p}
    {v : Π₀ i, β i} : (subtypeDomain p v) i = v i 
Arguments: {ι : Type u} {β : ι → Type v} [(i : ι) → Zero (β i)] {p : ι → Prop} [DecidablePred p] {i : Subtype p} {v : Π₀ (i : ι), β i}
Goal: (DFinsupp.subtypeDomain p v) i = v ↑i
-- DFinsupp.subtypeDomain_add
@[simp]
theorem subtypeDomain_add [∀ i, AddZeroClass (β i)] {p : ι → Prop} [DecidablePred p]
    (v v' : Π₀ i, β i) : (v + v').subtypeDomain p = v.subtypeDomain p + v'.subtypeDomain p 
Arguments: {ι : Type u} {β : ι → Type v} [(i : ι) → AddZeroClass (β i)] {p : ι → Prop} [DecidablePred p] (v v' : Π₀ (i : ι), β i)
Goal: DFinsupp.subtypeDomain p (v + v') = DFinsupp.subtypeDomain p v + DFinsupp.subtypeDomain p v'
-- DFinsupp.subtypeDomain_smul
@[simp]
theorem subtypeDomain_smul [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)]
    {p : ι → Prop} [DecidablePred p] (r : γ) (f : Π₀ i, β i) :
    (r • f).subtypeDomain p = r • f.subtypeDomain p 
Arguments: {ι : Type u} {γ : Type w} {β : ι → Type v} [Monoid γ] [(i : ι) → AddMonoid (β i)] [(i : ι) → DistribMulAction γ (β i)] {p : ι → Prop} [DecidablePred p] (r : γ) (f : Π₀ (i : ι), β i)
Goal: DFinsupp.subtypeDomain p (r • f) = r • DFinsupp.subtypeDomain p f
-- DFinsupp.subtypeDomainAddMonoidHom_apply
@[simps]
def subtypeDomainAddMonoidHom [∀ i, AddZeroClass (β i)] (p : ι → Prop) [DecidablePred p] :
    (Π₀ i : ι, β i) →+ Π₀ i : Subtype p, β i 
Arguments: {ι : Type u} (β : ι → Type v) [(i : ι) → AddZeroClass (β i)] (p : ι → Prop) [DecidablePred p] (x : Π₀ (i : ι), β i)
Goal: (DFinsupp.subtypeDomainAddMonoidHom β p) x = DFinsupp.subtypeDomain p x
-- DFinsupp.subtypeDomainLinearMap_apply
@[simps]
def subtypeDomainLinearMap [Semiring γ] [∀ i, AddCommMonoid (β i)] [∀ i, Module γ (β i)]
    (p : ι → Prop) [DecidablePred p] : (Π₀ i, β i) →ₗ[γ] Π₀ i : Subtype p, β i 
Arguments: {ι : Type u} (γ : Type w) (β : ι → Type v) [Semiring γ] [(i : ι) → AddCommMonoid (β i)] [(i : ι) → Module γ (β i)] (p : ι → Prop) [DecidablePred p] (x : Π₀ (i : ι), β i)
Goal: (DFinsupp.subtypeDomainLinearMap γ β p) x = DFinsupp.subtypeDomain p x
-- DFinsupp.subtypeDomain_neg
@[simp]
theorem subtypeDomain_neg [∀ i, AddGroup (β i)] {p : ι → Prop} [DecidablePred p] {v : Π₀ i, β i} :
    (-v).subtypeDomain p = -v.subtypeDomain p 
Arguments: {ι : Type u} {β : ι → Type v} [(i : ι) → AddGroup (β i)] {p : ι → Prop} [DecidablePred p] {v : Π₀ (i : ι), β i}
Goal: DFinsupp.subtypeDomain p (-v) = -DFinsupp.subtypeDomain p v
-- DFinsupp.subtypeDomain_sub
@[simp]
theorem subtypeDomain_sub [∀ i, AddGroup (β i)] {p : ι → Prop} [DecidablePred p]
    {v v' : Π₀ i, β i} : (v - v').subtypeDomain p = v.subtypeDomain p - v'.subtypeDomain p 
Arguments: {ι : Type u} {β : ι → Type v} [(i : ι) → AddGroup (β i)] {p : ι → Prop} [DecidablePred p] {v v' : Π₀ (i : ι), β i}
Goal: DFinsupp.subtypeDomain p (v - v') = DFinsupp.subtypeDomain p v - DFinsupp.subtypeDomain p v'
-- DFinsupp.finite_support
theorem finite_support (f : Π₀ i, β i) : Set.Finite { i | f i ≠ 0 } 
Arguments: {ι : Type u} {β : ι → Type v} [(i : ι) → Zero (β i)] (f : Π₀ (i : ι), β i)
Goal: {i | f i ≠ 0}.Finite
-- DFinsupp.mk_apply
@[simp]
theorem mk_apply : (mk s x : ∀ i, β i) i = if H : i ∈ s then x ⟨i, H⟩ else 0 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] {s : Finset ι} {x : (i : ↑↑s) → β ↑i} {i : ι}
Goal: (DFinsupp.mk s x) i = if H : i ∈ s then x ⟨i, H⟩ else 0
-- DFinsupp.mk_of_mem
theorem mk_of_mem (hi : i ∈ s) : (mk s x : ∀ i, β i) i = x ⟨i, hi⟩ 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] {s : Finset ι} {x : (i : ↑↑s) → β ↑i} {i : ι} (hi : i ∈ s)
Goal: (DFinsupp.mk s x) i = x ⟨i, hi⟩
-- DFinsupp.mk_of_not_mem
theorem mk_of_not_mem (hi : i ∉ s) : (mk s x : ∀ i, β i) i = 0 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] {s : Finset ι} {x : (i : ↑↑s) → β ↑i} {i : ι} (hi : i ∉ s)
Goal: (DFinsupp.mk s x) i = 0
-- DFinsupp.mk_injective
theorem mk_injective (s : Finset ι) : Function.Injective (@mk ι β _ _ s) 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] (s : Finset ι)
Goal: Function.Injective (DFinsupp.mk s)
-- DFinsupp.equivFunOnFintype_apply
@[simps apply]
def equivFunOnFintype [Fintype ι] : (Π₀ i, β i) ≃ ∀ i, β i 
Arguments: {ι : Type u} {β : ι → Type v} [(i : ι) → Zero (β i)] [Fintype ι]
Goal: ∀ (a : Π₀ (i : ι), β i) (a_1 : ι), DFinsupp.equivFunOnFintype a a_1 = a a_1
-- DFinsupp.equivFunOnFintype_symm_coe
@[simp]
theorem equivFunOnFintype_symm_coe [Fintype ι] (f : Π₀ i, β i) : equivFunOnFintype.symm f = f 
Arguments: {ι : Type u} {β : ι → Type v} [(i : ι) → Zero (β i)] [Fintype ι] (f : Π₀ (i : ι), β i)
Goal: DFinsupp.equivFunOnFintype.symm ⇑f = f
-- DFinsupp.single_eq_pi_single
theorem single_eq_pi_single {i b} : ⇑(single i b : Π₀ i, β i) = Pi.single i b 
Arguments: {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] {i : ι} {b : β i}
Goal: ⇑(DFinsupp.single i b) = Pi.single i b