ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- MvPolynomial.rTensor_apply_tmul_apply
lemma rTensor_apply_tmul_apply (p : MvPolynomial σ S) (n : N) (d : σ →₀ ℕ) :
    rTensor (p ⊗ₜ[R] n) d = (coeff d p) ⊗ₜ[R] n 
Arguments: {R : Type u} {N : Type w} [CommSemiring R] {σ : Type u_1} [DecidableEq σ] {S : Type u_2} [CommSemiring S] [Algebra R S] [AddCommMonoid N] [Module R N] (p : MvPolynomial σ S) (n : N) (d : σ →₀ ℕ)
Goal: (MvPolynomial.rTensor (p ⊗ₜ[R] n)) d = MvPolynomial.coeff d p ⊗ₜ[R] n
-- MvPolynomial.rTensor_apply_monomial_tmul
lemma rTensor_apply_monomial_tmul (e : σ →₀ ℕ) (s : S) (n : N) (d : σ →₀ ℕ) :
    rTensor (monomial e s ⊗ₜ[R] n) d = if e = d then s ⊗ₜ[R] n else 0 
Arguments: {R : Type u} {N : Type w} [CommSemiring R] {σ : Type u_1} [DecidableEq σ] {S : Type u_2} [CommSemiring S] [Algebra R S] [AddCommMonoid N] [Module R N] (e : σ →₀ ℕ) (s : S) (n : N) (d : σ →₀ ℕ)
Goal: (MvPolynomial.rTensor ((MvPolynomial.monomial e) s ⊗ₜ[R] n)) d = if e = d then s ⊗ₜ[R] n else 0
-- MvPolynomial.rTensor_apply_X_tmul
lemma rTensor_apply_X_tmul (s : σ) (n : N) (d : σ →₀ ℕ) :
    rTensor (X s ⊗ₜ[R] n) d = if Finsupp.single s 1 = d then (1 : S) ⊗ₜ[R] n else 0 
Arguments: {R : Type u} {N : Type w} [CommSemiring R] {σ : Type u_1} [DecidableEq σ] {S : Type u_2} [CommSemiring S] [Algebra R S] [AddCommMonoid N] [Module R N] (s : σ) (n : N) (d : σ →₀ ℕ)
Goal: (MvPolynomial.rTensor (MvPolynomial.X s ⊗ₜ[R] n)) d = if Finsupp.single s 1 = d then 1 ⊗ₜ[R] n else 0
-- MvPolynomial.rTensor_apply
lemma rTensor_apply (t : MvPolynomial σ S ⊗[R] N) (d : σ →₀ ℕ) :
    rTensor t d = ((lcoeff S d).restrictScalars R).rTensor N t 
Arguments: {R : Type u} {N : Type w} [CommSemiring R] {σ : Type u_1} [DecidableEq σ] {S : Type u_2} [CommSemiring S] [Algebra R S] [AddCommMonoid N] [Module R N] (t : TensorProduct R (MvPolynomial σ S) N) (d : σ →₀ ℕ)
Goal: (MvPolynomial.rTensor t) d = (LinearMap.rTensor N (↑R (MvPolynomial.lcoeff S d))) t
-- MvPolynomial.rTensor_symm_apply_single
@[simp]
lemma rTensor_symm_apply_single (d : σ →₀ ℕ) (s : S) (n : N) :
    rTensor.symm (Finsupp.single d (s ⊗ₜ n)) =
      (monomial d s) ⊗ₜ[R] n 
Arguments: {R : Type u} {N : Type w} [CommSemiring R] {σ : Type u_1} [DecidableEq σ] {S : Type u_2} [CommSemiring S] [Algebra R S] [AddCommMonoid N] [Module R N] (d : σ →₀ ℕ) (s : S) (n : N)
Goal: MvPolynomial.rTensor.symm (Finsupp.single d (s ⊗ₜ[R] n)) = (MvPolynomial.monomial d) s ⊗ₜ[R] n
-- MvPolynomial.scalarRTensor_apply_tmul
lemma scalarRTensor_apply_tmul (p : MvPolynomial σ R) (n : N) :
    scalarRTensor (p ⊗ₜ[R] n) = p.sum (fun i m ↦ Finsupp.single i (m • n)) 
Arguments: {R : Type u} {N : Type w} [CommSemiring R] {σ : Type u_1} [DecidableEq σ] [AddCommMonoid N] [Module R N] (p : MvPolynomial σ R) (n : N)
Goal: MvPolynomial.scalarRTensor (p ⊗ₜ[R] n) = Finsupp.sum p fun i m => Finsupp.single i (m • n)
-- MvPolynomial.scalarRTensor_apply_tmul_apply
lemma scalarRTensor_apply_tmul_apply (p : MvPolynomial σ R) (n : N) (d : σ →₀ ℕ) :
    scalarRTensor (p ⊗ₜ[R] n) d = coeff d p • n 
Arguments: {R : Type u} {N : Type w} [CommSemiring R] {σ : Type u_1} [DecidableEq σ] [AddCommMonoid N] [Module R N] (p : MvPolynomial σ R) (n : N) (d : σ →₀ ℕ)
Goal: (MvPolynomial.scalarRTensor (p ⊗ₜ[R] n)) d = MvPolynomial.coeff d p • n
-- MvPolynomial.scalarRTensor_apply_monomial_tmul
lemma scalarRTensor_apply_monomial_tmul (e : σ →₀ ℕ) (r : R) (n : N) (d : σ →₀ ℕ) :
    scalarRTensor (monomial e r ⊗ₜ[R] n) d = if e = d then r • n else 0 
Arguments: {R : Type u} {N : Type w} [CommSemiring R] {σ : Type u_1} [DecidableEq σ] [AddCommMonoid N] [Module R N] (e : σ →₀ ℕ) (r : R) (n : N) (d : σ →₀ ℕ)
Goal: (MvPolynomial.scalarRTensor ((MvPolynomial.monomial e) r ⊗ₜ[R] n)) d = if e = d then r • n else 0
-- MvPolynomial.scalarRTensor_apply_X_tmul_apply
lemma scalarRTensor_apply_X_tmul_apply (s : σ) (n : N) (d : σ →₀ ℕ) :
    scalarRTensor (X s ⊗ₜ[R] n) d = if Finsupp.single s 1 = d then n else 0 
Arguments: {R : Type u} {N : Type w} [CommSemiring R] {σ : Type u_1} [DecidableEq σ] [AddCommMonoid N] [Module R N] (s : σ) (n : N) (d : σ →₀ ℕ)
Goal: (MvPolynomial.scalarRTensor (MvPolynomial.X s ⊗ₜ[R] n)) d = if Finsupp.single s 1 = d then n else 0
-- MvPolynomial.scalarRTensor_symm_apply_single
lemma scalarRTensor_symm_apply_single (d : σ →₀ ℕ) (n : N) :
    scalarRTensor.symm (Finsupp.single d n) = (monomial d 1) ⊗ₜ[R] n 
Arguments: {R : Type u} {N : Type w} [CommSemiring R] {σ : Type u_1} [DecidableEq σ] [AddCommMonoid N] [Module R N] (d : σ →₀ ℕ) (n : N)
Goal: MvPolynomial.scalarRTensor.symm (Finsupp.single d n) = (MvPolynomial.monomial d) 1 ⊗ₜ[R] n
-- MvPolynomial.coeff_rTensorAlgHom_tmul
@[simp]
lemma coeff_rTensorAlgHom_tmul
    (p : MvPolynomial σ S) (n : N) (d : σ →₀ ℕ) :
    coeff d (rTensorAlgHom (p ⊗ₜ[R] n)) = (coeff d p) ⊗ₜ[R] n 
Arguments: {R : Type u} {N : Type w} [CommSemiring R] {σ : Type u_1} {S : Type u_2} [CommSemiring S] [Algebra R S] [CommSemiring N] [Algebra R N] (p : MvPolynomial σ S) (n : N) (d : σ →₀ ℕ)
Goal: MvPolynomial.coeff d (MvPolynomial.rTensorAlgHom (p ⊗ₜ[R] n)) = MvPolynomial.coeff d p ⊗ₜ[R] n
-- MvPolynomial.coeff_rTensorAlgHom_monomial_tmul
lemma coeff_rTensorAlgHom_monomial_tmul
    (e : σ →₀ ℕ) (s : S) (n : N) (d : σ →₀ ℕ) :
    coeff d (rTensorAlgHom (monomial e s ⊗ₜ[R] n)) =
      if e = d then s ⊗ₜ[R] n else 0 
Arguments: {R : Type u} {N : Type w} [CommSemiring R] {σ : Type u_1} [DecidableEq σ] {S : Type u_2} [CommSemiring S] [Algebra R S] [CommSemiring N] [Algebra R N] (e : σ →₀ ℕ) (s : S) (n : N) (d : σ →₀ ℕ)
Goal: MvPolynomial.coeff d (MvPolynomial.rTensorAlgHom ((MvPolynomial.monomial e) s ⊗ₜ[R] n)) = if e = d then s ⊗ₜ[R] n else 0
-- MvPolynomial.rTensorAlgHom_toLinearMap
lemma rTensorAlgHom_toLinearMap :
    (rTensorAlgHom :
      MvPolynomial σ S ⊗[R] N →ₐ[S] MvPolynomial σ (S ⊗[R] N)).toLinearMap =
      rTensor.toLinearMap 
