ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- AlgHom.FinitePresentation.comp
theorem comp {g : B →ₐ[R] C} {f : A →ₐ[R] B} (hg : g.FinitePresentation)
    (hf : f.FinitePresentation) : (g.comp f).FinitePresentation 
Arguments: {R : Type u_1} {A : Type u_2} {B : Type u_3} {C : Type u_4} [CommRing R] [CommRing A] [CommRing B] [CommRing C] [Algebra R A] [Algebra R B] [Algebra R C] {g : B →ₐ[R] C} {f : A →ₐ[R] B} (hg : g.FinitePresentation) (hf : f.FinitePresentation)
Goal: (g.comp f).FinitePresentation
-- AlgHom.FinitePresentation.comp_surjective
theorem comp_surjective {f : A →ₐ[R] B} {g : B →ₐ[R] C} (hf : f.FinitePresentation)
    (hg : Surjective g) (hker : g.toRingHom.ker.FG) : (g.comp f).FinitePresentation 
Arguments: {R : Type u_1} {A : Type u_2} {B : Type u_3} {C : Type u_4} [CommRing R] [CommRing A] [CommRing B] [CommRing C] [Algebra R A] [Algebra R B] [Algebra R C] {f : A →ₐ[R] B} {g : B →ₐ[R] C} (hf : f.FinitePresentation) (hg : Function.Surjective ⇑g) (hker : (RingHom.ker g.toRingHom).FG)
Goal: (g.comp f).FinitePresentation
-- AlgHom.FinitePresentation.of_surjective
theorem of_surjective (f : A →ₐ[R] B) (hf : Surjective f) (hker : f.toRingHom.ker.FG) :
    f.FinitePresentation 
