Localization over left Ore sets. #
This file proves results on the localization of rings (monoids with zeros) over a left Ore set.
References #
- https://ncatlab.org/nlab/show/Ore+localization
- [Zoran Škoda, Noncommutative localization in noncommutative geometry][skoda2006]
Tags #
localization, Ore, non-commutative
@[simp]
theorem OreLocalization.zero_oreDiv' {R : Type u_1} [MonoidWithZero R] {S : Submonoid R} [OreSet S] (s : ↥S) :
@[instance_reducible]
instance OreLocalization.instMonoidWithZero {R : Type u_1} [MonoidWithZero R] {S : Submonoid R} [OreSet S] :
Equations
- OreLocalization.instMonoidWithZero = { toMonoid := OreLocalization.instMonoid, toZero := OreLocalization.instZero, zero_mul := ⋯, mul_zero := ⋯ }
theorem OreLocalization.subsingleton_iff {R : Type u_1} [MonoidWithZero R] {S : Submonoid R} [OreSet S] :
theorem OreLocalization.nontrivial_iff {R : Type u_1} [MonoidWithZero R] {S : Submonoid R} [OreSet S] :
@[instance_reducible]
instance OreLocalization.instCommMonoidWithZero {R : Type u_1} [CommMonoidWithZero R] {S : Submonoid R} [OreSet S] :
Equations
- OreLocalization.instCommMonoidWithZero = { toMonoid := inferInstance.toMonoid, mul_comm := ⋯, toZero := inferInstance.toZero, zero_mul := ⋯, mul_zero := ⋯ }
@[instance_reducible]
instance OreLocalization.instAdd {R : Type u_1} [Monoid R] {S : Submonoid R} [OreSet S] {X : Type u_2} [AddMonoid X] [DistribMulAction R X] :
Add (OreLocalization S X)
Equations
theorem OreLocalization.oreDiv_add_char {R : Type u_1} [Monoid R] {S : Submonoid R} [OreSet S] {X : Type u_2} [AddMonoid X] [DistribMulAction R X] {r r' : X} (s s' : ↥S) (rb : R) (sb : ↥S) (h : ↑sb * ↑s = rb * ↑s') :
A characterization of the addition on the Ore localization, allowing for arbitrary Ore numerator and Ore denominator.
def OreLocalization.oreDivAddChar' {R : Type u_1} [Monoid R] {S : Submonoid R} [OreSet S] {X : Type u_2} [AddMonoid X] [DistribMulAction R X] (r r' : X) (s s' : ↥S) :
Another characterization of the addition on the Ore localization, bundling up all witnesses and conditions into a sigma type.
Equations
- OreLocalization.oreDivAddChar' r r' s s' = ⟨OreLocalization.oreNum (↑s) s', ⟨OreLocalization.oreDenom (↑s) s', ⋯⟩⟩
Instances For
theorem OreLocalization.add_assoc {R : Type u_1} [Monoid R] {S : Submonoid R} [OreSet S] {X : Type u_2} [AddMonoid X] [DistribMulAction R X] (x y z : OreLocalization S X) :
theorem OreLocalization.zero_add {R : Type u_1} [Monoid R] {S : Submonoid R} [OreSet S] {X : Type u_2} [AddMonoid X] [DistribMulAction R X] (x : OreLocalization S X) :
theorem OreLocalization.add_zero {R : Type u_1} [Monoid R] {S : Submonoid R} [OreSet S] {X : Type u_2} [AddMonoid X] [DistribMulAction R X] (x : OreLocalization S X) :
@[irreducible]
def OreLocalization.nsmul {R : Type u_1} [Monoid R] {S : Submonoid R} [OreSet S] {X : Type u_2} [AddMonoid X] [DistribMulAction R X] :
ℕ → OreLocalization S X → OreLocalization S X
Scalar multiplication by natural numbers on the Ore localization.
Equations
Instances For
@[instance_reducible]
instance OreLocalization.instAddMonoid {R : Type u_1} [Monoid R] {S : Submonoid R} [OreSet S] {X : Type u_2} [AddMonoid X] [DistribMulAction R X] :
AddMonoid (OreLocalization S X)
Equations
- One or more equations did not get rendered due to their size.
theorem OreLocalization.smul_zero {R : Type u_1} [Monoid R] {S : Submonoid R} [OreSet S] {X : Type u_2} [AddMonoid X] [DistribMulAction R X] (x : OreLocalization S R) :
theorem OreLocalization.smul_add {R : Type u_1} [Monoid R] {S : Submonoid R} [OreSet S] {X : Type u_2} [AddMonoid X] [DistribMulAction R X] (z : OreLocalization S R) (x y : OreLocalization S X) :
@[instance_reducible]
instance OreLocalization.instDistribMulAction {R : Type u_1} [Monoid R] {S : Submonoid R} [OreSet S] {X : Type u_2} [AddMonoid X] [DistribMulAction R X] :
DistribMulAction (OreLocalization S R) (OreLocalization S X)
Equations
- OreLocalization.instDistribMulAction = { toMulAction := OreLocalization.instMulActionOreLocalization, smul_zero := ⋯, smul_add := ⋯ }
@[instance_reducible]
instance OreLocalization.instDistribMulActionOfIsScalarTower {R : Type u_1} [Monoid R] {S : Submonoid R} [OreSet S] {X : Type u_2} [AddMonoid X] [DistribMulAction R X] {R₀ : Type u_3} [Monoid R₀] [MulAction R₀ X] [MulAction R₀ R] [IsScalarTower R₀ R X] [IsScalarTower R₀ R R] :
DistribMulAction R₀ (OreLocalization S X)
Equations
- OreLocalization.instDistribMulActionOfIsScalarTower = { toMulAction := OreLocalization.instMulActionOfIsScalarTower, smul_zero := ⋯, smul_add := ⋯ }
theorem OreLocalization.add_comm {R : Type u_1} [Monoid R] {S : Submonoid R} [OreSet S] {X : Type u_2} [AddCommMonoid X] [DistribMulAction R X] (x y : OreLocalization S X) :
@[instance_reducible]
instance OreLocalization.instAddCommMonoidOreLocalization {R : Type u_1} [Monoid R] {S : Submonoid R} [OreSet S] {X : Type u_2} [AddCommMonoid X] [DistribMulAction R X] :
AddCommMonoid (OreLocalization S X)
Equations
- OreLocalization.instAddCommMonoidOreLocalization = { toAddMonoid := OreLocalization.instAddMonoid, add_comm := ⋯ }
@[irreducible]
def OreLocalization.neg {R : Type u_1} [Monoid R] {S : Submonoid R} [OreSet S] {X : Type u_2} [AddGroup X] [DistribMulAction R X] :
OreLocalization S X → OreLocalization S X
Negation on the Ore localization is defined via negation on the numerator.
Equations
- OreLocalization.neg = OreLocalization.liftExpand (fun (r : X) (s : ↥S) => -r /ₒ s) ⋯
Instances For
@[instance_reducible]
instance OreLocalization.instNegOreLocalization {R : Type u_1} [Monoid R] {S : Submonoid R} [OreSet S] {X : Type u_2} [AddGroup X] [DistribMulAction R X] :
Neg (OreLocalization S X)
Equations
theorem OreLocalization.neg_add_cancel {R : Type u_1} [Monoid R] {S : Submonoid R} [OreSet S] {X : Type u_2} [AddGroup X] [DistribMulAction R X] (x : OreLocalization S X) :
@[irreducible]
def OreLocalization.zsmul {R : Type u_1} [Monoid R] {S : Submonoid R} [OreSet S] {X : Type u_2} [AddGroup X] [DistribMulAction R X] :
ℤ → OreLocalization S X → OreLocalization S X
Equations
Instances For
@[instance_reducible]
instance OreLocalization.instAddGroupOreLocalization {R : Type u_1} [Monoid R] {S : Submonoid R} [OreSet S] {X : Type u_2} [AddGroup X] [DistribMulAction R X] :
AddGroup (OreLocalization S X)
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
instance OreLocalization.instAddCommGroup {R : Type u_1} [Monoid R] {S : Submonoid R} [OreSet S] {X : Type u_2} [AddCommGroup X] [DistribMulAction R X] :
AddCommGroup (OreLocalization S X)
Equations
- OreLocalization.instAddCommGroup = { toAddGroup := inferInstance, add_comm := ⋯ }