Homogeneous ideals of a graded algebra #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
This file defines homogeneous ideals of graded_ring 𝒜
where 𝒜 : ι → submodule R A
and
operations on them.
Main definitions #
For any I : ideal A
:
ideal.is_homogeneous 𝒜 I
: The property that an ideal is closed undergraded_ring.proj
.homogeneous_ideal 𝒜
: The structure extending ideals which satisfyideal.is_homogeneous
ideal.homogeneous_core I 𝒜
: The largest homogeneous ideal smaller thanI
.ideal.homogeneous_hull I 𝒜
: The smallest homogeneous ideal larger thanI
.
Main statements #
homogeneous_ideal.complete_lattice
:ideal.is_homogeneous
is preserved by⊥
,⊤
,⊔
,⊓
,⨆
,⨅
, and so the subtype of homogeneous ideals inherits a complete lattice structure.ideal.homogeneous_core.gi
:ideal.homogeneous_core
forms a galois insertion with coercion.ideal.homogeneous_hull.gi
:ideal.homogeneous_hull
forms a galois insertion with coercion.
Implementation notes #
We introduce ideal.homogeneous_core'
earlier than might be expected so that we can get access
to ideal.is_homogeneous.iff_exists
as quickly as possible.
Tags #
graded algebra, homogeneous
An I : ideal A
is homogeneous if for every r ∈ I
, all homogeneous components
of r
are in I
.
Equations
- ideal.is_homogeneous 𝒜 I = ∀ (i : ι) ⦃r : A⦄, r ∈ I → ↑(⇑(⇑(direct_sum.decompose 𝒜) r) i) ∈ I
- to_submodule : submodule A A
- is_homogeneous' : ideal.is_homogeneous 𝒜 self.to_submodule
For any semiring A
, we collect the homogeneous ideals of A
into a type.
Instances for homogeneous_ideal
- homogeneous_ideal.has_sizeof_inst
- homogeneous_ideal.set_like
- homogeneous_ideal.partial_order
- homogeneous_ideal.has_top
- homogeneous_ideal.has_bot
- homogeneous_ideal.has_sup
- homogeneous_ideal.has_inf
- homogeneous_ideal.has_Sup
- homogeneous_ideal.has_Inf
- homogeneous_ideal.complete_lattice
- homogeneous_ideal.has_add
- homogeneous_ideal.inhabited
- homogeneous_ideal.has_mul
Converting a homogeneous ideal to an ideal
Equations
- I.to_ideal = I.to_submodule
Instances for homogeneous_ideal.to_ideal
Equations
- homogeneous_ideal.set_like = {coe := λ (I : homogeneous_ideal 𝒜), ↑(I.to_ideal), coe_injective' := _}
For any I : ideal A
, not necessarily homogeneous, I.homogeneous_core' 𝒜
is the largest homogeneous ideal of A
contained in I
, as an ideal.
Equations
- ideal.homogeneous_core' 𝒜 I = ideal.span (coe '' (coe ⁻¹' ↑I))
For any I : ideal A
, not necessarily homogeneous, I.homogeneous_core' 𝒜
is the largest homogeneous ideal of A
contained in I
.
Equations
- ideal.homogeneous_core 𝒜 I = {to_submodule := ideal.homogeneous_core' 𝒜 I, is_homogeneous' := _}
Operations #
In this section, we show that ideal.is_homogeneous
is preserved by various notations, then use
these results to provide these notation typeclasses for homogeneous_ideal
.
Equations
- homogeneous_ideal.has_top = {top := {to_submodule := ⊤, is_homogeneous' := _}}
Equations
- homogeneous_ideal.has_bot = {bot := {to_submodule := ⊥, is_homogeneous' := _}}
Equations
- homogeneous_ideal.has_sup = {sup := λ (I J : homogeneous_ideal 𝒜), {to_submodule := I.to_ideal ⊔ J.to_ideal, is_homogeneous' := _}}
Equations
- homogeneous_ideal.has_inf = {inf := λ (I J : homogeneous_ideal 𝒜), {to_submodule := I.to_ideal ⊓ J.to_ideal, is_homogeneous' := _}}
Equations
- homogeneous_ideal.has_Sup = {Sup := λ (S : set (homogeneous_ideal 𝒜)), {to_submodule := ⨆ (s : homogeneous_ideal 𝒜) (H : s ∈ S), s.to_ideal, is_homogeneous' := _}}
Equations
- homogeneous_ideal.has_Inf = {Inf := λ (S : set (homogeneous_ideal 𝒜)), {to_submodule := ⨅ (s : homogeneous_ideal 𝒜) (H : s ∈ S), s.to_ideal, is_homogeneous' := _}}
Equations
- homogeneous_ideal.complete_lattice = function.injective.complete_lattice homogeneous_ideal.to_ideal homogeneous_ideal.complete_lattice._proof_1 homogeneous_ideal.complete_lattice._proof_2 homogeneous_ideal.complete_lattice._proof_3 homogeneous_ideal.complete_lattice._proof_4 homogeneous_ideal.complete_lattice._proof_5 homogeneous_ideal.complete_lattice._proof_6 homogeneous_ideal.complete_lattice._proof_7
Equations
Equations
Equations
- homogeneous_ideal.has_mul = {mul := λ (I J : homogeneous_ideal 𝒜), {to_submodule := I.to_ideal * J.to_ideal, is_homogeneous' := _}}
Homogeneous core #
Note that many results about the homogeneous core came earlier in this file, as they are helpful for building the lattice structure.
to_ideal : homogeneous_ideal 𝒜 → ideal A
and ideal.homogeneous_core 𝒜
forms a galois
coinsertion
Equations
- ideal.homogeneous_core.gi 𝒜 = {choice := λ (I : ideal A) (HI : I ≤ (ideal.homogeneous_core 𝒜 I).to_ideal), {to_submodule := I, is_homogeneous' := _}, gc := _, u_l_le := _, choice_eq := _}
Homogeneous hulls #
For any I : ideal A
, not necessarily homogeneous, I.homogeneous_hull 𝒜
is
the smallest homogeneous ideal containing I
.
Equations
- ideal.homogeneous_hull 𝒜 I = {to_submodule := ideal.span {r : A | ∃ (i : ι) (x : ↥I), ↑(⇑(⇑(direct_sum.decompose 𝒜) ↑x) i) = r}, is_homogeneous' := _}
ideal.homogeneous_hull 𝒜
and to_ideal : homogeneous_ideal 𝒜 → ideal A
form a galois
insertion
Equations
- ideal.homogeneous_hull.gi 𝒜 = {choice := λ (I : ideal A) (H : (ideal.homogeneous_hull 𝒜 I).to_ideal ≤ I), {to_submodule := I, is_homogeneous' := _}, gc := _, le_l_u := _, choice_eq := _}
For a graded ring ⨁ᵢ 𝒜ᵢ
graded by a canonically_ordered_add_monoid ι
, the irrelevant ideal
refers to ⨁_{i>0} 𝒜ᵢ
, or equivalently {a | a₀ = 0}
. This definition is used in Proj
construction where ι
is always ℕ
so the irrelevant ideal is simply elements with 0
as
0-th coordinate.
Future work #
Here in the definition, ι
is assumed to be canonically_ordered_add_monoid
. However, the notion
of irrelevant ideal makes sense in a more general setting by defining it as the ideal of elements
with 0
as i-th coordinate for all i ≤ 0
, i.e. {a | ∀ (i : ι), i ≤ 0 → aᵢ = 0}
.