Documentation

Mathlib.RingTheory.GradedAlgebra.HomogeneousLocalization

Homogeneous Localization #

Notation #

Main definitions and results #

This file constructs the subring of Aโ‚“ where the numerator and denominator have the same grading, i.e. {a/b โˆˆ Aโ‚“ | โˆƒ (i : ฮน), a โˆˆ ๐’œแตข โˆง b โˆˆ ๐’œแตข}.

However NumDenSameDeg ๐’œ x cannot have a ring structure for many reasons, for example if c is a NumDenSameDeg, then generally, c + (-c) is not necessarily 0 for degree reasons --- 0 is considered to have grade zero (see deg_zero) but c + (-c) has the same degree as c. To circumvent this, we quotient NumDenSameDeg ๐’œ x by the kernel of c โ†ฆ c.num / c.den.

References #

structure HomogeneousLocalization.NumDenSameDeg {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [CommRing R] [CommRing A] [Algebra R A] (๐’œ : ฮน โ†’ Submodule R A) (x : Submonoid A) :
Type (max u_1 u_3)

Let x be a submonoid of A, then NumDenSameDeg ๐’œ x is a structure with a numerator and a denominator with same grading such that the denominator is contained in x.

  • deg : ฮน
  • num : โ†ฅ(๐’œ self.deg)
  • den : โ†ฅ(๐’œ self.deg)
  • den_mem : โ†‘self.den โˆˆ x
Instances For
    theorem HomogeneousLocalization.NumDenSameDeg.den_mem {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} {x : Submonoid A} (self : HomogeneousLocalization.NumDenSameDeg ๐’œ x) :
    โ†‘self.den โˆˆ x
    theorem HomogeneousLocalization.NumDenSameDeg.ext {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} (x : Submonoid A) {c1 : HomogeneousLocalization.NumDenSameDeg ๐’œ x} {c2 : HomogeneousLocalization.NumDenSameDeg ๐’œ x} (hdeg : c1.deg = c2.deg) (hnum : โ†‘c1.num = โ†‘c2.num) (hden : โ†‘c1.den = โ†‘c2.den) :
    c1 = c2
    instance HomogeneousLocalization.NumDenSameDeg.instOne {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] (x : Submonoid A) :
    Equations
    @[simp]
    theorem HomogeneousLocalization.NumDenSameDeg.deg_one {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] (x : Submonoid A) :
    @[simp]
    theorem HomogeneousLocalization.NumDenSameDeg.num_one {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] (x : Submonoid A) :
    @[simp]
    theorem HomogeneousLocalization.NumDenSameDeg.den_one {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] (x : Submonoid A) :
    instance HomogeneousLocalization.NumDenSameDeg.instZero {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] (x : Submonoid A) :
    Equations
    @[simp]
    theorem HomogeneousLocalization.NumDenSameDeg.deg_zero {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] (x : Submonoid A) :
    @[simp]
    theorem HomogeneousLocalization.NumDenSameDeg.num_zero {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] (x : Submonoid A) :
    @[simp]
    theorem HomogeneousLocalization.NumDenSameDeg.den_zero {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] (x : Submonoid A) :
    instance HomogeneousLocalization.NumDenSameDeg.instMul {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] (x : Submonoid A) :
    Equations
    • One or more equations did not get rendered due to their size.
    @[simp]
    theorem HomogeneousLocalization.NumDenSameDeg.deg_mul {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] (x : Submonoid A) (c1 : HomogeneousLocalization.NumDenSameDeg ๐’œ x) (c2 : HomogeneousLocalization.NumDenSameDeg ๐’œ x) :
    (c1 * c2).deg = c1.deg + c2.deg
    @[simp]
    theorem HomogeneousLocalization.NumDenSameDeg.num_mul {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] (x : Submonoid A) (c1 : HomogeneousLocalization.NumDenSameDeg ๐’œ x) (c2 : HomogeneousLocalization.NumDenSameDeg ๐’œ x) :
    โ†‘(c1 * c2).num = โ†‘c1.num * โ†‘c2.num
    @[simp]
    theorem HomogeneousLocalization.NumDenSameDeg.den_mul {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] (x : Submonoid A) (c1 : HomogeneousLocalization.NumDenSameDeg ๐’œ x) (c2 : HomogeneousLocalization.NumDenSameDeg ๐’œ x) :
    โ†‘(c1 * c2).den = โ†‘c1.den * โ†‘c2.den
    instance HomogeneousLocalization.NumDenSameDeg.instAdd {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] (x : Submonoid A) :
    Equations
    • One or more equations did not get rendered due to their size.
    @[simp]
    theorem HomogeneousLocalization.NumDenSameDeg.deg_add {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] (x : Submonoid A) (c1 : HomogeneousLocalization.NumDenSameDeg ๐’œ x) (c2 : HomogeneousLocalization.NumDenSameDeg ๐’œ x) :
    (c1 + c2).deg = c1.deg + c2.deg
    @[simp]
    theorem HomogeneousLocalization.NumDenSameDeg.num_add {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] (x : Submonoid A) (c1 : HomogeneousLocalization.NumDenSameDeg ๐’œ x) (c2 : HomogeneousLocalization.NumDenSameDeg ๐’œ x) :
    โ†‘(c1 + c2).num = โ†‘c1.den * โ†‘c2.num + โ†‘c2.den * โ†‘c1.num
    @[simp]
    theorem HomogeneousLocalization.NumDenSameDeg.den_add {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] (x : Submonoid A) (c1 : HomogeneousLocalization.NumDenSameDeg ๐’œ x) (c2 : HomogeneousLocalization.NumDenSameDeg ๐’œ x) :
    โ†‘(c1 + c2).den = โ†‘c1.den * โ†‘c2.den
    instance HomogeneousLocalization.NumDenSameDeg.instNeg {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} (x : Submonoid A) :
    Equations
    @[simp]
    theorem HomogeneousLocalization.NumDenSameDeg.deg_neg {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} (x : Submonoid A) (c : HomogeneousLocalization.NumDenSameDeg ๐’œ x) :
    (-c).deg = c.deg
    @[simp]
    theorem HomogeneousLocalization.NumDenSameDeg.num_neg {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} (x : Submonoid A) (c : HomogeneousLocalization.NumDenSameDeg ๐’œ x) :
    โ†‘(-c).num = -โ†‘c.num
    @[simp]
    theorem HomogeneousLocalization.NumDenSameDeg.den_neg {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} (x : Submonoid A) (c : HomogeneousLocalization.NumDenSameDeg ๐’œ x) :
    โ†‘(-c).den = โ†‘c.den
    instance HomogeneousLocalization.NumDenSameDeg.instCommMonoid {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] (x : Submonoid A) :
    Equations
    instance HomogeneousLocalization.NumDenSameDeg.instPowNat {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] (x : Submonoid A) :
    Equations
    • One or more equations did not get rendered due to their size.
    @[simp]
    theorem HomogeneousLocalization.NumDenSameDeg.deg_pow {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] (x : Submonoid A) (c : HomogeneousLocalization.NumDenSameDeg ๐’œ x) (n : โ„•) :
    (c ^ n).deg = n โ€ข c.deg
    @[simp]
    theorem HomogeneousLocalization.NumDenSameDeg.num_pow {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] (x : Submonoid A) (c : HomogeneousLocalization.NumDenSameDeg ๐’œ x) (n : โ„•) :
    โ†‘(c ^ n).num = โ†‘c.num ^ n
    @[simp]
    theorem HomogeneousLocalization.NumDenSameDeg.den_pow {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] (x : Submonoid A) (c : HomogeneousLocalization.NumDenSameDeg ๐’œ x) (n : โ„•) :
    โ†‘(c ^ n).den = โ†‘c.den ^ n
    instance HomogeneousLocalization.NumDenSameDeg.instSMul {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} (x : Submonoid A) {ฮฑ : Type u_4} [SMul ฮฑ R] [SMul ฮฑ A] [IsScalarTower ฮฑ R A] :
    Equations
    • One or more equations did not get rendered due to their size.
    @[simp]
    theorem HomogeneousLocalization.NumDenSameDeg.deg_smul {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} (x : Submonoid A) {ฮฑ : Type u_4} [SMul ฮฑ R] [SMul ฮฑ A] [IsScalarTower ฮฑ R A] (c : HomogeneousLocalization.NumDenSameDeg ๐’œ x) (m : ฮฑ) :
    (m โ€ข c).deg = c.deg
    @[simp]
    theorem HomogeneousLocalization.NumDenSameDeg.num_smul {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} (x : Submonoid A) {ฮฑ : Type u_4} [SMul ฮฑ R] [SMul ฮฑ A] [IsScalarTower ฮฑ R A] (c : HomogeneousLocalization.NumDenSameDeg ๐’œ x) (m : ฮฑ) :
    โ†‘(m โ€ข c).num = m โ€ข โ†‘c.num
    @[simp]
    theorem HomogeneousLocalization.NumDenSameDeg.den_smul {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} (x : Submonoid A) {ฮฑ : Type u_4} [SMul ฮฑ R] [SMul ฮฑ A] [IsScalarTower ฮฑ R A] (c : HomogeneousLocalization.NumDenSameDeg ๐’œ x) (m : ฮฑ) :
    โ†‘(m โ€ข c).den = โ†‘c.den
    def HomogeneousLocalization.NumDenSameDeg.embedding {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [CommRing R] [CommRing A] [Algebra R A] (๐’œ : ฮน โ†’ Submodule R A) (x : Submonoid A) (p : HomogeneousLocalization.NumDenSameDeg ๐’œ x) :

    For x : prime ideal of A and any p : NumDenSameDeg ๐’œ x, or equivalent a numerator and a denominator of the same degree, we get an element p.num / p.den of Aโ‚“.

    Equations
    Instances For
      def HomogeneousLocalization {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [CommRing R] [CommRing A] [Algebra R A] (๐’œ : ฮน โ†’ Submodule R A) (x : Submonoid A) :
      Type (max u_1 u_3)

      For x : prime ideal of A, HomogeneousLocalization ๐’œ x is NumDenSameDeg ๐’œ x modulo the kernel of embedding ๐’œ x. This is essentially the subring of Aโ‚“ where the numerator and denominator share the same grading.

      Equations
      Instances For
        @[reducible, inline]
        abbrev HomogeneousLocalization.mk {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} {x : Submonoid A} (y : HomogeneousLocalization.NumDenSameDeg ๐’œ x) :

        Construct an element of HomogeneousLocalization ๐’œ x from a homogeneous fraction.

        Equations
        Instances For
          theorem HomogeneousLocalization.mk_surjective {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} {x : Submonoid A} :
          Function.Surjective HomogeneousLocalization.mk
          def HomogeneousLocalization.val {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} {x : Submonoid A} (y : HomogeneousLocalization ๐’œ x) :

          View an element of HomogeneousLocalization ๐’œ x as an element of Aโ‚“ by forgetting that the numerator and denominator are of the same grading.

          Equations
          Instances For
            @[simp]
            theorem HomogeneousLocalization.val_mk {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} {x : Submonoid A} (i : HomogeneousLocalization.NumDenSameDeg ๐’œ x) :
            (HomogeneousLocalization.mk i).val = Localization.mk โ†‘i.num โŸจโ†‘i.den, โ‹ฏโŸฉ
            theorem HomogeneousLocalization.val_injective {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} (x : Submonoid A) :
            Function.Injective HomogeneousLocalization.val
            theorem HomogeneousLocalization.subsingleton {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [CommRing R] [CommRing A] [Algebra R A] (๐’œ : ฮน โ†’ Submodule R A) {x : Submonoid A} (hx : 0 โˆˆ x) :
            instance HomogeneousLocalization.hasPow {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] (x : Submonoid A) :
            Equations
            @[simp]
            theorem HomogeneousLocalization.mk_pow {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] (x : Submonoid A) (i : HomogeneousLocalization.NumDenSameDeg ๐’œ x) (n : โ„•) :
            instance HomogeneousLocalization.instSMul {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} (x : Submonoid A) {ฮฑ : Type u_4} [SMul ฮฑ R] [SMul ฮฑ A] [IsScalarTower ฮฑ R A] [IsScalarTower ฮฑ A A] :
            SMul ฮฑ (HomogeneousLocalization ๐’œ x)
            Equations
            @[simp]
            theorem HomogeneousLocalization.mk_smul {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} (x : Submonoid A) {ฮฑ : Type u_4} [SMul ฮฑ R] [SMul ฮฑ A] [IsScalarTower ฮฑ R A] [IsScalarTower ฮฑ A A] (i : HomogeneousLocalization.NumDenSameDeg ๐’œ x) (m : ฮฑ) :
            @[simp]
            theorem HomogeneousLocalization.val_smul {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} (x : Submonoid A) {ฮฑ : Type u_4} [SMul ฮฑ R] [SMul ฮฑ A] [IsScalarTower ฮฑ R A] [IsScalarTower ฮฑ A A] (n : ฮฑ) (y : HomogeneousLocalization ๐’œ x) :
            (n โ€ข y).val = n โ€ข y.val
            theorem HomogeneousLocalization.val_nsmul {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} (x : Submonoid A) (n : โ„•) (y : HomogeneousLocalization ๐’œ x) :
            (n โ€ข y).val = n โ€ข y.val
            theorem HomogeneousLocalization.val_zsmul {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} (x : Submonoid A) (n : โ„ค) (y : HomogeneousLocalization ๐’œ x) :
            (n โ€ข y).val = n โ€ข y.val
            instance HomogeneousLocalization.instNeg {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} (x : Submonoid A) :
            Equations
            @[simp]
            theorem HomogeneousLocalization.mk_neg {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} (x : Submonoid A) (i : HomogeneousLocalization.NumDenSameDeg ๐’œ x) :
            instance HomogeneousLocalization.instAdd {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] (x : Submonoid A) :
            Equations
            @[simp]
            theorem HomogeneousLocalization.mk_add {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] (x : Submonoid A) (i : HomogeneousLocalization.NumDenSameDeg ๐’œ x) (j : HomogeneousLocalization.NumDenSameDeg ๐’œ x) :
            instance HomogeneousLocalization.instSub {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] (x : Submonoid A) :
            Equations
            instance HomogeneousLocalization.instMul {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] (x : Submonoid A) :
            Equations
            @[simp]
            theorem HomogeneousLocalization.mk_mul {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] (x : Submonoid A) (i : HomogeneousLocalization.NumDenSameDeg ๐’œ x) (j : HomogeneousLocalization.NumDenSameDeg ๐’œ x) :
            instance HomogeneousLocalization.instOne {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] (x : Submonoid A) :
            Equations
            @[simp]
            theorem HomogeneousLocalization.mk_one {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] (x : Submonoid A) :
            instance HomogeneousLocalization.instZero {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] (x : Submonoid A) :
            Equations
            @[simp]
            theorem HomogeneousLocalization.mk_zero {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] (x : Submonoid A) :
            theorem HomogeneousLocalization.zero_eq {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] (x : Submonoid A) :
            theorem HomogeneousLocalization.one_eq {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] (x : Submonoid A) :
            @[simp]
            theorem HomogeneousLocalization.val_zero {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] {x : Submonoid A} :
            @[simp]
            theorem HomogeneousLocalization.val_one {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] {x : Submonoid A} :
            @[simp]
            theorem HomogeneousLocalization.val_add {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] {x : Submonoid A} (y1 : HomogeneousLocalization ๐’œ x) (y2 : HomogeneousLocalization ๐’œ x) :
            (y1 + y2).val = y1.val + y2.val
            @[simp]
            theorem HomogeneousLocalization.val_mul {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] {x : Submonoid A} (y1 : HomogeneousLocalization ๐’œ x) (y2 : HomogeneousLocalization ๐’œ x) :
            (y1 * y2).val = y1.val * y2.val
            @[simp]
            theorem HomogeneousLocalization.val_neg {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} {x : Submonoid A} (y : HomogeneousLocalization ๐’œ x) :
            (-y).val = -y.val
            @[simp]
            theorem HomogeneousLocalization.val_sub {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] {x : Submonoid A} (y1 : HomogeneousLocalization ๐’œ x) (y2 : HomogeneousLocalization ๐’œ x) :
            (y1 - y2).val = y1.val - y2.val
            @[simp]
            theorem HomogeneousLocalization.val_pow {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] {x : Submonoid A} (y : HomogeneousLocalization ๐’œ x) (n : โ„•) :
            (y ^ n).val = y.val ^ n
            instance HomogeneousLocalization.instNatCast {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] {x : Submonoid A} :
            Equations
            • HomogeneousLocalization.instNatCast = { natCast := Nat.unaryCast }
            instance HomogeneousLocalization.instIntCast {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] {x : Submonoid A} :
            Equations
            • HomogeneousLocalization.instIntCast = { intCast := Int.castDef }
            @[simp]
            theorem HomogeneousLocalization.val_natCast {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] {x : Submonoid A} (n : โ„•) :
            (โ†‘n).val = โ†‘n
            @[simp]
            theorem HomogeneousLocalization.val_intCast {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] {x : Submonoid A} (n : โ„ค) :
            (โ†‘n).val = โ†‘n
            instance HomogeneousLocalization.homogenousLocalizationCommRing {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] {x : Submonoid A} :
            Equations
            • HomogeneousLocalization.homogenousLocalizationCommRing = Function.Injective.commRing HomogeneousLocalization.val โ‹ฏ โ‹ฏ โ‹ฏ โ‹ฏ โ‹ฏ โ‹ฏ โ‹ฏ โ‹ฏ โ‹ฏ โ‹ฏ โ‹ฏ โ‹ฏ
            instance HomogeneousLocalization.homogeneousLocalizationAlgebra {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] {x : Submonoid A} :
            Equations
            • HomogeneousLocalization.homogeneousLocalizationAlgebra = Algebra.mk { toFun := HomogeneousLocalization.val, map_one' := โ‹ฏ, map_mul' := โ‹ฏ, map_zero' := โ‹ฏ, map_add' := โ‹ฏ } โ‹ฏ โ‹ฏ
            @[simp]
            theorem HomogeneousLocalization.algebraMap_apply {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] {x : Submonoid A} (y : HomogeneousLocalization ๐’œ x) :
            (algebraMap (HomogeneousLocalization ๐’œ x) (Localization x)) y = y.val
            theorem HomogeneousLocalization.mk_eq_zero_of_num {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] {x : Submonoid A} (f : HomogeneousLocalization.NumDenSameDeg ๐’œ x) (h : f.num = 0) :
            theorem HomogeneousLocalization.mk_eq_zero_of_den {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] {x : Submonoid A} (f : HomogeneousLocalization.NumDenSameDeg ๐’œ x) (h : f.den = 0) :
            def HomogeneousLocalization.num {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} {x : Submonoid A} (f : HomogeneousLocalization ๐’œ x) :
            A

            Numerator of an element in HomogeneousLocalization x.

            Equations
            Instances For
              def HomogeneousLocalization.den {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} {x : Submonoid A} (f : HomogeneousLocalization ๐’œ x) :
              A

              Denominator of an element in HomogeneousLocalization x.

              Equations
              Instances For
                def HomogeneousLocalization.deg {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} {x : Submonoid A} (f : HomogeneousLocalization ๐’œ x) :
                ฮน

                For an element in HomogeneousLocalization x, degree is the natural number i such that ๐’œ i contains both numerator and denominator.

                Equations
                Instances For
                  theorem HomogeneousLocalization.den_mem {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} {x : Submonoid A} (f : HomogeneousLocalization ๐’œ x) :
                  f.den โˆˆ x
                  theorem HomogeneousLocalization.num_mem_deg {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} {x : Submonoid A} (f : HomogeneousLocalization ๐’œ x) :
                  f.num โˆˆ ๐’œ f.deg
                  theorem HomogeneousLocalization.den_mem_deg {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} {x : Submonoid A} (f : HomogeneousLocalization ๐’œ x) :
                  f.den โˆˆ ๐’œ f.deg
                  theorem HomogeneousLocalization.eq_num_div_den {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} {x : Submonoid A} (f : HomogeneousLocalization ๐’œ x) :
                  f.val = Localization.mk f.num โŸจf.den, โ‹ฏโŸฉ
                  theorem HomogeneousLocalization.den_smul_val {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} {x : Submonoid A} (f : HomogeneousLocalization ๐’œ x) :
                  f.den โ€ข f.val = (algebraMap A (Localization x)) f.num
                  theorem HomogeneousLocalization.ext_iff_val {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} {x : Submonoid A} (f : HomogeneousLocalization ๐’œ x) (g : HomogeneousLocalization ๐’œ x) :
                  f = g โ†” f.val = g.val
                  @[reducible, inline]
                  abbrev HomogeneousLocalization.AtPrime {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [CommRing R] [CommRing A] [Algebra R A] (๐’œ : ฮน โ†’ Submodule R A) (๐”ญ : Ideal A) [๐”ญ.IsPrime] :
                  Type (max u_1 u_3)

                  Localizing a ring homogeneously at a prime ideal.

                  Equations
                  Instances For
                    theorem HomogeneousLocalization.isUnit_iff_isUnit_val {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] (๐’œ : ฮน โ†’ Submodule R A) [GradedAlgebra ๐’œ] (๐”ญ : Ideal A) [๐”ญ.IsPrime] (f : HomogeneousLocalization.AtPrime ๐’œ ๐”ญ) :
                    instance HomogeneousLocalization.instNontrivialAtPrime {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] (๐’œ : ฮน โ†’ Submodule R A) [GradedAlgebra ๐’œ] (๐”ญ : Ideal A) [๐”ญ.IsPrime] :
                    Equations
                    • โ‹ฏ = โ‹ฏ
                    instance HomogeneousLocalization.localRing {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] (๐’œ : ฮน โ†’ Submodule R A) [GradedAlgebra ๐’œ] (๐”ญ : Ideal A) [๐”ญ.IsPrime] :
                    Equations
                    • โ‹ฏ = โ‹ฏ
                    @[reducible, inline]
                    abbrev HomogeneousLocalization.Away {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [CommRing R] [CommRing A] [Algebra R A] (๐’œ : ฮน โ†’ Submodule R A) (f : A) :
                    Type (max u_1 u_3)

                    Localizing away from powers of f homogeneously.

                    Equations
                    Instances For
                      theorem HomogeneousLocalization.Away.eventually_smul_mem {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] {๐’œ : ฮน โ†’ Submodule R A} [GradedAlgebra ๐’œ] {f : A} {m : ฮน} (hf : f โˆˆ ๐’œ m) (z : HomogeneousLocalization.Away ๐’œ f) :
                      โˆ€แถ  (n : โ„•) in Filter.atTop, f ^ n โ€ข HomogeneousLocalization.val z โˆˆ โ‡‘(algebraMap A (Localization (Submonoid.powers f))) '' โ†‘(๐’œ (n โ€ข m))
                      def HomogeneousLocalization.map {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] (๐’œ : ฮน โ†’ Submodule R A) [GradedAlgebra ๐’œ] {B : Type u_4} [CommRing B] [Algebra R B] (โ„ฌ : ฮน โ†’ Submodule R B) [GradedAlgebra โ„ฌ] {P : Submonoid A} {Q : Submonoid B} (g : A โ†’+* B) (comap_le : P โ‰ค Submonoid.comap g Q) (hg : โˆ€ (i : ฮน), โˆ€ a โˆˆ ๐’œ i, g a โˆˆ โ„ฌ i) :

                      Let A, B be two graded algebras with the same indexing set and g : A โ†’ B be a graded algebra homomorphism (i.e. g(Aโ‚˜) โŠ† Bโ‚˜). Let P โ‰ค A be a submonoid and Q โ‰ค B be a submonoid such that P โ‰ค gโปยน Q, then g induce a map from the homogeneous localizations Aโฐ_P to the homogeneous localizations Bโฐ_Q.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        @[reducible, inline]
                        abbrev HomogeneousLocalization.mapId {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] (๐’œ : ฮน โ†’ Submodule R A) [GradedAlgebra ๐’œ] {P : Submonoid A} {Q : Submonoid A} (h : P โ‰ค Q) :

                        Let A be a graded algebra and P โ‰ค Q be two submonoids, then the homogeneous localization of A at P embedds into the homogeneous localization of A at Q.

                        Equations
                        Instances For
                          theorem HomogeneousLocalization.map_mk {ฮน : Type u_1} {R : Type u_2} {A : Type u_3} [AddCommMonoid ฮน] [DecidableEq ฮน] [CommRing R] [CommRing A] [Algebra R A] (๐’œ : ฮน โ†’ Submodule R A) [GradedAlgebra ๐’œ] {B : Type u_4} [CommRing B] [Algebra R B] (โ„ฌ : ฮน โ†’ Submodule R B) [GradedAlgebra โ„ฌ] {P : Submonoid A} {Q : Submonoid B} (g : A โ†’+* B) (comap_le : P โ‰ค Submonoid.comap g Q) (hg : โˆ€ (i : ฮน), โˆ€ a โˆˆ ๐’œ i, g a โˆˆ โ„ฌ i) (x : HomogeneousLocalization.NumDenSameDeg ๐’œ P) :
                          (HomogeneousLocalization.map ๐’œ โ„ฌ g comap_le hg) (HomogeneousLocalization.mk x) = HomogeneousLocalization.mk { deg := x.deg, num := โŸจg โ†‘x.num, โ‹ฏโŸฉ, den := โŸจg โ†‘x.den, โ‹ฏโŸฉ, den_mem := โ‹ฏ }