Subrings #
Let R be a ring. This file defines the "bundled" subring type Subring R, a type
whose terms correspond to subrings of R. This is the preferred way to talk
about subrings in mathlib. Unbundled subrings (s : Set R and IsSubring s)
are not in this file, and they will ultimately be deprecated.
We prove that subrings are a complete lattice, and that you can map (pushforward) and
comap (pull back) them along ring homomorphisms.
We define the closure construction from Set R to Subring R, sending a subset of R
to the subring it generates, and prove that it is a Galois insertion.
Main definitions #
Notation used here:
(R : Type u) [Ring R] (S : Type u) [Ring S] (f g : R →+* S)
(A : Subring R) (B : Subring S) (s : Set R)
Subring R: the type of subrings of a ringR.instance : CompleteLattice (Subring R): the complete lattice structure on the subrings.Subring.center: the center of a ringR.Subring.closure: subring closure of a set, i.e., the smallest subring that includes the set.Subring.gi:closure : Set M → Subring Mand coercion(↑) : Subring M → et Mform aGaloisInsertion.comap f B : Subring A: the preimage of a subringBalong the ring homomorphismfmap f A : Subring B: the image of a subringAalong the ring homomorphismf.prod A B : Subring (R × S): the product of subringsf.range : Subring B: the range of the ring homomorphismf.eqLocus f g : Subring R: given ring homomorphismsf g : R →+* S, the subring ofRwheref x = g x
Implementation notes #
A subring is implemented as a subsemiring which is also an additive subgroup. The initial PR was as a submonoid 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 subring's underlying set.
Tags #
subring, subrings
SubringClass S R states that S is a type of subsets s ⊆ R that
are both a multiplicative submonoid and an additive subgroup.
Instances
A subring of a ring inherits a ring structure
Equations
- One or more equations did not get rendered due to their size.
A subring of a CommRing is a CommRing.
Equations
- SubringClass.toCommRing s = { toRing := SubringClass.toRing s, mul_comm := ⋯ }
A subring of a domain is a domain.
The natural ring hom from a subring of ring R to R.
Equations
- SubringClass.subtype s = { toFun := Subtype.val, map_one' := ⋯, map_mul' := ⋯, map_zero' := ⋯, map_add' := ⋯ }
Instances For
Subring R is the type of subrings of R. A subring of R is a subset s that is a
multiplicative submonoid and an additive subgroup. Note in particular that it shares the
same 0 and 1 as R.
Instances For
The actual Subring obtained from an element of a SubringClass.
Equations
- Subring.ofClass s = { carrier := ↑s, mul_mem' := ⋯, one_mem' := ⋯, add_mem' := ⋯, zero_mem' := ⋯, neg_mem' := ⋯ }
Instances For
Turn a Subring into a NonUnitalSubring by forgetting that it contains 1.
Equations
- S.toNonUnitalSubring = { carrier := S.carrier, add_mem' := ⋯, zero_mem' := ⋯, mul_mem' := ⋯, neg_mem' := ⋯ }
Instances For
Copy of a subring with a new carrier equal to the old one. Useful to fix definitional
equalities.
Equations
Instances For
Construct a Subring R from a set s, a submonoid sm, and an additive
subgroup sa such that x ∈ s ↔ x ∈ sm ↔ x ∈ sa.
Equations
- Subring.mk' s sm sa hm ha = { toSubmonoid := sm.copy s ⋯, add_mem' := ⋯, zero_mem' := ⋯, neg_mem' := ⋯ }
Instances For
A Subsemiring containing -1 is a Subring.
Instances For
A subring of a ring inherits a ring structure
Equations
A subring of a non-trivial ring is non-trivial.
A subring of a ring with no zero divisors has no zero divisors.
Partial order #
Turn a non-unital subring containing 1 into a subring.