ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Algebra.adjoin.powerBasis'_minpoly_gen
theorem Algebra.adjoin.powerBasis'_minpoly_gen [IsDomain R] [IsDomain S] [NoZeroSMulDivisors R S]
    [IsIntegrallyClosed R] {x : S} (hx' : IsIntegral R x) :
    minpoly R x = minpoly R (Algebra.adjoin.powerBasis' hx').gen 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] [IsDomain R] [IsDomain S] [NoZeroSMulDivisors R S] [IsIntegrallyClosed R] {x : S} (hx' : IsIntegral R x)
Goal: minpoly R x = minpoly R (Algebra.adjoin.powerBasis' hx').gen
-- _private.Mathlib.RingTheory.LittleWedderburn.0.LittleWedderburn.InductionHyp.center_eq_top
private theorem center_eq_top [Finite D] (hD : InductionHyp D) : Subring.center D = ⊤ 
Arguments: {D : Type u_1} [DivisionRing D] [Finite D] (hD : LittleWedderburn.InductionHyp D)
Goal: Subring.center D = ⊤
-- _private.Mathlib.RingTheory.LittleWedderburn.0.LittleWedderburn.center_eq_top
private theorem center_eq_top [Finite D] : Subring.center D = ⊤ 
Arguments: (D : Type u_1) [DivisionRing D] [Finite D]
Goal: Subring.center D = ⊤
-- Finite.isDomain_to_isField
theorem Finite.isDomain_to_isField (D : Type*) [Finite D] [Ring D] [IsDomain D] : IsField D 
Arguments: (D : Type u_1) [Finite D] [Ring D] [IsDomain D]
Goal: IsField D
-- Ideal.isRadical_iff_quotient_reduced
theorem Ideal.isRadical_iff_quotient_reduced {R : Type*} [CommRing R] (I : Ideal R) :
    I.IsRadical ↔ IsReduced (R ⧸ I) 
Arguments: {R : Type u_1} [CommRing R] (I : Ideal R)
Goal: I.IsRadical ↔ IsReduced (R ⧸ I)
-- Ideal.IsNilpotent.induction_on
theorem Ideal.IsNilpotent.induction_on (hI : IsNilpotent I)
    {P : ∀ ⦃S : Type _⦄ [CommRing S], Ideal S → Prop}
    (h₁ : ∀ ⦃S : Type _⦄ [CommRing S], ∀ I : Ideal S, I ^ 2 = ⊥ → P I)
    (h₂ : ∀ ⦃S : Type _⦄ [CommRing S], ∀ I J : Ideal S, I ≤ J → P I →
      P (J.map (Ideal.Quotient.mk I)) → P J) :
    P I 
Arguments: {R : Type u_1} {S : Type u_2} [CommSemiring R] [CommRing S] [Algebra R S] (I : Ideal S) (hI : IsNilpotent I) {P : ⦃S : Type u_2⦄ → [inst : CommRing S] → Ideal S → Prop} (h₁ : ∀ ⦃S : Type u_2⦄ [inst : CommRing S] (I : Ideal S), I ^ 2 = ⊥ → P I) (h₂ : ∀ ⦃S : Type u_2⦄ [inst : CommRing S] (I J : Ideal S), I ≤ J → P I → P (Ideal.map (Ideal.Quotient.mk I) J) → P J)
Goal: P I
-- IsNilpotent.isUnit_quotient_mk_iff
theorem IsNilpotent.isUnit_quotient_mk_iff {R : Type*} [CommRing R] {I : Ideal R}
    (hI : IsNilpotent I) {x : R} : IsUnit (Ideal.Quotient.mk I x) ↔ IsUnit x 
Arguments: {R : Type u_3} [CommRing R] {I : Ideal R} (hI : IsNilpotent I) {x : R}
Goal: IsUnit ((Ideal.Quotient.mk I) x) ↔ IsUnit x
-- TensorProduct.isTensorProduct
theorem TensorProduct.isTensorProduct : IsTensorProduct (TensorProduct.mk R M N) 
Arguments: (R : Type u_1) [CommSemiring R] (M : Type u_4) [AddCommMonoid M] [Module R M] (N : Type u_8) [AddCommMonoid N] [Module R N]
Goal: IsTensorProduct (TensorProduct.mk R M N)
-- IsTensorProduct.equiv_apply
@[simps! apply]
noncomputable def IsTensorProduct.equiv (h : IsTensorProduct f) : M₁ ⊗[R] M₂ ≃ₗ[R] M 
Arguments: {R : Type u_1} [CommSemiring R] {M₁ : Type u_2} {M₂ : Type u_3} {M : Type u_4} [AddCommMonoid M₁] [AddCommMonoid M₂] [AddCommMonoid M] [Module R M₁] [Module R M₂] [Module R M] {f : M₁ →ₗ[R] M₂ →ₗ[R] M} (h : IsTensorProduct f)
Goal: ∀ (a : M₁ ⊗[R] M₂), h.equiv a = (TensorProduct.lift f) a
-- IsTensorProduct.equiv_toLinearMap
@[simp]
theorem IsTensorProduct.equiv_toLinearMap (h : IsTensorProduct f) :
    h.equiv.toLinearMap = TensorProduct.lift f 
Arguments: {R : Type u_1} [CommSemiring R] {M₁ : Type u_2} {M₂ : Type u_3} {M : Type u_4} [AddCommMonoid M₁] [AddCommMonoid M₂] [AddCommMonoid M] [Module R M₁] [Module R M₂] [Module R M] {f : M₁ →ₗ[R] M₂ →ₗ[R] M} (h : IsTensorProduct f)
Goal: ↑h.equiv = TensorProduct.lift f
-- IsTensorProduct.equiv_symm_apply
@[simp]
theorem IsTensorProduct.equiv_symm_apply (h : IsTensorProduct f) (x₁ : M₁) (x₂ : M₂) :
    h.equiv.symm (f x₁ x₂) = x₁ ⊗ₜ x₂ 
Arguments: {R : Type u_1} [CommSemiring R] {M₁ : Type u_2} {M₂ : Type u_3} {M : Type u_4} [AddCommMonoid M₁] [AddCommMonoid M₂] [AddCommMonoid M] [Module R M₁] [Module R M₂] [Module R M] {f : M₁ →ₗ[R] M₂ →ₗ[R] M} (h : IsTensorProduct f) (x₁ : M₁) (x₂ : M₂)
Goal: h.equiv.symm ((f x₁) x₂) = x₁ ⊗ₜ[R] x₂
-- IsTensorProduct.lift_eq
theorem IsTensorProduct.lift_eq (h : IsTensorProduct f) (f' : M₁ →ₗ[R] M₂ →ₗ[R] M') (x₁ : M₁)
    (x₂ : M₂) : h.lift f' (f x₁ x₂) = f' x₁ x₂ 
Arguments: {R : Type u_1} [CommSemiring R] {M₁ : Type u_2} {M₂ : Type u_3} {M : Type u_4} {M' : Type u_5} [AddCommMonoid M₁] [AddCommMonoid M₂] [AddCommMonoid M] [AddCommMonoid M'] [Module R M₁] [Module R M₂] [Module R M] [Module R M'] {f : M₁ →ₗ[R] M₂ →ₗ[R] M} (h : IsTensorProduct f) (f' : M₁ →ₗ[R] M₂ →ₗ[R] M') (x₁ : M₁) (x₂ : M₂)
Goal: (h.lift f') ((f x₁) x₂) = (f' x₁) x₂
-- IsTensorProduct.map_eq
theorem IsTensorProduct.map_eq (hf : IsTensorProduct f) (hg : IsTensorProduct g) (i₁ : M₁ →ₗ[R] N₁)
    (i₂ : M₂ →ₗ[R] N₂) (x₁ : M₁) (x₂ : M₂) : hf.map hg i₁ i₂ (f x₁ x₂) = g (i₁ x₁) (i₂ x₂) 
Arguments: {R : Type u_1} [CommSemiring R] {M₁ : Type u_2} {M₂ : Type u_3} {M : Type u_4} [AddCommMonoid M₁] [AddCommMonoid M₂] [AddCommMonoid M] [Module R M₁] [Module R M₂] [Module R M] {f : M₁ →ₗ[R] M₂ →ₗ[R] M} {N₁ : Type u_6} {N₂ : Type u_7} {N : Type u_8} [AddCommMonoid N₁] [AddCommMonoid N₂] [AddCommMonoid N] [Module R N₁] [Module R N₂] [Module R N] {g : N₁ →ₗ[R] N₂ →ₗ[R] N} (hf : IsTensorProduct f) (hg : IsTensorProduct g) (i₁ : M₁ →ₗ[R] N₁) (i₂ : M₂ →ₗ[R] N₂) (x₁ : M₁) (x₂ : M₂)
Goal: (hf.map hg i₁ i₂) ((f x₁) x₂) = (g (i₁ x₁)) (i₂ x₂)
-- IsTensorProduct.inductionOn
theorem IsTensorProduct.inductionOn (h : IsTensorProduct f) {C : M → Prop} (m : M) (h0 : C 0)
    (htmul : ∀ x y, C (f x y)) (hadd : ∀ x y, C x → C y → C (x + y)) : C m 
Arguments: {R : Type u_1} [CommSemiring R] {M₁ : Type u_2} {M₂ : Type u_3} {M : Type u_4} [AddCommMonoid M₁] [AddCommMonoid M₂] [AddCommMonoid M] [Module R M₁] [Module R M₂] [Module R M] {f : M₁ →ₗ[R] M₂ →ₗ[R] M} (h : IsTensorProduct f) {C : M → Prop} (m : M) (h0 : C 0) (htmul : ∀ (x : M₁) (y : M₂), C ((f x) y)) (hadd : ∀ (x y : M), C x → C y → C (x + y))
Goal: C m
-- IsBaseChange.lift_eq
nonrec theorem IsBaseChange.lift_eq (g : M →ₗ[R] Q) (x : M) : h.lift g (f x) = g x 
Arguments: {R : Type u_1} {M : Type v₁} {N : Type v₂} {S : Type v₃} [AddCommMonoid M] [AddCommMonoid N] [CommSemiring R] [CommSemiring S] [Algebra R S] [Module R M] [Module R N] [Module S N] [IsScalarTower R S N] {f : M →ₗ[R] N} (h : IsBaseChange S f) {Q : Type u_3} [AddCommMonoid Q] [Module S Q] [Module R Q] [IsScalarTower R S Q] (g : M →ₗ[R] Q) (x : M)
Goal: (h.lift g) (f x) = g x
-- IsBaseChange.lift_comp
theorem IsBaseChange.lift_comp (g : M →ₗ[R] Q) : ((h.lift g).restrictScalars R).comp f = g 
Arguments: {R : Type u_1} {M : Type v₁} {N : Type v₂} {S : Type v₃} [AddCommMonoid M] [AddCommMonoid N] [CommSemiring R] [CommSemiring S] [Algebra R S] [Module R M] [Module R N] [Module S N] [IsScalarTower R S N] {f : M →ₗ[R] N} (h : IsBaseChange S f) {Q : Type u_3} [AddCommMonoid Q] [Module S Q] [Module R Q] [IsScalarTower R S Q] (g : M →ₗ[R] Q)
Goal: ↑R (h.lift g) ∘ₗ f = g
-- IsBaseChange.inductionOn
@[elab_as_elim]
nonrec theorem IsBaseChange.inductionOn (x : N) (P : N → Prop) (h₁ : P 0) (h₂ : ∀ m : M, P (f m))
    (h₃ : ∀ (s : S) (n), P n → P (s • n)) (h₄ : ∀ n₁ n₂, P n₁ → P n₂ → P (n₁ + n₂)) : P x 
Arguments: {R : Type u_1} {M : Type v₁} {N : Type v₂} {S : Type v₃} [AddCommMonoid M] [AddCommMonoid N] [CommSemiring R] [CommSemiring S] [Algebra R S] [Module R M] [Module R N] [Module S N] [IsScalarTower R S N] {f : M →ₗ[R] N} (h : IsBaseChange S f) (x : N) (P : N → Prop) (h₁ : P 0) (h₂ : ∀ (m : M), P (f m)) (h₃ : ∀ (s : S) (n : N), P n → P (s • n)) (h₄ : ∀ (n₁ n₂ : N), P n₁ → P n₂ → P (n₁ + n₂))
Goal: P x
-- IsBaseChange.algHom_ext
theorem IsBaseChange.algHom_ext (g₁ g₂ : N →ₗ[S] Q) (e : ∀ x, g₁ (f x) = g₂ (f x)) : g₁ = g₂ 
Arguments: {R : Type u_1} {M : Type v₁} {N : Type v₂} {S : Type v₃} [AddCommMonoid M] [AddCommMonoid N] [CommSemiring R] [CommSemiring S] [Algebra R S] [Module R M] [Module R N] [Module S N] [IsScalarTower R S N] {f : M →ₗ[R] N} (h : IsBaseChange S f) {Q : Type u_3} [AddCommMonoid Q] [Module S Q] (g₁ g₂ : N →ₗ[S] Q) (e : ∀ (x : M), g₁ (f x) = g₂ (f x))
Goal: g₁ = g₂
-- IsBaseChange.algHom_ext'
theorem IsBaseChange.algHom_ext' [Module R Q] [IsScalarTower R S Q] (g₁ g₂ : N →ₗ[S] Q)
    (e : (g₁.restrictScalars R).comp f = (g₂.restrictScalars R).comp f) : g₁ = g₂ 
Arguments: {R : Type u_1} {M : Type v₁} {N : Type v₂} {S : Type v₃} [AddCommMonoid M] [AddCommMonoid N] [CommSemiring R] [CommSemiring S] [Algebra R S] [Module R M] [Module R N] [Module S N] [IsScalarTower R S N] {f : M →ₗ[R] N} (h : IsBaseChange S f) {Q : Type u_3} [AddCommMonoid Q] [Module S Q] [Module R Q] [IsScalarTower R S Q] (g₁ g₂ : N →ₗ[S] Q) (e : ↑R g₁ ∘ₗ f = ↑R g₂ ∘ₗ f)
Goal: g₁ = g₂
-- TensorProduct.isBaseChange
theorem TensorProduct.isBaseChange : IsBaseChange S (TensorProduct.mk R S M 1) 
Arguments: (R : Type u_1) (M : Type v₁) (S : Type v₃) [AddCommMonoid M] [CommSemiring R] [CommSemiring S] [Algebra R S] [Module R M]
Goal: IsBaseChange S ((TensorProduct.mk R S M) 1)
-- IsBaseChange.equiv_tmul
theorem IsBaseChange.equiv_tmul (s : S) (m : M) : h.equiv (s ⊗ₜ m) = s • f m 
Arguments: {R : Type u_1} {M : Type v₁} {N : Type v₂} {S : Type v₃} [AddCommMonoid M] [AddCommMonoid N] [CommSemiring R] [CommSemiring S] [Algebra R S] [Module R M] [Module R N] [Module S N] [IsScalarTower R S N] {f : M →ₗ[R] N} (h : IsBaseChange S f) (s : S) (m : M)
Goal: h.equiv (s ⊗ₜ[R] m) = s • f m
-- IsBaseChange.equiv_symm_apply
theorem IsBaseChange.equiv_symm_apply (m : M) : h.equiv.symm (f m) = 1 ⊗ₜ m 
Arguments: {R : Type u_1} {M : Type v₁} {N : Type v₂} {S : Type v₃} [AddCommMonoid M] [AddCommMonoid N] [CommSemiring R] [CommSemiring S] [Algebra R S] [Module R M] [Module R N] [Module S N] [IsScalarTower R S N] {f : M →ₗ[R] N} (h : IsBaseChange S f) (m : M)
Goal: h.equiv.symm (f m) = 1 ⊗ₜ[R] m
-- IsBaseChange.of_lift_unique
theorem IsBaseChange.of_lift_unique
    (h : ∀ (Q : Type max v₁ v₂ v₃) [AddCommMonoid Q],
      ∀ [Module R Q] [Module S Q], ∀ [IsScalarTower R S Q],
        ∀ g : M →ₗ[R] Q, ∃! g' : N →ₗ[S] Q, (g'.restrictScalars R).comp f = g) :
    IsBaseChange S f 
Arguments: {R : Type u_1} {M : Type v₁} {N : Type v₂} {S : Type v₃} [AddCommMonoid M] [AddCommMonoid N] [CommSemiring R] [CommSemiring S] [Algebra R S] [Module R M] [Module R N] [Module S N] [IsScalarTower R S N] (f : M →ₗ[R] N) (h :
  ∀ (Q : Type (max v₁ v₂ v₃)) [inst : AddCommMonoid Q] [inst_1 : Module R Q] [inst_2 : Module S Q]
    [inst_3 : IsScalarTower R S Q] (g : M →ₗ[R] Q), ∃! g', ↑R g' ∘ₗ f = g)
Goal: IsBaseChange S f
-- IsBaseChange.iff_lift_unique
theorem IsBaseChange.iff_lift_unique :
    IsBaseChange S f ↔
      ∀ (Q : Type max v₁ v₂ v₃) [AddCommMonoid Q],
        ∀ [Module R Q] [Module S Q],
          ∀ [IsScalarTower R S Q],
            ∀ g : M →ₗ[R] Q, ∃! g' : N →ₗ[S] Q, (g'.restrictScalars R).comp f = g 
