ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- _private.Mathlib.RingTheory.MvPolynomial.NewtonIdentities.0.MvPolynomial.NewtonIdentities.esymm_mul_psum_to_weight
private theorem esymm_mul_psum_to_weight (k : ℕ) :
    ∑ a ∈ (antidiagonal k).filter (fun a ↦ a.fst < k),
    (-1) ^ a.fst * esymm σ R a.fst * psum σ R a.snd =
    ∑ t ∈ filter (fun t ↦ card t.fst < k) (pairs σ k), weight σ R k t 
Arguments: (σ : Type u_1) [Fintype σ] [DecidableEq σ] (R : Type u_2) [CommRing R] (k : ℕ)
Goal: ∑ a ∈ Finset.filter (fun a => a.1 < k) (Finset.antidiagonal k),
    (-1) ^ a.1 * MvPolynomial.esymm σ R a.1 * MvPolynomial.psum σ R a.2 =
  ∑ t ∈ Finset.filter (fun t => t.1.card < k) (MvPolynomial.NewtonIdentities.pairs σ k),
    MvPolynomial.NewtonIdentities.weight σ R k t
-- MvPolynomial.mul_esymm_eq_sum
theorem mul_esymm_eq_sum (k : ℕ) : k * esymm σ R k =
    (-1) ^ (k + 1) * ∑ a ∈ (antidiagonal k).filter (fun a ↦ a.fst < k),
    (-1) ^ a.fst * esymm σ R a.fst * psum σ R a.snd 
Arguments: (σ : Type u_1) [Fintype σ] (R : Type u_2) [CommRing R] (k : ℕ)
Goal: ↑k * MvPolynomial.esymm σ R k =
  (-1) ^ (k + 1) *
    ∑ a ∈ Finset.filter (fun a => a.1 < k) (Finset.antidiagonal k),
      (-1) ^ a.1 * MvPolynomial.esymm σ R a.1 * MvPolynomial.psum σ R a.2
-- MvPolynomial.sum_antidiagonal_card_esymm_psum_eq_zero
theorem sum_antidiagonal_card_esymm_psum_eq_zero :
    ∑ a ∈ antidiagonal (Fintype.card σ), (-1) ^ a.fst * esymm σ R a.fst * psum σ R a.snd = 0 
Arguments: (σ : Type u_1) [Fintype σ] (R : Type u_2) [CommRing R]
Goal: ∑ a ∈ Finset.antidiagonal (Fintype.card σ), (-1) ^ a.1 * MvPolynomial.esymm σ R a.1 * MvPolynomial.psum σ R a.2 = 0
-- MvPolynomial.psum_eq_mul_esymm_sub_sum
theorem psum_eq_mul_esymm_sub_sum (k : ℕ) (h : 0 < k) : psum σ R k =
    (-1) ^ (k + 1) * k * esymm σ R k -
    ∑ a ∈ (antidiagonal k).filter (fun a ↦ a.fst ∈ Set.Ioo 0 k),
    (-1) ^ a.fst * esymm σ R a.fst * psum σ R a.snd 
Arguments: (σ : Type u_1) [Fintype σ] (R : Type u_2) [CommRing R] (k : ℕ) (h : 0 < k)
Goal: MvPolynomial.psum σ R k =
  (-1) ^ (k + 1) * ↑k * MvPolynomial.esymm σ R k -
    ∑ a ∈ Finset.filter (fun a => a.1 ∈ Set.Ioo 0 k) (Finset.antidiagonal k),
      (-1) ^ a.1 * MvPolynomial.esymm σ R a.1 * MvPolynomial.psum σ R a.2
-- Complex.isPrimitiveRoot_exp_of_coprime
theorem isPrimitiveRoot_exp_of_coprime (i n : ℕ) (h0 : n ≠ 0) (hi : i.Coprime n) :
    IsPrimitiveRoot (exp (2 * π * I * (i / n))) n 
Arguments: (i n : ℕ) (h0 : n ≠ 0) (hi : i.Coprime n)
Goal: IsPrimitiveRoot (Complex.exp (2 * ↑Real.pi * Complex.I * (↑i / ↑n))) n
-- Complex.isPrimitiveRoot_exp
theorem isPrimitiveRoot_exp (n : ℕ) (h0 : n ≠ 0) : IsPrimitiveRoot (exp (2 * π * I / n)) n 
Arguments: (n : ℕ) (h0 : n ≠ 0)
Goal: IsPrimitiveRoot (Complex.exp (2 * ↑Real.pi * Complex.I / ↑n)) n
-- Complex.isPrimitiveRoot_iff
theorem isPrimitiveRoot_iff (ζ : ℂ) (n : ℕ) (hn : n ≠ 0) :
    IsPrimitiveRoot ζ n ↔ ∃ i < (n : ℕ), ∃ _ : i.Coprime n, exp (2 * π * I * (i / n)) = ζ 
