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_homogeneousideal.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_homogeneousis preserved by⊥,⊤,⊔,⊓,⨆,⨅, and so the subtype of homogeneous ideals inherits a complete lattice structure.ideal.homogeneous_core.gi:ideal.homogeneous_coreforms a galois insertion with coercion.ideal.homogeneous_hull.gi:ideal.homogeneous_hullforms 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}.