Semiring, ring etc structures on R × S
#
In this file we define two-binop (Semiring
, Ring
etc) structures on R × S
. We also prove
trivial simp
lemmas, and define the following operations on RingHom
s and similarly for
NonUnitalRingHom
s:
Product of two NonUnitalNonAssocSemiring
s is a NonUnitalNonAssocSemiring
.
Equations
- One or more equations did not get rendered due to their size.
Product of two NonUnitalSemiring
s is a NonUnitalSemiring
.
Equations
- One or more equations did not get rendered due to their size.
Product of two NonAssocSemiring
s is a NonAssocSemiring
.
Equations
- One or more equations did not get rendered due to their size.
Product of two NonUnitalCommSemiring
s is a NonUnitalCommSemiring
.
Equations
- One or more equations did not get rendered due to their size.
Product of two commutative semirings is a commutative semiring.
Equations
- Prod.instCommSemiring = let src := inferInstanceAs (Semiring (R × S)); let src_1 := inferInstanceAs (CommMonoid (R × S)); CommSemiring.mk (_ : ∀ (a b : R × S), a * b = b * a)
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.
Equations
- One or more equations did not get rendered due to their size.
Product of two NonUnitalCommRing
s is a NonUnitalCommRing
.
Equations
- Prod.instNonUnitalCommRing = let src := inferInstanceAs (NonUnitalRing (R × S)); let src_1 := inferInstanceAs (CommSemigroup (R × S)); NonUnitalCommRing.mk (_ : ∀ (a b : R × S), a * b = b * a)
Product of two commutative rings is a commutative ring.
Equations
- Prod.instCommRing = let src := inferInstanceAs (Ring (R × S)); let src_1 := inferInstanceAs (CommMonoid (R × S)); CommRing.mk (_ : ∀ (a b : R × S), a * b = b * a)
Given non-unital semirings R
, S
, the natural projection homomorphism from R × S
to R
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given non-unital semirings R
, S
, the natural projection homomorphism from R × S
to S
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Combine two non-unital ring homomorphisms f : R →ₙ+* S
, g : R →ₙ+* T
into
f.prod g : R →ₙ+* S × T
given by (f.prod g) x = (f x, g x)
Equations
- One or more equations did not get rendered due to their size.
Instances For
Prod.map
as a NonUnitalRingHom
.
Equations
Instances For
Given semirings R
, S
, the natural projection homomorphism from R × S
to R
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given semirings R
, S
, the natural projection homomorphism from R × S
to S
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Combine two ring homomorphisms f : R →+* S
, g : R →+* T
into f.prod g : R →+* S × T
given by (f.prod g) x = (f x, g x)
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- RingHom.prodMap f g = RingHom.prod (RingHom.comp f (RingHom.fst R S)) (RingHom.comp g (RingHom.snd R S))
Instances For
Swapping components as an equivalence of (semi)rings.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Four-way commutativity of prod
. The name matches mul_mul_mul_comm
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A ring R
is isomorphic to R × S
when S
is the zero ring
Equations
- One or more equations did not get rendered due to their size.
Instances For
A ring R
is isomorphic to S × R
when S
is the zero ring
Equations
- One or more equations did not get rendered due to their size.
Instances For
The product of two nontrivial rings is not a domain
Order #
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.
Equations
- One or more equations did not get rendered due to their size.
Equations
- instOrderedCommRingProd = let src := inferInstanceAs (OrderedRing (α × β)); let src_1 := inferInstanceAs (CommRing (α × β)); OrderedCommRing.mk (_ : ∀ (a b : α × β), a * b = b * a)