Arguments: {R : Type u_1} {M : Type v₁} {N : Type v₂} {S : Type v₃} [AddCommMonoid M] [AddCommMonoid N] [CommSemiring R] [CommSemiring S] [Algebra R S] [Module R M] [Module R N] [Module S N] [IsScalarTower R S N] {f : M →ₗ[R] N}
Goal: IsBaseChange S f ↔
  ∀ (Q : Type (max v₁ v₂ v₃)) [inst : AddCommMonoid Q] [inst_1 : Module R Q] [inst_2 : Module S Q]
    [inst_3 : IsScalarTower R S Q] (g : M →ₗ[R] Q), ∃! g', ↑R g' ∘ₗ f = g
-- IsBaseChange.ofEquiv
theorem IsBaseChange.ofEquiv (e : M ≃ₗ[R] N) : IsBaseChange R e.toLinearMap 
Arguments: {R : Type u_1} {M : Type v₁} {N : Type v₂} [AddCommMonoid M] [AddCommMonoid N] [CommSemiring R] [Module R M] [Module R N] (e : M ≃ₗ[R] N)
Goal: IsBaseChange R ↑e
-- IsBaseChange.comp
theorem IsBaseChange.comp {f : M →ₗ[R] N} (hf : IsBaseChange S f) {g : N →ₗ[S] O}
    (hg : IsBaseChange T g) : IsBaseChange T ((g.restrictScalars R).comp f) 
