Module and Ring instances of Ore Localizations #
The Monoid and DistribMulAction instances and additive versions are provided in
Mathlib/RingTheory/OreLocalization/Basic.lean.
theorem OreLocalization.zero_smul {R : Type u_1} [Semiring R] {S : Submonoid R} [OreSet S] {X : Type u_2} [AddCommMonoid X] [Module R X] (x : OreLocalization S X) :
theorem OreLocalization.add_smul {R : Type u_1} [Semiring R] {S : Submonoid R} [OreSet S] {X : Type u_2} [AddCommMonoid X] [Module R X] (y z : OreLocalization S R) (x : OreLocalization S X) :
@[instance_reducible]
instance OreLocalization.instSemiring {R : Type u_1} [Semiring R] {S : Submonoid R} [OreSet S] :
Semiring (OreLocalization S R)
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
instance OreLocalization.instModule {R : Type u_1} [Semiring R] {S : Submonoid R} [OreSet S] {X : Type u_2} [AddCommMonoid X] [Module R X] :
Module (OreLocalization S R) (OreLocalization S X)
Equations
- OreLocalization.instModule = { toDistribMulAction := OreLocalization.instDistribMulAction, add_smul := ⋯, zero_smul := ⋯ }
@[instance_reducible]
instance OreLocalization.instModuleOfIsScalarTower {R : Type u_1} [Semiring R] {S : Submonoid R} [OreSet S] {X : Type u_2} [AddCommMonoid X] [Module R X] {R₀ : Type u_3} [Semiring R₀] [Module R₀ X] [Module R₀ R] [IsScalarTower R₀ R X] [IsScalarTower R₀ R R] :
Module R₀ (OreLocalization S X)
Equations
- OreLocalization.instModuleOfIsScalarTower = { toDistribMulAction := OreLocalization.instDistribMulActionOfIsScalarTower, add_smul := ⋯, zero_smul := ⋯ }
@[simp]
theorem OreLocalization.nsmul_eq_nsmul {R : Type u_1} [Semiring R] {S : Submonoid R} [OreSet S] {X : Type u_2} [AddCommMonoid X] [Module R X] (n : ℕ) (x : OreLocalization S X) :
@[reducible, inline]
The ring homomorphism from R to R[S⁻¹], mapping r : R to the fraction r /ₒ 1.
Equations
- OreLocalization.numeratorRingHom = { toMonoidHom := OreLocalization.numeratorHom, map_zero' := ⋯, map_add' := ⋯ }
Instances For
@[simp]
theorem OreLocalization.numeratorRingHom_apply {R : Type u_1} [Semiring R] {S : Submonoid R} [OreSet S] (r : R) :
@[instance_reducible]
instance OreLocalization.instAlgebra {R : Type u_1} [Semiring R] {S : Submonoid R} [OreSet S] {R₀ : Type u_3} [CommSemiring R₀] [Algebra R₀ R] :
Algebra R₀ (OreLocalization S R)
Equations
- OreLocalization.instAlgebra = { toSMul := inferInstance.toSMul, algebraMap := OreLocalization.numeratorRingHom.comp (algebraMap R₀ R), commutes' := ⋯, smul_def' := ⋯ }
def OreLocalization.universalHom {R : Type u_1} [Semiring R] {S : Submonoid R} [OreSet S] {T : Type u_3} [Semiring T] (f : R →+* T) (fS : ↥S →* Tˣ) (hf : ∀ (s : ↥S), f ↑s = ↑(fS s)) :
The universal lift from a ring homomorphism f : R →+* T, which maps elements in S to
units of T, to a ring homomorphism R[S⁻¹] →+* T. This extends the construction on
monoids.
Equations
- OreLocalization.universalHom f fS hf = { toMonoidHom := OreLocalization.universalMulHom (↑f) fS hf, map_zero' := ⋯, map_add' := ⋯ }
Instances For
theorem OreLocalization.universalHom_unique {R : Type u_1} [Semiring R] {S : Submonoid R} [OreSet S] {T : Type u_3} [Semiring T] (f : R →+* T) (fS : ↥S →* Tˣ) (hf : ∀ (s : ↥S), f ↑s = ↑(fS s)) (φ : OreLocalization S R →+* T) (huniv : ∀ (r : R), φ (numeratorHom r) = f r) :
@[instance_reducible]
instance OreLocalization.instRing {R : Type u_1} [Ring R] {S : Submonoid R} [OreSet S] :
Ring (OreLocalization S R)
Equations
- One or more equations did not get rendered due to their size.
@[simp]
theorem OreLocalization.zsmul_eq_zsmul {R : Type u_1} [Ring R] {S : Submonoid R} [OreSet S] {X : Type u_2} [AddCommGroup X] [Module R X] (n : ℤ) (x : OreLocalization S X) :
theorem OreLocalization.numeratorHom_inj {R : Type u_1} [Ring R] {S : Submonoid R} [OreSet S] (hS : S ≤ nonZeroDivisorsLeft R) :
@[instance_reducible]
noncomputable instance OreLocalization.instDivisionRingNonZeroDivisors {R : Type u_1} [Ring R] [Nontrivial R] [NoZeroDivisors R] [OreSet (nonZeroDivisors R)] :
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
instance OreLocalization.instCommSemiring {R : Type u_1} [CommSemiring R] {S : Submonoid R} [OreSet S] :
CommSemiring (OreLocalization S R)
Equations
- OreLocalization.instCommSemiring = { toSemiring := inferInstance, mul_comm := ⋯ }
@[instance_reducible]
instance OreLocalization.instCommRing {R : Type u_1} [CommRing R] {S : Submonoid R} [OreSet S] :
CommRing (OreLocalization S R)
Equations
- OreLocalization.instCommRing = { toRing := inferInstance, mul_comm := ⋯ }
@[instance_reducible]
noncomputable instance OreLocalization.instFieldNonZeroDivisors {R : Type u_1} [CommRing R] [Nontrivial R] [NoZeroDivisors R] [OreSet (nonZeroDivisors R)] :
Field (OreLocalization (nonZeroDivisors R) R)
Equations
- One or more equations did not get rendered due to their size.