Star subrings #
A *-subring is a subring of a *-ring which is closed under *.
structure
StarSubsemiring
(R : Type v)
[NonAssocSemiring R]
[Star R]
extends
Subsemiring
,
Submonoid
,
AddSubmonoid
,
Subsemigroup
,
AddSubsemigroup
:
Type v
A (unital) star subsemiring is a non-associative ring which is closed under the star
operation.
Instances For
theorem
StarSubsemiring.star_mem'
{R : Type v}
[NonAssocSemiring R]
[Star R]
(self : StarSubsemiring R)
{a : R}
:
The carrier
of a StarSubsemiring
is closed under the star
operation.
instance
StarSubsemiring.setLike
{R : Type v}
[NonAssocSemiring R]
[StarRing R]
:
SetLike (StarSubsemiring R) R
Equations
- StarSubsemiring.setLike = { coe := fun {s : StarSubsemiring R} => s.carrier, coe_injective' := ⋯ }
instance
StarSubsemiring.starMemClass
{R : Type v}
[NonAssocSemiring R]
[StarRing R]
:
StarMemClass (StarSubsemiring R) R
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
instance
StarSubsemiring.starRing
{R : Type v}
[NonAssocSemiring R]
[StarRing R]
(s : StarSubsemiring R)
:
StarRing ↥s
Equations
- s.starRing = StarRing.mk ⋯
instance
StarSubsemiring.semiring
{R : Type v}
[NonAssocSemiring R]
[StarRing R]
(s : StarSubsemiring R)
:
Equations
- s.semiring = s.toNonAssocSemiring
@[simp]
theorem
StarSubsemiring.mem_carrier
{R : Type v}
[NonAssocSemiring R]
[StarRing R]
{s : StarSubsemiring R}
{x : R}
:
theorem
StarSubsemiring.ext
{R : Type v}
[NonAssocSemiring R]
[StarRing R]
{S : StarSubsemiring R}
{T : StarSubsemiring R}
(h : ∀ (x : R), x ∈ S ↔ x ∈ T)
:
S = T
@[simp]
theorem
StarSubsemiring.coe_mk
{R : Type v}
[NonAssocSemiring R]
[StarRing R]
(S : Subsemiring R)
(h : ∀ {a : R}, a ∈ S.carrier → star a ∈ S.carrier)
:
↑{ toSubsemiring := S, star_mem' := h } = ↑S
@[simp]
theorem
StarSubsemiring.mem_toSubsemiring
{R : Type v}
[NonAssocSemiring R]
[StarRing R]
{S : StarSubsemiring R}
{x : R}
:
@[simp]
theorem
StarSubsemiring.coe_toSubsemiring
{R : Type v}
[NonAssocSemiring R]
[StarRing R]
(S : StarSubsemiring R)
:
↑S.toSubsemiring = ↑S
theorem
StarSubsemiring.toSubsemiring_injective
{R : Type v}
[NonAssocSemiring R]
[StarRing R]
:
Function.Injective StarSubsemiring.toSubsemiring
theorem
StarSubsemiring.toSubsemiring_inj
{R : Type v}
[NonAssocSemiring R]
[StarRing R]
{S : StarSubsemiring R}
{U : StarSubsemiring R}
:
theorem
StarSubsemiring.toSubsemiring_le_iff
{R : Type v}
[NonAssocSemiring R]
[StarRing R]
{S₁ : StarSubsemiring R}
{S₂ : StarSubsemiring R}
:
def
StarSubsemiring.copy
{R : Type v}
[NonAssocSemiring R]
[StarRing R]
(S : StarSubsemiring R)
(s : Set R)
(hs : s = ↑S)
:
Copy of a non-unital star subalgebra with a new carrier
equal to the old one. Useful to fix
definitional equalities.
Equations
- S.copy s hs = { toSubsemiring := S.copy s hs, star_mem' := ⋯ }
Instances For
@[simp]
theorem
StarSubsemiring.coe_copy
{R : Type v}
[NonAssocSemiring R]
[StarRing R]
(S : StarSubsemiring R)
(s : Set R)
(hs : s = ↑S)
:
↑(S.copy s hs) = s
theorem
StarSubsemiring.copy_eq
{R : Type v}
[NonAssocSemiring R]
[StarRing R]
(S : StarSubsemiring R)
(s : Set R)
(hs : s = ↑S)
:
S.copy s hs = S
The center of a semiring R
is the set of elements that commute and associate with everything
in R
Equations
- StarSubsemiring.center R = { toSubsemiring := Subsemiring.center R, star_mem' := ⋯ }
Instances For
The center of magma A
is the set of elements that commute and associate
with everything in A
, here realized as a SubStarSemigroup
.
Equations
- SubStarSemigroup.center A = { toSubsemigroup := Subsemigroup.center A, star_mem' := ⋯ }