Arguments: (ζ : ℂ) (n : ℕ) (hn : n ≠ 0)
Goal: IsPrimitiveRoot ζ n ↔ ∃ i < n, ∃ (_ : i.Coprime n), Complex.exp (2 * ↑Real.pi * Complex.I * (↑i / ↑n)) = ζ
-- Complex.mem_rootsOfUnity
nonrec theorem mem_rootsOfUnity (n : ℕ+) (x : Units ℂ) :
    x ∈ rootsOfUnity n ℂ ↔ ∃ i < (n : ℕ), exp (2 * π * I * (i / n)) = x 
Arguments: (n : ℕ+) (x : ℂˣ)
Goal: x ∈ rootsOfUnity n ℂ ↔ ∃ i < ↑n, Complex.exp (2 * ↑Real.pi * Complex.I * (↑i / ↑↑n)) = ↑x
-- Complex.card_rootsOfUnity
theorem card_rootsOfUnity (n : ℕ+) : Fintype.card (rootsOfUnity n ℂ) = n 
Arguments: (n : ℕ+)
Goal: Fintype.card ↥(rootsOfUnity n ℂ) = ↑n
-- Complex.card_primitiveRoots
theorem card_primitiveRoots (k : ℕ) : (primitiveRoots k ℂ).card = φ k 
Arguments: (k : ℕ)
Goal: (primitiveRoots k ℂ).card = k.totient
-- IsPrimitiveRoot.norm'_eq_one
theorem IsPrimitiveRoot.norm'_eq_one {ζ : ℂ} {n : ℕ} (h : IsPrimitiveRoot ζ n) (hn : n ≠ 0) :
    ‖ζ‖ = 1 
Arguments: {ζ : ℂ} {n : ℕ} (h : IsPrimitiveRoot ζ n) (hn : n ≠ 0)
Goal: ‖ζ‖ = 1
-- IsPrimitiveRoot.nnnorm_eq_one
theorem IsPrimitiveRoot.nnnorm_eq_one {ζ : ℂ} {n : ℕ} (h : IsPrimitiveRoot ζ n) (hn : n ≠ 0) :
    ‖ζ‖₊ = 1 
Arguments: {ζ : ℂ} {n : ℕ} (h : IsPrimitiveRoot ζ n) (hn : n ≠ 0)
Goal: ‖ζ‖₊ = 1
-- IsPrimitiveRoot.arg_ext
theorem IsPrimitiveRoot.arg_ext {n m : ℕ} {ζ μ : ℂ} (hζ : IsPrimitiveRoot ζ n)
    (hμ : IsPrimitiveRoot μ m) (hn : n ≠ 0) (hm : m ≠ 0) (h : ζ.arg = μ.arg) : ζ = μ 
Arguments: {n m : ℕ} {ζ μ : ℂ} (hζ : IsPrimitiveRoot ζ n) (hμ : IsPrimitiveRoot μ m) (hn : n ≠ 0) (hm : m ≠ 0) (h : ζ.arg = μ.arg)
Goal: ζ = μ
-- IsPrimitiveRoot.arg_eq_zero_iff
theorem IsPrimitiveRoot.arg_eq_zero_iff {n : ℕ} {ζ : ℂ} (hζ : IsPrimitiveRoot ζ n) (hn : n ≠ 0) :
    ζ.arg = 0 ↔ ζ = 1 
Arguments: {n : ℕ} {ζ : ℂ} (hζ : IsPrimitiveRoot ζ n) (hn : n ≠ 0)
Goal: ζ.arg = 0 ↔ ζ = 1
-- IsPrimitiveRoot.arg_eq_pi_iff
theorem IsPrimitiveRoot.arg_eq_pi_iff {n : ℕ} {ζ : ℂ} (hζ : IsPrimitiveRoot ζ n) (hn : n ≠ 0) :
    ζ.arg = Real.pi ↔ ζ = -1 
Arguments: {n : ℕ} {ζ : ℂ} (hζ : IsPrimitiveRoot ζ n) (hn : n ≠ 0)
Goal: ζ.arg = Real.pi ↔ ζ = -1
-- IsPrimitiveRoot.arg
theorem IsPrimitiveRoot.arg {n : ℕ} {ζ : ℂ} (h : IsPrimitiveRoot ζ n) (hn : n ≠ 0) :
    ∃ i : ℤ, ζ.arg = i / n * (2 * Real.pi) ∧ IsCoprime i n ∧ i.natAbs < n 
Arguments: {n : ℕ} {ζ : ℂ} (h : IsPrimitiveRoot ζ n) (hn : n ≠ 0)
Goal: ∃ i, ζ.arg = ↑i / ↑n * (2 * Real.pi) ∧ IsCoprime i ↑n ∧ i.natAbs < n
-- Complex.norm_eq_one_of_mem_rootsOfUnity
lemma Complex.norm_eq_one_of_mem_rootsOfUnity {ζ : ℂˣ} {n : ℕ+} (hζ : ζ ∈ rootsOfUnity n ℂ) :
    ‖(ζ : ℂ)‖ = 1 
