Bundled subsemirings #
We define bundled subsemirings and some standard constructions: subtype
and inclusion
ring homomorphisms.
AddSubmonoidWithOneClass S R
says S
is a type of subsets s ≤ R
that contain 0
, 1
,
and are closed under (+)
Instances
Alias of natCast_mem
.
Equations
SubsemiringClass S R
states that S
is a type of subsets s ⊆ R
that
are both a multiplicative and an additive submonoid.
Instances
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
A subsemiring of a NonAssocSemiring
inherits a NonAssocSemiring
structure
Equations
- SubsemiringClass.toNonAssocSemiring s = Function.Injective.nonAssocSemiring Subtype.val ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
The natural ring hom from a subsemiring of semiring R
to R
.
Equations
- SubsemiringClass.subtype s = { toFun := Subtype.val, map_one' := ⋯, map_mul' := ⋯, map_zero' := ⋯, map_add' := ⋯ }
Instances For
A subsemiring of a Semiring
is a Semiring
.
Equations
- SubsemiringClass.toSemiring s = Function.Injective.semiring Subtype.val ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
A subsemiring of a CommSemiring
is a CommSemiring
.
Equations
- SubsemiringClass.toCommSemiring s = Function.Injective.commSemiring Subtype.val ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
A subsemiring of a semiring R
is a subset s
that is both a multiplicative and an additive
submonoid.
Instances For
Reinterpret a Subsemiring
as an AddSubmonoid
.
Equations
- self.toAddSubmonoid = { carrier := self.carrier, add_mem' := ⋯, zero_mem' := ⋯ }
Instances For
Equations
- Subsemiring.instSetLike = { coe := fun (s : Subsemiring R) => s.carrier, coe_injective' := ⋯ }
Equations
- ⋯ = ⋯
Two subsemirings are equal if they have the same elements.
Copy of a subsemiring with a new carrier
equal to the old one. Useful to fix definitional
equalities.
Equations
- S.copy s hs = { carrier := s, mul_mem' := ⋯, one_mem' := ⋯, add_mem' := ⋯, zero_mem' := ⋯ }
Instances For
Construct a Subsemiring R
from a set s
, a submonoid sm
, and an additive
submonoid sa
such that x ∈ s ↔ x ∈ sm ↔ x ∈ sa
.
Equations
- Subsemiring.mk' s sm hm sa ha = { carrier := s, mul_mem' := ⋯, one_mem' := ⋯, add_mem' := ⋯, zero_mem' := ⋯ }
Instances For
A subsemiring contains the semiring's 1.
A subsemiring contains the semiring's 0.
A subsemiring is closed under multiplication.
A subsemiring is closed under addition.
A subsemiring of a NonAssocSemiring
inherits a NonAssocSemiring
structure
Equations
- s.toNonAssocSemiring = SubsemiringClass.toNonAssocSemiring s
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
A subsemiring of a Semiring
is a Semiring
.
Equations
- s.toSemiring = Semiring.mk ⋯ ⋯ ⋯ ⋯ Monoid.npow ⋯ ⋯
A subsemiring of a CommSemiring
is a CommSemiring
.
Equations
- s.toCommSemiring = CommSemiring.mk ⋯
The natural ring hom from a subsemiring of semiring R
to R
.
Equations
- s.subtype = { toFun := Subtype.val, map_one' := ⋯, map_mul' := ⋯, map_zero' := ⋯, map_add' := ⋯ }
Instances For
The subsemiring R
of the semiring R
.
The inf of two subsemirings is their intersection.
Equations
- One or more equations did not get rendered due to their size.
Restriction of a ring homomorphism to a subsemiring of the domain.
Equations
- f.domRestrict s = f.comp (SubsemiringClass.subtype s)
Instances For
The subsemiring of elements x : R
such that f x = g x