ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- LinearMap.polyCharpoly_eq_of_basis
lemma polyCharpoly_eq_of_basis [DecidableEq ιM] (bₘ : Basis ιM R M) :
    polyCharpoly φ b =
    (charpoly.univ R ιM).map (MvPolynomial.bind₁ (φ.toMvPolynomial b bₘ.end)) 
Arguments: {R : Type u_1} {L : Type u_2} {M : Type u_3} {ι : Type u_5} {ιM : Type u_7} [CommRing R] [AddCommGroup L] [Module R L] [AddCommGroup M] [Module R M] (φ : L →ₗ[R] Module.End R M) [Fintype ι] [Fintype ιM] [DecidableEq ι] [Module.Free R M] [Module.Finite R M] (b : Basis ι R L) [DecidableEq ιM] (bₘ : Basis ιM R M)
Goal: φ.polyCharpoly b =
  Polynomial.map (↑(MvPolynomial.bind₁ (LinearMap.toMvPolynomial b bₘ.end φ))) (Matrix.charpoly.univ R ιM)
-- LinearMap.polyCharpoly_monic
lemma polyCharpoly_monic : (polyCharpoly φ b).Monic 
Arguments: {R : Type u_1} {L : Type u_2} {M : Type u_3} {ι : Type u_5} [CommRing R] [AddCommGroup L] [Module R L] [AddCommGroup M] [Module R M] (φ : L →ₗ[R] Module.End R M) [Fintype ι] [DecidableEq ι] [Module.Free R M] [Module.Finite R M] (b : Basis ι R L)
Goal: (φ.polyCharpoly b).Monic
-- LinearMap.polyCharpoly_ne_zero
lemma polyCharpoly_ne_zero [Nontrivial R] : (polyCharpoly φ b) ≠ 0 
Arguments: {R : Type u_1} {L : Type u_2} {M : Type u_3} {ι : Type u_5} [CommRing R] [AddCommGroup L] [Module R L] [AddCommGroup M] [Module R M] (φ : L →ₗ[R] Module.End R M) [Fintype ι] [DecidableEq ι] [Module.Free R M] [Module.Finite R M] (b : Basis ι R L) [Nontrivial R]
Goal: φ.polyCharpoly b ≠ 0
-- LinearMap.polyCharpoly_natDegree
@[simp]
lemma polyCharpoly_natDegree [Nontrivial R] :
    (polyCharpoly φ b).natDegree = finrank R M 
Arguments: {R : Type u_1} {L : Type u_2} {M : Type u_3} {ι : Type u_5} [CommRing R] [AddCommGroup L] [Module R L] [AddCommGroup M] [Module R M] (φ : L →ₗ[R] Module.End R M) [Fintype ι] [DecidableEq ι] [Module.Free R M] [Module.Finite R M] (b : Basis ι R L) [Nontrivial R]
Goal: (φ.polyCharpoly b).natDegree = FiniteDimensional.finrank R M
-- LinearMap.polyCharpoly_coeff_isHomogeneous
lemma polyCharpoly_coeff_isHomogeneous (i j : ℕ) (hij : i + j = finrank R M) [Nontrivial R] :
    ((polyCharpoly φ b).coeff i).IsHomogeneous j 
Arguments: {R : Type u_1} {L : Type u_2} {M : Type u_3} {ι : Type u_5} [CommRing R] [AddCommGroup L] [Module R L] [AddCommGroup M] [Module R M] (φ : L →ₗ[R] Module.End R M) [Fintype ι] [DecidableEq ι] [Module.Free R M] [Module.Finite R M] (b : Basis ι R L) (i j : ℕ) (hij : i + j = FiniteDimensional.finrank R M) [Nontrivial R]
Goal: ((φ.polyCharpoly b).coeff i).IsHomogeneous j
-- LinearMap.polyCharpoly_baseChange
lemma polyCharpoly_baseChange (A : Type*) [CommRing A] [Algebra R A] :
    polyCharpoly (tensorProduct _ _ _ _ ∘ₗ φ.baseChange A) (basis A b) =
      (polyCharpoly φ b).map (MvPolynomial.map (algebraMap R A)) 
Arguments: {R : Type u_1} {L : Type u_2} {M : Type u_3} {ι : Type u_5} [CommRing R] [AddCommGroup L] [Module R L] [AddCommGroup M] [Module R M] (φ : L →ₗ[R] Module.End R M) [Fintype ι] [DecidableEq ι] [Module.Free R M] [Module.Finite R M] (b : Basis ι R L) (A : Type u_8) [CommRing A] [Algebra R A]
Goal: (LinearMap.tensorProduct R A M M ∘ₗ LinearMap.baseChange A φ).polyCharpoly (Algebra.TensorProduct.basis A b) =
  Polynomial.map (MvPolynomial.map (algebraMap R A)) (φ.polyCharpoly b)
