This file contains a proof that the radical of any homogeneous ideal is a homogeneous ideal
Main statements #
Ideal.IsHomogeneous.isPrime_iff: for anyI : Ideal A, ifIis homogeneous, thenIis prime if and only ifIis homogeneously prime, i.e.I ≠ ⊤and ifx, yare homogeneous elements such thatx * y ∈ I, then at least one ofx,yis inI.Ideal.IsPrime.homogeneousCore: for anyI : Ideal A, ifIis prime, thenI.homogeneous_core 𝒜(i.e. the largest homogeneous ideal contained inI) is also prime.Ideal.IsHomogeneous.radical: for anyI : Ideal A, ifIis homogeneous, then the radical ofIis homogeneous as well.HomogeneousIdeal.radical: for anyI : HomogeneousIdeal 𝒜,I.radicalis the radical ofIas aHomogeneousIdeal 𝒜.
Implementation details #
Throughout this file, the indexing type ι of grading is assumed to be a
LinearOrderedCancelAddCommMonoid. This might be stronger than necessary but cancelling
property is strictly necessary; for a counterexample of how Ideal.IsHomogeneous.isPrime_iff
fails for a non-cancellative set see Counterexamples/HomogeneousPrimeNotPrime.lean.
Tags #
homogeneous, radical
theorem
Ideal.IsHomogeneous.isPrime_of_homogeneous_mem_or_mem
{ι : Type u_1}
{σ : Type u_2}
{A : Type u_3}
[CommRing A]
[LinearOrderedCancelAddCommMonoid ι]
[SetLike σ A]
[AddSubmonoidClass σ A]
{𝒜 : ι → σ}
[GradedRing 𝒜]
{I : Ideal A}
(hI : Ideal.IsHomogeneous 𝒜 I)
(I_ne_top : I ≠ ⊤)
(homogeneous_mem_or_mem : ∀ {x y : A}, SetLike.Homogeneous 𝒜 x → SetLike.Homogeneous 𝒜 y → x * y ∈ I → x ∈ I ∨ y ∈ I)
:
theorem
Ideal.IsHomogeneous.isPrime_iff
{ι : Type u_1}
{σ : Type u_2}
{A : Type u_3}
[CommRing A]
[LinearOrderedCancelAddCommMonoid ι]
[SetLike σ A]
[AddSubmonoidClass σ A]
{𝒜 : ι → σ}
[GradedRing 𝒜]
{I : Ideal A}
(h : Ideal.IsHomogeneous 𝒜 I)
:
Ideal.IsPrime I ↔ I ≠ ⊤ ∧ ∀ {x y : A}, SetLike.Homogeneous 𝒜 x → SetLike.Homogeneous 𝒜 y → x * y ∈ I → x ∈ I ∨ y ∈ I
theorem
Ideal.IsPrime.homogeneousCore
{ι : Type u_1}
{σ : Type u_2}
{A : Type u_3}
[CommRing A]
[LinearOrderedCancelAddCommMonoid ι]
[SetLike σ A]
[AddSubmonoidClass σ A]
{𝒜 : ι → σ}
[GradedRing 𝒜]
{I : Ideal A}
(h : Ideal.IsPrime I)
:
theorem
Ideal.IsHomogeneous.radical_eq
{ι : Type u_1}
{σ : Type u_2}
{A : Type u_3}
[CommRing A]
[LinearOrderedCancelAddCommMonoid ι]
[SetLike σ A]
[AddSubmonoidClass σ A]
{𝒜 : ι → σ}
[GradedRing 𝒜]
{I : Ideal A}
(hI : Ideal.IsHomogeneous 𝒜 I)
:
Ideal.radical I = sInf {J : Ideal A | Ideal.IsHomogeneous 𝒜 J ∧ I ≤ J ∧ Ideal.IsPrime J}
theorem
Ideal.IsHomogeneous.radical
{ι : Type u_1}
{σ : Type u_2}
{A : Type u_3}
[CommRing A]
[LinearOrderedCancelAddCommMonoid ι]
[SetLike σ A]
[AddSubmonoidClass σ A]
{𝒜 : ι → σ}
[GradedRing 𝒜]
{I : Ideal A}
(h : Ideal.IsHomogeneous 𝒜 I)
:
def
HomogeneousIdeal.radical
{ι : Type u_1}
{σ : Type u_2}
{A : Type u_3}
[CommRing A]
[LinearOrderedCancelAddCommMonoid ι]
[SetLike σ A]
[AddSubmonoidClass σ A]
{𝒜 : ι → σ}
[GradedRing 𝒜]
(I : HomogeneousIdeal 𝒜)
:
The radical of a homogenous ideal, as another homogenous ideal.
Equations
- HomogeneousIdeal.radical I = { toSubmodule := Ideal.radical (HomogeneousIdeal.toIdeal I), is_homogeneous' := ⋯ }
Instances For
@[simp]
theorem
HomogeneousIdeal.coe_radical
{ι : Type u_1}
{σ : Type u_2}
{A : Type u_3}
[CommRing A]
[LinearOrderedCancelAddCommMonoid ι]
[SetLike σ A]
[AddSubmonoidClass σ A]
{𝒜 : ι → σ}
[GradedRing 𝒜]
(I : HomogeneousIdeal 𝒜)
: