Quotients of semirings #
In this file, we directly define the quotient of a semiring by any relation, by building a bigger relation that represents the ideal generated by that relation.
We prove the universal properties of the quotient, and recommend avoiding relying on the actual definition, which is made irreducible for this purpose.
Since everything runs in parallel for quotients of R-algebras, we do that case at the same time.
Given an arbitrary relation r on a ring, we strengthen it to a relation Rel r,
such that the equivalence relation generated by Rel r has x ~ y if and only if
x - y is in the ideal generated by elements a - b such that r a b.
- of {R : Type uR} [Semiring R] {r : R → R → Prop} ⦃x y : R⦄ (h : r x y) : Rel r x y
- add_left {R : Type uR} [Semiring R] {r : R → R → Prop} ⦃a b c : R⦄ : Rel r a b → Rel r (a + c) (b + c)
- mul_left {R : Type uR} [Semiring R] {r : R → R → Prop} ⦃a b c : R⦄ : Rel r a b → Rel r (a * c) (b * c)
- mul_right {R : Type uR} [Semiring R] {r : R → R → Prop} ⦃a b c : R⦄ : Rel r b c → Rel r (a * b) (a * c)
Instances For
EqvGen (RingQuot.Rel r) is a ring congruence.
Equations
- RingQuot.ringCon r = { r := Relation.EqvGen (RingQuot.Rel r), iseqv := ⋯, mul' := ⋯, add' := ⋯ }
Instances For
The natCast function for RingQuot.
Equations
- RingQuot.natCast r n = { toQuot := Quot.mk (RingQuot.Rel r) ↑n }
Instances For
Equations
- RingQuot.instNatCast r = { natCast := RingQuot.natCast r }
Equations
- RingQuot.instZero r = { zero := { toQuot := Quot.mk (RingQuot.Rel r) 0 } }
Equations
- RingQuot.instOne r = { one := { toQuot := Quot.mk (RingQuot.Rel r) 1 } }
Equations
- RingQuot.instSMulOfAlgebra r = { smul := RingQuot.smul r }
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
The intCast function for RingQuot.
Equations
- RingQuot.intCast r z = { toQuot := Quot.mk (RingQuot.Rel r) ↑z }
Instances For
Equations
- RingQuot.instCommSemiring r = { toSemiring := RingQuot.instSemiring r, mul_comm := ⋯ }
Equations
- One or more equations did not get rendered due to their size.
The quotient map from a ring to its quotient, as a homomorphism of rings.
Equations
- RingQuot.mkRingHom r = { toFun := fun (x : R) => { toQuot := Quot.mk (RingQuot.Rel r) x }, map_one' := ⋯, map_mul' := ⋯, map_zero' := ⋯, map_add' := ⋯ }
Instances For
Any ring homomorphism f : R →+* T which respects a relation r : R → R → Prop
factors uniquely through a morphism RingQuot r →+* T.
Equations
- One or more equations did not get rendered due to their size.
Instances For
We now verify that in the case of a commutative ring, the RingQuot construction
agrees with the quotient by the appropriate ideal.
The universal ring homomorphism from RingQuot r to B ⧸ Ideal.ofRel r.
Equations
Instances For
The universal ring homomorphism from B ⧸ Ideal.ofRel r to RingQuot r.
Equations
Instances For
The quotient map from an S-algebra to its quotient, as a homomorphism of S-algebras.
Equations
- RingQuot.mkAlgHom S s = let __src := RingQuot.mkRingHom s; { toRingHom := __src, commutes' := ⋯ }
Instances For
Any S-algebra homomorphism f : A →ₐ[S] B which respects a relation s : A → A → Prop
factors uniquely through a morphism RingQuot s →ₐ[S] B.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If two S-algebras are S-equivalent and their quotients by a relation rel are defined,
then their quotients are also S-equivalent.
(Special case of the third isomorphism theorem.)
Equations
- One or more equations did not get rendered due to their size.
Instances For
If two (semi)rings are equivalent and their quotients by a relation rel are defined,
then their quotients are also equivalent.
(Special case of algEquivQuotAlgEquiv when S = ℕ, which in turn is a special
case of the third isomorphism theorem.)