Arguments: {ζ : ℂˣ} {n : ℕ+} (hζ : ζ ∈ rootsOfUnity n ℂ)
Goal: ‖↑ζ‖ = 1
-- Algebra.adjoin_restrictScalars
theorem adjoin_restrictScalars (C D E : Type*) [CommSemiring C] [CommSemiring D] [CommSemiring E]
    [Algebra C D] [Algebra C E] [Algebra D E] [IsScalarTower C D E] (S : Set E) :
    (Algebra.adjoin D S).restrictScalars C =
      (Algebra.adjoin ((⊤ : Subalgebra C D).map (IsScalarTower.toAlgHom C D E)) S).restrictScalars
        C 
Arguments: (C : Type u_1) (D : Type u_2) (E : Type u_3) [CommSemiring C] [CommSemiring D] [CommSemiring E] [Algebra C D] [Algebra C E] [Algebra D E] [IsScalarTower C D E] (S : Set E)
Goal: Subalgebra.restrictScalars C (Algebra.adjoin D S) =
  Subalgebra.restrictScalars C (Algebra.adjoin (↥(Subalgebra.map (IsScalarTower.toAlgHom C D E) ⊤)) S)
-- Algebra.adjoin_res_eq_adjoin_res
theorem adjoin_res_eq_adjoin_res (C D E F : Type*) [CommSemiring C] [CommSemiring D]
    [CommSemiring E] [CommSemiring F] [Algebra C D] [Algebra C E] [Algebra C F] [Algebra D F]
    [Algebra E F] [IsScalarTower C D F] [IsScalarTower C E F] {S : Set D} {T : Set E}
    (hS : Algebra.adjoin C S = ⊤) (hT : Algebra.adjoin C T = ⊤) :
    (Algebra.adjoin E (algebraMap D F '' S)).restrictScalars C =
      (Algebra.adjoin D (algebraMap E F '' T)).restrictScalars C 
Arguments: (C : Type u_1) (D : Type u_2) (E : Type u_3) (F : Type u_4) [CommSemiring C] [CommSemiring D] [CommSemiring E] [CommSemiring F] [Algebra C D] [Algebra C E] [Algebra C F] [Algebra D F] [Algebra E F] [IsScalarTower C D F] [IsScalarTower C E F] {S : Set D} {T : Set E} (hS : Algebra.adjoin C S = ⊤) (hT : Algebra.adjoin C T = ⊤)
Goal: Subalgebra.restrictScalars C (Algebra.adjoin E (⇑(algebraMap D F) '' S)) =
  Subalgebra.restrictScalars C (Algebra.adjoin D (⇑(algebraMap E F) '' T))
-- Algebra.fg_trans'
theorem Algebra.fg_trans' {R S A : Type*} [CommSemiring R] [CommSemiring S] [Semiring A]
    [Algebra R S] [Algebra S A] [Algebra R A] [IsScalarTower R S A] (hRS : (⊤ : Subalgebra R S).FG)
    (hSA : (⊤ : Subalgebra S A).FG) : (⊤ : Subalgebra R A).FG 
Arguments: {R : Type u_1} {S : Type u_2} {A : Type u_3} [CommSemiring R] [CommSemiring S] [Semiring A] [Algebra R S] [Algebra S A] [Algebra R A] [IsScalarTower R S A] (hRS : ⊤.FG) (hSA : ⊤.FG)
Goal: ⊤.FG
-- exists_subalgebra_of_fg
theorem exists_subalgebra_of_fg (hAC : (⊤ : Subalgebra A C).FG) (hBC : (⊤ : Submodule B C).FG) :
    ∃ B₀ : Subalgebra A B, B₀.FG ∧ (⊤ : Submodule B₀ C).FG 
Arguments: (A : Type w) (B : Type u₁) (C : Type u_1) [CommSemiring A] [CommSemiring B] [Semiring C] [Algebra A B] [Algebra B C] [Algebra A C] [IsScalarTower A B C] (hAC : ⊤.FG) (hBC : ⊤.FG)
Goal: ∃ B₀, B₀.FG ∧ ⊤.FG
-- fg_of_fg_of_fg
theorem fg_of_fg_of_fg [IsNoetherianRing A] (hAC : (⊤ : Subalgebra A C).FG)
    (hBC : (⊤ : Submodule B C).FG) (hBCi : Function.Injective (algebraMap B C)) :
    (⊤ : Subalgebra A B).FG 
Arguments: (A : Type w) (B : Type u₁) (C : Type u_1) [CommRing A] [CommRing B] [CommRing C] [Algebra A B] [Algebra B C] [Algebra A C] [IsScalarTower A B C] [IsNoetherianRing A] (hAC : ⊤.FG) (hBC : ⊤.FG) (hBCi : Function.Injective ⇑(algebraMap B C))
Goal: ⊤.FG
-- OrzechProperty.injective_of_surjective_of_submodule'
@[mk_iff]
class OrzechProperty : Prop where
  injective_of_surjective_of_submodule' : ∀ {M : Type u} [AddCommMonoid M] [Module R M]
    [Module.Finite R M] {N : Submodule R M} (f : N →ₗ[R] M), Surjective f → Injective f