Arguments: {R : Type u_1} {M : Type v₁} {N : Type v₂} {S : Type v₃} [AddCommMonoid M] [AddCommMonoid N] [CommSemiring R] [CommSemiring S] [Algebra R S] [Module R M] [Module R N] [Module S N] [IsScalarTower R S N] {T : Type u_4} {O : Type u_5} [CommSemiring T] [Algebra R T] [Algebra S T] [IsScalarTower R S T] [AddCommMonoid O] [Module R O] [Module S O] [Module T O] [IsScalarTower S T O] [IsScalarTower R S O] [IsScalarTower R T O] {f : M →ₗ[R] N} (hf : IsBaseChange S f) {g : N →ₗ[S] O} (hg : IsBaseChange T g)
Goal: IsBaseChange T (↑R g ∘ₗ f)
-- Algebra.isPushout_iff
@[mk_iff]
class Algebra.IsPushout : Prop where
  out : IsBaseChange S (toAlgHom R R' S').toLinearMap
Arguments: (R : Type u_1) (S : Type v₃) [CommSemiring R] [CommSemiring S] [Algebra R S] (R' : Type u_6) (S' : Type u_7) [CommSemiring R'] [CommSemiring S'] [Algebra R R'] [Algebra S S'] [Algebra R' S'] [Algebra R S'] [IsScalarTower R R' S'] [IsScalarTower R S S']
Goal: Algebra.IsPushout R S R' S' ↔ IsBaseChange S (IsScalarTower.toAlgHom R R' S').toLinearMap
-- Algebra.IsPushout.out
@[mk_iff]
class Algebra.IsPushout : Prop where
  out : IsBaseChange S (toAlgHom R R' S').toLinearMap
