Documentation

Mathlib.RingTheory.Localization.BaseChange

Localized Module #

Given a commutative semiring R, a multiplicative subset S โІ R and an R-module M, we can localize M by S. This gives us a Localization S-module.

Main definition #

theorem IsLocalizedModule.isBaseChange {R : Type u_1} [CommSemiring R] (S : Submonoid R) (A : Type u_2) [CommSemiring A] [Algebra R A] [IsLocalization S A] {M : Type u_3} [AddCommMonoid M] [Module R M] {M' : Type u_4} [AddCommMonoid M'] [Module R M'] [Module A M'] [IsScalarTower R A M'] (f : M โ†’โ‚—[R] M') [IsLocalizedModule S f] :

The forward direction of isLocalizedModule_iff_isBaseChange. It is also used to prove the other direction.

theorem isLocalizedModule_iff_isBaseChange {R : Type u_1} [CommSemiring R] (S : Submonoid R) (A : Type u_2) [CommSemiring A] [Algebra R A] [IsLocalization S A] {M : Type u_3} [AddCommMonoid M] [Module R M] {M' : Type u_4} [AddCommMonoid M'] [Module R M'] [Module A M'] [IsScalarTower R A M'] (f : M โ†’โ‚—[R] M') :

The map (f : M โ†’โ‚—[R] M') is a localization of modules iff the map (Localization S) ร— M โ†’ N, (s, m) โ†ฆ s โ€ข f m is the tensor product (insomuch as it is the universal bilinear map). In particular, there is an isomorphism between LocalizedModule S M and (Localization S) โŠ—[R] M given by m/s โ†ฆ (1/s) โŠ—โ‚œ m.

The localization of an R-module M at a submonoid S is isomorphic to SโปยนR โŠ—[R] M as an SโปยนR-module.

Equations
    Instances For
      @[simp]
      theorem LocalizedModule.equivTensorProduct_symm_apply_tmul {R : Type u_1} [CommSemiring R] (S : Submonoid R) {M : Type u_3} [AddCommMonoid M] [Module R M] (x : M) (r : R) (s : โ†ฅS) :
      @[simp]
      theorem LocalizedModule.equivTensorProduct_apply_mk {R : Type u_1} [CommSemiring R] (S : Submonoid R) {M : Type u_3} [AddCommMonoid M] [Module R M] (x : M) (s : โ†ฅS) :
      theorem IsLocalization.tensorProduct_compatibleSMul {R : Type u_1} [CommSemiring R] (S : Submonoid R) (A : Type u_2) [CommSemiring A] [Algebra R A] [IsLocalization S A] (Mโ‚ : Type u_5) (Mโ‚‚ : Type u_6) [AddCommMonoid Mโ‚] [AddCommMonoid Mโ‚‚] [Module R Mโ‚] [Module R Mโ‚‚] [Module A Mโ‚] [Module A Mโ‚‚] [IsScalarTower R A Mโ‚] [IsScalarTower R A Mโ‚‚] :
      TensorProduct.CompatibleSMul R A Mโ‚ Mโ‚‚
      instance IsLocalization.instCompatibleSMulLocalizationOfIsScalarTower_1 {R : Type u_1} [CommSemiring R] (S : Submonoid R) (Mโ‚ : Type u_5) (Mโ‚‚ : Type u_6) [AddCommMonoid Mโ‚] [AddCommMonoid Mโ‚‚] [Module R Mโ‚] [Module R Mโ‚‚] [Module (Localization S) Mโ‚] [Module (Localization S) Mโ‚‚] [IsScalarTower R (Localization S) Mโ‚] [IsScalarTower R (Localization S) Mโ‚‚] :
      noncomputable def IsLocalization.moduleTensorEquiv {R : Type u_1} [CommSemiring R] (S : Submonoid R) (A : Type u_2) [CommSemiring A] [Algebra R A] [IsLocalization S A] (Mโ‚ : Type u_5) (Mโ‚‚ : Type u_6) [AddCommMonoid Mโ‚] [AddCommMonoid Mโ‚‚] [Module R Mโ‚] [Module R Mโ‚‚] [Module A Mโ‚] [Module A Mโ‚‚] [IsScalarTower R A Mโ‚] [IsScalarTower R A Mโ‚‚] :
      TensorProduct A Mโ‚ Mโ‚‚ โ‰ƒโ‚—[A] TensorProduct R Mโ‚ Mโ‚‚

      If A is a localization of R, tensoring two A-modules over A is the same as tensoring them over R.

      Equations
        Instances For
          noncomputable def IsLocalization.moduleLid {R : Type u_1} [CommSemiring R] (S : Submonoid R) (A : Type u_2) [CommSemiring A] [Algebra R A] [IsLocalization S A] (Mโ‚ : Type u_5) [AddCommMonoid Mโ‚] [Module R Mโ‚] [Module A Mโ‚] [IsScalarTower R A Mโ‚] :
          TensorProduct R A Mโ‚ โ‰ƒโ‚—[A] Mโ‚

          If A is a localization of R, tensoring an A-module with A over R does nothing.

          Equations
            Instances For
              noncomputable def IsLocalization.algebraTensorEquiv {R : Type u_1} [CommSemiring R] (S : Submonoid R) (A : Type u_2) [CommSemiring A] [Algebra R A] [IsLocalization S A] (B : Type u_5) (C : Type u_6) [Semiring B] [Algebra R B] [Algebra A B] [IsScalarTower R A B] [Semiring C] [Algebra R C] [Algebra A C] [IsScalarTower R A C] :

              If A is a localization of R, tensoring two A-algebras over A is the same as tensoring them over R.

              Equations
                Instances For
                  noncomputable def IsLocalization.algebraLid {R : Type u_1} [CommSemiring R] (S : Submonoid R) (A : Type u_2) [CommSemiring A] [Algebra R A] [IsLocalization S A] (B : Type u_5) [Semiring B] [Algebra R B] [Algebra A B] [IsScalarTower R A B] :

                  If A is a localization of R, tensoring an A-algebra with A over R does nothing.

                  Equations
                    Instances For
                      theorem IsLocalizedModule.map_linearCombination {R : Type u_1} [CommSemiring R] (S : Submonoid R) (A : Type u_2) [CommSemiring A] [Algebra R A] [IsLocalization S A] {M : Type u_3} [AddCommMonoid M] [Module R M] {M' : Type u_4} [AddCommMonoid M'] [Module R M'] [Module A M'] [IsScalarTower R A M'] (f : M โ†’โ‚—[R] M') {ฮฑ : Type u_7} {v : ฮฑ โ†’ M} [IsLocalizedModule S f] :
                      instance IsLocalizedModule.rTensor {R : Type u_1} [CommSemiring R] (A : Type u_2) [CommSemiring A] [Algebra R A] {M : Type u_3} [AddCommMonoid M] [Module R M] {M' : Type u_4} [AddCommMonoid M'] [Module R M'] [Module A M'] [IsScalarTower R A M'] (S : Submonoid A) {N : Type u_7} [AddCommMonoid N] [Module R N] [Module A M] [IsScalarTower R A M] (g : M โ†’โ‚—[A] M') [h : IsLocalizedModule S g] :

                      SโปยนM โŠ—[R] N = Sโปยน(M โŠ—[R] N).

                      theorem IsLocalization.tmul_mk' {R : Type u_7} {S : Type u_8} [CommSemiring R] [CommSemiring S] [Algebra R S] (A : Type u_9) [CommSemiring A] [Algebra R A] (M : Submonoid R) [IsLocalization M A] (s : S) (x : R) (y : โ†ฅM) :
                      s โŠ—โ‚œ[R] mk' A x y = mk' (TensorProduct R S A) ((algebraMap R S) x * s) โŸจ(algebraMap R S) โ†‘y, โ‹ฏโŸฉ
                      theorem IsLocalization.mk'_tmul {R : Type u_7} {S : Type u_8} [CommSemiring R] [CommSemiring S] [Algebra R S] (A : Type u_9) [CommSemiring A] [Algebra R A] (M : Submonoid R) [IsLocalization M A] (s : S) (x : R) (y : โ†ฅM) :
                      mk' A x y โŠ—โ‚œ[R] s = mk' (TensorProduct R A S) ((algebraMap R S) x * s) โŸจ(algebraMap R S) โ†‘y, โ‹ฏโŸฉ

                      A[Mโปยน] โŠ—[R] S is the localization of A โŠ—[R] S at M.

                      instance IsLocalization.Away.tensor {R : Type u_7} {S : Type u_8} [CommSemiring R] [CommSemiring S] [Algebra R S] (r : R) (A : Type u_9) [CommSemiring A] [Algebra R A] [Away r A] :
                      Away ((algebraMap R S) r) (TensorProduct R S A)
                      @[reducible, inline]
                      noncomputable abbrev IsLocalization.Away.tensorEquiv {R : Type u_7} (S : Type u_8) [CommSemiring R] [CommSemiring S] [Algebra R S] (r : R) (A : Type u_9) [CommSemiring A] [Algebra R A] [Away r A] :

                      The S-isomorphism S โŠ—[R] Rแตฃ โ‰ƒโ‚ Sแตฃ.

                      Equations
                        Instances For
                          instance IsLocalization.Away.tensorRight {R : Type u_7} {S : Type u_8} [CommSemiring R] [CommSemiring S] [Algebra R S] (r : R) (A : Type u_9) [CommSemiring A] [Algebra R A] [Away r A] :
                          Away ((algebraMap R S) r) (TensorProduct R A S)
                          @[reducible, inline]
                          noncomputable abbrev IsLocalization.Away.tensorRightEquiv {R : Type u_7} (S : Type u_8) [CommSemiring R] [CommSemiring S] [Algebra R S] (r : R) (A : Type u_9) [CommSemiring A] [Algebra R A] [Away r A] :

                          The S-isomorphism S โŠ—[R] Rแตฃ โ‰ƒโ‚ Sแตฃ.

                          Equations
                            Instances For