Arguments: {R : Type u} [Semiring R] [self : OrzechProperty R] {M : Type u} [AddCommMonoid M] [Module R M] [Module.Finite R M] {N : Submodule R M} (f : ↥N →ₗ[R] M)
Goal: Function.Surjective ⇑f → Function.Injective ⇑f
-- orzechProperty_iff
@[mk_iff]
class OrzechProperty : Prop where
  injective_of_surjective_of_submodule' : ∀ {M : Type u} [AddCommMonoid M] [Module R M]
    [Module.Finite R M] {N : Submodule R M} (f : N →ₗ[R] M), Surjective f → Injective f
Arguments: (R : Type u) [Semiring R]
Goal: OrzechProperty R ↔
  ∀ {M : Type u} [inst : AddCommMonoid M] [inst_1 : Module R M] [inst_2 : Module.Finite R M] {N : Submodule R M}
    (f : ↥N →ₗ[R] M), Function.Surjective ⇑f → Function.Injective ⇑f
-- OrzechProperty.injective_of_surjective_of_injective
theorem injective_of_surjective_of_injective
    {N : Type w} [AddCommMonoid N] [Module R N]
    (i f : N →ₗ[R] M) (hi : Injective i) (hf : Surjective f) : Injective f 
Arguments: {R : Type u} [Semiring R] [OrzechProperty R] {M : Type v} [AddCommMonoid M] [Module R M] [Module.Finite R M] {N : Type w} [AddCommMonoid N] [Module R N] (i f : N →ₗ[R] M) (hi : Function.Injective ⇑i) (hf : Function.Surjective ⇑f)
Goal: Function.Injective ⇑f
-- OrzechProperty.injective_of_surjective_of_submodule
theorem injective_of_surjective_of_submodule
    {N : Submodule R M} (f : N →ₗ[R] M) (hf : Surjective f) : Injective f 
Arguments: {R : Type u} [Semiring R] [OrzechProperty R] {M : Type v} [AddCommMonoid M] [Module R M] [Module.Finite R M] {N : Submodule R M} (f : ↥N →ₗ[R] M) (hf : Function.Surjective ⇑f)
Goal: Function.Injective ⇑f
-- OrzechProperty.injective_of_surjective_endomorphism
theorem injective_of_surjective_endomorphism
    (f : M →ₗ[R] M) (hf : Surjective f) : Injective f 
Arguments: {R : Type u} [Semiring R] [OrzechProperty R] {M : Type v} [AddCommMonoid M] [Module R M] [Module.Finite R M] (f : M →ₗ[R] M) (hf : Function.Surjective ⇑f)
Goal: Function.Injective ⇑f
-- OrzechProperty.bijective_of_surjective_endomorphism
theorem bijective_of_surjective_endomorphism
    (f : M →ₗ[R] M) (hf : Surjective f) : Bijective f 
Arguments: {R : Type u} [Semiring R] [OrzechProperty R] {M : Type v} [AddCommMonoid M] [Module R M] [Module.Finite R M] (f : M →ₗ[R] M) (hf : Function.Surjective ⇑f)
Goal: Function.Bijective ⇑f
-- MvPolynomial.weightedTotalDegree_one
theorem weightedTotalDegree_one (φ : MvPolynomial σ R) :
    weightedTotalDegree (1 : σ → ℕ) φ = φ.totalDegree 
Arguments: {σ : Type u_1} {R : Type u_3} [CommSemiring R] (φ : MvPolynomial σ R)
Goal: MvPolynomial.weightedTotalDegree 1 φ = φ.totalDegree
-- MvPolynomial.weightedHomogeneousSubmodule_one
@[simp]
lemma weightedHomogeneousSubmodule_one (n : ℕ) :
    weightedHomogeneousSubmodule R 1 n = homogeneousSubmodule σ R n 
Arguments: (σ : Type u_1) (R : Type u_3) [CommSemiring R] (n : ℕ)
Goal: MvPolynomial.weightedHomogeneousSubmodule R 1 n = MvPolynomial.homogeneousSubmodule σ R n
-- MvPolynomial.mem_homogeneousSubmodule
@[simp]
theorem mem_homogeneousSubmodule [CommSemiring R] (n : ℕ) (p : MvPolynomial σ R) :
    p ∈ homogeneousSubmodule σ R n ↔ p.IsHomogeneous n 
Arguments: {σ : Type u_1} {R : Type u_3} [CommSemiring R] (n : ℕ) (p : MvPolynomial σ R)
Goal: p ∈ MvPolynomial.homogeneousSubmodule σ R n ↔ p.IsHomogeneous n
-- MvPolynomial.homogeneousSubmodule_eq_finsupp_supported
theorem homogeneousSubmodule_eq_finsupp_supported [CommSemiring R] (n : ℕ) :
    homogeneousSubmodule σ R n = Finsupp.supported _ R { d | d.degree = n } 
Arguments: (σ : Type u_1) (R : Type u_3) [CommSemiring R] (n : ℕ)
Goal: MvPolynomial.homogeneousSubmodule σ R n = Finsupp.supported R R {d | d.degree = n}
-- MvPolynomial.homogeneousSubmodule_mul
theorem homogeneousSubmodule_mul [CommSemiring R] (m n : ℕ) :
    homogeneousSubmodule σ R m * homogeneousSubmodule σ R n ≤ homogeneousSubmodule σ R (m + n) 
Arguments: {σ : Type u_1} {R : Type u_3} [CommSemiring R] (m n : ℕ)
Goal: MvPolynomial.homogeneousSubmodule σ R m * MvPolynomial.homogeneousSubmodule σ R n ≤
  MvPolynomial.homogeneousSubmodule σ R (m + n)
-- MvPolynomial.isHomogeneous_monomial
theorem isHomogeneous_monomial {d : σ →₀ ℕ} (r : R) {n : ℕ} (hn : d.degree = n) :
    IsHomogeneous (monomial d r) n 
Arguments: {σ : Type u_1} {R : Type u_3} [CommSemiring R] {d : σ →₀ ℕ} (r : R) {n : ℕ} (hn : d.degree = n)
Goal: ((MvPolynomial.monomial d) r).IsHomogeneous n
-- MvPolynomial.totalDegree_eq_zero_iff
theorem totalDegree_eq_zero_iff (p : MvPolynomial σ R) :
    p.totalDegree = 0 ↔ ∀ (m : σ →₀ ℕ) (_ : m ∈ p.support) (x : σ), m x = 0 
Arguments: (σ : Type u_1) {R : Type u_3} [CommSemiring R] (p : MvPolynomial σ R)
Goal: p.totalDegree = 0 ↔ ∀ m ∈ p.support, ∀ (x : σ), m x = 0
-- MvPolynomial.totalDegree_zero_iff_isHomogeneous
theorem totalDegree_zero_iff_isHomogeneous {p : MvPolynomial σ R} :
    p.totalDegree = 0 ↔ IsHomogeneous p 0 
Arguments: (σ : Type u_1) {R : Type u_3} [CommSemiring R] {p : MvPolynomial σ R}
Goal: p.totalDegree = 0 ↔ p.IsHomogeneous 0
-- MvPolynomial.isHomogeneous_C
theorem isHomogeneous_C (r : R) : IsHomogeneous (C r : MvPolynomial σ R) 0 
Arguments: (σ : Type u_1) {R : Type u_3} [CommSemiring R] (r : R)
Goal: (MvPolynomial.C r).IsHomogeneous 0
-- MvPolynomial.isHomogeneous_zero
theorem isHomogeneous_zero (n : ℕ) : IsHomogeneous (0 : MvPolynomial σ R) n 
Arguments: (σ : Type u_1) (R : Type u_3) [CommSemiring R] (n : ℕ)
Goal: MvPolynomial.IsHomogeneous 0 n
-- MvPolynomial.isHomogeneous_one
theorem isHomogeneous_one : IsHomogeneous (1 : MvPolynomial σ R) 0 
Arguments: (σ : Type u_1) (R : Type u_3) [CommSemiring R]
Goal: MvPolynomial.IsHomogeneous 1 0
-- MvPolynomial.isHomogeneous_X
theorem isHomogeneous_X (i : σ) : IsHomogeneous (X i : MvPolynomial σ R) 1 
Arguments: {σ : Type u_1} (R : Type u_3) [CommSemiring R] (i : σ)
Goal: (MvPolynomial.X i).IsHomogeneous 1
-- MvPolynomial.IsHomogeneous.coeff_eq_zero
theorem coeff_eq_zero (hφ : IsHomogeneous φ n) {d : σ →₀ ℕ} (hd : d.degree ≠ n) :
    coeff d φ = 0 
Arguments: {σ : Type u_1} {R : Type u_3} [CommSemiring R] {φ : MvPolynomial σ R} {n : ℕ} (hφ : φ.IsHomogeneous n) {d : σ →₀ ℕ} (hd : d.degree ≠ n)
Goal: MvPolynomial.coeff d φ = 0
-- MvPolynomial.IsHomogeneous.inj_right
theorem inj_right (hm : IsHomogeneous φ m) (hn : IsHomogeneous φ n) (hφ : φ ≠ 0) : m = n 
Arguments: {σ : Type u_1} {R : Type u_3} [CommSemiring R] {φ : MvPolynomial σ R} {m n : ℕ} (hm : φ.IsHomogeneous m) (hn : φ.IsHomogeneous n) (hφ : φ ≠ 0)
Goal: m = n
-- MvPolynomial.IsHomogeneous.add
theorem add (hφ : IsHomogeneous φ n) (hψ : IsHomogeneous ψ n) : IsHomogeneous (φ + ψ) n 
Arguments: {σ : Type u_1} {R : Type u_3} [CommSemiring R] {φ ψ : MvPolynomial σ R} {n : ℕ} (hφ : φ.IsHomogeneous n) (hψ : ψ.IsHomogeneous n)
Goal: (φ + ψ).IsHomogeneous n
-- MvPolynomial.IsHomogeneous.sum
theorem sum {ι : Type*} (s : Finset ι) (φ : ι → MvPolynomial σ R) (n : ℕ)
    (h : ∀ i ∈ s, IsHomogeneous (φ i) n) : IsHomogeneous (∑ i ∈ s, φ i) n 