Arguments: {R : Type u} {N : Type w} [CommSemiring R] {σ : Type u_1} [DecidableEq σ] {S : Type u_2} [CommSemiring S] [Algebra R S] [CommSemiring N] [Algebra R N]
Goal: MvPolynomial.rTensorAlgHom.toLinearMap = ↑MvPolynomial.rTensor
-- MvPolynomial.rTensorAlgHom_apply_eq
lemma rTensorAlgHom_apply_eq (p : MvPolynomial σ S ⊗[R] N) :
    rTensorAlgHom (S := S) p = rTensor p 
Arguments: {R : Type u} {N : Type w} [CommSemiring R] {σ : Type u_1} [DecidableEq σ] {S : Type u_2} [CommSemiring S] [Algebra R S] [CommSemiring N] [Algebra R N] (p : TensorProduct R (MvPolynomial σ S) N)
Goal: MvPolynomial.rTensorAlgHom p = MvPolynomial.rTensor p
-- MvPolynomial.algebraTensorAlgEquiv_tmul
@[simp]
lemma algebraTensorAlgEquiv_tmul (a : A) (p : MvPolynomial σ R) :
    algebraTensorAlgEquiv R A (a ⊗ₜ p) = a • MvPolynomial.map (algebraMap R A) p 
Arguments: (R : Type u) [CommSemiring R] {σ : Type u_1} (A : Type u_3) [CommSemiring A] [Algebra R A] (a : A) (p : MvPolynomial σ R)
Goal: (MvPolynomial.algebraTensorAlgEquiv R A) (a ⊗ₜ[R] p) = a • (MvPolynomial.map (algebraMap R A)) p
-- MvPolynomial.algebraTensorAlgEquiv_symm_X
@[simp]
lemma algebraTensorAlgEquiv_symm_X (s : σ) :
    (algebraTensorAlgEquiv R A).symm (X s) = 1 ⊗ₜ X s 
Arguments: (R : Type u) [CommSemiring R] {σ : Type u_1} (A : Type u_3) [CommSemiring A] [Algebra R A] (s : σ)
Goal: (MvPolynomial.algebraTensorAlgEquiv R A).symm (MvPolynomial.X s) = 1 ⊗ₜ[R] MvPolynomial.X s
-- MvPolynomial.algebraTensorAlgEquiv_symm_monomial
@[simp]
lemma algebraTensorAlgEquiv_symm_monomial (m : σ →₀ ℕ) (a : A) :
    (algebraTensorAlgEquiv R A).symm (monomial m a) = a ⊗ₜ monomial m 1 
Arguments: (R : Type u) [CommSemiring R] {σ : Type u_1} (A : Type u_3) [CommSemiring A] [Algebra R A] (m : σ →₀ ℕ) (a : A)
Goal: (MvPolynomial.algebraTensorAlgEquiv R A).symm ((MvPolynomial.monomial m) a) = a ⊗ₜ[R] (MvPolynomial.monomial m) 1
-- Set.integer_carrier
@[simps!]
def integer : Subalgebra R K 
Arguments: {R : Type u} [CommRing R] [IsDedekindDomain R] (S : Set (IsDedekindDomain.HeightOneSpectrum R)) (K : Type v) [Field K] [Algebra R K] [IsFractionRing R K]
Goal: ↑(S.integer K) = {x | ∀ v ∉ S, v.valuation x ≤ 1}
-- Set.integer_eq
theorem integer_eq :
    (S.integer K).toSubring =
      ⨅ (v) (_ : v ∉ S), (v : HeightOneSpectrum R).valuation.valuationSubring.toSubring 
Arguments: {R : Type u} [CommRing R] [IsDedekindDomain R] (S : Set (IsDedekindDomain.HeightOneSpectrum R)) (K : Type v) [Field K] [Algebra R K] [IsFractionRing R K]
Goal: (S.integer K).toSubring = ⨅ v, ⨅ (_ : v ∉ S), v.valuation.valuationSubring.toSubring
-- Set.integer_valuation_le_one
theorem integer_valuation_le_one (x : S.integer K) {v : HeightOneSpectrum R} (hv : v ∉ S) :
    v.valuation (x : K) ≤ 1 
Arguments: {R : Type u} [CommRing R] [IsDedekindDomain R] (S : Set (IsDedekindDomain.HeightOneSpectrum R)) (K : Type v) [Field K] [Algebra R K] [IsFractionRing R K] (x : ↥(S.integer K)) {v : IsDedekindDomain.HeightOneSpectrum R} (hv : v ∉ S)
Goal: v.valuation ↑x ≤ 1
-- Set.unit_coe
@[simps!]
def unit : Subgroup Kˣ 
Arguments: {R : Type u} [CommRing R] [IsDedekindDomain R] (S : Set (IsDedekindDomain.HeightOneSpectrum R)) (K : Type v) [Field K] [Algebra R K] [IsFractionRing R K]
Goal: ↑(S.unit K) = {x | ∀ v ∉ S, v.valuation ↑x = 1}
-- Set.unit_eq
theorem unit_eq :
    S.unit K = ⨅ (v) (_ : v ∉ S), (v : HeightOneSpectrum R).valuation.valuationSubring.unitGroup 
