NonUnitalSubring
s #
Let R
be a non-unital ring. This file defines the "bundled" non-unital subring type
NonUnitalSubring R
, a type whose terms correspond to non-unital subrings of R
.
This is the preferred way to talk about non-unital subrings in mathlib.
Main definitions #
Notation used here:
(R : Type u) [NonUnitalRing R] (S : Type u) [NonUnitalRing S] (f g : R →ₙ+* S)
(A : NonUnitalSubring R) (B : NonUnitalSubring S) (s : Set R)
NonUnitalSubring R
: the type of non-unital subrings of a ringR
.
Implementation notes #
A non-unital subring is implemented as a NonUnitalSubsemiring
which is also an
additive subgroup.
Lattice inclusion (e.g. ≤
and ⊓
) is used rather than set notation (⊆
and ∩
), although
∈
is defined as membership of a non-unital subring's underlying set.
Tags #
non-unital subring
NonUnitalSubringClass S R
states that S
is a type of subsets s ⊆ R
that
are both a multiplicative submonoid and an additive subgroup.
Instances
A non-unital subring of a non-unital ring inherits a non-unital ring structure
Equations
- NonUnitalSubringClass.toNonUnitalNonAssocRing s = Function.Injective.nonUnitalNonAssocRing Subtype.val ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
A non-unital subring of a non-unital ring inherits a non-unital ring structure
Equations
- NonUnitalSubringClass.toNonUnitalRing s = Function.Injective.nonUnitalRing Subtype.val ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
A non-unital subring of a NonUnitalCommRing
is a NonUnitalCommRing
.
Equations
- NonUnitalSubringClass.toNonUnitalCommRing s = Function.Injective.nonUnitalCommRing Subtype.val ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
The natural non-unital ring hom from a non-unital subring of a non-unital ring R
to R
.
Equations
- NonUnitalSubringClass.subtype s = { toFun := Subtype.val, map_mul' := ⋯, map_zero' := ⋯, map_add' := ⋯ }
Instances For
NonUnitalSubring R
is the type of non-unital subrings of R
. A non-unital subring of R
is a subset s
that is a multiplicative subsemigroup and an additive subgroup. Note in particular
that it shares the same 0 as R.
Instances For
The underlying submonoid of a NonUnitalSubring
.
Equations
- s.toSubsemigroup = { carrier := s.carrier, mul_mem' := ⋯ }
Instances For
Equations
- NonUnitalSubring.instSetLike = { coe := fun (s : NonUnitalSubring R) => s.carrier, coe_injective' := ⋯ }
Two non-unital subrings are equal if they have the same elements.
Copy of a non-unital subring 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' := ⋯, neg_mem' := ⋯ }
Instances For
Construct a NonUnitalSubring R
from a set s
, a subsemigroup sm
, and an additive
subgroup sa
such that x ∈ s ↔ x ∈ sm ↔ x ∈ sa
.
Equations
- NonUnitalSubring.mk' s sm sa hm ha = { carrier := (sm.copy s ⋯).carrier, add_mem' := ⋯, zero_mem' := ⋯, mul_mem' := ⋯, neg_mem' := ⋯ }
Instances For
A non-unital subring contains the ring's 0.
A non-unital subring is closed under multiplication.
A non-unital subring is closed under addition.
A non-unital subring is closed under negation.
A non-unital subring is closed under subtraction
A non-unital subring of a non-unital ring inherits a non-unital ring structure
Equations
- s.toNonUnitalRing = Function.Injective.nonUnitalRing (fun (a : ↥s) => ↑a) ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
A non-unital subring of a NonUnitalCommRing
is a NonUnitalCommRing
.
Equations
- s.toNonUnitalCommRing = Function.Injective.nonUnitalCommRing (fun (a : ↥s) => ↑a) ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Partial order #
The ring homomorphism associated to an inclusion of NonUnitalSubring
s.