Arguments: {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommRing R] [CommRing A] [CommRing B] [Algebra R A] [Algebra R B] (f : A →ₐ[R] B) (hf : Function.Surjective ⇑f) (hker : (RingHom.ker f.toRingHom).FG)
Goal: f.FinitePresentation
-- AlgHom.FinitePresentation.of_finiteType
theorem of_finiteType [IsNoetherianRing A] {f : A →ₐ[R] B} : f.FiniteType ↔ f.FinitePresentation 
Arguments: {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommRing R] [CommRing A] [CommRing B] [Algebra R A] [Algebra R B] [IsNoetherianRing A] {f : A →ₐ[R] B}
Goal: f.FiniteType ↔ f.FinitePresentation
-- AlgHom.FinitePresentation.of_comp_finiteType
nonrec theorem of_comp_finiteType (f : A →ₐ[R] B) {g : B →ₐ[R] C}
    (h : (g.comp f).FinitePresentation) (h' : f.FiniteType) : g.FinitePresentation 
Arguments: {R : Type u_1} {A : Type u_2} {B : Type u_3} {C : Type u_4} [CommRing R] [CommRing A] [CommRing B] [CommRing C] [Algebra R A] [Algebra R B] [Algebra R C] (f : A →ₐ[R] B) {g : B →ₐ[R] C} (h : (g.comp f).FinitePresentation) (h' : f.FiniteType)
Goal: g.FinitePresentation
-- PowerSeries.coeff_trunc
theorem coeff_trunc (m) (n) (φ : R⟦X⟧) :
    (trunc n φ).coeff m = if m < n then coeff R m φ else 0 
Arguments: {R : Type u_1} [Semiring R] (m n : ℕ) (φ : PowerSeries R)
Goal: (PowerSeries.trunc n φ).coeff m = if m < n then (PowerSeries.coeff R m) φ else 0
-- PowerSeries.trunc_zero
@[simp]
theorem trunc_zero (n) : trunc n (0 : R⟦X⟧) = 0 
Arguments: {R : Type u_1} [Semiring R] (n : ℕ)
Goal: PowerSeries.trunc n 0 = 0
-- PowerSeries.trunc_one
@[simp]
theorem trunc_one (n) : trunc (n + 1) (1 : R⟦X⟧) = 1 
Arguments: {R : Type u_1} [Semiring R] (n : ℕ)
Goal: PowerSeries.trunc (n + 1) 1 = 1
-- PowerSeries.trunc_C
@[simp]
theorem trunc_C (n) (a : R) : trunc (n + 1) (C R a) = Polynomial.C a 
Arguments: {R : Type u_1} [Semiring R] (n : ℕ) (a : R)
Goal: PowerSeries.trunc (n + 1) ((PowerSeries.C R) a) = Polynomial.C a
-- PowerSeries.trunc_add
@[simp]
theorem trunc_add (n) (φ ψ : R⟦X⟧) : trunc n (φ + ψ) = trunc n φ + trunc n ψ 
Arguments: {R : Type u_1} [Semiring R] (n : ℕ) (φ ψ : PowerSeries R)
Goal: PowerSeries.trunc n (φ + ψ) = PowerSeries.trunc n φ + PowerSeries.trunc n ψ
-- PowerSeries.trunc_succ
theorem trunc_succ (f : R⟦X⟧) (n : ℕ) :
    trunc n.succ f = trunc n f + Polynomial.monomial n (coeff R n f) 
Arguments: {R : Type u_1} [Semiring R] (f : PowerSeries R) (n : ℕ)
Goal: PowerSeries.trunc n.succ f = PowerSeries.trunc n f + (Polynomial.monomial n) ((PowerSeries.coeff R n) f)
-- PowerSeries.natDegree_trunc_lt
theorem natDegree_trunc_lt (f : R⟦X⟧) (n) : (trunc (n + 1) f).natDegree < n + 1 
Arguments: {R : Type u_1} [Semiring R] (f : PowerSeries R) (n : ℕ)
Goal: (PowerSeries.trunc (n + 1) f).natDegree < n + 1
-- PowerSeries.trunc_zero'
@[simp] lemma trunc_zero' {f : R⟦X⟧} : trunc 0 f = 0 
Arguments: {R : Type u_1} [Semiring R] {f : PowerSeries R}
Goal: PowerSeries.trunc 0 f = 0
-- PowerSeries.degree_trunc_lt
theorem degree_trunc_lt (f : R⟦X⟧) (n) : (trunc n f).degree < n 
Arguments: {R : Type u_1} [Semiring R] (f : PowerSeries R) (n : ℕ)
Goal: (PowerSeries.trunc n f).degree < ↑n
-- PowerSeries.eval₂_trunc_eq_sum_range
theorem eval₂_trunc_eq_sum_range {S : Type*} [Semiring S] (s : S) (G : R →+* S) (n) (f : R⟦X⟧) :
    (trunc n f).eval₂ G s = ∑ i ∈ range n, G (coeff R i f) * s ^ i 
Arguments: {R : Type u_1} [Semiring R] {S : Type u_2} [Semiring S] (s : S) (G : R →+* S) (n : ℕ) (f : PowerSeries R)
Goal: Polynomial.eval₂ G s (PowerSeries.trunc n f) = ∑ i ∈ Finset.range n, G ((PowerSeries.coeff R i) f) * s ^ i
-- PowerSeries.trunc_X
@[simp] theorem trunc_X (n) : trunc (n + 2) X = (Polynomial.X : R[X]) 
Arguments: {R : Type u_1} [Semiring R] (n : ℕ)
Goal: PowerSeries.trunc (n + 2) PowerSeries.X = Polynomial.X
-- PowerSeries.trunc_X_of
lemma trunc_X_of {n : ℕ} (hn : 2 ≤ n) : trunc n X = (Polynomial.X : R[X]) 
Arguments: {R : Type u_1} [Semiring R] {n : ℕ} (hn : 2 ≤ n)
Goal: PowerSeries.trunc n PowerSeries.X = Polynomial.X
-- PowerSeries.trunc_trunc_of_le
theorem trunc_trunc_of_le {n m} (f : R⟦X⟧) (hnm : n ≤ m := by rfl) :
    trunc n ↑(trunc m f) = trunc n f 
Arguments: {R : Type u_2} [CommSemiring R] {n m : ℕ} (f : PowerSeries R) (hnm : n ≤ m := by rfl)
Goal: PowerSeries.trunc n ↑(PowerSeries.trunc m f) = PowerSeries.trunc n f
-- PowerSeries.trunc_trunc
@[simp] theorem trunc_trunc {n} (f : R⟦X⟧) : trunc n ↑(trunc n f) = trunc n f 
Arguments: {R : Type u_2} [CommSemiring R] {n : ℕ} (f : PowerSeries R)
Goal: PowerSeries.trunc n ↑(PowerSeries.trunc n f) = PowerSeries.trunc n f
-- PowerSeries.trunc_trunc_mul
@[simp] theorem trunc_trunc_mul {n} (f g : R ⟦X⟧) :
    trunc n ((trunc n f) * g : R⟦X⟧) = trunc n (f * g) 
Arguments: {R : Type u_2} [CommSemiring R] {n : ℕ} (f g : PowerSeries R)
Goal: PowerSeries.trunc n (↑(PowerSeries.trunc n f) * g) = PowerSeries.trunc n (f * g)
-- PowerSeries.trunc_mul_trunc
@[simp] theorem trunc_mul_trunc {n} (f g : R ⟦X⟧) :
    trunc n (f * (trunc n g) : R⟦X⟧) = trunc n (f * g) 
Arguments: {R : Type u_2} [CommSemiring R] {n : ℕ} (f g : PowerSeries R)
Goal: PowerSeries.trunc n (f * ↑(PowerSeries.trunc n g)) = PowerSeries.trunc n (f * g)
-- PowerSeries.trunc_trunc_mul_trunc
theorem trunc_trunc_mul_trunc {n} (f g : R⟦X⟧) :
    trunc n (trunc n f * trunc n g : R⟦X⟧) = trunc n (f * g) 
Arguments: {R : Type u_2} [CommSemiring R] {n : ℕ} (f g : PowerSeries R)
Goal: PowerSeries.trunc n (↑(PowerSeries.trunc n f) * ↑(PowerSeries.trunc n g)) = PowerSeries.trunc n (f * g)
-- PowerSeries.trunc_trunc_pow
@[simp] theorem trunc_trunc_pow (f : R⟦X⟧) (n a : ℕ) :
    trunc n ((trunc n f : R⟦X⟧) ^ a) = trunc n (f ^ a) 
Arguments: {R : Type u_2} [CommSemiring R] (f : PowerSeries R) (n a : ℕ)
Goal: PowerSeries.trunc n (↑(PowerSeries.trunc n f) ^ a) = PowerSeries.trunc n (f ^ a)
-- PowerSeries.trunc_coe_eq_self
theorem trunc_coe_eq_self {n} {f : R[X]} (hn : natDegree f < n) : trunc n (f : R⟦X⟧) = f 
Arguments: {R : Type u_2} [CommSemiring R] {n : ℕ} {f : Polynomial R} (hn : f.natDegree < n)
Goal: PowerSeries.trunc n ↑f = f
-- PowerSeries.coeff_coe_trunc_of_lt
theorem coeff_coe_trunc_of_lt {n m} {f : R⟦X⟧} (h : n < m) :
    coeff R n (trunc m f) = coeff R n f 
Arguments: {R : Type u_2} [CommSemiring R] {n m : ℕ} {f : PowerSeries R} (h : n < m)
Goal: (PowerSeries.coeff R n) ↑(PowerSeries.trunc m f) = (PowerSeries.coeff R n) f
-- PowerSeries.coeff_mul_eq_coeff_trunc_mul_trunc₂
theorem coeff_mul_eq_coeff_trunc_mul_trunc₂ {n a b} (f g) (ha : n < a) (hb : n < b) :
    coeff R n (f * g) = coeff R n (trunc a f * trunc b g) 
Arguments: {R : Type u_2} [CommSemiring R] {n a b : ℕ} (f g : PowerSeries R) (ha : n < a) (hb : n < b)
Goal: (PowerSeries.coeff R n) (f * g) = (PowerSeries.coeff R n) (↑(PowerSeries.trunc a f) * ↑(PowerSeries.trunc b g))
-- PowerSeries.coeff_mul_eq_coeff_trunc_mul_trunc
theorem coeff_mul_eq_coeff_trunc_mul_trunc {d n} (f g) (h : d < n) :
    coeff R d (f * g) = coeff R d (trunc n f * trunc n g) 
Arguments: {R : Type u_2} [CommSemiring R] {d n : ℕ} (f g : PowerSeries R) (h : d < n)
Goal: (PowerSeries.coeff R d) (f * g) = (PowerSeries.coeff R d) (↑(PowerSeries.trunc n f) * ↑(PowerSeries.trunc n g))
-- Algebra.FiniteType.out
class Algebra.FiniteType [CommSemiring R] [Semiring A] [Algebra R A] : Prop where
  out : (⊤ : Subalgebra R A).FG
Arguments: {R : Type uR} {A : Type uA} [CommSemiring R] [Semiring A] [Algebra R A] [self : Algebra.FiniteType R A]
Goal: ⊤.FG
-- Algebra.FiniteType.self
theorem self : FiniteType R R 
Arguments: (R : Type uR) [CommSemiring R]
Goal: Algebra.FiniteType R R
-- Algebra.FiniteType.polynomial
protected theorem polynomial : FiniteType R R[X] 
Arguments: (R : Type uR) [CommSemiring R]
Goal: Algebra.FiniteType R R[X]
-- Algebra.FiniteType.freeAlgebra
protected theorem freeAlgebra (ι : Type*) [Finite ι] : FiniteType R (FreeAlgebra R ι) 
Arguments: (R : Type uR) [CommSemiring R] (ι : Type u_1) [Finite ι]
Goal: Algebra.FiniteType R (FreeAlgebra R ι)
-- Algebra.FiniteType.mvPolynomial
protected theorem mvPolynomial (ι : Type*) [Finite ι] : FiniteType R (MvPolynomial ι R) 
Arguments: (R : Type uR) [CommSemiring R] (ι : Type u_1) [Finite ι]
Goal: Algebra.FiniteType R (MvPolynomial ι R)
-- Algebra.FiniteType.of_restrictScalars_finiteType
theorem of_restrictScalars_finiteType [Algebra S A] [IsScalarTower R S A] [hA : FiniteType R A] :
    FiniteType S A 
Arguments: (R : Type uR) (S : Type uS) (A : Type uA) [CommSemiring R] [CommSemiring S] [Semiring A] [Algebra R S] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [hA : Algebra.FiniteType R A]
Goal: Algebra.FiniteType S A
-- Algebra.FiniteType.of_surjective
theorem of_surjective (hRA : FiniteType R A) (f : A →ₐ[R] B) (hf : Surjective f) : FiniteType R B 
Arguments: {R : Type uR} {A : Type uA} {B : Type uB} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] (hRA : Algebra.FiniteType R A) (f : A →ₐ[R] B) (hf : Function.Surjective ⇑f)
Goal: Algebra.FiniteType R B
-- Algebra.FiniteType.equiv
theorem equiv (hRA : FiniteType R A) (e : A ≃ₐ[R] B) : FiniteType R B 
Arguments: {R : Type uR} {A : Type uA} {B : Type uB} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] (hRA : Algebra.FiniteType R A) (e : A ≃ₐ[R] B)
Goal: Algebra.FiniteType R B
-- Algebra.FiniteType.trans
theorem trans [Algebra S A] [IsScalarTower R S A] (hRS : FiniteType R S) (hSA : FiniteType S A) :
    FiniteType R A 