Arguments: {R : Type u} [CommRing R] [IsDedekindDomain R] (S : Set (IsDedekindDomain.HeightOneSpectrum R)) (K : Type v) [Field K] [Algebra R K] [IsFractionRing R K]
Goal: S.unit K = ⨅ v, ⨅ (_ : v ∉ S), v.valuation.valuationSubring.unitGroup
-- Set.unit_valuation_eq_one
theorem unit_valuation_eq_one (x : S.unit K) {v : HeightOneSpectrum R} (hv : v ∉ S) :
    v.valuation ((x : Kˣ) : K) = 1 
Arguments: {R : Type u} [CommRing R] [IsDedekindDomain R] (S : Set (IsDedekindDomain.HeightOneSpectrum R)) (K : Type v) [Field K] [Algebra R K] [IsFractionRing R K] (x : ↥(S.unit K)) {v : IsDedekindDomain.HeightOneSpectrum R} (hv : v ∉ S)
Goal: v.valuation ↑↑x = 1
-- Set.val_unitEquivUnitsInteger_apply_coe
@[simps apply_val_coe symm_apply_coe]
def unitEquivUnitsInteger : S.unit K ≃* (S.integer K)ˣ 
Arguments: {R : Type u} [CommRing R] [IsDedekindDomain R] (S : Set (IsDedekindDomain.HeightOneSpectrum R)) (K : Type v) [Field K] [Algebra R K] [IsFractionRing R K] (x : ↥(S.unit K))
Goal: ↑↑((S.unitEquivUnitsInteger K) x) = ↑↑x
-- Set.unitEquivUnitsInteger_symm_apply_coe
@[simps apply_val_coe symm_apply_coe]
def unitEquivUnitsInteger : S.unit K ≃* (S.integer K)ˣ 
Arguments: {R : Type u} [CommRing R] [IsDedekindDomain R] (S : Set (IsDedekindDomain.HeightOneSpectrum R)) (K : Type v) [Field K] [Algebra R K] [IsFractionRing R K] (x : (↥(S.integer K))ˣ)
Goal: ↑((S.unitEquivUnitsInteger K).symm x) = Units.mk0 ↑↑x ⋯
-- Algebra.adjoin.powerBasis_dim
@[simps gen dim]
noncomputable def adjoin.powerBasis {x : S} (hx : IsIntegral K x) :
    PowerBasis K (adjoin K ({x} : Set S)) 
Arguments: {K : Type u_1} {S : Type u_2} [Field K] [CommRing S] [Algebra K S] {x : S} (hx : IsIntegral K x)
Goal: (Algebra.adjoin.powerBasis hx).dim = (minpoly K x).natDegree
-- Algebra.adjoin.powerBasis_gen
@[simps gen dim]
noncomputable def adjoin.powerBasis {x : S} (hx : IsIntegral K x) :
    PowerBasis K (adjoin K ({x} : Set S)) 
Arguments: {K : Type u_1} {S : Type u_2} [Field K] [CommRing S] [Algebra K S] {x : S} (hx : IsIntegral K x)
Goal: (Algebra.adjoin.powerBasis hx).gen = ⟨x, ⋯⟩
-- PowerBasis.ofGenMemAdjoin_dim
@[simps!]
noncomputable def PowerBasis.ofGenMemAdjoin {x : S} (B : PowerBasis K S) (hint : IsIntegral K x)
    (hx : B.gen ∈ adjoin K ({x} : Set S)) : PowerBasis K S 
Arguments: {K : Type u_1} {S : Type u_2} [Field K] [CommRing S] [Algebra K S] {x : S} (B : PowerBasis K S) (hint : IsIntegral K x) (hx : B.gen ∈ Algebra.adjoin K {x})
Goal: (B.ofGenMemAdjoin hint hx).dim = (minpoly K x).natDegree
-- PowerBasis.ofGenMemAdjoin_gen
@[simps!]
noncomputable def PowerBasis.ofGenMemAdjoin {x : S} (B : PowerBasis K S) (hint : IsIntegral K x)
    (hx : B.gen ∈ adjoin K ({x} : Set S)) : PowerBasis K S 
