Bundled non-unital subsemirings #
We define bundled non-unital subsemirings and some standard constructions:
subtype
and inclusion
ring homomorphisms.
NonUnitalSubsemiringClass S R
states that S
is a type of subsets s ⊆ R
that
are both an additive submonoid and also a multiplicative subsemigroup.
Instances
Equations
- ⋯ = ⋯
A non-unital subsemiring of a NonUnitalNonAssocSemiring
inherits a
NonUnitalNonAssocSemiring
structure
Equations
- NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring s = Function.Injective.nonUnitalNonAssocSemiring Subtype.val ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- ⋯ = ⋯
The natural non-unital ring hom from a non-unital subsemiring of a non-unital semiring R
to
R
.
Equations
- NonUnitalSubsemiringClass.subtype s = { toFun := Subtype.val, map_mul' := ⋯, map_zero' := ⋯, map_add' := ⋯ }
Instances For
A non-unital subsemiring of a NonUnitalSemiring
is a NonUnitalSemiring
.
Equations
- NonUnitalSubsemiringClass.toNonUnitalSemiring s = Function.Injective.nonUnitalSemiring Subtype.val ⋯ ⋯ ⋯ ⋯ ⋯
A non-unital subsemiring of a NonUnitalCommSemiring
is a NonUnitalCommSemiring
.
Equations
- NonUnitalSubsemiringClass.toNonUnitalCommSemiring s = Function.Injective.nonUnitalCommSemiring Subtype.val ⋯ ⋯ ⋯ ⋯ ⋯
Note: currently, there are no ordered versions of non-unital rings.
A non-unital subsemiring of a non-unital semiring R
is a subset s
that is both an additive
submonoid and a semigroup.
Instances For
Equations
- NonUnitalSubsemiring.instSetLike = { coe := fun (s : NonUnitalSubsemiring R) => s.carrier, coe_injective' := ⋯ }
Equations
- ⋯ = ⋯
Two non-unital subsemirings are equal if they have the same elements.
Copy of a non-unital subsemiring with a new carrier
equal to the old one. Useful to fix
definitional equalities.
Equations
- S.copy s hs = { carrier := s, add_mem' := ⋯, zero_mem' := ⋯, mul_mem' := ⋯ }
Instances For
Construct a NonUnitalSubsemiring R
from a set s
, a subsemigroup sg
, and an additive
submonoid sa
such that x ∈ s ↔ x ∈ sg ↔ x ∈ sa
.
Equations
- NonUnitalSubsemiring.mk' s sg hg sa ha = { carrier := s, add_mem' := ⋯, zero_mem' := ⋯, mul_mem' := ⋯ }
Instances For
Note: currently, there are no ordered versions of non-unital rings.
The non-unital subsemiring R
of the non-unital semiring R
.
Equations
- NonUnitalSubsemiring.instBot = { bot := { carrier := {0}, add_mem' := ⋯, zero_mem' := ⋯, mul_mem' := ⋯ } }
The inf of two non-unital subsemirings is their intersection.
Equations
- One or more equations did not get rendered due to their size.
Restriction of a non-unital ring homomorphism to a non-unital subsemiring of the codomain.
Equations
- NonUnitalRingHom.codRestrict f s h = { toFun := fun (n : R) => ⟨f n, ⋯⟩, map_mul' := ⋯, map_zero' := ⋯, map_add' := ⋯ }
Instances For
The non-unital subsemiring of elements x : R
such that f x = g x
Equations
- NonUnitalRingHom.eqSlocus f g = { carrier := {x : R | f x = g x}, add_mem' := ⋯, zero_mem' := ⋯, mul_mem' := ⋯ }
Instances For
The non-unital ring homomorphism associated to an inclusion of non-unital subsemirings.