Arguments: {σ : Type u_1} {R : Type u_3} [CommSemiring R] {ι : Type u_5} (s : Finset ι) (φ : ι → MvPolynomial σ R) (n : ℕ) (h : ∀ i ∈ s, (φ i).IsHomogeneous n)
Goal: (∑ i ∈ s, φ i).IsHomogeneous n
-- MvPolynomial.IsHomogeneous.mul
theorem mul (hφ : IsHomogeneous φ m) (hψ : IsHomogeneous ψ n) : IsHomogeneous (φ * ψ) (m + n) 
Arguments: {σ : Type u_1} {R : Type u_3} [CommSemiring R] {φ ψ : MvPolynomial σ R} {m n : ℕ} (hφ : φ.IsHomogeneous m) (hψ : ψ.IsHomogeneous n)
Goal: (φ * ψ).IsHomogeneous (m + n)
-- MvPolynomial.IsHomogeneous.prod
theorem prod {ι : Type*} (s : Finset ι) (φ : ι → MvPolynomial σ R) (n : ι → ℕ)
    (h : ∀ i ∈ s, IsHomogeneous (φ i) (n i)) : IsHomogeneous (∏ i ∈ s, φ i) (∑ i ∈ s, n i) 
Arguments: {σ : Type u_1} {R : Type u_3} [CommSemiring R] {ι : Type u_5} (s : Finset ι) (φ : ι → MvPolynomial σ R) (n : ι → ℕ) (h : ∀ i ∈ s, (φ i).IsHomogeneous (n i))
Goal: (∏ i ∈ s, φ i).IsHomogeneous (∑ i ∈ s, n i)
-- MvPolynomial.IsHomogeneous.C_mul
lemma C_mul (hφ : φ.IsHomogeneous m) (r : R) :
    (C r * φ).IsHomogeneous m 
Arguments: {σ : Type u_1} {R : Type u_3} [CommSemiring R] {φ : MvPolynomial σ R} {m : ℕ} (hφ : φ.IsHomogeneous m) (r : R)
Goal: (MvPolynomial.C r * φ).IsHomogeneous m
-- MvPolynomial.isHomogeneous_C_mul_X
lemma _root_.MvPolynomial.isHomogeneous_C_mul_X (r : R) (i : σ) :
    (C r * X i).IsHomogeneous 1 
Arguments: {σ : Type u_1} {R : Type u_3} [CommSemiring R] (r : R) (i : σ)
Goal: (MvPolynomial.C r * MvPolynomial.X i).IsHomogeneous 1
-- MvPolynomial.IsHomogeneous.pow
lemma pow (hφ : φ.IsHomogeneous m) (n : ℕ) : (φ ^ n).IsHomogeneous (m * n) 
Arguments: {σ : Type u_1} {R : Type u_3} [CommSemiring R] {φ : MvPolynomial σ R} {m : ℕ} (hφ : φ.IsHomogeneous m) (n : ℕ)
Goal: (φ ^ n).IsHomogeneous (m * n)
-- MvPolynomial.isHomogeneous_X_pow
lemma _root_.MvPolynomial.isHomogeneous_X_pow (i : σ) (n : ℕ) :
    (X (R := R) i ^ n).IsHomogeneous n 
Arguments: {σ : Type u_1} {R : Type u_3} [CommSemiring R] (i : σ) (n : ℕ)
Goal: (MvPolynomial.X i ^ n).IsHomogeneous n
-- MvPolynomial.isHomogeneous_C_mul_X_pow
lemma _root_.MvPolynomial.isHomogeneous_C_mul_X_pow (r : R) (i : σ) (n : ℕ) :
    (C r * X i ^ n).IsHomogeneous n 
Arguments: {σ : Type u_1} {R : Type u_3} [CommSemiring R] (r : R) (i : σ) (n : ℕ)
Goal: (MvPolynomial.C r * MvPolynomial.X i ^ n).IsHomogeneous n
-- MvPolynomial.IsHomogeneous.eval₂
lemma eval₂ (hφ : φ.IsHomogeneous m) (f : R →+* MvPolynomial τ S) (g : σ → MvPolynomial τ S)
    (hf : ∀ r, (f r).IsHomogeneous 0) (hg : ∀ i, (g i).IsHomogeneous n) :
    (eval₂ f g φ).IsHomogeneous (n * m) 