Arguments: {K : Type u_1} {S : Type u_2} [Field K] [CommRing S] [Algebra K S] {x : S} (B : PowerBasis K S) (hint : IsIntegral K x) (hx : B.gen ∈ Algebra.adjoin K {x})
Goal: (B.ofGenMemAdjoin hint hx).gen = x
-- PowerBasis.repr_gen_pow_isIntegral
theorem repr_gen_pow_isIntegral [IsDomain S]
    (hmin : minpoly S B.gen = (minpoly R B.gen).map (algebraMap R S)) (n : ℕ) :
    ∀ i, IsIntegral R (B.basis.repr (B.gen ^ n) i) 
Arguments: {S : Type u_2} [CommRing S] {R : Type u_3} [CommRing R] [Algebra R S] {A : Type u_4} [CommRing A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] {B : PowerBasis S A} (hB : IsIntegral R B.gen) [IsDomain S] (hmin : minpoly S B.gen = Polynomial.map (algebraMap R S) (minpoly R B.gen)) (n : ℕ) (i : Fin B.dim)
Goal: IsIntegral R ((B.basis.repr (B.gen ^ n)) i)
-- PowerBasis.repr_mul_isIntegral
theorem repr_mul_isIntegral [IsDomain S] {x y : A} (hx : ∀ i, IsIntegral R (B.basis.repr x i))
    (hy : ∀ i, IsIntegral R (B.basis.repr y i))
    (hmin : minpoly S B.gen = (minpoly R B.gen).map (algebraMap R S)) :
    ∀ i, IsIntegral R (B.basis.repr (x * y) i) 
Arguments: {S : Type u_2} [CommRing S] {R : Type u_3} [CommRing R] [Algebra R S] {A : Type u_4} [CommRing A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] {B : PowerBasis S A} (hB : IsIntegral R B.gen) [IsDomain S] {x y : A} (hx : ∀ (i : Fin B.dim), IsIntegral R ((B.basis.repr x) i)) (hy : ∀ (i : Fin B.dim), IsIntegral R ((B.basis.repr y) i)) (hmin : minpoly S B.gen = Polynomial.map (algebraMap R S) (minpoly R B.gen)) (i : Fin B.dim)
Goal: IsIntegral R ((B.basis.repr (x * y)) i)
-- PowerBasis.repr_pow_isIntegral
theorem repr_pow_isIntegral [IsDomain S] {x : A} (hx : ∀ i, IsIntegral R (B.basis.repr x i))
    (hmin : minpoly S B.gen = (minpoly R B.gen).map (algebraMap R S)) (n : ℕ) :
    ∀ i, IsIntegral R (B.basis.repr (x ^ n) i) 