-- LinearMap.polyCharpoly_map_eq_charpoly
@[simp]
lemma polyCharpoly_map_eq_charpoly (x : L) :
    (polyCharpoly φ b).map (MvPolynomial.eval (b.repr x)) = (φ x).charpoly 
Arguments: {R : Type u_1} {L : Type u_2} {M : Type u_3} {ι : Type u_5} [CommRing R] [AddCommGroup L] [Module R L] [AddCommGroup M] [Module R M] (φ : L →ₗ[R] Module.End R M) [Fintype ι] [DecidableEq ι] [Module.Free R M] [Module.Finite R M] (b : Basis ι R L) (x : L)
Goal: Polynomial.map (MvPolynomial.eval ⇑(b.repr x)) (φ.polyCharpoly b) = LinearMap.charpoly (φ x)
-- LinearMap.polyCharpoly_coeff_eval
@[simp]
lemma polyCharpoly_coeff_eval (x : L) (i : ℕ) :
    MvPolynomial.eval (b.repr x) ((polyCharpoly φ b).coeff i) = (φ x).charpoly.coeff i 
Arguments: {R : Type u_1} {L : Type u_2} {M : Type u_3} {ι : Type u_5} [CommRing R] [AddCommGroup L] [Module R L] [AddCommGroup M] [Module R M] (φ : L →ₗ[R] Module.End R M) [Fintype ι] [DecidableEq ι] [Module.Free R M] [Module.Finite R M] (b : Basis ι R L) (x : L) (i : ℕ)
Goal: (MvPolynomial.eval ⇑(b.repr x)) ((φ.polyCharpoly b).coeff i) = (LinearMap.charpoly (φ x)).coeff i
-- LinearMap.polyCharpoly_coeff_eq_zero_of_basis
lemma polyCharpoly_coeff_eq_zero_of_basis (b : Basis ι R L) (b' : Basis ι' R L) (k : ℕ)
    (H : (polyCharpoly φ b).coeff k = 0) :
    (polyCharpoly φ b').coeff k = 0 
Arguments: {R : Type u_1} {L : Type u_2} {M : Type u_3} {ι : Type u_5} {ι' : Type u_6} [CommRing R] [AddCommGroup L] [Module R L] [AddCommGroup M] [Module R M] (φ : L →ₗ[R] Module.End R M) [Fintype ι] [Fintype ι'] [DecidableEq ι] [DecidableEq ι'] [Module.Free R M] [Module.Finite R M] (b : Basis ι R L) (b' : Basis ι' R L) (k : ℕ) (H : (φ.polyCharpoly b).coeff k = 0)
Goal: (φ.polyCharpoly b').coeff k = 0
-- LinearMap.polyCharpoly_coeff_eq_zero_iff_of_basis
lemma polyCharpoly_coeff_eq_zero_iff_of_basis (b : Basis ι R L) (b' : Basis ι' R L) (k : ℕ) :
    (polyCharpoly φ b).coeff k = 0 ↔ (polyCharpoly φ b').coeff k = 0 
Arguments: {R : Type u_1} {L : Type u_2} {M : Type u_3} {ι : Type u_5} {ι' : Type u_6} [CommRing R] [AddCommGroup L] [Module R L] [AddCommGroup M] [Module R M] (φ : L →ₗ[R] Module.End R M) [Fintype ι] [Fintype ι'] [DecidableEq ι] [DecidableEq ι'] [Module.Free R M] [Module.Finite R M] (b : Basis ι R L) (b' : Basis ι' R L) (k : ℕ)
Goal: (φ.polyCharpoly b).coeff k = 0 ↔ (φ.polyCharpoly b').coeff k = 0
-- LinearMap.polyCharpoly_coeff_nilRankAux_ne_zero
lemma polyCharpoly_coeff_nilRankAux_ne_zero [Nontrivial R] :
    (polyCharpoly φ b).coeff (nilRankAux φ b) ≠ 0 
Arguments: {R : Type u_1} {L : Type u_2} {M : Type u_3} {ι : Type u_5} [CommRing R] [AddCommGroup L] [Module R L] [AddCommGroup M] [Module R M] (φ : L →ₗ[R] Module.End R M) [Fintype ι] [DecidableEq ι] [Module.Free R M] [Module.Finite R M] (b : Basis ι R L) [Nontrivial R]
Goal: (φ.polyCharpoly b).coeff (φ.nilRankAux b) ≠ 0
-- LinearMap.nilRankAux_le
lemma nilRankAux_le [Nontrivial R] (b : Basis ι R L) (b' : Basis ι' R L) :
    nilRankAux φ b ≤ nilRankAux φ b' 
Arguments: {R : Type u_1} {L : Type u_2} {M : Type u_3} {ι : Type u_5} {ι' : Type u_6} [CommRing R] [AddCommGroup L] [Module R L] [AddCommGroup M] [Module R M] (φ : L →ₗ[R] Module.End R M) [Fintype ι] [Fintype ι'] [DecidableEq ι] [DecidableEq ι'] [Module.Free R M] [Module.Finite R M] [Nontrivial R] (b : Basis ι R L) (b' : Basis ι' R L)
Goal: φ.nilRankAux b ≤ φ.nilRankAux b'
-- LinearMap.nilRankAux_basis_indep
lemma nilRankAux_basis_indep [Nontrivial R] (b : Basis ι R L) (b' : Basis ι' R L) :
    nilRankAux φ b = (polyCharpoly φ b').natTrailingDegree 
Arguments: {R : Type u_1} {L : Type u_2} {M : Type u_3} {ι : Type u_5} {ι' : Type u_6} [CommRing R] [AddCommGroup L] [Module R L] [AddCommGroup M] [Module R M] (φ : L →ₗ[R] Module.End R M) [Fintype ι] [Fintype ι'] [DecidableEq ι] [DecidableEq ι'] [Module.Free R M] [Module.Finite R M] [Nontrivial R] (b : Basis ι R L) (b' : Basis ι' R L)
Goal: φ.nilRankAux b = (φ.polyCharpoly b').natTrailingDegree
-- LinearMap.nilRank_eq_polyCharpoly_natTrailingDegree
lemma nilRank_eq_polyCharpoly_natTrailingDegree (b : Basis ι R L) :
    nilRank φ = (polyCharpoly φ b).natTrailingDegree 
Arguments: {R : Type u_1} {L : Type u_2} {M : Type u_3} {ι : Type u_5} [CommRing R] [AddCommGroup L] [Module R L] [AddCommGroup M] [Module R M] (φ : L →ₗ[R] Module.End R M) [Fintype ι] [DecidableEq ι] [Module.Free R M] [Module.Finite R M] [Module.Finite R L] [Module.Free R L] [Nontrivial R] (b : Basis ι R L)
Goal: φ.nilRank = (φ.polyCharpoly b).natTrailingDegree
-- LinearMap.polyCharpoly_coeff_nilRank_ne_zero
lemma polyCharpoly_coeff_nilRank_ne_zero :
    (polyCharpoly φ b).coeff (nilRank φ) ≠ 0 
Arguments: {R : Type u_1} {L : Type u_2} {M : Type u_3} {ι : Type u_5} [CommRing R] [AddCommGroup L] [Module R L] [AddCommGroup M] [Module R M] (φ : L →ₗ[R] Module.End R M) [Fintype ι] [DecidableEq ι] [Module.Free R M] [Module.Finite R M] (b : Basis ι R L) [Module.Finite R L] [Module.Free R L] [Nontrivial R]
Goal: (φ.polyCharpoly b).coeff φ.nilRank ≠ 0
-- LinearMap.nilRank_le_card
lemma nilRank_le_card (b : Basis ι R M) : nilRank φ ≤ Fintype.card ι 
Arguments: {R : Type u_1} {L : Type u_2} {M : Type u_3} {ι : Type u_5} [CommRing R] [AddCommGroup L] [Module R L] [AddCommGroup M] [Module R M] (φ : L →ₗ[R] Module.End R M) [Fintype ι] [Module.Free R M] [Module.Finite R M] [Module.Finite R L] [Module.Free R L] [Nontrivial R] (b : Basis ι R M)
Goal: φ.nilRank ≤ Fintype.card ι
-- LinearMap.nilRank_le_finrank
lemma nilRank_le_finrank : nilRank φ ≤ finrank R M 
Arguments: {R : Type u_1} {L : Type u_2} {M : Type u_3} [CommRing R] [AddCommGroup L] [Module R L] [AddCommGroup M] [Module R M] (φ : L →ₗ[R] Module.End R M) [Module.Free R M] [Module.Finite R M] [Module.Finite R L] [Module.Free R L] [Nontrivial R]
Goal: φ.nilRank ≤ FiniteDimensional.finrank R M
-- LinearMap.nilRank_le_natTrailingDegree_charpoly
lemma nilRank_le_natTrailingDegree_charpoly (x : L) :
    nilRank φ ≤ (φ x).charpoly.natTrailingDegree 
Arguments: {R : Type u_1} {L : Type u_2} {M : Type u_3} [CommRing R] [AddCommGroup L] [Module R L] [AddCommGroup M] [Module R M] (φ : L →ₗ[R] Module.End R M) [Module.Free R M] [Module.Finite R M] [Module.Finite R L] [Module.Free R L] [Nontrivial R] (x : L)
Goal: φ.nilRank ≤ (LinearMap.charpoly (φ x)).natTrailingDegree
-- LinearMap.isNilRegular_def
lemma isNilRegular_def :
    IsNilRegular φ x ↔ (Polynomial.coeff (φ x).charpoly (nilRank φ) ≠ 0) 
Arguments: {R : Type u_1} {L : Type u_2} {M : Type u_3} [CommRing R] [AddCommGroup L] [Module R L] [AddCommGroup M] [Module R M] (φ : L →ₗ[R] Module.End R M) [Module.Free R M] [Module.Finite R M] [Module.Finite R L] [Module.Free R L] (x : L)
Goal: φ.IsNilRegular x ↔ (LinearMap.charpoly (φ x)).coeff φ.nilRank ≠ 0
-- LinearMap.isNilRegular_iff_coeff_polyCharpoly_nilRank_ne_zero
lemma isNilRegular_iff_coeff_polyCharpoly_nilRank_ne_zero :
    IsNilRegular φ x ↔
    MvPolynomial.eval (b.repr x)
      ((polyCharpoly φ b).coeff (nilRank φ)) ≠ 0 
Arguments: {R : Type u_1} {L : Type u_2} {M : Type u_3} {ι : Type u_5} [CommRing R] [AddCommGroup L] [Module R L] [AddCommGroup M] [Module R M] (φ : L →ₗ[R] Module.End R M) [Fintype ι] [DecidableEq ι] [Module.Free R M] [Module.Finite R M] (b : Basis ι R L) [Module.Finite R L] [Module.Free R L] (x : L)
Goal: φ.IsNilRegular x ↔ (MvPolynomial.eval ⇑(b.repr x)) ((φ.polyCharpoly b).coeff φ.nilRank) ≠ 0
-- LinearMap.isNilRegular_iff_natTrailingDegree_charpoly_eq_nilRank
lemma isNilRegular_iff_natTrailingDegree_charpoly_eq_nilRank :
    IsNilRegular φ x ↔ (φ x).charpoly.natTrailingDegree = nilRank φ 
Arguments: {R : Type u_1} {L : Type u_2} {M : Type u_3} [CommRing R] [AddCommGroup L] [Module R L] [AddCommGroup M] [Module R M] (φ : L →ₗ[R] Module.End R M) [Module.Free R M] [Module.Finite R M] [Module.Finite R L] [Module.Free R L] [Nontrivial R] (x : L)
Goal: φ.IsNilRegular x ↔ (LinearMap.charpoly (φ x)).natTrailingDegree = φ.nilRank
-- LinearMap.exists_isNilRegular_of_finrank_le_card
lemma exists_isNilRegular_of_finrank_le_card (h : finrank R M ≤ #R) :
    ∃ x : L, IsNilRegular φ x 
Arguments: {R : Type u_1} {L : Type u_2} {M : Type u_3} [CommRing R] [AddCommGroup L] [Module R L] [AddCommGroup M] [Module R M] (φ : L →ₗ[R] Module.End R M) [Module.Free R M] [Module.Finite R M] [Module.Finite R L] [Module.Free R L] [Nontrivial R] [IsDomain R] (h : ↑(FiniteDimensional.finrank R M) ≤ Cardinal.mk R)
Goal: ∃ x, φ.IsNilRegular x
-- LinearMap.exists_isNilRegular
lemma exists_isNilRegular [Infinite R] : ∃ x : L, IsNilRegular φ x 
Arguments: {R : Type u_1} {L : Type u_2} {M : Type u_3} [CommRing R] [AddCommGroup L] [Module R L] [AddCommGroup M] [Module R M] (φ : L →ₗ[R] Module.End R M) [Module.Free R M] [Module.Finite R M] [Module.Finite R L] [Module.Free R L] [Nontrivial R] [IsDomain R] [Infinite R]
Goal: ∃ x, φ.IsNilRegular x
-- DirectSum.GdistribMulAction.smul_add
class GdistribMulAction [AddMonoid ιA] [VAdd ιA ιB] [GMonoid A] [∀ i, AddMonoid (M i)]
    extends GMulAction A M where
  smul_add {i j} (a : A i) (b c : M j) : smul a (b + c) = smul a b + smul a c
  smul_zero {i j} (a : A i) : smul a (0 : M j) = 0
Arguments: {ιA : Type u_1} {ιB : Type u_2} {A : ιA → Type u_3} {M : ιB → Type u_4} [AddMonoid ιA] [VAdd ιA ιB] [GradedMonoid.GMonoid A] [(i : ιB) → AddMonoid (M i)] [self : DirectSum.GdistribMulAction A M] {i : ιA} {j : ιB} (a : A i) (b c : M j)
Goal: GradedMonoid.GSMul.smul a (b + c) = GradedMonoid.GSMul.smul a b + GradedMonoid.GSMul.smul a c
-- DirectSum.GdistribMulAction.smul_zero
class GdistribMulAction [AddMonoid ιA] [VAdd ιA ιB] [GMonoid A] [∀ i, AddMonoid (M i)]
    extends GMulAction A M where
  smul_add {i j} (a : A i) (b c : M j) : smul a (b + c) = smul a b + smul a c
  smul_zero {i j} (a : A i) : smul a (0 : M j) = 0
Arguments: {ιA : Type u_1} {ιB : Type u_2} {A : ιA → Type u_3} {M : ιB → Type u_4} [AddMonoid ιA] [VAdd ιA ιB] [GradedMonoid.GMonoid A] [(i : ιB) → AddMonoid (M i)] [self : DirectSum.GdistribMulAction A M] {i : ιA} {j : ιB} (a : A i)
Goal: GradedMonoid.GSMul.smul a 0 = 0
-- DirectSum.Gmodule.add_smul
class Gmodule [AddMonoid ιA] [VAdd ιA ιB] [∀ i, AddMonoid (A i)] [∀ i, AddMonoid (M i)] [GMonoid A]
    extends GdistribMulAction A M where
  add_smul {i j} (a a' : A i) (b : M j) : smul (a + a') b = smul a b + smul a' b
  zero_smul {i j} (b : M j) : smul (0 : A i) b = 0
Arguments: {ιA : Type u_1} {ιB : Type u_2} {A : ιA → Type u_3} {M : ιB → Type u_4} [AddMonoid ιA] [VAdd ιA ιB] [(i : ιA) → AddMonoid (A i)] [(i : ιB) → AddMonoid (M i)] [GradedMonoid.GMonoid A] [self : DirectSum.Gmodule A M] {i : ιA} {j : ιB} (a a' : A i) (b : M j)
Goal: GradedMonoid.GSMul.smul (a + a') b = GradedMonoid.GSMul.smul a b + GradedMonoid.GSMul.smul a' b
-- DirectSum.Gmodule.zero_smul
class Gmodule [AddMonoid ιA] [VAdd ιA ιB] [∀ i, AddMonoid (A i)] [∀ i, AddMonoid (M i)] [GMonoid A]
    extends GdistribMulAction A M where
  add_smul {i j} (a a' : A i) (b : M j) : smul (a + a') b = smul a b + smul a' b
  zero_smul {i j} (b : M j) : smul (0 : A i) b = 0
Arguments: {ιA : Type u_1} {ιB : Type u_2} {A : ιA → Type u_3} {M : ιB → Type u_4} [AddMonoid ιA] [VAdd ιA ιB] [(i : ιA) → AddMonoid (A i)] [(i : ιB) → AddMonoid (M i)] [GradedMonoid.GMonoid A] [self : DirectSum.Gmodule A M] {i : ιA} {j : ιB} (b : M j)
Goal: GradedMonoid.GSMul.smul 0 b = 0
-- DirectSum.gsmulHom_apply_apply
@[simps]
def gsmulHom [GMonoid A] [Gmodule A M] {i j} : A i →+ M j →+ M (i +ᵥ j) 
Arguments: {ιA : Type u_1} {ιB : Type u_2} (A : ιA → Type u_3) (M : ιB → Type u_4) [AddMonoid ιA] [VAdd ιA ιB] [(i : ιA) → AddCommMonoid (A i)] [(i : ιB) → AddCommMonoid (M i)] [GradedMonoid.GMonoid A] [DirectSum.Gmodule A M] {i : ιA} {j : ιB} (a : A i) (b : M j)
Goal: ((DirectSum.gsmulHom A M) a) b = GradedMonoid.GSMul.smul a b
-- DirectSum.Gmodule.smul_def
@[simp]
theorem smul_def [DecidableEq ιA] [DecidableEq ιB] [GMonoid A] [Gmodule A M]
    (x : ⨁ i, A i) (y : ⨁ i, M i) :
    x • y = smulAddMonoidHom _ _ x y 
Arguments: {ιA : Type u_1} {ιB : Type u_2} (A : ιA → Type u_3) (M : ιB → Type u_4) [AddMonoid ιA] [VAdd ιA ιB] [(i : ιA) → AddCommMonoid (A i)] [(i : ιB) → AddCommMonoid (M i)] [DecidableEq ιA] [DecidableEq ιB] [GradedMonoid.GMonoid A] [DirectSum.Gmodule A M] (x : ⨁ (i : ιA), A i) (y : ⨁ (i : ιB), M i)
Goal: x • y = ((DirectSum.Gmodule.smulAddMonoidHom A M) x) y
-- DirectSum.Gmodule.smulAddMonoidHom_apply_of_of
@[simp]
theorem smulAddMonoidHom_apply_of_of [DecidableEq ιA] [DecidableEq ιB] [GMonoid A] [Gmodule A M]
    {i j} (x : A i) (y : M j) :
    smulAddMonoidHom A M (DirectSum.of A i x) (of M j y) = of M (i +ᵥ j) (GSMul.smul x y) 
Arguments: {ιA : Type u_1} {ιB : Type u_2} (A : ιA → Type u_3) (M : ιB → Type u_4) [AddMonoid ιA] [VAdd ιA ιB] [(i : ιA) → AddCommMonoid (A i)] [(i : ιB) → AddCommMonoid (M i)] [DecidableEq ιA] [DecidableEq ιB] [GradedMonoid.GMonoid A] [DirectSum.Gmodule A M] {i : ιA} {j : ιB} (x : A i) (y : M j)
Goal: ((DirectSum.Gmodule.smulAddMonoidHom A M) ((DirectSum.of A i) x)) ((DirectSum.of M j) y) =
  (DirectSum.of M (i +ᵥ j)) (GradedMonoid.GSMul.smul x y)
-- DirectSum.Gmodule.of_smul_of
theorem of_smul_of [DecidableEq ιA] [DecidableEq ιB] [GMonoid A] [Gmodule A M]
    {i j} (x : A i) (y : M j) :
    DirectSum.of A i x • of M j y = of M (i +ᵥ j) (GSMul.smul x y) 
Arguments: {ιA : Type u_1} {ιB : Type u_2} (A : ιA → Type u_3) (M : ιB → Type u_4) [AddMonoid ιA] [VAdd ιA ιB] [(i : ιA) → AddCommMonoid (A i)] [(i : ιB) → AddCommMonoid (M i)] [DecidableEq ιA] [DecidableEq ιB] [GradedMonoid.GMonoid A] [DirectSum.Gmodule A M] {i : ιA} {j : ιB} (x : A i) (y : M j)
Goal: (DirectSum.of A i) x • (DirectSum.of M j) y = (DirectSum.of M (i +ᵥ j)) (GradedMonoid.GSMul.smul x y)
-- _private.Mathlib.Algebra.Module.GradedModule.0.DirectSum.Gmodule.one_smul'
private theorem one_smul' [DecidableEq ιA] [DecidableEq ιB] [GMonoid A] [Gmodule A M]
    (x : ⨁ i, M i) :
    (1 : ⨁ i, A i) • x = x 
Arguments: {ιA : Type u_1} {ιB : Type u_2} (A : ιA → Type u_3) (M : ιB → Type u_4) [AddMonoid ιA] [VAdd ιA ιB] [(i : ιA) → AddCommMonoid (A i)] [(i : ιB) → AddCommMonoid (M i)] [DecidableEq ιA] [DecidableEq ιB] [GradedMonoid.GMonoid A] [DirectSum.Gmodule A M] (x : ⨁ (i : ιB), M i)
Goal: 1 • x = x
-- _private.Mathlib.Algebra.Module.GradedModule.0.DirectSum.Gmodule.mul_smul'
private theorem mul_smul' [DecidableEq ιA] [DecidableEq ιB] [GSemiring A] [Gmodule A M]
    (a b : ⨁ i, A i)
    (c : ⨁ i, M i) : (a * b) • c = a • b • c 
Arguments: {ιA : Type u_1} {ιB : Type u_2} (A : ιA → Type u_3) (M : ιB → Type u_4) [AddMonoid ιA] [VAdd ιA ιB] [(i : ιA) → AddCommMonoid (A i)] [(i : ιB) → AddCommMonoid (M i)] [DecidableEq ιA] [DecidableEq ιB] [DirectSum.GSemiring A] [DirectSum.Gmodule A M] (a b : ⨁ (i : ιA), A i) (c : ⨁ (i : ιB), M i)
Goal: (a * b) • c = a • b • c
-- MvPolynomial.aeval_eq_bind₁
@[simp]
theorem aeval_eq_bind₁ (f : σ → MvPolynomial τ R) : aeval f = bind₁ f 
Arguments: {σ : Type u_1} {τ : Type u_2} {R : Type u_3} [CommSemiring R] (f : σ → MvPolynomial τ R)
Goal: MvPolynomial.aeval f = MvPolynomial.bind₁ f
-- MvPolynomial.eval₂Hom_C_eq_bind₁
@[simp]
theorem eval₂Hom_C_eq_bind₁ (f : σ → MvPolynomial τ R) : eval₂Hom C f = bind₁ f 
Arguments: {σ : Type u_1} {τ : Type u_2} {R : Type u_3} [CommSemiring R] (f : σ → MvPolynomial τ R)
Goal: MvPolynomial.eval₂Hom MvPolynomial.C f = ↑(MvPolynomial.bind₁ f)
-- MvPolynomial.eval₂Hom_eq_bind₂
@[simp]
theorem eval₂Hom_eq_bind₂ (f : R →+* MvPolynomial σ S) : eval₂Hom f X = bind₂ f 
Arguments: {σ : Type u_1} {R : Type u_3} {S : Type u_4} [CommSemiring R] [CommSemiring S] (f : R →+* MvPolynomial σ S)
Goal: MvPolynomial.eval₂Hom f MvPolynomial.X = MvPolynomial.bind₂ f
-- MvPolynomial.aeval_id_eq_join₁
@[simp]
theorem aeval_id_eq_join₁ : aeval id = @join₁ σ R _ 
Arguments: (σ : Type u_1) (R : Type u_3) [CommSemiring R]
Goal: MvPolynomial.aeval id = MvPolynomial.join₁
-- MvPolynomial.eval₂Hom_C_id_eq_join₁
theorem eval₂Hom_C_id_eq_join₁ (φ : MvPolynomial (MvPolynomial σ R) R) :
    eval₂Hom C id φ = join₁ φ 
Arguments: (σ : Type u_1) (R : Type u_3) [CommSemiring R] (φ : MvPolynomial (MvPolynomial σ R) R)
Goal: (MvPolynomial.eval₂Hom MvPolynomial.C id) φ = MvPolynomial.join₁ φ
-- MvPolynomial.eval₂Hom_id_X_eq_join₂
@[simp]
theorem eval₂Hom_id_X_eq_join₂ : eval₂Hom (RingHom.id _) X = @join₂ σ R _ 
Arguments: (σ : Type u_1) (R : Type u_3) [CommSemiring R]
Goal: MvPolynomial.eval₂Hom (RingHom.id (MvPolynomial σ R)) MvPolynomial.X = MvPolynomial.join₂
-- MvPolynomial.bind₁_X_right
@[simp]
theorem bind₁_X_right (f : σ → MvPolynomial τ R) (i : σ) : bind₁ f (X i) = f i 
Arguments: {σ : Type u_1} {τ : Type u_2} {R : Type u_3} [CommSemiring R] (f : σ → MvPolynomial τ R) (i : σ)
Goal: (MvPolynomial.bind₁ f) (MvPolynomial.X i) = f i
-- MvPolynomial.bind₂_X_right
@[simp]
theorem bind₂_X_right (f : R →+* MvPolynomial σ S) (i : σ) : bind₂ f (X i) = X i 
Arguments: {σ : Type u_1} {R : Type u_3} {S : Type u_4} [CommSemiring R] [CommSemiring S] (f : R →+* MvPolynomial σ S) (i : σ)
Goal: (MvPolynomial.bind₂ f) (MvPolynomial.X i) = MvPolynomial.X i
-- MvPolynomial.bind₁_X_left
@[simp]
theorem bind₁_X_left : bind₁ (X : σ → MvPolynomial σ R) = AlgHom.id R _ 
Arguments: {σ : Type u_1} {R : Type u_3} [CommSemiring R]
Goal: MvPolynomial.bind₁ MvPolynomial.X = AlgHom.id R (MvPolynomial σ R)
-- MvPolynomial.bind₁_C_right
theorem bind₁_C_right (f : σ → MvPolynomial τ R) (x) : bind₁ f (C x) = C x 
Arguments: {σ : Type u_1} {τ : Type u_2} {R : Type u_3} [CommSemiring R] (f : σ → MvPolynomial τ R) (x : R)
Goal: (MvPolynomial.bind₁ f) (MvPolynomial.C x) = MvPolynomial.C x
-- MvPolynomial.bind₂_C_right
@[simp]
theorem bind₂_C_right (f : R →+* MvPolynomial σ S) (r : R) : bind₂ f (C r) = f r 
Arguments: {σ : Type u_1} {R : Type u_3} {S : Type u_4} [CommSemiring R] [CommSemiring S] (f : R →+* MvPolynomial σ S) (r : R)
Goal: (MvPolynomial.bind₂ f) (MvPolynomial.C r) = f r
-- MvPolynomial.bind₂_C_left
@[simp]
theorem bind₂_C_left : bind₂ (C : R →+* MvPolynomial σ R) = RingHom.id _ 
Arguments: {σ : Type u_1} {R : Type u_3} [CommSemiring R]
Goal: MvPolynomial.bind₂ MvPolynomial.C = RingHom.id (MvPolynomial σ R)
-- MvPolynomial.bind₂_comp_C
@[simp]
theorem bind₂_comp_C (f : R →+* MvPolynomial σ S) : (bind₂ f).comp C = f 
Arguments: {σ : Type u_1} {R : Type u_3} {S : Type u_4} [CommSemiring R] [CommSemiring S] (f : R →+* MvPolynomial σ S)
Goal: (MvPolynomial.bind₂ f).comp MvPolynomial.C = f
-- MvPolynomial.join₂_map
@[simp]
theorem join₂_map (f : R →+* MvPolynomial σ S) (φ : MvPolynomial σ R) :
    join₂ (map f φ) = bind₂ f φ 
Arguments: {σ : Type u_1} {R : Type u_3} {S : Type u_4} [CommSemiring R] [CommSemiring S] (f : R →+* MvPolynomial σ S) (φ : MvPolynomial σ R)
Goal: MvPolynomial.join₂ ((MvPolynomial.map f) φ) = (MvPolynomial.bind₂ f) φ
-- MvPolynomial.join₂_comp_map
@[simp]
theorem join₂_comp_map (f : R →+* MvPolynomial σ S) : join₂.comp (map f) = bind₂ f 
Arguments: {σ : Type u_1} {R : Type u_3} {S : Type u_4} [CommSemiring R] [CommSemiring S] (f : R →+* MvPolynomial σ S)
Goal: MvPolynomial.join₂.comp (MvPolynomial.map f) = MvPolynomial.bind₂ f
-- MvPolynomial.aeval_id_rename
theorem aeval_id_rename (f : σ → MvPolynomial τ R) (p : MvPolynomial σ R) :
    aeval id (rename f p) = aeval f p 
Arguments: {σ : Type u_1} {τ : Type u_2} {R : Type u_3} [CommSemiring R] (f : σ → MvPolynomial τ R) (p : MvPolynomial σ R)
Goal: (MvPolynomial.aeval id) ((MvPolynomial.rename f) p) = (MvPolynomial.aeval f) p
-- MvPolynomial.join₁_rename
@[simp]
theorem join₁_rename (f : σ → MvPolynomial τ R) (φ : MvPolynomial σ R) :
    join₁ (rename f φ) = bind₁ f φ 
Arguments: {σ : Type u_1} {τ : Type u_2} {R : Type u_3} [CommSemiring R] (f : σ → MvPolynomial τ R) (φ : MvPolynomial σ R)
Goal: MvPolynomial.join₁ ((MvPolynomial.rename f) φ) = (MvPolynomial.bind₁ f) φ
-- MvPolynomial.bind₁_id
@[simp]
theorem bind₁_id : bind₁ (@id (MvPolynomial σ R)) = join₁ 
Arguments: {σ : Type u_1} {R : Type u_3} [CommSemiring R]
Goal: MvPolynomial.bind₁ id = MvPolynomial.join₁
-- MvPolynomial.bind₂_id
@[simp]
theorem bind₂_id : bind₂ (RingHom.id (MvPolynomial σ R)) = join₂ 
Arguments: {σ : Type u_1} {R : Type u_3} [CommSemiring R]
Goal: MvPolynomial.bind₂ (RingHom.id (MvPolynomial σ R)) = MvPolynomial.join₂
-- MvPolynomial.bind₁_bind₁
theorem bind₁_bind₁ {υ : Type*} (f : σ → MvPolynomial τ R) (g : τ → MvPolynomial υ R)
    (φ : MvPolynomial σ R) : (bind₁ g) (bind₁ f φ) = bind₁ (fun i => bind₁ g (f i)) φ 
Arguments: {σ : Type u_1} {τ : Type u_2} {R : Type u_3} [CommSemiring R] {υ : Type u_6} (f : σ → MvPolynomial τ R) (g : τ → MvPolynomial υ R) (φ : MvPolynomial σ R)
Goal: (MvPolynomial.bind₁ g) ((MvPolynomial.bind₁ f) φ) = (MvPolynomial.bind₁ fun i => (MvPolynomial.bind₁ g) (f i)) φ
-- MvPolynomial.bind₁_comp_bind₁
theorem bind₁_comp_bind₁ {υ : Type*} (f : σ → MvPolynomial τ R) (g : τ → MvPolynomial υ R) :
    (bind₁ g).comp (bind₁ f) = bind₁ fun i => bind₁ g (f i) 
Arguments: {σ : Type u_1} {τ : Type u_2} {R : Type u_3} [CommSemiring R] {υ : Type u_6} (f : σ → MvPolynomial τ R) (g : τ → MvPolynomial υ R)
Goal: (MvPolynomial.bind₁ g).comp (MvPolynomial.bind₁ f) = MvPolynomial.bind₁ fun i => (MvPolynomial.bind₁ g) (f i)