Arguments: {σ : Type u_1} {τ : Type u_2} {R : Type u_3} {S : Type u_4} [CommSemiring R] [CommSemiring S] {φ : MvPolynomial σ R} {m n : ℕ} (hφ : φ.IsHomogeneous m) (f : R →+* MvPolynomial τ S) (g : σ → MvPolynomial τ S) (hf : ∀ (r : R), (f r).IsHomogeneous 0) (hg : ∀ (i : σ), (g i).IsHomogeneous n)
Goal: (MvPolynomial.eval₂ f g φ).IsHomogeneous (n * m)
-- MvPolynomial.IsHomogeneous.map
lemma map (hφ : φ.IsHomogeneous n) (f : R →+* S) : (map f φ).IsHomogeneous n 
Arguments: {σ : Type u_1} {R : Type u_3} {S : Type u_4} [CommSemiring R] [CommSemiring S] {φ : MvPolynomial σ R} {n : ℕ} (hφ : φ.IsHomogeneous n) (f : R →+* S)
Goal: ((MvPolynomial.map f) φ).IsHomogeneous n
-- MvPolynomial.IsHomogeneous.aeval
lemma aeval [Algebra R S] (hφ : φ.IsHomogeneous m)
    (g : σ → MvPolynomial τ S) (hg : ∀ i, (g i).IsHomogeneous n) :
    (aeval g φ).IsHomogeneous (n * m) 
Arguments: {σ : Type u_1} {τ : Type u_2} {R : Type u_3} {S : Type u_4} [CommSemiring R] [CommSemiring S] {φ : MvPolynomial σ R} {m n : ℕ} [Algebra R S] (hφ : φ.IsHomogeneous m) (g : σ → MvPolynomial τ S) (hg : ∀ (i : σ), (g i).IsHomogeneous n)
Goal: ((MvPolynomial.aeval g) φ).IsHomogeneous (n * m)
-- MvPolynomial.IsHomogeneous.neg
theorem neg (hφ : IsHomogeneous φ n) : IsHomogeneous (-φ) n 
Arguments: {R : Type u_5} {σ : Type u_6} [CommRing R] {φ : MvPolynomial σ R} {n : ℕ} (hφ : φ.IsHomogeneous n)
Goal: (-φ).IsHomogeneous n
-- MvPolynomial.IsHomogeneous.sub
theorem sub (hφ : IsHomogeneous φ n) (hψ : IsHomogeneous ψ n) : IsHomogeneous (φ - ψ) n 
Arguments: {R : Type u_5} {σ : Type u_6} [CommRing R] {φ ψ : MvPolynomial σ R} {n : ℕ} (hφ : φ.IsHomogeneous n) (hψ : ψ.IsHomogeneous n)
Goal: (φ - ψ).IsHomogeneous n
-- MvPolynomial.IsHomogeneous.totalDegree_le
lemma totalDegree_le (hφ : IsHomogeneous φ n) : φ.totalDegree ≤ n 
Arguments: {σ : Type u_1} {R : Type u_3} [CommSemiring R] {φ : MvPolynomial σ R} {n : ℕ} (hφ : φ.IsHomogeneous n)
Goal: φ.totalDegree ≤ n
-- MvPolynomial.IsHomogeneous.totalDegree
theorem totalDegree (hφ : IsHomogeneous φ n) (h : φ ≠ 0) : totalDegree φ = n 
Arguments: {σ : Type u_1} {R : Type u_3} [CommSemiring R] {φ : MvPolynomial σ R} {n : ℕ} (hφ : φ.IsHomogeneous n) (h : φ ≠ 0)
Goal: φ.totalDegree = n
-- MvPolynomial.IsHomogeneous.rename_isHomogeneous
theorem rename_isHomogeneous {f : σ → τ} (h : φ.IsHomogeneous n) :
    (rename f φ).IsHomogeneous n 
Arguments: {σ : Type u_1} {τ : Type u_2} {R : Type u_3} [CommSemiring R] {φ : MvPolynomial σ R} {n : ℕ} {f : σ → τ} (h : φ.IsHomogeneous n)
Goal: ((MvPolynomial.rename f) φ).IsHomogeneous n
-- MvPolynomial.IsHomogeneous.rename_isHomogeneous_iff
theorem rename_isHomogeneous_iff {f : σ → τ} (hf : f.Injective) :
    (rename f φ).IsHomogeneous n ↔ φ.IsHomogeneous n 
