Localization over left Ore sets. #
This file defines the localization of a monoid over a left Ore set and proves its universal mapping property.
Notations #
Introduces the notation R[S⁻¹]
for the Ore localization of a monoid R
at a right Ore
subset S
. Also defines a new heterogeneous division notation r /ₒ s
for a numerator r : R
and
a denominator s : S
.
References #
- https://ncatlab.org/nlab/show/Ore+localization
- [Zoran Škoda, Noncommutative localization in noncommutative geometry][skoda2006]
Tags #
localization, Ore, non-commutative
The setoid on R × S
used for the Ore localization.
Equations
Instances For
The setoid on R × S
used for the Ore localization.
Equations
Instances For
The Ore localization of a monoid and a submonoid fulfilling the Ore condition.
Equations
- OreLocalization S X = Quotient (OreLocalization.oreEqv S X)
Instances For
The Ore localization of an additive monoid and a submonoid fulfilling the Ore condition.
Equations
- AddOreLocalization S X = Quotient (AddOreLocalization.oreEqv S X)
Instances For
The Ore localization of a monoid and a submonoid fulfilling the Ore condition.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The division in the Ore localization X[S⁻¹]
, as a fraction of an element of X
and S
.
Equations
- r /ₒ s = Quotient.mk' (r, s)
Instances For
The subtraction in the Ore localization,
as a difference of an element of X
and S
.
Equations
- r -ₒ s = Quotient.mk' (r, s)
Instances For
The division in the Ore localization X[S⁻¹]
, as a fraction of an element of X
and S
.
Equations
- OreLocalization.«term_/ₒ_» = Lean.ParserDescr.trailingNode `OreLocalization.«term_/ₒ_» 70 70 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " /ₒ ") (Lean.ParserDescr.cat `term 71))
Instances For
The subtraction in the Ore localization,
as a difference of an element of X
and S
.
Equations
- OreLocalization.«term_-ₒ_» = Lean.ParserDescr.trailingNode `OreLocalization.«term_-ₒ_» 65 65 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " -ₒ ") (Lean.ParserDescr.cat `term 66))
Instances For
A difference r -ₒ s
is equal to its expansion by an
arbitrary translation t
if t + s ∈ S
.
A difference is equal to its expansion by a summand from S
.
Fractions which differ by a factor of the numerator can be proven equal if
those factors expand to equal elements of R
.
Differences whose minuends differ by a common summand can be proven equal if
those summands expand to equal elements of R
.
A function or predicate over X
and S
can be lifted to X[S⁻¹]
if it is invariant
under expansion on the left.
Equations
- OreLocalization.liftExpand P hP = Quotient.lift (fun (p : X × ↥S) => P p.1 p.2) ⋯
Instances For
A function or predicate over X
and S
can be lifted to the localizaton if it is
invariant under expansion on the left.
Equations
- AddOreLocalization.liftExpand P hP = Quotient.lift (fun (p : X × ↥S) => P p.1 p.2) ⋯
Instances For
A version of liftExpand
used to simultaneously lift functions with two arguments
in X[S⁻¹]
.
Equations
- OreLocalization.lift₂Expand P hP = OreLocalization.liftExpand (fun (r₁ : X) (s₁ : ↥S) => OreLocalization.liftExpand (P r₁ s₁) ⋯) ⋯
Instances For
A version of liftExpand
used to simultaneously lift functions with two arguments
Equations
- AddOreLocalization.lift₂Expand P hP = AddOreLocalization.liftExpand (fun (r₁ : X) (s₁ : ↥S) => AddOreLocalization.liftExpand (P r₁ s₁) ⋯) ⋯
Instances For
The scalar multiplication on the Ore localization of monoids.
Equations
- OreLocalization.smul = OreLocalization.liftExpand OreLocalization.smul'' ⋯
Instances For
the vector addition on the Ore localization of additive monoids.
Equations
- AddOreLocalization.vadd = AddOreLocalization.liftExpand OreLocalization.vadd'' ⋯
Instances For
Equations
- OreLocalization.instSMul = { smul := OreLocalization.smul }
Equations
- AddOreLocalization.instVAdd = { vadd := AddOreLocalization.vadd }
Equations
- OreLocalization.instMul = { mul := OreLocalization.smul }
Equations
- AddOreLocalization.instAdd = { add := AddOreLocalization.vadd }
A characterization lemma for the scalar multiplication on the Ore localization, allowing for a choice of Ore numerator and Ore denominator.
A characterization lemma for the vector addition on the Ore localization, allowing for a choice of Ore minuend and Ore subtrahend.
A characterization lemma for the multiplication on the Ore localization, allowing for a choice of Ore numerator and Ore denominator.
A characterization lemma for the addition on the Ore localization, allowing for a choice of Ore minuend and Ore subtrahend.
Another characterization lemma for the scalar multiplication on the Ore localizaion delivering Ore witnesses and conditions bundled in a sigma type.
Equations
- OreLocalization.oreDivSMulChar' r₁ r₂ s₁ s₂ = ⟨OreLocalization.oreNum r₁ s₂, ⟨OreLocalization.oreDenom r₁ s₂, ⋯⟩⟩
Instances For
Another characterization lemma for the vector addition on the Ore localizaion delivering Ore witnesses and conditions bundled in a sigma type.
Equations
- AddOreLocalization.oreSubVAddChar' r₁ r₂ s₁ s₂ = ⟨AddOreLocalization.oreMin r₁ s₂, ⟨AddOreLocalization.oreSubtra r₁ s₂, ⋯⟩⟩
Instances For
Another characterization lemma for the multiplication on the Ore localizaion delivering Ore witnesses and conditions bundled in a sigma type.
Equations
- OreLocalization.oreDivMulChar' r₁ r₂ s₁ s₂ = ⟨OreLocalization.oreNum r₁ s₂, ⟨OreLocalization.oreDenom r₁ s₂, ⋯⟩⟩
Instances For
Another characterization lemma for the addition on the Ore localizaion delivering Ore witnesses and conditions bundled in a sigma type.
Equations
- AddOreLocalization.oreSubAddChar' r₁ r₂ s₁ s₂ = ⟨AddOreLocalization.oreMin r₁ s₂, ⟨AddOreLocalization.oreSubtra r₁ s₂, ⋯⟩⟩
Instances For
1
in the localization, defined as 1 /ₒ 1
.
Instances For
0
in the additive localization, defined as 0 -ₒ 0
.
Instances For
Equations
- OreLocalization.instOne = { one := OreLocalization.one }
Equations
- AddOreLocalization.instZero = { zero := AddOreLocalization.zero }
Equations
- OreLocalization.instInhabited = { default := 1 }
Equations
- AddOreLocalization.instInhabited = { default := 0 }
Equations
- OreLocalization.npow = npowRec
Instances For
Equations
- AddOreLocalization.nsmul = nsmulRec
Instances For
Equations
- AddOreLocalization.instAddMonoid = AddMonoid.mk ⋯ ⋯ AddOreLocalization.nsmul ⋯ ⋯
Equations
- OreLocalization.instMulActionOreLocalization = MulAction.mk ⋯ ⋯
Equations
- AddOreLocalization.instAddActionOreLocalization = AddAction.mk ⋯ ⋯
The fraction s /ₒ 1
as a unit in R[S⁻¹]
, where s : S
.
Equations
- OreLocalization.numeratorUnit s = { val := ↑s /ₒ 1, inv := 1 /ₒ s, val_inv := ⋯, inv_val := ⋯ }
Instances For
The difference s -ₒ 0
as a an additive unit.
Equations
- AddOreLocalization.numeratorAddUnit s = { val := ↑s -ₒ 0, neg := 0 -ₒ s, val_neg := ⋯, neg_val := ⋯ }
Instances For
The multiplicative homomorphism from R
to R[S⁻¹]
, mapping r : R
to the
fraction r /ₒ 1
.
Equations
Instances For
The additive homomorphism from R
to AddOreLocalization R S
,
mapping r : R
to the difference r -ₒ 0
.
Equations
Instances For
The universal lift from a morphism R →* T
, which maps elements of S
to units of T
,
to a morphism R[S⁻¹] →* T
.
Equations
- OreLocalization.universalMulHom f fS hf = { toFun := fun (x : OreLocalization S R) => OreLocalization.liftExpand (fun (r : R) (s : ↥S) => ↑(fS s)⁻¹ * f r) ⋯ x, map_one' := ⋯, map_mul' := ⋯ }
Instances For
The universal lift from a morphism R →+ T
, which maps elements of S
to
additive-units of T
, to a morphism AddOreLocalization R S →+ T
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The universal morphism universalMulHom
is unique.
The universal morphism universalAddHom
is unique.
Scalar multiplication in a monoid localization.
Equations
- OreLocalization.hsmul c = OreLocalization.liftExpand (fun (m : X) (s : ↥S) => OreLocalization.oreNum (c • 1) s • m /ₒ OreLocalization.oreDenom (c • 1) s) ⋯
Instances For
Vector addition in an additive monoid localization.
Equations
- AddOreLocalization.hvadd c = AddOreLocalization.liftExpand (fun (m : X) (s : ↥S) => AddOreLocalization.oreMin (c +ᵥ 0) s +ᵥ m -ₒ AddOreLocalization.oreSubtra (c +ᵥ 0) s) ⋯
Instances For
Equations
- OreLocalization.instSMulOfIsScalarTower = { smul := OreLocalization.hsmul }
Equations
- AddOreLocalization.instVAddOfIsScalarTower = { vadd := AddOreLocalization.hvadd }
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- OreLocalization.instMulActionOfIsScalarTower = MulAction.mk ⋯ ⋯
Equations
- AddOreLocalization.instAddActionOfIsScalarTower = AddAction.mk ⋯ ⋯
Equations
- OreLocalization.instCommMonoid = CommMonoid.mk ⋯
Equations
- AddOreLocalization.instAddCommMonoid = AddCommMonoid.mk ⋯
0
in the localization, defined as 0 /ₒ 1
.
Instances For
Equations
- OreLocalization.instZero = { zero := OreLocalization.zero }