ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- CochainComplex.augmentTruncate_hom_f_succ
@[simp]
theorem augmentTruncate_hom_f_succ (C : CochainComplex V ℕ) (i : ℕ) :
    (augmentTruncate C).hom.f (i + 1) = 𝟙 (C.X (i + 1)) 
Arguments: {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (C : CochainComplex V ℕ) (i : ℕ)
Goal: C.augmentTruncate.hom.f (i + 1) = 𝟙 (C.X (i + 1))
-- CochainComplex.augmentTruncate_inv_f_zero
@[simp]
theorem augmentTruncate_inv_f_zero (C : CochainComplex V ℕ) :
    (augmentTruncate C).inv.f 0 = 𝟙 (C.X 0) 
Arguments: {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (C : CochainComplex V ℕ)
Goal: C.augmentTruncate.inv.f 0 = 𝟙 (C.X 0)
-- CochainComplex.augmentTruncate_inv_f_succ
@[simp]
theorem augmentTruncate_inv_f_succ (C : CochainComplex V ℕ) (i : ℕ) :
    (augmentTruncate C).inv.f (i + 1) = 𝟙 (C.X (i + 1)) 
Arguments: {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (C : CochainComplex V ℕ) (i : ℕ)
Goal: C.augmentTruncate.inv.f (i + 1) = 𝟙 (C.X (i + 1))
-- DirectSum.GNonUnitalNonAssocSemiring.zero_mul
class GNonUnitalNonAssocSemiring [Add ι] [∀ i, AddCommMonoid (A i)] extends
  GradedMonoid.GMul A where
    mul_zero : ∀ {i j} (a : A i), mul a (0 : A j) = 0
    zero_mul : ∀ {i j} (b : A j), mul (0 : A i) b = 0
    mul_add : ∀ {i j} (a : A i) (b c : A j), mul a (b + c) = mul a b + mul a c
    add_mul : ∀ {i j} (a b : A i) (c : A j), mul (a + b) c = mul a c + mul b c
Arguments: {ι : Type u_1} {A : ι → Type u_2} [Add ι] [(i : ι) → AddCommMonoid (A i)] [self : DirectSum.GNonUnitalNonAssocSemiring A] {i j : ι} (b : A j)
Goal: GradedMonoid.GMul.mul 0 b = 0
-- DirectSum.GNonUnitalNonAssocSemiring.mul_add
class GNonUnitalNonAssocSemiring [Add ι] [∀ i, AddCommMonoid (A i)] extends
  GradedMonoid.GMul A where
    mul_zero : ∀ {i j} (a : A i), mul a (0 : A j) = 0
    zero_mul : ∀ {i j} (b : A j), mul (0 : A i) b = 0
    mul_add : ∀ {i j} (a : A i) (b c : A j), mul a (b + c) = mul a b + mul a c
    add_mul : ∀ {i j} (a b : A i) (c : A j), mul (a + b) c = mul a c + mul b c
Arguments: {ι : Type u_1} {A : ι → Type u_2} [Add ι] [(i : ι) → AddCommMonoid (A i)] [self : DirectSum.GNonUnitalNonAssocSemiring A] {i j : ι} (a : A i) (b c : A j)
Goal: GradedMonoid.GMul.mul a (b + c) = GradedMonoid.GMul.mul a b + GradedMonoid.GMul.mul a c
-- DirectSum.GNonUnitalNonAssocSemiring.add_mul
class GNonUnitalNonAssocSemiring [Add ι] [∀ i, AddCommMonoid (A i)] extends
  GradedMonoid.GMul A where
    mul_zero : ∀ {i j} (a : A i), mul a (0 : A j) = 0
    zero_mul : ∀ {i j} (b : A j), mul (0 : A i) b = 0
    mul_add : ∀ {i j} (a : A i) (b c : A j), mul a (b + c) = mul a b + mul a c
    add_mul : ∀ {i j} (a b : A i) (c : A j), mul (a + b) c = mul a c + mul b c
Arguments: {ι : Type u_1} {A : ι → Type u_2} [Add ι] [(i : ι) → AddCommMonoid (A i)] [self : DirectSum.GNonUnitalNonAssocSemiring A] {i j : ι} (a b : A i) (c : A j)
Goal: GradedMonoid.GMul.mul (a + b) c = GradedMonoid.GMul.mul a c + GradedMonoid.GMul.mul b c
-- DirectSum.GNonUnitalNonAssocSemiring.mul_zero
class GNonUnitalNonAssocSemiring [Add ι] [∀ i, AddCommMonoid (A i)] extends
  GradedMonoid.GMul A where
    mul_zero : ∀ {i j} (a : A i), mul a (0 : A j) = 0
    zero_mul : ∀ {i j} (b : A j), mul (0 : A i) b = 0
    mul_add : ∀ {i j} (a : A i) (b c : A j), mul a (b + c) = mul a b + mul a c
    add_mul : ∀ {i j} (a b : A i) (c : A j), mul (a + b) c = mul a c + mul b c
Arguments: {ι : Type u_1} {A : ι → Type u_2} [Add ι] [(i : ι) → AddCommMonoid (A i)] [self : DirectSum.GNonUnitalNonAssocSemiring A] {i j : ι} (a : A i)
Goal: GradedMonoid.GMul.mul a 0 = 0
-- DirectSum.GSemiring.natCast_succ
class GSemiring [AddMonoid ι] [∀ i, AddCommMonoid (A i)] extends GNonUnitalNonAssocSemiring A,
  GradedMonoid.GMonoid A where
    natCast : ℕ → A 0
    natCast_zero : natCast 0 = 0
    natCast_succ : ∀ n : ℕ, natCast (n + 1) = natCast n + GradedMonoid.GOne.one
Arguments: {ι : Type u_1} {A : ι → Type u_2} [AddMonoid ι] [(i : ι) → AddCommMonoid (A i)] [self : DirectSum.GSemiring A] (n : ℕ)
Goal: DirectSum.GSemiring.natCast (n + 1) = DirectSum.GSemiring.natCast n + GradedMonoid.GOne.one
-- DirectSum.GSemiring.natCast_zero
class GSemiring [AddMonoid ι] [∀ i, AddCommMonoid (A i)] extends GNonUnitalNonAssocSemiring A,
  GradedMonoid.GMonoid A where
    natCast : ℕ → A 0
    natCast_zero : natCast 0 = 0
    natCast_succ : ∀ n : ℕ, natCast (n + 1) = natCast n + GradedMonoid.GOne.one
Arguments: {ι : Type u_1} {A : ι → Type u_2} [AddMonoid ι] [(i : ι) → AddCommMonoid (A i)] [self : DirectSum.GSemiring A]
Goal: DirectSum.GSemiring.natCast 0 = 0
-- DirectSum.GRing.intCast_negSucc_ofNat
class GRing [AddMonoid ι] [∀ i, AddCommGroup (A i)] extends GSemiring A where
    intCast : ℤ → A 0
    intCast_ofNat : ∀ n : ℕ, intCast n = natCast n
    -- Porting note: -(n+1) -> Int.negSucc
  intCast_negSucc_ofNat : ∀ n : ℕ, intCast (Int.negSucc n) = -natCast (n + 1 : ℕ)
Arguments: {ι : Type u_1} {A : ι → Type u_2} [AddMonoid ι] [(i : ι) → AddCommGroup (A i)] [self : DirectSum.GRing A] (n : ℕ)
Goal: DirectSum.GRing.intCast (Int.negSucc n) = -DirectSum.GSemiring.natCast (n + 1)
-- DirectSum.GRing.intCast_ofNat
class GRing [AddMonoid ι] [∀ i, AddCommGroup (A i)] extends GSemiring A where
    intCast : ℤ → A 0
    intCast_ofNat : ∀ n : ℕ, intCast n = natCast n
    -- Porting note: -(n+1) -> Int.negSucc
  intCast_negSucc_ofNat : ∀ n : ℕ, intCast (Int.negSucc n) = -natCast (n + 1 : ℕ)
Arguments: {ι : Type u_1} {A : ι → Type u_2} [AddMonoid ι] [(i : ι) → AddCommGroup (A i)] [self : DirectSum.GRing A] (n : ℕ)
Goal: DirectSum.GRing.intCast ↑n = DirectSum.GSemiring.natCast n
-- DirectSum.of_eq_of_gradedMonoid_eq
theorem of_eq_of_gradedMonoid_eq {A : ι → Type*} [∀ i : ι, AddCommMonoid (A i)] {i j : ι} {a : A i}
    {b : A j} (h : GradedMonoid.mk i a = GradedMonoid.mk j b) :
    DirectSum.of A i a = DirectSum.of A j b 
Arguments: {ι : Type u_1} [DecidableEq ι] {A : ι → Type u_2} [(i : ι) → AddCommMonoid (A i)] {i j : ι} {a : A i} {b : A j} (h : GradedMonoid.mk i a = GradedMonoid.mk j b)
Goal: (DirectSum.of A i) a = (DirectSum.of A j) b
-- DirectSum.one_def
theorem one_def : 1 = DirectSum.of A 0 GradedMonoid.GOne.one 
Arguments: {ι : Type u_1} [DecidableEq ι] (A : ι → Type u_2) [Zero ι] [GradedMonoid.GOne A] [(i : ι) → AddCommMonoid (A i)]
Goal: 1 = (DirectSum.of A 0) GradedMonoid.GOne.one
-- DirectSum.gMulHom_apply_apply
@[simps]
def gMulHom {i j} : A i →+ A j →+ A (i + j) 
Arguments: {ι : Type u_1} (A : ι → Type u_2) [Add ι] [(i : ι) → AddCommMonoid (A i)] [DirectSum.GNonUnitalNonAssocSemiring A] {i j : ι} (a : A i) (b : A j)
Goal: ((DirectSum.gMulHom A) a) b = GradedMonoid.GMul.mul a b
-- DirectSum.mulHom_apply
theorem mulHom_apply (a b : ⨁ i, A i) : mulHom A a b = a * b 
Arguments: {ι : Type u_1} [DecidableEq ι] {A : ι → Type u_2} [Add ι] [(i : ι) → AddCommMonoid (A i)] [DirectSum.GNonUnitalNonAssocSemiring A] (a b : DirectSum ι fun i => A i)
Goal: ((DirectSum.mulHom A) a) b = a * b
-- DirectSum.mulHom_of_of
theorem mulHom_of_of {i j} (a : A i) (b : A j) :
    mulHom A (of A i a) (of A j b) = of A (i + j) (GradedMonoid.GMul.mul a b) 
Arguments: {ι : Type u_1} [DecidableEq ι] {A : ι → Type u_2} [Add ι] [(i : ι) → AddCommMonoid (A i)] [DirectSum.GNonUnitalNonAssocSemiring A] {i j : ι} (a : A i) (b : A j)
Goal: ((DirectSum.mulHom A) ((DirectSum.of A i) a)) ((DirectSum.of A j) b) =
  (DirectSum.of A (i + j)) (GradedMonoid.GMul.mul a b)
-- DirectSum.of_mul_of
theorem of_mul_of {i j} (a : A i) (b : A j) :
    of A i a * of A j b = of _ (i + j) (GradedMonoid.GMul.mul a b) 
Arguments: {ι : Type u_1} [DecidableEq ι] {A : ι → Type u_2} [Add ι] [(i : ι) → AddCommMonoid (A i)] [DirectSum.GNonUnitalNonAssocSemiring A] {i j : ι} (a : A i) (b : A j)
Goal: (DirectSum.of A i) a * (DirectSum.of A j) b = (DirectSum.of A (i + j)) (GradedMonoid.GMul.mul a b)
-- _private.Mathlib.Algebra.DirectSum.Ring.0.DirectSum.one_mul
private nonrec theorem one_mul (x : ⨁ i, A i) : 1 * x = x 
Arguments: {ι : Type u_1} [DecidableEq ι] (A : ι → Type u_2) [(i : ι) → AddCommMonoid (A i)] [AddMonoid ι] [DirectSum.GSemiring A] (x : DirectSum ι fun i => A i)
Goal: 1 * x = x
-- _private.Mathlib.Algebra.DirectSum.Ring.0.DirectSum.mul_one
private nonrec theorem mul_one (x : ⨁ i, A i) : x * 1 = x 
Arguments: {ι : Type u_1} [DecidableEq ι] (A : ι → Type u_2) [(i : ι) → AddCommMonoid (A i)] [AddMonoid ι] [DirectSum.GSemiring A] (x : DirectSum ι fun i => A i)
Goal: x * 1 = x
-- _private.Mathlib.Algebra.DirectSum.Ring.0.DirectSum.mul_assoc
private theorem mul_assoc (a b c : ⨁ i, A i) : a * b * c = a * (b * c) 
Arguments: {ι : Type u_1} [DecidableEq ι] (A : ι → Type u_2) [(i : ι) → AddCommMonoid (A i)] [AddMonoid ι] [DirectSum.GSemiring A] (a b c : DirectSum ι fun i => A i)
Goal: a * b * c = a * (b * c)
-- DirectSum.ofPow
theorem ofPow {i} (a : A i) (n : ℕ) :
    of _ i a ^ n = of _ (n • i) (GradedMonoid.GMonoid.gnpow _ a) 
Arguments: {ι : Type u_1} [DecidableEq ι] (A : ι → Type u_2) [(i : ι) → AddCommMonoid (A i)] [AddMonoid ι] [DirectSum.GSemiring A] {i : ι} (a : A i) (n : ℕ)
Goal: (DirectSum.of A i) a ^ n = (DirectSum.of A (n • i)) (GradedMonoid.GMonoid.gnpow n a)
-- DirectSum.ofList_dProd
theorem ofList_dProd {α} (l : List α) (fι : α → ι) (fA : ∀ a, A (fι a)) :
    of A _ (l.dProd fι fA) = (l.map fun a => of A (fι a) (fA a)).prod 
Arguments: {ι : Type u_1} [DecidableEq ι] (A : ι → Type u_2) [(i : ι) → AddCommMonoid (A i)] [AddMonoid ι] [DirectSum.GSemiring A] {α : Type u_3} (l : List α) (fι : α → ι) (fA : (a : α) → A (fι a))
Goal: (DirectSum.of A (l.dProdIndex fι)) (l.dProd fι fA) = (List.map (fun a => (DirectSum.of A (fι a)) (fA a)) l).prod
-- DirectSum.list_prod_ofFn_of_eq_dProd
theorem list_prod_ofFn_of_eq_dProd (n : ℕ) (fι : Fin n → ι) (fA : ∀ a, A (fι a)) :
    (List.ofFn fun a => of A (fι a) (fA a)).prod = of A _ ((List.finRange n).dProd fι fA) 
Arguments: {ι : Type u_1} [DecidableEq ι] (A : ι → Type u_2) [(i : ι) → AddCommMonoid (A i)] [AddMonoid ι] [DirectSum.GSemiring A] (n : ℕ) (fι : Fin n → ι) (fA : (a : Fin n) → A (fι a))
Goal: (List.ofFn fun a => (DirectSum.of A (fι a)) (fA a)).prod =
  (DirectSum.of A ((List.finRange n).dProdIndex fι)) ((List.finRange n).dProd fι fA)
-- DirectSum.mul_eq_dfinsupp_sum
theorem mul_eq_dfinsupp_sum [∀ (i : ι) (x : A i), Decidable (x ≠ 0)] (a a' : ⨁ i, A i) :
    a * a'
      = a.sum fun i ai => a'.sum fun j aj => DirectSum.of _ _ <| GradedMonoid.GMul.mul ai aj 
Arguments: {ι : Type u_1} [DecidableEq ι] (A : ι → Type u_2) [(i : ι) → AddCommMonoid (A i)] [AddMonoid ι] [DirectSum.GSemiring A] [(i : ι) → (x : A i) → Decidable (x ≠ 0)] (a a' : DirectSum ι fun i => A i)
Goal: a * a' = DFinsupp.sum a fun i ai => DFinsupp.sum a' fun j aj => (DirectSum.of A (i + j)) (GradedMonoid.GMul.mul ai aj)
-- DirectSum.mul_eq_sum_support_ghas_mul
theorem mul_eq_sum_support_ghas_mul [∀ (i : ι) (x : A i), Decidable (x ≠ 0)] (a a' : ⨁ i, A i) :
    a * a' =
      ∑ ij ∈ DFinsupp.support a ×ˢ DFinsupp.support a',
        DirectSum.of _ _ (GradedMonoid.GMul.mul (a ij.fst) (a' ij.snd)) 
Arguments: {ι : Type u_1} [DecidableEq ι] (A : ι → Type u_2) [(i : ι) → AddCommMonoid (A i)] [AddMonoid ι] [DirectSum.GSemiring A] [(i : ι) → (x : A i) → Decidable (x ≠ 0)] (a a' : DirectSum ι fun i => A i)
Goal: a * a' =
  ∑ ij ∈ DFinsupp.support a ×ˢ DFinsupp.support a',
    (DirectSum.of A (ij.1 + ij.2)) (GradedMonoid.GMul.mul (a ij.1) (a' ij.2))
-- _private.Mathlib.Algebra.DirectSum.Ring.0.DirectSum.mul_comm
private theorem mul_comm (a b : ⨁ i, A i) : a * b = b * a 
Arguments: {ι : Type u_1} [DecidableEq ι] (A : ι → Type u_2) [(i : ι) → AddCommMonoid (A i)] [AddCommMonoid ι] [DirectSum.GCommSemiring A] (a b : DirectSum ι fun i => A i)
Goal: a * b = b * a
-- DirectSum.of_zero_one
@[simp]
theorem of_zero_one : of _ 0 (1 : A 0) = 1 
Arguments: {ι : Type u_1} [DecidableEq ι] (A : ι → Type u_2) [Zero ι] [GradedMonoid.GOne A] [(i : ι) → AddCommMonoid (A i)]
Goal: (DirectSum.of A 0) 1 = 1
-- DirectSum.of_zero_smul
@[simp]
theorem of_zero_smul {i} (a : A 0) (b : A i) : of _ _ (a • b) = of _ _ a * of _ _ b 
Arguments: {ι : Type u_1} [DecidableEq ι] (A : ι → Type u_2) [AddZeroClass ι] [(i : ι) → AddCommMonoid (A i)] [DirectSum.GNonUnitalNonAssocSemiring A] {i : ι} (a : A 0) (b : A i)
Goal: (DirectSum.of A i) (a • b) = (DirectSum.of A 0) a * (DirectSum.of A i) b
-- DirectSum.of_zero_mul
@[simp]
theorem of_zero_mul (a b : A 0) : of _ 0 (a * b) = of _ 0 a * of _ 0 b 
Arguments: {ι : Type u_1} [DecidableEq ι] (A : ι → Type u_2) [AddZeroClass ι] [(i : ι) → AddCommMonoid (A i)] [DirectSum.GNonUnitalNonAssocSemiring A] (a b : A 0)
Goal: (DirectSum.of A 0) (a * b) = (DirectSum.of A 0) a * (DirectSum.of A 0) b
-- DirectSum.of_zero_pow
@[simp]
theorem of_zero_pow (a : A 0) : ∀ n : ℕ, of A 0 (a ^ n) = of A 0 a ^ n
  
Arguments: {ι : Type u_1} [DecidableEq ι] (A : ι → Type u_2) [(i : ι) → AddCommMonoid (A i)] [AddMonoid ι] [DirectSum.GSemiring A] (a : A 0) (n : ℕ)
Goal: (DirectSum.of A 0) (a ^ n) = (DirectSum.of A 0) a ^ n
-- DirectSum.of_natCast
@[simp]
theorem of_natCast (n : ℕ) : of A 0 n = n 
Arguments: {ι : Type u_1} [DecidableEq ι] (A : ι → Type u_2) [(i : ι) → AddCommMonoid (A i)] [AddMonoid ι] [DirectSum.GSemiring A] (n : ℕ)
Goal: (DirectSum.of A 0) ↑n = ↑n
-- DirectSum.of_zero_ofNat
@[simp]
theorem of_zero_ofNat (n : ℕ) [n.AtLeastTwo] : of A 0 (no_index (OfNat.ofNat n)) = OfNat.ofNat n 
Arguments: {ι : Type u_1} [DecidableEq ι] (A : ι → Type u_2) [(i : ι) → AddCommMonoid (A i)] [AddMonoid ι] [DirectSum.GSemiring A] (n : ℕ) [n.AtLeastTwo]
Goal: (DirectSum.of A 0) (OfNat.ofNat n) = OfNat.ofNat n
-- DirectSum.of_intCast
@[simp]
theorem of_intCast (n : ℤ) : of A 0 n = n 
Arguments: {ι : Type u_1} [DecidableEq ι] (A : ι → Type u_2) [(i : ι) → AddCommGroup (A i)] [AddMonoid ι] [DirectSum.GRing A] (n : ℤ)
Goal: (DirectSum.of A 0) ↑n = ↑n
-- DirectSum.ringHom_ext'
@[ext]
theorem ringHom_ext' ⦃F G : (⨁ i, A i) →+* R⦄
    (h : ∀ i, (↑F : _ →+ R).comp (of A i) = (↑G : _ →+ R).comp (of A i)) : F = G 
Arguments: {ι : Type u_1} [DecidableEq ι] {A : ι → Type u_2} {R : Type u_3} [(i : ι) → AddCommMonoid (A i)] [AddMonoid ι] [DirectSum.GSemiring A] [Semiring R] ⦃F G : (DirectSum ι fun i => A i) →+* R⦄ (h : ∀ (i : ι), (↑F).comp (DirectSum.of A i) = (↑G).comp (DirectSum.of A i))
Goal: F = G
-- DirectSum.ringHom_ext
theorem ringHom_ext ⦃f g : (⨁ i, A i) →+* R⦄ (h : ∀ i x, f (of A i x) = g (of A i x)) : f = g 
Arguments: {ι : Type u_1} [DecidableEq ι] {A : ι → Type u_2} {R : Type u_3} [(i : ι) → AddCommMonoid (A i)] [AddMonoid ι] [DirectSum.GSemiring A] [Semiring R] ⦃f g : (DirectSum ι fun i => A i) →+* R⦄ (h : ∀ (i : ι) (x : A i), f ((DirectSum.of A i) x) = g ((DirectSum.of A i) x))
Goal: f = g
-- DirectSum.toSemiring_apply
@[simps]
def toSemiring (f : ∀ i, A i →+ R) (hone : f _ GradedMonoid.GOne.one = 1)
    (hmul : ∀ {i j} (ai : A i) (aj : A j), f _ (GradedMonoid.GMul.mul ai aj) = f _ ai * f _ aj) :
    (⨁ i, A i) →+* R 
Arguments: {ι : Type u_1} [DecidableEq ι] {A : ι → Type u_2} {R : Type u_3} [(i : ι) → AddCommMonoid (A i)] [AddMonoid ι] [DirectSum.GSemiring A] [Semiring R] (f : (i : ι) → A i →+ R) (hone : (f 0) GradedMonoid.GOne.one = 1) (hmul : ∀ {i j : ι} (ai : A i) (aj : A j), (f (i + j)) (GradedMonoid.GMul.mul ai aj) = (f i) ai * (f j) aj) (a : DirectSum ι fun i => A i)
Goal: (DirectSum.toSemiring f hone hmul) a = (DirectSum.toAddMonoid f) a
-- DirectSum.toSemiring_of
theorem toSemiring_of (f : ∀ i, A i →+ R) (hone hmul) (i : ι) (x : A i) :
    toSemiring f hone hmul (of _ i x) = f _ x 
Arguments: {ι : Type u_1} [DecidableEq ι] {A : ι → Type u_2} {R : Type u_3} [(i : ι) → AddCommMonoid (A i)] [AddMonoid ι] [DirectSum.GSemiring A] [Semiring R] (f : (i : ι) → A i →+ R) (hone : (f 0) GradedMonoid.GOne.one = 1) (hmul : ∀ {i j : ι} (ai : A i) (aj : A j), (f (i + j)) (GradedMonoid.GMul.mul ai aj) = (f i) ai * (f j) aj) (i : ι) (x : A i)
Goal: (DirectSum.toSemiring f hone hmul) ((DirectSum.of A i) x) = (f i) x
-- DirectSum.toSemiring_coe_addMonoidHom
@[simp]
theorem toSemiring_coe_addMonoidHom (f : ∀ i, A i →+ R) (hone hmul) :
    (toSemiring f hone hmul : (⨁ i, A i) →+ R) = toAddMonoid f 
Arguments: {ι : Type u_1} [DecidableEq ι] {A : ι → Type u_2} {R : Type u_3} [(i : ι) → AddCommMonoid (A i)] [AddMonoid ι] [DirectSum.GSemiring A] [Semiring R] (f : (i : ι) → A i →+ R) (hone : (f 0) GradedMonoid.GOne.one = 1) (hmul : ∀ {i j : ι} (ai : A i) (aj : A j), (f (i + j)) (GradedMonoid.GMul.mul ai aj) = (f i) ai * (f j) aj)
Goal: ↑(DirectSum.toSemiring f hone hmul) = DirectSum.toAddMonoid f
-- DirectSum.liftRingHom_apply
@[simps]
def liftRingHom :
    { f : ∀ {i}, A i →+ R //
        f GradedMonoid.GOne.one = 1 ∧
          ∀ {i j} (ai : A i) (aj : A j), f (GradedMonoid.GMul.mul ai aj) = f ai * f aj } ≃
      ((⨁ i, A i) →+* R) 
Arguments: {ι : Type u_1} [DecidableEq ι] {A : ι → Type u_2} {R : Type u_3} [(i : ι) → AddCommMonoid (A i)] [AddMonoid ι] [DirectSum.GSemiring A] [Semiring R] (f :
  { f //
    f GradedMonoid.GOne.one = 1 ∧ ∀ {i j : ι} (ai : A i) (aj : A j), f (GradedMonoid.GMul.mul ai aj) = f ai * f aj })
Goal: DirectSum.liftRingHom f = DirectSum.toSemiring (fun x => ↑f) ⋯ ⋯
-- DirectSum.liftRingHom_symm_apply_coe
@[simps]
def liftRingHom :
    { f : ∀ {i}, A i →+ R //
        f GradedMonoid.GOne.one = 1 ∧
          ∀ {i j} (ai : A i) (aj : A j), f (GradedMonoid.GMul.mul ai aj) = f ai * f aj } ≃
      ((⨁ i, A i) →+* R) 
Arguments: {ι : Type u_1} [DecidableEq ι] {A : ι → Type u_2} {R : Type u_3} [(i : ι) → AddCommMonoid (A i)] [AddMonoid ι] [DirectSum.GSemiring A] [Semiring R] (F : (DirectSum ι fun i => A i) →+* R) {i : ι}
Goal: ↑(DirectSum.liftRingHom.symm F) = (↑F).comp (DirectSum.of A i)
-- ZeroHom.map_zero'
structure ZeroHom (M : Type*) (N : Type*) [Zero M] [Zero N] where
    protected toFun : M → N
    protected map_zero' : toFun 0 = 0
Arguments: {M : Type u_10} {N : Type u_11} [Zero M] [Zero N] (self : ZeroHom M N)
Goal: self.toFun 0 = 0
-- ZeroHomClass.map_zero
class ZeroHomClass (F : Type*) (M N : outParam Type*) [Zero M] [Zero N] [FunLike F M N] :
    Prop where
    map_zero : ∀ f : F, f 0 = 0
Arguments: {F : Type u_10} {M : outParam (Type u_11)} {N : outParam (Type u_12)} [Zero M] [Zero N] [FunLike F M N] [self : ZeroHomClass F M N] (f : F)
Goal: f 0 = 0
-- AddHom.map_add'
structure AddHom (M : Type*) (N : Type*) [Add M] [Add N] where
    protected toFun : M → N
    protected map_add' : ∀ x y, toFun (x + y) = toFun x + toFun y
Arguments: {M : Type u_10} {N : Type u_11} [Add M] [Add N] (self : AddHom M N) (x y : M)
Goal: self.toFun (x + y) = self.toFun x + self.toFun y
-- AddHomClass.map_add
class AddHomClass (F : Type*) (M N : outParam Type*) [Add M] [Add N] [FunLike F M N] : Prop where
    map_add : ∀ (f : F) (x y : M), f (x + y) = f x + f y
Arguments: {F : Type u_10} {M : outParam (Type u_11)} {N : outParam (Type u_12)} [Add M] [Add N] [FunLike F M N] [self : AddHomClass F M N] (f : F) (x y : M)
Goal: f (x + y) = f x + f y
-- OneHom.map_one'
@[to_additive]
structure OneHom (M : Type*) (N : Type*) [One M] [One N] where
    protected toFun : M → N
    protected map_one' : toFun 1 = 1
Arguments: {M : Type u_10} {N : Type u_11} [One M] [One N] (self : OneHom M N)
Goal: self.toFun 1 = 1
-- OneHomClass.map_one
@[to_additive]
class OneHomClass (F : Type*) (M N : outParam Type*) [One M] [One N] [FunLike F M N] : Prop where
    map_one : ∀ f : F, f 1 = 1
Arguments: {F : Type u_10} {M : outParam (Type u_11)} {N : outParam (Type u_12)} [One M] [One N] [FunLike F M N] [self : OneHomClass F M N] (f : F)
Goal: f 1 = 1
-- map_zero
@[to_additive (attr := simp)]
theorem map_one [OneHomClass F M N] (f : F) : f 1 = 1 
Arguments: {M : Type u_4} {N : Type u_5} {F : Type u_9} [Zero M] [Zero N] [FunLike F M N] [ZeroHomClass F M N] (f : F)
Goal: f 0 = 0
-- map_one
@[to_additive (attr := simp)]
theorem map_one [OneHomClass F M N] (f : F) : f 1 = 1 
Arguments: {M : Type u_4} {N : Type u_5} {F : Type u_9} [One M] [One N] [FunLike F M N] [OneHomClass F M N] (f : F)
Goal: f 1 = 1
-- map_comp_zero
@[to_additive] lemma map_comp_one [OneHomClass F M N] (f : F) : f ∘ (1 : ι → M) = 1 
Arguments: {ι : Type u_1} {M : Type u_4} {N : Type u_5} {F : Type u_9} [Zero M] [Zero N] [FunLike F M N] [ZeroHomClass F M N] (f : F)
Goal: ⇑f ∘ 0 = 0
-- map_comp_one
@[to_additive] lemma map_comp_one [OneHomClass F M N] (f : F) : f ∘ (1 : ι → M) = 1 
Arguments: {ι : Type u_1} {M : Type u_4} {N : Type u_5} {F : Type u_9} [One M] [One N] [FunLike F M N] [OneHomClass F M N] (f : F)
Goal: ⇑f ∘ 1 = 1
-- Subsingleton.of_zeroHomClass
@[to_additive]
theorem Subsingleton.of_oneHomClass [Subsingleton M] [OneHomClass F M N] :
    Subsingleton F 
Arguments: {M : Type u_4} {N : Type u_5} {F : Type u_9} [Zero M] [Zero N] [FunLike F M N] [Subsingleton M] [ZeroHomClass F M N]
Goal: Subsingleton F
-- Subsingleton.of_oneHomClass
@[to_additive]
theorem Subsingleton.of_oneHomClass [Subsingleton M] [OneHomClass F M N] :
    Subsingleton F 
Arguments: {M : Type u_4} {N : Type u_5} {F : Type u_9} [One M] [One N] [FunLike F M N] [Subsingleton M] [OneHomClass F M N]
Goal: Subsingleton F
-- map_eq_zero_iff
@[to_additive]
theorem map_eq_one_iff [OneHomClass F M N] (f : F) (hf : Function.Injective f)
    {x : M} :
    f x = 1 ↔ x = 1 
Arguments: {M : Type u_4} {N : Type u_5} {F : Type u_9} [Zero M] [Zero N] [FunLike F M N] [ZeroHomClass F M N] (f : F) (hf : Function.Injective ⇑f) {x : M}
Goal: f x = 0 ↔ x = 0
-- map_eq_one_iff
@[to_additive]
theorem map_eq_one_iff [OneHomClass F M N] (f : F) (hf : Function.Injective f)
    {x : M} :
    f x = 1 ↔ x = 1 
Arguments: {M : Type u_4} {N : Type u_5} {F : Type u_9} [One M] [One N] [FunLike F M N] [OneHomClass F M N] (f : F) (hf : Function.Injective ⇑f) {x : M}
Goal: f x = 1 ↔ x = 1
-- map_ne_zero_iff
@[to_additive]
theorem map_ne_one_iff {R S F : Type*} [One R] [One S] [FunLike F R S] [OneHomClass F R S] (f : F)
    (hf : Function.Injective f) {x : R} : f x ≠ 1 ↔ x ≠ 1 
Arguments: {R : Type u_10} {S : Type u_11} {F : Type u_12} [Zero R] [Zero S] [FunLike F R S] [ZeroHomClass F R S] (f : F) (hf : Function.Injective ⇑f) {x : R}
Goal: f x ≠ 0 ↔ x ≠ 0
-- map_ne_one_iff
@[to_additive]
theorem map_ne_one_iff {R S F : Type*} [One R] [One S] [FunLike F R S] [OneHomClass F R S] (f : F)
    (hf : Function.Injective f) {x : R} : f x ≠ 1 ↔ x ≠ 1 
Arguments: {R : Type u_10} {S : Type u_11} {F : Type u_12} [One R] [One S] [FunLike F R S] [OneHomClass F R S] (f : F) (hf : Function.Injective ⇑f) {x : R}
Goal: f x ≠ 1 ↔ x ≠ 1
-- ne_zero_of_map
@[to_additive]
theorem ne_one_of_map {R S F : Type*} [One R] [One S] [FunLike F R S] [OneHomClass F R S]
    {f : F} {x : R} (hx : f x ≠ 1) : x ≠ 1 
Arguments: {R : Type u_10} {S : Type u_11} {F : Type u_12} [Zero R] [Zero S] [FunLike F R S] [ZeroHomClass F R S] {f : F} {x : R} (hx : f x ≠ 0)
Goal: x ≠ 0
-- ne_one_of_map
@[to_additive]
theorem ne_one_of_map {R S F : Type*} [One R] [One S] [FunLike F R S] [OneHomClass F R S]
    {f : F} {x : R} (hx : f x ≠ 1) : x ≠ 1 
Arguments: {R : Type u_10} {S : Type u_11} {F : Type u_12} [One R] [One S] [FunLike F R S] [OneHomClass F R S] {f : F} {x : R} (hx : f x ≠ 1)
Goal: x ≠ 1
-- OneHom.coe_coe
@[to_additive (attr := simp)]
theorem OneHom.coe_coe [OneHomClass F M N] (f : F) :
    ((f : OneHom M N) : M → N) = f 
Arguments: {M : Type u_4} {N : Type u_5} {F : Type u_9} [One M] [One N] [FunLike F M N] [OneHomClass F M N] (f : F)
Goal: ⇑↑f = ⇑f
-- ZeroHom.coe_coe
@[to_additive (attr := simp)]
theorem OneHom.coe_coe [OneHomClass F M N] (f : F) :
    ((f : OneHom M N) : M → N) = f 
Arguments: {M : Type u_4} {N : Type u_5} {F : Type u_9} [Zero M] [Zero N] [FunLike F M N] [ZeroHomClass F M N] (f : F)
Goal: ⇑↑f = ⇑f
-- MulHom.map_mul'
@[to_additive]
structure MulHom (M : Type*) (N : Type*) [Mul M] [Mul N] where
    protected toFun : M → N
    protected map_mul' : ∀ x y, toFun (x * y) = toFun x * toFun y
Arguments: {M : Type u_10} {N : Type u_11} [Mul M] [Mul N] (self : M →ₙ* N) (x y : M)
Goal: self.toFun (x * y) = self.toFun x * self.toFun y
-- MulHomClass.map_mul
@[to_additive]
class MulHomClass (F : Type*) (M N : outParam Type*) [Mul M] [Mul N] [FunLike F M N] : Prop where
    map_mul : ∀ (f : F) (x y : M), f (x * y) = f x * f y
Arguments: {F : Type u_10} {M : outParam (Type u_11)} {N : outParam (Type u_12)} [Mul M] [Mul N] [FunLike F M N] [self : MulHomClass F M N] (f : F) (x y : M)
Goal: f (x * y) = f x * f y