Homogeneous subsemirings of a graded semiring #
This file defines homogeneous subsemirings of a graded semiring, as well as operations on them.
Main definitions #
HomogeneousSubsemiring ๐: The type of subsemirings which satisfySetLike.IsHomogeneous.
theorem
DirectSum.SetLike.IsHomogeneous.mem_iff
{ฮน : Type u_1}
{ฯ : Type u_2}
{A : Type u_3}
[AddMonoid ฮน]
[Semiring A]
[SetLike ฯ A]
[AddSubmonoidClass ฯ A]
(๐ : ฮน โ ฯ)
[DecidableEq ฮน]
[GradedRing ๐]
{R : Subsemiring A}
(hR : IsHomogeneous ๐ R)
{a : A}
:
structure
HomogeneousSubsemiring
{ฮน : Type u_1}
{ฯ : Type u_2}
{A : Type u_3}
[AddMonoid ฮน]
[Semiring A]
[SetLike ฯ A]
[AddSubmonoidClass ฯ A]
(๐ : ฮน โ ฯ)
[DecidableEq ฮน]
[GradedRing ๐]
extends Subsemiring A :
Type u_3
A HomogeneousSubsemiring is a Subsemiring that satisfies IsHomogeneous.
- is_homogeneous' : DirectSum.SetLike.IsHomogeneous ๐ self.toSubsemiring
Instances For
theorem
HomogeneousSubsemiring.toSubsemiring_injective
{ฮน : Type u_1}
{ฯ : Type u_2}
{A : Type u_3}
[AddMonoid ฮน]
[Semiring A]
[SetLike ฯ A]
[AddSubmonoidClass ฯ A]
{๐ : ฮน โ ฯ}
[DecidableEq ฮน]
[GradedRing ๐]
:
instance
HomogeneousSubsemiring.setLike
{ฮน : Type u_1}
{ฯ : Type u_2}
{A : Type u_3}
[AddMonoid ฮน]
[Semiring A]
[SetLike ฯ A]
[AddSubmonoidClass ฯ A]
{๐ : ฮน โ ฯ}
[DecidableEq ฮน]
[GradedRing ๐]
:
SetLike (HomogeneousSubsemiring ๐) A
Equations
- HomogeneousSubsemiring.setLike = { coe := fun (x : HomogeneousSubsemiring ๐) => x.carrier, coe_injective' := โฏ }
theorem
HomogeneousSubsemiring.isHomogeneous
{ฮน : Type u_1}
{ฯ : Type u_2}
{A : Type u_3}
[AddMonoid ฮน]
[Semiring A]
[SetLike ฯ A]
[AddSubmonoidClass ฯ A]
{๐ : ฮน โ ฯ}
[DecidableEq ฮน]
[GradedRing ๐]
(R : HomogeneousSubsemiring ๐)
:
instance
HomogeneousSubsemiring.subsemiringClass
{ฮน : Type u_1}
{ฯ : Type u_2}
{A : Type u_3}
[AddMonoid ฮน]
[Semiring A]
[SetLike ฯ A]
[AddSubmonoidClass ฯ A]
{๐ : ฮน โ ฯ}
[DecidableEq ฮน]
[GradedRing ๐]
:
SubsemiringClass (HomogeneousSubsemiring ๐) A
theorem
HomogeneousSubsemiring.ext
{ฮน : Type u_1}
{ฯ : Type u_2}
{A : Type u_3}
[AddMonoid ฮน]
[Semiring A]
[SetLike ฯ A]
[AddSubmonoidClass ฯ A]
{๐ : ฮน โ ฯ}
[DecidableEq ฮน]
[GradedRing ๐]
{R S : HomogeneousSubsemiring ๐}
(h : R.toSubsemiring = S.toSubsemiring)
:
theorem
HomogeneousSubsemiring.ext_iff
{ฮน : Type u_1}
{ฯ : Type u_2}
{A : Type u_3}
[AddMonoid ฮน]
[Semiring A]
[SetLike ฯ A]
[AddSubmonoidClass ฯ A]
{๐ : ฮน โ ฯ}
[DecidableEq ฮน]
[GradedRing ๐]
{R S : HomogeneousSubsemiring ๐}
:
theorem
HomogeneousSubsemiring.ext'
{ฮน : Type u_1}
{ฯ : Type u_2}
{A : Type u_3}
[AddMonoid ฮน]
[Semiring A]
[SetLike ฯ A]
[AddSubmonoidClass ฯ A]
{๐ : ฮน โ ฯ}
[DecidableEq ฮน]
[GradedRing ๐]
{R S : HomogeneousSubsemiring ๐}
(h : โ (i : ฮน), โ a โ ๐ i, a โ R โ a โ S)
:
@[simp]
theorem
HomogeneousSubsemiring.mem_iff
{ฮน : Type u_1}
{ฯ : Type u_2}
{A : Type u_3}
[AddMonoid ฮน]
[Semiring A]
[SetLike ฯ A]
[AddSubmonoidClass ฯ A]
{๐ : ฮน โ ฯ}
[DecidableEq ฮน]
[GradedRing ๐]
{R : HomogeneousSubsemiring ๐}
{a : A}
:
theorem
IsHomogeneous.subsemiringClosure
{ฮน : Type u_1}
{ฯ : Type u_2}
{A : Type u_3}
[AddMonoid ฮน]
[Semiring A]
[SetLike ฯ A]
[AddSubmonoidClass ฯ A]
{๐ : ฮน โ ฯ}
[DecidableEq ฮน]
[GradedRing ๐]
{s : Set A}
(h : โ (i : ฮน) โฆx : Aโฆ, x โ s โ โ(((DirectSum.decompose ๐) x) i) โ s)
:
theorem
IsHomogeneous.subsemiringClosure_of_isHomogeneousElem
{ฮน : Type u_1}
{ฯ : Type u_2}
{A : Type u_3}
[AddMonoid ฮน]
[Semiring A]
[SetLike ฯ A]
[AddSubmonoidClass ฯ A]
{๐ : ฮน โ ฯ}
[DecidableEq ฮน]
[GradedRing ๐]
{s : Set A}
(h : โ x โ s, SetLike.IsHomogeneousElem ๐ x)
:
def
Subsemiring.homogeneousCore
{ฮน : Type u_1}
{ฯ : Type u_2}
{A : Type u_3}
[AddMonoid ฮน]
[Semiring A]
[SetLike ฯ A]
[AddSubmonoidClass ฯ A]
(๐ : ฮน โ ฯ)
[DecidableEq ฮน]
[GradedRing ๐]
(R : Subsemiring A)
:
For any subsemiring R, not necessarily homogeneous, R.homogeneousCore ๐ is the largest
homogeneous subsemiring contained in R.
Equations
- Subsemiring.homogeneousCore ๐ R = { toSubsemiring := Subsemiring.closure (Subtype.val '' (Subtype.val โปยน' โR)), is_homogeneous' := โฏ }
Instances For
theorem
Subsemiring.homogeneousCore_mono
{ฮน : Type u_1}
{ฯ : Type u_2}
{A : Type u_3}
[AddMonoid ฮน]
[Semiring A]
[SetLike ฯ A]
[AddSubmonoidClass ฯ A]
(๐ : ฮน โ ฯ)
[DecidableEq ฮน]
[GradedRing ๐]
:
Monotone (homogeneousCore ๐)
theorem
Subsemiring.toSubsemiring_homogeneousCore_le
{ฮน : Type u_1}
{ฯ : Type u_2}
{A : Type u_3}
[AddMonoid ฮน]
[Semiring A]
[SetLike ฯ A]
[AddSubmonoidClass ฯ A]
(๐ : ฮน โ ฯ)
[DecidableEq ฮน]
[GradedRing ๐]
(R : Subsemiring A)
:
theorem
Subsemiring.isHomogeneous_iff_forall_subset
{ฮน : Type u_1}
{ฯ : Type u_2}
{A : Type u_3}
[AddMonoid ฮน]
[Semiring A]
[SetLike ฯ A]
[AddSubmonoidClass ฯ A]
(๐ : ฮน โ ฯ)
[DecidableEq ฮน]
[GradedRing ๐]
(R : Subsemiring A)
:
DirectSum.SetLike.IsHomogeneous ๐ R โ โ (i : ฮน), โR โ โ(GradedRing.proj ๐ i) โปยน' โR
theorem
Subsemiring.isHomogeneous_iff_subset_iInter
{ฮน : Type u_1}
{ฯ : Type u_2}
{A : Type u_3}
[AddMonoid ฮน]
[Semiring A]
[SetLike ฯ A]
[AddSubmonoidClass ฯ A]
(๐ : ฮน โ ฯ)
[DecidableEq ฮน]
[GradedRing ๐]
(R : Subsemiring A)
:
DirectSum.SetLike.IsHomogeneous ๐ R โ โR โ โ (i : ฮน), โ(GradedRing.proj ๐ i) โปยน' โR