Arguments: {σ : Type u_1} {τ : Type u_2} {R : Type u_3} [CommSemiring R] {φ : MvPolynomial σ R} {n : ℕ} {f : σ → τ} (hf : Function.Injective f)
Goal: ((MvPolynomial.rename f) φ).IsHomogeneous n ↔ φ.IsHomogeneous n
-- MvPolynomial.IsHomogeneous.finSuccEquiv_coeff_isHomogeneous
lemma finSuccEquiv_coeff_isHomogeneous {N : ℕ} {φ : MvPolynomial (Fin (N+1)) R} {n : ℕ}
    (hφ : φ.IsHomogeneous n) (i j : ℕ) (h : i + j = n) :
    ((finSuccEquiv _ _ φ).coeff i).IsHomogeneous j 
Arguments: {R : Type u_3} [CommSemiring R] {N : ℕ} {φ : MvPolynomial (Fin (N + 1)) R} {n : ℕ} (hφ : φ.IsHomogeneous n) (i j : ℕ) (h : i + j = n)
Goal: (((MvPolynomial.finSuccEquiv R N) φ).coeff i).IsHomogeneous j
-- MvPolynomial.IsHomogeneous.coeff_isHomogeneous_of_optionEquivLeft_symm
lemma coeff_isHomogeneous_of_optionEquivLeft_symm
    [hσ : Finite σ] {p : Polynomial (MvPolynomial σ R)}
    (hp : ((optionEquivLeft R σ).symm p).IsHomogeneous n) (i j : ℕ) (h : i + j = n) :
    (p.coeff i).IsHomogeneous j 
Arguments: {σ : Type u_1} {R : Type u_3} [CommSemiring R] {n : ℕ} [hσ : Finite σ] {p : Polynomial (MvPolynomial σ R)} (hp : ((MvPolynomial.optionEquivLeft R σ).symm p).IsHomogeneous n) (i j : ℕ) (h : i + j = n)
Goal: (p.coeff i).IsHomogeneous j
-- _private.Mathlib.RingTheory.MvPolynomial.Homogeneous.0.MvPolynomial.IsHomogeneous.exists_eval_ne_zero_of_coeff_finSuccEquiv_ne_zero_aux
private
lemma exists_eval_ne_zero_of_coeff_finSuccEquiv_ne_zero_aux
    {N : ℕ} {F : MvPolynomial (Fin (Nat.succ N)) R} {n : ℕ} (hF : IsHomogeneous F n)
    (hFn : ((finSuccEquiv R N) F).coeff n ≠ 0) :
    ∃ r, eval r F ≠ 0 
Arguments: {R : Type u_3} [CommSemiring R] {N : ℕ} {F : MvPolynomial (Fin N.succ) R} {n : ℕ} (hF : F.IsHomogeneous n) (hFn : ((MvPolynomial.finSuccEquiv R N) F).coeff n ≠ 0)
Goal: ∃ r, (MvPolynomial.eval r) F ≠ 0
-- _private.Mathlib.RingTheory.MvPolynomial.Homogeneous.0.MvPolynomial.IsHomogeneous.exists_eval_ne_zero_of_totalDegree_le_card_aux
private
lemma exists_eval_ne_zero_of_totalDegree_le_card_aux {N : ℕ} {F : MvPolynomial (Fin N) R} {n : ℕ}
    (hF : F.IsHomogeneous n) (hF₀ : F ≠ 0) (hnR : n ≤ #R) :
    ∃ r, eval r F ≠ 0 
Arguments: {R : Type u_5} [CommRing R] [IsDomain R] {N : ℕ} {F : MvPolynomial (Fin N) R} {n : ℕ} (hF : F.IsHomogeneous n) (hF₀ : F ≠ 0) (hnR : ↑n ≤ Cardinal.mk R)
Goal: ∃ r, (MvPolynomial.eval r) F ≠ 0
-- MvPolynomial.IsHomogeneous.eq_zero_of_forall_eval_eq_zero_of_le_card
lemma eq_zero_of_forall_eval_eq_zero_of_le_card
    (hF : F.IsHomogeneous n) (h : ∀ r : σ → R, eval r F = 0) (hnR : n ≤ #R) :
    F = 0 
Arguments: {R : Type u_5} {σ : Type u_6} [CommRing R] [IsDomain R] {F : MvPolynomial σ R} {n : ℕ} (hF : F.IsHomogeneous n) (h : ∀ (r : σ → R), (MvPolynomial.eval r) F = 0) (hnR : ↑n ≤ Cardinal.mk R)
Goal: F = 0
-- MvPolynomial.IsHomogeneous.funext_of_le_card
lemma funext_of_le_card (hF : F.IsHomogeneous n) (hG : G.IsHomogeneous n)
    (h : ∀ r : σ → R, eval r F = eval r G) (hnR : n ≤ #R) :
    F = G 
Arguments: {R : Type u_5} {σ : Type u_6} [CommRing R] [IsDomain R] {F G : MvPolynomial σ R} {n : ℕ} (hF : F.IsHomogeneous n) (hG : G.IsHomogeneous n) (h : ∀ (r : σ → R), (MvPolynomial.eval r) F = (MvPolynomial.eval r) G) (hnR : ↑n ≤ Cardinal.mk R)
Goal: F = G