Arguments: {S : Type u_2} [CommRing S] {R : Type u_3} [CommRing R] [Algebra R S] {A : Type u_4} [CommRing A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] {B : PowerBasis S A} (hB : IsIntegral R B.gen) [IsDomain S] {x : A} (hx : ∀ (i : Fin B.dim), IsIntegral R ((B.basis.repr x) i)) (hmin : minpoly S B.gen = Polynomial.map (algebraMap R S) (minpoly R B.gen)) (n : ℕ) (i : Fin B.dim)
Goal: IsIntegral R ((B.basis.repr (x ^ n)) i)
-- PowerBasis.toMatrix_isIntegral
theorem toMatrix_isIntegral {B B' : PowerBasis K S} {P : R[X]} (h : aeval B.gen P = B'.gen)
    (hB : IsIntegral R B.gen) (hmin : minpoly K B.gen = (minpoly R B.gen).map (algebraMap R K)) :
    ∀ i j, IsIntegral R (B.basis.toMatrix B'.basis i j) 
Arguments: {K : Type u_1} {S : Type u_2} [Field K] [CommRing S] [Algebra K S] {R : Type u_3} [CommRing R] [Algebra R S] [Algebra R K] [IsScalarTower R K S] {B B' : PowerBasis K S} {P : Polynomial R} (h : (Polynomial.aeval B.gen) P = B'.gen) (hB : IsIntegral R B.gen) (hmin : minpoly K B.gen = Polynomial.map (algebraMap R K) (minpoly R B.gen)) (i : Fin B.dim) (j : Fin B'.dim)
Goal: IsIntegral R (B.basis.toMatrix (⇑B'.basis) i j)
-- Algebra.subset_adjoin
@[aesop safe 20 apply (rule_sets := [SetLike])]
theorem subset_adjoin : s ⊆ adjoin R s 
Arguments: {R : Type uR} {A : Type uA} [CommSemiring R] [Semiring A] [Algebra R A] {s : Set A}
Goal: s ⊆ ↑(Algebra.adjoin R s)
-- Algebra.adjoin_le
theorem adjoin_le {S : Subalgebra R A} (H : s ⊆ S) : adjoin R s ≤ S 
Arguments: {R : Type uR} {A : Type uA} [CommSemiring R] [Semiring A] [Algebra R A] {s : Set A} {S : Subalgebra R A} (H : s ⊆ ↑S)
Goal: Algebra.adjoin R s ≤ S
-- Algebra.adjoin_eq_sInf
theorem adjoin_eq_sInf : adjoin R s = sInf { p : Subalgebra R A | s ⊆ p } 
Arguments: {R : Type uR} {A : Type uA} [CommSemiring R] [Semiring A] [Algebra R A] {s : Set A}
Goal: Algebra.adjoin R s = sInf {p | s ⊆ ↑p}
-- Algebra.adjoin_le_iff
theorem adjoin_le_iff {S : Subalgebra R A} : adjoin R s ≤ S ↔ s ⊆ S 
Arguments: {R : Type uR} {A : Type uA} [CommSemiring R] [Semiring A] [Algebra R A] {s : Set A} {S : Subalgebra R A}
Goal: Algebra.adjoin R s ≤ S ↔ s ⊆ ↑S
-- Algebra.adjoin_mono
theorem adjoin_mono (H : s ⊆ t) : adjoin R s ≤ adjoin R t 
Arguments: {R : Type uR} {A : Type uA} [CommSemiring R] [Semiring A] [Algebra R A] {s t : Set A} (H : s ⊆ t)
Goal: Algebra.adjoin R s ≤ Algebra.adjoin R t
-- Algebra.adjoin_eq_of_le
theorem adjoin_eq_of_le (S : Subalgebra R A) (h₁ : s ⊆ S) (h₂ : S ≤ adjoin R s) : adjoin R s = S 
Arguments: {R : Type uR} {A : Type uA} [CommSemiring R] [Semiring A] [Algebra R A] {s : Set A} (S : Subalgebra R A) (h₁ : s ⊆ ↑S) (h₂ : S ≤ Algebra.adjoin R s)
Goal: Algebra.adjoin R s = S
-- Algebra.adjoin_eq
theorem adjoin_eq (S : Subalgebra R A) : adjoin R ↑S = S 
Arguments: {R : Type uR} {A : Type uA} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A)
Goal: Algebra.adjoin R ↑S = S
-- Algebra.adjoin_iUnion
theorem adjoin_iUnion {α : Type*} (s : α → Set A) :
    adjoin R (Set.iUnion s) = ⨆ i : α, adjoin R (s i) 
Arguments: {R : Type uR} {A : Type uA} [CommSemiring R] [Semiring A] [Algebra R A] {α : Type u_1} (s : α → Set A)
Goal: Algebra.adjoin R (Set.iUnion s) = ⨆ i, Algebra.adjoin R (s i)
-- Algebra.adjoin_attach_biUnion
theorem adjoin_attach_biUnion [DecidableEq A] {α : Type*} {s : Finset α} (f : s → Finset A) :
    adjoin R (s.attach.biUnion f : Set A) = ⨆ x, adjoin R (f x) 
Arguments: {R : Type uR} {A : Type uA} [CommSemiring R] [Semiring A] [Algebra R A] [DecidableEq A] {α : Type u_1} {s : Finset α} (f : { x // x ∈ s } → Finset A)
Goal: Algebra.adjoin R ↑(s.attach.biUnion f) = ⨆ x, Algebra.adjoin R ↑(f x)
-- Algebra.adjoin_induction
@[elab_as_elim]
theorem adjoin_induction {p : A → Prop} {x : A} (h : x ∈ adjoin R s) (mem : ∀ x ∈ s, p x)
    (algebraMap : ∀ r, p (algebraMap R A r)) (add : ∀ x y, p x → p y → p (x + y))
    (mul : ∀ x y, p x → p y → p (x * y)) : p x 
Arguments: {R : Type uR} {A : Type uA} [CommSemiring R] [Semiring A] [Algebra R A] {s : Set A} {p : A → Prop} {x : A} (h : x ∈ Algebra.adjoin R s) (mem : ∀ x ∈ s, p x) (algebraMap : ∀ (r : R), p ((algebraMap R A) r)) (add : ∀ (x y : A), p x → p y → p (x + y)) (mul : ∀ (x y : A), p x → p y → p (x * y))
Goal: p x
-- Algebra.adjoin_induction₂
@[elab_as_elim]
theorem adjoin_induction₂ {p : A → A → Prop} {a b : A} (ha : a ∈ adjoin R s) (hb : b ∈ adjoin R s)
    (Hs : ∀ x ∈ s, ∀ y ∈ s, p x y) (Halg : ∀ r₁ r₂, p (algebraMap R A r₁) (algebraMap R A r₂))
    (Halg_left : ∀ (r), ∀ x ∈ s, p (algebraMap R A r) x)
    (Halg_right : ∀ (r), ∀ x ∈ s, p x (algebraMap R A r))
    (Hadd_left : ∀ x₁ x₂ y, p x₁ y → p x₂ y → p (x₁ + x₂) y)
    (Hadd_right : ∀ x y₁ y₂, p x y₁ → p x y₂ → p x (y₁ + y₂))
    (Hmul_left : ∀ x₁ x₂ y, p x₁ y → p x₂ y → p (x₁ * x₂) y)
    (Hmul_right : ∀ x y₁ y₂, p x y₁ → p x y₂ → p x (y₁ * y₂)) : p a b 
Arguments: {R : Type uR} {A : Type uA} [CommSemiring R] [Semiring A] [Algebra R A] {s : Set A} {p : A → A → Prop} {a b : A} (ha : a ∈ Algebra.adjoin R s) (hb : b ∈ Algebra.adjoin R s) (Hs : ∀ x ∈ s, ∀ y ∈ s, p x y) (Halg : ∀ (r₁ r₂ : R), p ((algebraMap R A) r₁) ((algebraMap R A) r₂)) (Halg_left : ∀ (r : R), ∀ x ∈ s, p ((algebraMap R A) r) x) (Halg_right : ∀ (r : R), ∀ x ∈ s, p x ((algebraMap R A) r)) (Hadd_left : ∀ (x₁ x₂ y : A), p x₁ y → p x₂ y → p (x₁ + x₂) y) (Hadd_right : ∀ (x y₁ y₂ : A), p x y₁ → p x y₂ → p x (y₁ + y₂)) (Hmul_left : ∀ (x₁ x₂ y : A), p x₁ y → p x₂ y → p (x₁ * x₂) y) (Hmul_right : ∀ (x y₁ y₂ : A), p x y₁ → p x y₂ → p x (y₁ * y₂))
Goal: p a b
-- Algebra.adjoin_induction'
@[elab_as_elim]
theorem adjoin_induction' {p : adjoin R s → Prop} (mem : ∀ (x) (h : x ∈ s), p ⟨x, subset_adjoin h⟩)
    (algebraMap : ∀ r, p (algebraMap R _ r)) (add : ∀ x y, p x → p y → p (x + y))
    (mul : ∀ x y, p x → p y → p (x * y)) (x : adjoin R s) : p x 
Arguments: {R : Type uR} {A : Type uA} [CommSemiring R] [Semiring A] [Algebra R A] {s : Set A} {p : ↥(Algebra.adjoin R s) → Prop} (mem : ∀ (x : A) (h : x ∈ s), p ⟨x, ⋯⟩) (algebraMap : ∀ (r : R), p ((algebraMap R ↥(Algebra.adjoin R s)) r)) (add : ∀ (x y : ↥(Algebra.adjoin R s)), p x → p y → p (x + y)) (mul : ∀ (x y : ↥(Algebra.adjoin R s)), p x → p y → p (x * y)) (x : ↥(Algebra.adjoin R s))
Goal: p x
-- Algebra.adjoin_induction''
@[elab_as_elim]
theorem adjoin_induction'' {x : A} (hx : x ∈ adjoin R s)
    {p : (x : A) → x ∈ adjoin R s → Prop} (mem : ∀ x (h : x ∈ s), p x (subset_adjoin h))
    (algebraMap : ∀ (r : R), p (algebraMap R A r) (algebraMap_mem _ r))
    (add : ∀ x hx y hy, p x hx → p y hy → p (x + y) (add_mem hx hy))
    (mul : ∀ x hx y hy, p x hx → p y hy → p (x * y) (mul_mem hx hy)) :
    p x hx 
Arguments: {R : Type uR} {A : Type uA} [CommSemiring R] [Semiring A] [Algebra R A] {s : Set A} {x : A} (hx : x ∈ Algebra.adjoin R s) {p : (x : A) → x ∈ Algebra.adjoin R s → Prop} (mem : ∀ (x : A) (h : x ∈ s), p x ⋯) (algebraMap : ∀ (r : R), p ((algebraMap R A) r) ⋯) (add : ∀ (x : A) (hx : x ∈ Algebra.adjoin R s) (y : A) (hy : y ∈ Algebra.adjoin R s), p x hx → p y hy → p (x + y) ⋯) (mul : ∀ (x : A) (hx : x ∈ Algebra.adjoin R s) (y : A) (hy : y ∈ Algebra.adjoin R s), p x hx → p y hy → p (x * y) ⋯)
Goal: p x hx
-- Algebra.adjoin_adjoin_coe_preimage
@[simp]
theorem adjoin_adjoin_coe_preimage {s : Set A} : adjoin R (((↑) : adjoin R s → A) ⁻¹' s) = ⊤ 
Arguments: {R : Type uR} {A : Type uA} [CommSemiring R] [Semiring A] [Algebra R A] {s : Set A}
Goal: Algebra.adjoin R (Subtype.val ⁻¹' s) = ⊤
-- Algebra.adjoin_union
theorem adjoin_union (s t : Set A) : adjoin R (s ∪ t) = adjoin R s ⊔ adjoin R t 
Arguments: {R : Type uR} {A : Type uA} [CommSemiring R] [Semiring A] [Algebra R A] (s t : Set A)
Goal: Algebra.adjoin R (s ∪ t) = Algebra.adjoin R s ⊔ Algebra.adjoin R t
-- Algebra.adjoin_empty
@[simp]
theorem adjoin_empty : adjoin R (∅ : Set A) = ⊥ 
Arguments: (R : Type uR) (A : Type uA) [CommSemiring R] [Semiring A] [Algebra R A]
Goal: Algebra.adjoin R ∅ = ⊥
-- Algebra.adjoin_univ
@[simp]
theorem adjoin_univ : adjoin R (Set.univ : Set A) = ⊤ 
Arguments: (R : Type uR) (A : Type uA) [CommSemiring R] [Semiring A] [Algebra R A]
Goal: Algebra.adjoin R Set.univ = ⊤
-- Algebra.adjoin_eq_span
theorem adjoin_eq_span : Subalgebra.toSubmodule (adjoin R s) = span R (Submonoid.closure s) 
Arguments: (R : Type uR) {A : Type uA} [CommSemiring R] [Semiring A] [Algebra R A] (s : Set A)
Goal: Subalgebra.toSubmodule (Algebra.adjoin R s) = Submodule.span R ↑(Submonoid.closure s)
-- Algebra.span_le_adjoin
theorem span_le_adjoin (s : Set A) : span R s ≤ Subalgebra.toSubmodule (adjoin R s) 
Arguments: (R : Type uR) {A : Type uA} [CommSemiring R] [Semiring A] [Algebra R A] (s : Set A)
Goal: Submodule.span R s ≤ Subalgebra.toSubmodule (Algebra.adjoin R s)
-- Algebra.adjoin_toSubmodule_le
theorem adjoin_toSubmodule_le {s : Set A} {t : Submodule R A} :
    Subalgebra.toSubmodule (adjoin R s) ≤ t ↔ ↑(Submonoid.closure s) ⊆ (t : Set A) 
Arguments: (R : Type uR) {A : Type uA} [CommSemiring R] [Semiring A] [Algebra R A] {s : Set A} {t : Submodule R A}
Goal: Subalgebra.toSubmodule (Algebra.adjoin R s) ≤ t ↔ ↑(Submonoid.closure s) ⊆ ↑t
-- Algebra.adjoin_eq_span_of_subset
theorem adjoin_eq_span_of_subset {s : Set A} (hs : ↑(Submonoid.closure s) ⊆ (span R s : Set A)) :
    Subalgebra.toSubmodule (adjoin R s) = span R s 
Arguments: (R : Type uR) {A : Type uA} [CommSemiring R] [Semiring A] [Algebra R A] {s : Set A} (hs : ↑(Submonoid.closure s) ⊆ ↑(Submodule.span R s))
Goal: Subalgebra.toSubmodule (Algebra.adjoin R s) = Submodule.span R s
-- Algebra.adjoin_span
@[simp]
theorem adjoin_span {s : Set A} : adjoin R (Submodule.span R s : Set A) = adjoin R s 
Arguments: (R : Type uR) {A : Type uA} [CommSemiring R] [Semiring A] [Algebra R A] {s : Set A}
Goal: Algebra.adjoin R ↑(Submodule.span R s) = Algebra.adjoin R s
-- Algebra.adjoin_image
theorem adjoin_image (f : A →ₐ[R] B) (s : Set A) : adjoin R (f '' s) = (adjoin R s).map f 
Arguments: (R : Type uR) {A : Type uA} {B : Type uB} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] (f : A →ₐ[R] B) (s : Set A)
Goal: Algebra.adjoin R (⇑f '' s) = Subalgebra.map f (Algebra.adjoin R s)
-- Algebra.adjoin_insert_adjoin
@[simp]
theorem adjoin_insert_adjoin (x : A) : adjoin R (insert x ↑(adjoin R s)) = adjoin R (insert x s) 
Arguments: (R : Type uR) {A : Type uA} [CommSemiring R] [Semiring A] [Algebra R A] (s : Set A) (x : A)
Goal: Algebra.adjoin R (insert x ↑(Algebra.adjoin R s)) = Algebra.adjoin R (insert x s)
-- Algebra.adjoin_prod_le
theorem adjoin_prod_le (s : Set A) (t : Set B) :
    adjoin R (s ×ˢ t) ≤ (adjoin R s).prod (adjoin R t) 
Arguments: (R : Type uR) {A : Type uA} {B : Type uB} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] (s : Set A) (t : Set B)
Goal: Algebra.adjoin R (s ×ˢ t) ≤ (Algebra.adjoin R s).prod (Algebra.adjoin R t)