Arguments: {R : Type uR} {S : Type uS} {A : Type uA} [CommSemiring R] [CommSemiring S] [Semiring A] [Algebra R S] [Algebra R A] [Algebra S A] [IsScalarTower R S A] (hRS : Algebra.FiniteType R S) (hSA : Algebra.FiniteType S A)
Goal: Algebra.FiniteType R A
-- Algebra.FiniteType.iff_quotient_freeAlgebra
theorem iff_quotient_freeAlgebra :
    FiniteType R A ↔
      ∃ (s : Finset A) (f : FreeAlgebra R s →ₐ[R] A), Surjective f 
Arguments: {R : Type uR} {A : Type uA} [CommSemiring R] [Semiring A] [Algebra R A]
Goal: Algebra.FiniteType R A ↔ ∃ s f, Function.Surjective ⇑f
-- Algebra.FiniteType.iff_quotient_mvPolynomial
theorem iff_quotient_mvPolynomial :
    FiniteType R S ↔
      ∃ (s : Finset S) (f : MvPolynomial { x // x ∈ s } R →ₐ[R] S), Surjective f 
Arguments: {R : Type uR} {S : Type uS} [CommSemiring R] [CommSemiring S] [Algebra R S]
Goal: Algebra.FiniteType R S ↔ ∃ s f, Function.Surjective ⇑f
-- Algebra.FiniteType.iff_quotient_freeAlgebra'
theorem iff_quotient_freeAlgebra' : FiniteType R A ↔
    ∃ (ι : Type uA) (_ : Fintype ι) (f : FreeAlgebra R ι →ₐ[R] A), Surjective f 
Arguments: {R : Type uR} {A : Type uA} [CommSemiring R] [Semiring A] [Algebra R A]
Goal: Algebra.FiniteType R A ↔ ∃ ι x f, Function.Surjective ⇑f
-- Algebra.FiniteType.iff_quotient_mvPolynomial'
theorem iff_quotient_mvPolynomial' : FiniteType R S ↔
    ∃ (ι : Type uS) (_ : Fintype ι) (f : MvPolynomial ι R →ₐ[R] S), Surjective f 
Arguments: {R : Type uR} {S : Type uS} [CommSemiring R] [CommSemiring S] [Algebra R S]
Goal: Algebra.FiniteType R S ↔ ∃ ι x f, Function.Surjective ⇑f
-- Algebra.FiniteType.iff_quotient_mvPolynomial''
theorem iff_quotient_mvPolynomial'' :
    FiniteType R S ↔ ∃ (n : ℕ) (f : MvPolynomial (Fin n) R →ₐ[R] S), Surjective f 
Arguments: {R : Type uR} {S : Type uS} [CommSemiring R] [CommSemiring S] [Algebra R S]
Goal: Algebra.FiniteType R S ↔ ∃ n f, Function.Surjective ⇑f
-- Algebra.FiniteType.isNoetherianRing
theorem isNoetherianRing (R S : Type*) [CommRing R] [CommRing S] [Algebra R S]
    [h : Algebra.FiniteType R S] [IsNoetherianRing R] : IsNoetherianRing S 
Arguments: (R : Type u_1) (S : Type u_2) [CommRing R] [CommRing S] [Algebra R S] [h : Algebra.FiniteType R S] [IsNoetherianRing R]
Goal: IsNoetherianRing S
-- Subalgebra.fg_iff_finiteType
theorem _root_.Subalgebra.fg_iff_finiteType (S : Subalgebra R A) : S.FG ↔ Algebra.FiniteType R S 
Arguments: {R : Type uR} {A : Type uA} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A)
Goal: S.FG ↔ Algebra.FiniteType R ↥S
-- RingHom.Finite.finiteType
theorem finiteType {f : A →+* B} (hf : f.Finite) : FiniteType f 
Arguments: {A : Type u_1} {B : Type u_2} [CommRing A] [CommRing B] {f : A →+* B} (hf : f.Finite)
Goal: f.FiniteType
-- RingHom.FiniteType.id
theorem id : FiniteType (RingHom.id A) 
Arguments: (A : Type u_1) [CommRing A]
Goal: (RingHom.id A).FiniteType
-- RingHom.FiniteType.comp_surjective
theorem comp_surjective {f : A →+* B} {g : B →+* C} (hf : f.FiniteType) (hg : Surjective g) :
    (g.comp f).FiniteType 
Arguments: {A : Type u_1} {B : Type u_2} {C : Type u_3} [CommRing A] [CommRing B] [CommRing C] {f : A →+* B} {g : B →+* C} (hf : f.FiniteType) (hg : Function.Surjective ⇑g)
Goal: (g.comp f).FiniteType
-- RingHom.FiniteType.of_surjective
theorem of_surjective (f : A →+* B) (hf : Surjective f) : f.FiniteType 
Arguments: {A : Type u_1} {B : Type u_2} [CommRing A] [CommRing B] (f : A →+* B) (hf : Function.Surjective ⇑f)
Goal: f.FiniteType
-- RingHom.FiniteType.comp
theorem comp {g : B →+* C} {f : A →+* B} (hg : g.FiniteType) (hf : f.FiniteType) :
    (g.comp f).FiniteType 
Arguments: {A : Type u_1} {B : Type u_2} {C : Type u_3} [CommRing A] [CommRing B] [CommRing C] {g : B →+* C} {f : A →+* B} (hg : g.FiniteType) (hf : f.FiniteType)
Goal: (g.comp f).FiniteType
-- RingHom.FiniteType.of_finite
theorem of_finite {f : A →+* B} (hf : f.Finite) : f.FiniteType 
Arguments: {A : Type u_1} {B : Type u_2} [CommRing A] [CommRing B] {f : A →+* B} (hf : f.Finite)
Goal: f.FiniteType
-- RingHom.FiniteType.of_comp_finiteType
theorem of_comp_finiteType {f : A →+* B} {g : B →+* C} (h : (g.comp f).FiniteType) :
    g.FiniteType 
Arguments: {A : Type u_1} {B : Type u_2} {C : Type u_3} [CommRing A] [CommRing B] [CommRing C] {f : A →+* B} {g : B →+* C} (h : (g.comp f).FiniteType)
Goal: g.FiniteType
-- AlgHom.Finite.finiteType
theorem finiteType {f : A →ₐ[R] B} (hf : f.Finite) : FiniteType f 
Arguments: {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommRing R] [CommRing A] [CommRing B] [Algebra R A] [Algebra R B] {f : A →ₐ[R] B} (hf : f.Finite)
Goal: f.FiniteType
-- AlgHom.FiniteType.id
theorem id : FiniteType (AlgHom.id R A) 
Arguments: (R : Type u_1) (A : Type u_2) [CommRing R] [CommRing A] [Algebra R A]
Goal: (AlgHom.id R A).FiniteType
-- AlgHom.FiniteType.comp
theorem comp {g : B →ₐ[R] C} {f : A →ₐ[R] B} (hg : g.FiniteType) (hf : f.FiniteType) :
    (g.comp f).FiniteType 
Arguments: {R : Type u_1} {A : Type u_2} {B : Type u_3} {C : Type u_4} [CommRing R] [CommRing A] [CommRing B] [CommRing C] [Algebra R A] [Algebra R B] [Algebra R C] {g : B →ₐ[R] C} {f : A →ₐ[R] B} (hg : g.FiniteType) (hf : f.FiniteType)
Goal: (g.comp f).FiniteType
-- AlgHom.FiniteType.comp_surjective
theorem comp_surjective {f : A →ₐ[R] B} {g : B →ₐ[R] C} (hf : f.FiniteType) (hg : Surjective g) :
    (g.comp f).FiniteType 
Arguments: {R : Type u_1} {A : Type u_2} {B : Type u_3} {C : Type u_4} [CommRing R] [CommRing A] [CommRing B] [CommRing C] [Algebra R A] [Algebra R B] [Algebra R C] {f : A →ₐ[R] B} {g : B →ₐ[R] C} (hf : f.FiniteType) (hg : Function.Surjective ⇑g)
Goal: (g.comp f).FiniteType
-- AlgHom.FiniteType.of_surjective
theorem of_surjective (f : A →ₐ[R] B) (hf : Surjective f) : f.FiniteType 
Arguments: {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommRing R] [CommRing A] [CommRing B] [Algebra R A] [Algebra R B] (f : A →ₐ[R] B) (hf : Function.Surjective ⇑f)
Goal: f.FiniteType
-- AlgHom.FiniteType.of_comp_finiteType
theorem of_comp_finiteType {f : A →ₐ[R] B} {g : B →ₐ[R] C} (h : (g.comp f).FiniteType) :
    g.FiniteType 
Arguments: {R : Type u_1} {A : Type u_2} {B : Type u_3} {C : Type u_4} [CommRing R] [CommRing A] [CommRing B] [CommRing C] [Algebra R A] [Algebra R B] [Algebra R C] {f : A →ₐ[R] B} {g : B →ₐ[R] C} (h : (g.comp f).FiniteType)
Goal: g.FiniteType
-- AddMonoidAlgebra.mem_adjoin_support
theorem mem_adjoin_support (f : R[M]) : f ∈ adjoin R (of' R M '' f.support) 
Arguments: {R : Type u_1} {M : Type u_2} [CommSemiring R] [AddMonoid M] (f : AddMonoidAlgebra R M)
Goal: f ∈ Algebra.adjoin R (AddMonoidAlgebra.of' R M '' ↑f.support)
-- AddMonoidAlgebra.support_gen_of_gen
theorem support_gen_of_gen {S : Set R[M]} (hS : Algebra.adjoin R S = ⊤) :
    Algebra.adjoin R (⋃ f ∈ S, of' R M '' (f.support : Set M)) = ⊤ 
Arguments: {R : Type u_1} {M : Type u_2} [CommSemiring R] [AddMonoid M] {S : Set (AddMonoidAlgebra R M)} (hS : Algebra.adjoin R S = ⊤)
Goal: Algebra.adjoin R (⋃ f ∈ S, AddMonoidAlgebra.of' R M '' ↑f.support) = ⊤
-- AddMonoidAlgebra.support_gen_of_gen'
theorem support_gen_of_gen' {S : Set R[M]} (hS : Algebra.adjoin R S = ⊤) :
    Algebra.adjoin R (of' R M '' ⋃ f ∈ S, (f.support : Set M)) = ⊤ 
Arguments: {R : Type u_1} {M : Type u_2} [CommSemiring R] [AddMonoid M] {S : Set (AddMonoidAlgebra R M)} (hS : Algebra.adjoin R S = ⊤)
Goal: Algebra.adjoin R (AddMonoidAlgebra.of' R M '' ⋃ f ∈ S, ↑f.support) = ⊤
-- AddMonoidAlgebra.exists_finset_adjoin_eq_top
theorem exists_finset_adjoin_eq_top [h : FiniteType R R[M]] :
    ∃ G : Finset M, Algebra.adjoin R (of' R M '' G) = ⊤ 
Arguments: {R : Type u_1} {M : Type u_2} [CommRing R] [AddMonoid M] [h : Algebra.FiniteType R (AddMonoidAlgebra R M)]
Goal: ∃ G, Algebra.adjoin R (AddMonoidAlgebra.of' R M '' ↑G) = ⊤
-- AddMonoidAlgebra.of'_mem_span
theorem of'_mem_span [Nontrivial R] {m : M} {S : Set M} :
    of' R M m ∈ span R (of' R M '' S) ↔ m ∈ S 
Arguments: {R : Type u_1} {M : Type u_2} [CommRing R] [AddMonoid M] [Nontrivial R] {m : M} {S : Set M}
Goal: AddMonoidAlgebra.of' R M m ∈ Submodule.span R (AddMonoidAlgebra.of' R M '' S) ↔ m ∈ S
-- AddMonoidAlgebra.mem_closure_of_mem_span_closure
theorem mem_closure_of_mem_span_closure [Nontrivial R] {m : M} {S : Set M}
    (h : of' R M m ∈ span R (Submonoid.closure (of' R M '' S) : Set R[M])) :
    m ∈ closure S 
Arguments: {R : Type u_1} {M : Type u_2} [CommRing R] [AddMonoid M] [Nontrivial R] {m : M} {S : Set M} (h : AddMonoidAlgebra.of' R M m ∈ Submodule.span R ↑(Submonoid.closure (AddMonoidAlgebra.of' R M '' S)))
Goal: m ∈ AddSubmonoid.closure S
-- AddMonoidAlgebra.mvPolynomial_aeval_of_surjective_of_closure
theorem mvPolynomial_aeval_of_surjective_of_closure [AddCommMonoid M] [CommSemiring R] {S : Set M}
    (hS : closure S = ⊤) :
    Function.Surjective
      (MvPolynomial.aeval fun s : S => of' R M ↑s : MvPolynomial S R → R[M]) 
Arguments: {R : Type u_1} {M : Type u_2} [AddCommMonoid M] [CommSemiring R] {S : Set M} (hS : AddSubmonoid.closure S = ⊤)
Goal: Function.Surjective ⇑(MvPolynomial.aeval fun s => AddMonoidAlgebra.of' R M ↑s)
-- AddMonoidAlgebra.freeAlgebra_lift_of_surjective_of_closure
theorem freeAlgebra_lift_of_surjective_of_closure [CommSemiring R] {S : Set M}
    (hS : closure S = ⊤) :
    Function.Surjective
      (FreeAlgebra.lift R fun s : S => of' R M ↑s : FreeAlgebra R S → R[M]) 
Arguments: {R : Type u_1} {M : Type u_2} [AddMonoid M] [CommSemiring R] {S : Set M} (hS : AddSubmonoid.closure S = ⊤)
Goal: Function.Surjective ⇑((FreeAlgebra.lift R) fun s => AddMonoidAlgebra.of' R M ↑s)
-- AddMonoidAlgebra.finiteType_iff_fg
theorem finiteType_iff_fg [CommRing R] [Nontrivial R] :
    FiniteType R R[M] ↔ AddMonoid.FG M 
Arguments: {R : Type u_1} {M : Type u_2} [AddMonoid M] [CommRing R] [Nontrivial R]
Goal: Algebra.FiniteType R (AddMonoidAlgebra R M) ↔ AddMonoid.FG M
-- AddMonoidAlgebra.fg_of_finiteType
theorem fg_of_finiteType [CommRing R] [Nontrivial R] [h : FiniteType R R[M]] :
    AddMonoid.FG M 
Arguments: {R : Type u_1} {M : Type u_2} [AddMonoid M] [CommRing R] [Nontrivial R] [h : Algebra.FiniteType R (AddMonoidAlgebra R M)]
Goal: AddMonoid.FG M
-- AddMonoidAlgebra.finiteType_iff_group_fg
theorem finiteType_iff_group_fg {G : Type*} [AddCommGroup G] [CommRing R] [Nontrivial R] :
    FiniteType R R[G] ↔ AddGroup.FG G 
Arguments: {R : Type u_1} {G : Type u_3} [AddCommGroup G] [CommRing R] [Nontrivial R]
Goal: Algebra.FiniteType R (AddMonoidAlgebra R G) ↔ AddGroup.FG G
-- MonoidAlgebra.mem_adjoin_support
theorem mem_adjoin_support (f : MonoidAlgebra R M) : f ∈ adjoin R (of R M '' f.support) 
Arguments: {R : Type u_1} {M : Type u_2} [CommSemiring R] [Monoid M] (f : MonoidAlgebra R M)
Goal: f ∈ Algebra.adjoin R (⇑(MonoidAlgebra.of R M) '' ↑f.support)
-- MonoidAlgebra.support_gen_of_gen
theorem support_gen_of_gen {S : Set (MonoidAlgebra R M)} (hS : Algebra.adjoin R S = ⊤) :
    Algebra.adjoin R (⋃ f ∈ S, of R M '' (f.support : Set M)) = ⊤ 
Arguments: {R : Type u_1} {M : Type u_2} [CommSemiring R] [Monoid M] {S : Set (MonoidAlgebra R M)} (hS : Algebra.adjoin R S = ⊤)
Goal: Algebra.adjoin R (⋃ f ∈ S, ⇑(MonoidAlgebra.of R M) '' ↑f.support) = ⊤
-- MonoidAlgebra.support_gen_of_gen'
theorem support_gen_of_gen' {S : Set (MonoidAlgebra R M)} (hS : Algebra.adjoin R S = ⊤) :
    Algebra.adjoin R (of R M '' ⋃ f ∈ S, (f.support : Set M)) = ⊤ 
Arguments: {R : Type u_1} {M : Type u_2} [CommSemiring R] [Monoid M] {S : Set (MonoidAlgebra R M)} (hS : Algebra.adjoin R S = ⊤)
Goal: Algebra.adjoin R (⇑(MonoidAlgebra.of R M) '' ⋃ f ∈ S, ↑f.support) = ⊤
-- MonoidAlgebra.exists_finset_adjoin_eq_top
theorem exists_finset_adjoin_eq_top [h : FiniteType R (MonoidAlgebra R M)] :
    ∃ G : Finset M, Algebra.adjoin R (of R M '' G) = ⊤ 
Arguments: {R : Type u_1} {M : Type u_2} [CommRing R] [Monoid M] [h : Algebra.FiniteType R (MonoidAlgebra R M)]
Goal: ∃ G, Algebra.adjoin R (⇑(MonoidAlgebra.of R M) '' ↑G) = ⊤
-- MonoidAlgebra.of_mem_span_of_iff
theorem of_mem_span_of_iff [Nontrivial R] {m : M} {S : Set M} :
    of R M m ∈ span R (of R M '' S) ↔ m ∈ S 
Arguments: {R : Type u_1} {M : Type u_2} [CommRing R] [Monoid M] [Nontrivial R] {m : M} {S : Set M}
Goal: (MonoidAlgebra.of R M) m ∈ Submodule.span R (⇑(MonoidAlgebra.of R M) '' S) ↔ m ∈ S
-- MonoidAlgebra.mem_closure_of_mem_span_closure
theorem mem_closure_of_mem_span_closure [Nontrivial R] {m : M} {S : Set M}
    (h : of R M m ∈ span R (Submonoid.closure (of R M '' S) : Set (MonoidAlgebra R M))) :
    m ∈ closure S 
Arguments: {R : Type u_1} {M : Type u_2} [CommRing R] [Monoid M] [Nontrivial R] {m : M} {S : Set M} (h : (MonoidAlgebra.of R M) m ∈ Submodule.span R ↑(Submonoid.closure (⇑(MonoidAlgebra.of R M) '' S)))
Goal: m ∈ Submonoid.closure S
-- MonoidAlgebra.mvPolynomial_aeval_of_surjective_of_closure
theorem mvPolynomial_aeval_of_surjective_of_closure [CommMonoid M] [CommSemiring R] {S : Set M}
    (hS : closure S = ⊤) :
    Function.Surjective
      (MvPolynomial.aeval fun s : S => of R M ↑s : MvPolynomial S R → MonoidAlgebra R M) 
Arguments: {R : Type u_1} {M : Type u_2} [CommMonoid M] [CommSemiring R] {S : Set M} (hS : Submonoid.closure S = ⊤)
Goal: Function.Surjective ⇑(MvPolynomial.aeval fun s => (MonoidAlgebra.of R M) ↑s)
-- MonoidAlgebra.freeAlgebra_lift_of_surjective_of_closure
theorem freeAlgebra_lift_of_surjective_of_closure [CommSemiring R] {S : Set M}
    (hS : closure S = ⊤) :
    Function.Surjective
      (FreeAlgebra.lift R fun s : S => of R M ↑s : FreeAlgebra R S → MonoidAlgebra R M) 
Arguments: {R : Type u_1} {M : Type u_2} [Monoid M] [CommSemiring R] {S : Set M} (hS : Submonoid.closure S = ⊤)
Goal: Function.Surjective ⇑((FreeAlgebra.lift R) fun s => (MonoidAlgebra.of R M) ↑s)
-- MonoidAlgebra.finiteType_iff_fg
theorem finiteType_iff_fg [CommRing R] [Nontrivial R] :
    FiniteType R (MonoidAlgebra R M) ↔ Monoid.FG M 
Arguments: {R : Type u_1} {M : Type u_2} [Monoid M] [CommRing R] [Nontrivial R]
Goal: Algebra.FiniteType R (MonoidAlgebra R M) ↔ Monoid.FG M