Arguments: {R : Type u_1} {S : Type v₃} [CommSemiring R] [CommSemiring S] [Algebra R S] {R' : Type u_6} {S' : Type u_7} [CommSemiring R'] [CommSemiring S'] [Algebra R R'] [Algebra S S'] [Algebra R' S'] [Algebra R S'] [IsScalarTower R R' S'] [IsScalarTower R S S'] [self : Algebra.IsPushout R S R' S']
Goal: IsBaseChange S (IsScalarTower.toAlgHom R R' S').toLinearMap
-- Algebra.IsPushout.symm
@[symm]
theorem Algebra.IsPushout.symm (h : Algebra.IsPushout R S R' S') : Algebra.IsPushout R R' S S' 
Arguments: {R : Type u_1} {S : Type v₃} [CommSemiring R] [CommSemiring S] [Algebra R S] {R' : Type u_6} {S' : Type u_7} [CommSemiring R'] [CommSemiring S'] [Algebra R R'] [Algebra S S'] [Algebra R' S'] [Algebra R S'] [IsScalarTower R R' S'] [IsScalarTower R S S'] (h : Algebra.IsPushout R S R' S')
Goal: Algebra.IsPushout R R' S S'
-- Algebra.IsPushout.comm
theorem Algebra.IsPushout.comm : Algebra.IsPushout R S R' S' ↔ Algebra.IsPushout R R' S S' 
Arguments: (R : Type u_1) (S : Type v₃) [CommSemiring R] [CommSemiring S] [Algebra R S] (R' : Type u_6) (S' : Type u_7) [CommSemiring R'] [CommSemiring S'] [Algebra R R'] [Algebra S S'] [Algebra R' S'] [Algebra R S'] [IsScalarTower R R' S'] [IsScalarTower R S S']
Goal: Algebra.IsPushout R S R' S' ↔ Algebra.IsPushout R R' S S'
-- Algebra.pushoutDesc_apply
@[simps! (config := .lemmasOnly) apply]
noncomputable def Algebra.pushoutDesc [H : Algebra.IsPushout R S R' S'] {A : Type*} [Semiring A]
    [Algebra R A] (f : S →ₐ[R] A) (g : R' →ₐ[R] A) (hf : ∀ x y, f x * g y = g y * f x) :
    S' →ₐ[R] A 
Arguments: {R : Type u_1} {S : Type v₃} [CommSemiring R] [CommSemiring S] [Algebra R S] {R' : Type u_6} (S' : Type u_7) [CommSemiring R'] [CommSemiring S'] [Algebra R R'] [Algebra S S'] [Algebra R' S'] [Algebra R S'] [IsScalarTower R R' S'] [IsScalarTower R S S'] [H : Algebra.IsPushout R S R' S'] {A : Type u_8} [Semiring A] [Algebra R A] (f : S →ₐ[R] A) (g : R' →ₐ[R] A) (hf : ∀ (x : S) (y : R'), f x * g y = g y * f x) (a : S')
Goal: (Algebra.pushoutDesc S' f g hf) a = (⋯.lift g.toLinearMap) a
-- Algebra.pushoutDesc_left
@[simp]
theorem Algebra.pushoutDesc_left [H : Algebra.IsPushout R S R' S'] {A : Type*} [Semiring A]
    [Algebra R A] (f : S →ₐ[R] A) (g : R' →ₐ[R] A) (H) (x : S) :
    Algebra.pushoutDesc S' f g H (algebraMap S S' x) = f x 
Arguments: {R : Type u_1} {S : Type v₃} [CommSemiring R] [CommSemiring S] [Algebra R S] {R' : Type u_6} (S' : Type u_7) [CommSemiring R'] [CommSemiring S'] [Algebra R R'] [Algebra S S'] [Algebra R' S'] [Algebra R S'] [IsScalarTower R R' S'] [IsScalarTower R S S'] [H : Algebra.IsPushout R S R' S'] {A : Type u_8} [Semiring A] [Algebra R A] (f : S →ₐ[R] A) (g : R' →ₐ[R] A)
Goal: ∀ (H_1 : ∀ (x : S) (y : R'), f x * g y = g y * f x) (x : S),
  (Algebra.pushoutDesc S' f g H_1) ((algebraMap S S') x) = f x
-- Algebra.lift_algHom_comp_left
theorem Algebra.lift_algHom_comp_left [Algebra.IsPushout R S R' S'] {A : Type*} [Semiring A]
    [Algebra R A] (f : S →ₐ[R] A) (g : R' →ₐ[R] A) (H) :
    (Algebra.pushoutDesc S' f g H).comp (toAlgHom R S S') = f 
Arguments: {R : Type u_1} {S : Type v₃} [CommSemiring R] [CommSemiring S] [Algebra R S] {R' : Type u_6} (S' : Type u_7) [CommSemiring R'] [CommSemiring S'] [Algebra R R'] [Algebra S S'] [Algebra R' S'] [Algebra R S'] [IsScalarTower R R' S'] [IsScalarTower R S S'] [Algebra.IsPushout R S R' S'] {A : Type u_8} [Semiring A] [Algebra R A] (f : S →ₐ[R] A) (g : R' →ₐ[R] A) (H : ∀ (x : S) (y : R'), f x * g y = g y * f x)
Goal: (Algebra.pushoutDesc S' f g H).comp (IsScalarTower.toAlgHom R S S') = f
-- Algebra.pushoutDesc_right
@[simp]
theorem Algebra.pushoutDesc_right [H : Algebra.IsPushout R S R' S'] {A : Type*} [Semiring A]
    [Algebra R A] (f : S →ₐ[R] A) (g : R' →ₐ[R] A) (H) (x : R') :
    Algebra.pushoutDesc S' f g H (algebraMap R' S' x) = g x 
Arguments: {R : Type u_1} {S : Type v₃} [CommSemiring R] [CommSemiring S] [Algebra R S] {R' : Type u_6} (S' : Type u_7) [CommSemiring R'] [CommSemiring S'] [Algebra R R'] [Algebra S S'] [Algebra R' S'] [Algebra R S'] [IsScalarTower R R' S'] [IsScalarTower R S S'] [H : Algebra.IsPushout R S R' S'] {A : Type u_8} [Semiring A] [Algebra R A] (f : S →ₐ[R] A) (g : R' →ₐ[R] A)
Goal: ∀ (H_1 : ∀ (x : S) (y : R'), f x * g y = g y * f x) (x : R'),
  (Algebra.pushoutDesc S' f g H_1) ((algebraMap R' S') x) = g x
-- Algebra.lift_algHom_comp_right
theorem Algebra.lift_algHom_comp_right [Algebra.IsPushout R S R' S'] {A : Type*} [Semiring A]
    [Algebra R A] (f : S →ₐ[R] A) (g : R' →ₐ[R] A) (H) :
    (Algebra.pushoutDesc S' f g H).comp (toAlgHom R R' S') = g 
Arguments: {R : Type u_1} {S : Type v₃} [CommSemiring R] [CommSemiring S] [Algebra R S] {R' : Type u_6} (S' : Type u_7) [CommSemiring R'] [CommSemiring S'] [Algebra R R'] [Algebra S S'] [Algebra R' S'] [Algebra R S'] [IsScalarTower R R' S'] [IsScalarTower R S S'] [Algebra.IsPushout R S R' S'] {A : Type u_8} [Semiring A] [Algebra R A] (f : S →ₐ[R] A) (g : R' →ₐ[R] A) (H : ∀ (x : S) (y : R'), f x * g y = g y * f x)
Goal: (Algebra.pushoutDesc S' f g H).comp (IsScalarTower.toAlgHom R R' S') = g
-- Algebra.IsPushout.algHom_ext
@[ext]
theorem Algebra.IsPushout.algHom_ext [H : Algebra.IsPushout R S R' S'] {A : Type*} [Semiring A]
    [Algebra R A] {f g : S' →ₐ[R] A} (h₁ : f.comp (toAlgHom R R' S') = g.comp (toAlgHom R R' S'))
    (h₂ : f.comp (toAlgHom R S S') = g.comp (toAlgHom R S S')) : f = g 
Arguments: {R : Type u_1} {S : Type v₃} [CommSemiring R] [CommSemiring S] [Algebra R S] {R' : Type u_6} (S' : Type u_7) [CommSemiring R'] [CommSemiring S'] [Algebra R R'] [Algebra S S'] [Algebra R' S'] [Algebra R S'] [IsScalarTower R R' S'] [IsScalarTower R S S'] [H : Algebra.IsPushout R S R' S'] {A : Type u_8} [Semiring A] [Algebra R A] {f g : S' →ₐ[R] A} (h₁ : f.comp (IsScalarTower.toAlgHom R R' S') = g.comp (IsScalarTower.toAlgHom R R' S')) (h₂ : f.comp (IsScalarTower.toAlgHom R S S') = g.comp (IsScalarTower.toAlgHom R S S'))
Goal: f = g
-- PiTensorProduct.one_def
lemma one_def : 1 = tprod R (1 : Π i, A i) 
Arguments: {ι : Type u_1} {R : Type u_3} {A : ι → Type u_4} [CommSemiring R] [(i : ι) → AddCommMonoidWithOne (A i)] [(i : ι) → Module R (A i)]
Goal: 1 = (PiTensorProduct.tprod R) 1
-- PiTensorProduct.mul_tprod_tprod
@[simp] lemma mul_tprod_tprod (x y : (i : ι) → A i) :
    mul (tprod R x) (tprod R y) = tprod R (x * y) 
Arguments: {ι : Type u_1} {R : Type u_3} {A : ι → Type u_4} [CommSemiring R] [(i : ι) → NonUnitalNonAssocSemiring (A i)] [(i : ι) → Module R (A i)] [∀ (i : ι), SMulCommClass R (A i) (A i)] [∀ (i : ι), IsScalarTower R (A i) (A i)] (x y : (i : ι) → A i)
Goal: (PiTensorProduct.mul ((PiTensorProduct.tprod R) x)) ((PiTensorProduct.tprod R) y) = (PiTensorProduct.tprod R) (x * y)
-- PiTensorProduct.mul_def
lemma mul_def (x y : ⨂[R] i, A i) : x * y = mul x y 
Arguments: {ι : Type u_1} {R : Type u_3} {A : ι → Type u_4} [CommSemiring R] [(i : ι) → NonUnitalNonAssocSemiring (A i)] [(i : ι) → Module R (A i)] [∀ (i : ι), SMulCommClass R (A i) (A i)] [∀ (i : ι), IsScalarTower R (A i) (A i)] (x y : ⨂[R] (i : ι), A i)
Goal: x * y = (PiTensorProduct.mul x) y
-- PiTensorProduct.tprod_mul_tprod
@[simp] lemma tprod_mul_tprod (x y : (i : ι) → A i) :
    tprod R x * tprod R y = tprod R (x * y) 
Arguments: {ι : Type u_1} {R : Type u_3} {A : ι → Type u_4} [CommSemiring R] [(i : ι) → NonUnitalNonAssocSemiring (A i)] [(i : ι) → Module R (A i)] [∀ (i : ι), SMulCommClass R (A i) (A i)] [∀ (i : ι), IsScalarTower R (A i) (A i)] (x y : (i : ι) → A i)
Goal: (PiTensorProduct.tprod R) x * (PiTensorProduct.tprod R) y = (PiTensorProduct.tprod R) (x * y)
-- SemiconjBy.tprod
theorem _root_.SemiconjBy.tprod {a₁ a₂ a₃ : Π i, A i}
    (ha : SemiconjBy a₁ a₂ a₃) :
    SemiconjBy (tprod R a₁) (tprod R a₂) (tprod R a₃) 
Arguments: {ι : Type u_1} {R : Type u_3} {A : ι → Type u_4} [CommSemiring R] [(i : ι) → NonUnitalNonAssocSemiring (A i)] [(i : ι) → Module R (A i)] [∀ (i : ι), SMulCommClass R (A i) (A i)] [∀ (i : ι), IsScalarTower R (A i) (A i)] {a₁ a₂ a₃ : (i : ι) → A i} (ha : SemiconjBy a₁ a₂ a₃)
Goal: SemiconjBy ((PiTensorProduct.tprod R) a₁) ((PiTensorProduct.tprod R) a₂) ((PiTensorProduct.tprod R) a₃)
-- Commute.tprod
nonrec theorem _root_.Commute.tprod {a₁ a₂ : Π i, A i} (ha : Commute a₁ a₂) :
    Commute (tprod R a₁) (tprod R a₂) 
Arguments: {ι : Type u_1} {R : Type u_3} {A : ι → Type u_4} [CommSemiring R] [(i : ι) → NonUnitalNonAssocSemiring (A i)] [(i : ι) → Module R (A i)] [∀ (i : ι), SMulCommClass R (A i) (A i)] [∀ (i : ι), IsScalarTower R (A i) (A i)] {a₁ a₂ : (i : ι) → A i} (ha : Commute a₁ a₂)
Goal: Commute ((PiTensorProduct.tprod R) a₁) ((PiTensorProduct.tprod R) a₂)
-- PiTensorProduct.smul_tprod_mul_smul_tprod
lemma smul_tprod_mul_smul_tprod (r s : R) (x y : Π i, A i) :
    (r • tprod R x) * (s • tprod R y) = (r * s) • tprod R (x * y) 
Arguments: {ι : Type u_1} {R : Type u_3} {A : ι → Type u_4} [CommSemiring R] [(i : ι) → NonUnitalNonAssocSemiring (A i)] [(i : ι) → Module R (A i)] [∀ (i : ι), SMulCommClass R (A i) (A i)] [∀ (i : ι), IsScalarTower R (A i) (A i)] (r s : R) (x y : (i : ι) → A i)
Goal: r • (PiTensorProduct.tprod R) x * s • (PiTensorProduct.tprod R) y = (r * s) • (PiTensorProduct.tprod R) (x * y)
-- PiTensorProduct.one_mul
protected lemma one_mul (x : ⨂[R] i, A i) : mul (tprod R 1) x = x 
Arguments: {ι : Type u_1} {R : Type u_3} {A : ι → Type u_4} [CommSemiring R] [(i : ι) → NonAssocSemiring (A i)] [(i : ι) → Module R (A i)] [∀ (i : ι), SMulCommClass R (A i) (A i)] [∀ (i : ι), IsScalarTower R (A i) (A i)] (x : ⨂[R] (i : ι), A i)
Goal: (PiTensorProduct.mul ((PiTensorProduct.tprod R) 1)) x = x
-- PiTensorProduct.mul_one
protected lemma mul_one (x : ⨂[R] i, A i) : mul x (tprod R 1) = x 
Arguments: {ι : Type u_1} {R : Type u_3} {A : ι → Type u_4} [CommSemiring R] [(i : ι) → NonAssocSemiring (A i)] [(i : ι) → Module R (A i)] [∀ (i : ι), SMulCommClass R (A i) (A i)] [∀ (i : ι), IsScalarTower R (A i) (A i)] (x : ⨂[R] (i : ι), A i)
Goal: (PiTensorProduct.mul x) ((PiTensorProduct.tprod R) 1) = x
-- PiTensorProduct.tprodMonoidHom_apply
@[simps]
def tprodMonoidHom : (Π i, A i) →* ⨂[R] i, A i 
Arguments: {ι : Type u_1} (R : Type u_3) {A : ι → Type u_4} [CommSemiring R] [(i : ι) → NonAssocSemiring (A i)] [(i : ι) → Module R (A i)] [∀ (i : ι), SMulCommClass R (A i) (A i)] [∀ (i : ι), IsScalarTower R (A i) (A i)] (a : (i : ι) → A i)
Goal: (PiTensorProduct.tprodMonoidHom R) a = (PiTensorProduct.tprod R) a
-- PiTensorProduct.mul_assoc
protected lemma mul_assoc (x y z : ⨂[R] i, A i) : mul (mul x y) z = mul x (mul y z) 
Arguments: {ι : Type u_1} {R : Type u_3} {A : ι → Type u_4} [CommSemiring R] [(i : ι) → NonUnitalSemiring (A i)] [(i : ι) → Module R (A i)] [∀ (i : ι), SMulCommClass R (A i) (A i)] [∀ (i : ι), IsScalarTower R (A i) (A i)] (x y z : ⨂[R] (i : ι), A i)
Goal: (PiTensorProduct.mul ((PiTensorProduct.mul x) y)) z = (PiTensorProduct.mul x) ((PiTensorProduct.mul y) z)
-- PiTensorProduct.algebraMap_apply
lemma algebraMap_apply (r : R') (i : ι) [DecidableEq ι] :
    algebraMap R' (⨂[R] i, A i) r = tprod R (Pi.mulSingle i (algebraMap R' (A i) r)) 
Arguments: {ι : Type u_1} {R' : Type u_2} {R : Type u_3} {A : ι → Type u_4} [CommSemiring R'] [CommSemiring R] [(i : ι) → Semiring (A i)] [Algebra R' R] [(i : ι) → Algebra R (A i)] [(i : ι) → Algebra R' (A i)] [∀ (i : ι), IsScalarTower R' R (A i)] (r : R') (i : ι) [DecidableEq ι]
Goal: (algebraMap R' (⨂[R] (i : ι), A i)) r = (PiTensorProduct.tprod R) (Pi.mulSingle i ((algebraMap R' (A i)) r))