Bundled non-unital subsemirings #

We define bundled non-unital subsemirings and some standard constructions: CompleteLattice structure, subtype and inclusion ring homomorphisms, non-unital subsemiring map, comap and range (srange) of a NonUnitalRingHom etc.

class NonUnitalSubsemiringClass (S : Type u_1) (R : Type u) [SetLike S R] extends :

NonUnitalSubsemiringClass S R states that S is a type of subsets s ⊆ R that are both an additive submonoid and also a multiplicative subsemigroup.

• add_mem : ∀ {s : S} {a b : R}, a sb sa + b s
• zero_mem : ∀ (s : S), 0 s
• mul_mem : ∀ {s : S} {a b : R}, a sb sa * b s
Instances
instance NonUnitalSubsemiringClass.mulMemClass (S : Type u_1) (R : Type u) [SetLike S R] [h : ] :
Equations
• (_ : ) = (_ : )

A non-unital subsemiring of a NonUnitalNonAssocSemiring inherits a NonUnitalNonAssocSemiring structure

Equations
• One or more equations did not get rendered due to their size.
instance NonUnitalSubsemiringClass.noZeroDivisors {R : Type u} {S : Type v} [SetLike S R] (s : S) [] :
Equations
• (_ : ) = (_ : )
def NonUnitalSubsemiringClass.subtype {R : Type u} {S : Type v} [SetLike S R] (s : S) :
s →ₙ+* R

The natural non-unital ring hom from a non-unital subsemiring of a non-unital semiring R to R.

Equations
• One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem NonUnitalSubsemiringClass.coeSubtype {R : Type u} {S : Type v} [SetLike S R] (s : S) :
= Subtype.val
instance NonUnitalSubsemiringClass.toNonUnitalSemiring {S : Type v} (s : S) {R : Type u_1} [SetLike S R] :

A non-unital subsemiring of a NonUnitalSemiring is a NonUnitalSemiring.

Equations
• One or more equations did not get rendered due to their size.
instance NonUnitalSubsemiringClass.toNonUnitalCommSemiring {S : Type v} (s : S) {R : Type u_1} [SetLike S R] :

A non-unital subsemiring of a NonUnitalCommSemiring is a NonUnitalCommSemiring.

Equations
• One or more equations did not get rendered due to their size.

Note: currently, there are no ordered versions of non-unital rings.

structure NonUnitalSubsemiring (R : Type u) extends :

A non-unital subsemiring of a non-unital semiring R is a subset s that is both an additive submonoid and a semigroup.

• carrier : Set R
• add_mem' : ∀ {a b : R}, a self.carrierb self.carriera + b self.carrier
• zero_mem' : 0 self.carrier
• mul_mem' : ∀ {a b : R}, a self.carrierb self.carriera * b self.carrier

The product of two elements of a subsemigroup belongs to the subsemigroup.

Instances For
@[reducible]
abbrev NonUnitalSubsemiring.toSubsemigroup {R : Type u} (self : ) :

Reinterpret a NonUnitalSubsemiring as a Subsemigroup.

Equations
• = { carrier := self.carrier, mul_mem' := (_ : ∀ {a b : R}, a self.carrierb self.carriera * b self.carrier) }
Instances For
Equations
• One or more equations did not get rendered due to their size.
Equations
• (_ : ) = (_ : )
theorem NonUnitalSubsemiring.mem_carrier {R : Type u} {s : } {x : R} :
x s.carrier x s
theorem NonUnitalSubsemiring.ext {R : Type u} {S : } {T : } (h : ∀ (x : R), x S x T) :
S = T

Two non-unital subsemirings are equal if they have the same elements.

def NonUnitalSubsemiring.copy {R : Type u} (S : ) (s : Set R) (hs : s = S) :

Copy of a non-unital subsemiring with a new carrier equal to the old one. Useful to fix definitional equalities.

Equations
• One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem NonUnitalSubsemiring.coe_copy {R : Type u} (S : ) (s : Set R) (hs : s = S) :
() = s
theorem NonUnitalSubsemiring.copy_eq {R : Type u} (S : ) (s : Set R) (hs : s = S) :
= S
theorem NonUnitalSubsemiring.toSubsemigroup_injective {R : Type u} :
Function.Injective NonUnitalSubsemiring.toSubsemigroup
theorem NonUnitalSubsemiring.toSubsemigroup_strictMono {R : Type u} :
StrictMono NonUnitalSubsemiring.toSubsemigroup
theorem NonUnitalSubsemiring.toSubsemigroup_mono {R : Type u} :
Monotone NonUnitalSubsemiring.toSubsemigroup
theorem NonUnitalSubsemiring.toAddSubmonoid_injective {R : Type u} :
theorem NonUnitalSubsemiring.toAddSubmonoid_strictMono {R : Type u} :
theorem NonUnitalSubsemiring.toAddSubmonoid_mono {R : Type u} :
def NonUnitalSubsemiring.mk' {R : Type u} (s : Set R) (sg : ) (hg : sg = s) (sa : ) (ha : sa = s) :

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
• One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem NonUnitalSubsemiring.coe_mk' {R : Type u} {s : Set R} {sg : } (hg : sg = s) {sa : } (ha : sa = s) :
(NonUnitalSubsemiring.mk' s sg hg sa ha) = s
@[simp]
theorem NonUnitalSubsemiring.mem_mk' {R : Type u} {s : Set R} {sg : } (hg : sg = s) {sa : } (ha : sa = s) {x : R} :
x NonUnitalSubsemiring.mk' s sg hg sa ha x s
@[simp]
theorem NonUnitalSubsemiring.mk'_toSubsemigroup {R : Type u} {s : Set R} {sg : } (hg : sg = s) {sa : } (ha : sa = s) :
@[simp]
theorem NonUnitalSubsemiring.mk'_toAddSubmonoid {R : Type u} {s : Set R} {sg : } (hg : sg = s) {sa : } (ha : sa = s) :
(NonUnitalSubsemiring.mk' s sg hg sa ha).toAddSubmonoid = sa
@[simp]
theorem NonUnitalSubsemiring.coe_zero {R : Type u} (s : ) :
0 = 0
@[simp]
theorem NonUnitalSubsemiring.coe_add {R : Type u} (s : ) (x : s) (y : s) :
(x + y) = x + y
@[simp]
theorem NonUnitalSubsemiring.coe_mul {R : Type u} (s : ) (x : s) (y : s) :
(x * y) = x * y

Note: currently, there are no ordered versions of non-unital rings.

@[simp]
theorem NonUnitalSubsemiring.mem_toSubsemigroup {R : Type u} {s : } {x : R} :
@[simp]
@[simp]
theorem NonUnitalSubsemiring.mem_toAddSubmonoid {R : Type u} {s : } {x : R} :
@[simp]
theorem NonUnitalSubsemiring.coe_toAddSubmonoid {R : Type u} (s : ) :

The non-unital subsemiring R of the non-unital semiring R.

Equations
• One or more equations did not get rendered due to their size.
@[simp]
theorem NonUnitalSubsemiring.mem_top {R : Type u} (x : R) :
@[simp]
theorem NonUnitalSubsemiring.coe_top {R : Type u} :
= Set.univ
@[simp]
theorem NonUnitalSubsemiring.topEquiv_symm_apply_coe {R : Type u} (x : R) :
((RingEquiv.symm NonUnitalSubsemiring.topEquiv) x) = x
@[simp]
theorem NonUnitalSubsemiring.topEquiv_apply {R : Type u} (x : ) :
NonUnitalSubsemiring.topEquiv x = x

The ring equiv between the top element of NonUnitalSubsemiring R and R.

Equations
• One or more equations did not get rendered due to their size.
Instances For
def NonUnitalSubsemiring.comap {R : Type u} {S : Type v} {F : Type u_1} [FunLike F R S] [] (f : F) (s : ) :

The preimage of a non-unital subsemiring along a non-unital ring homomorphism is a non-unital subsemiring.

Equations
• One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem NonUnitalSubsemiring.coe_comap {R : Type u} {S : Type v} {F : Type u_1} [FunLike F R S] [] (s : ) (f : F) :
= f ⁻¹' s
@[simp]
theorem NonUnitalSubsemiring.mem_comap {R : Type u} {S : Type v} {F : Type u_1} [FunLike F R S] [] {s : } {f : F} {x : R} :
f x s
theorem NonUnitalSubsemiring.comap_comap {R : Type u} {S : Type v} {T : Type w} {F : Type u_1} {G : Type u_2} [FunLike F R S] [] [FunLike G S T] [] (s : ) (g : G) (f : F) :
def NonUnitalSubsemiring.map {R : Type u} {S : Type v} {F : Type u_1} [FunLike F R S] [] (f : F) (s : ) :

The image of a non-unital subsemiring along a ring homomorphism is a non-unital subsemiring.

Equations
• One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem NonUnitalSubsemiring.coe_map {R : Type u} {S : Type v} {F : Type u_1} [FunLike F R S] [] (f : F) (s : ) :
() = f '' s
@[simp]
theorem NonUnitalSubsemiring.mem_map {R : Type u} {S : Type v} {F : Type u_1} [FunLike F R S] [] {f : F} {s : } {y : S} :
∃ x ∈ s, f x = y
@[simp]
theorem NonUnitalSubsemiring.map_id {R : Type u} (s : ) :
theorem NonUnitalSubsemiring.map_map {R : Type u} {S : Type v} {T : Type w} {F : Type u_1} {G : Type u_2} [FunLike F R S] [] [FunLike G S T] [] (s : ) (g : G) (f : F) :
theorem NonUnitalSubsemiring.map_le_iff_le_comap {R : Type u} {S : Type v} {F : Type u_1} [FunLike F R S] [] {f : F} {s : } {t : } :
theorem NonUnitalSubsemiring.gc_map_comap {R : Type u} {S : Type v} {F : Type u_1} [FunLike F R S] [] (f : F) :
noncomputable def NonUnitalSubsemiring.equivMapOfInjective {R : Type u} {S : Type v} {F : Type u_1} [FunLike F R S] [] (s : ) (f : F) (hf : ) :
s ≃+* ()

A non-unital subsemiring is isomorphic to its image under an injective function

Equations
• One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem NonUnitalSubsemiring.coe_equivMapOfInjective_apply {R : Type u} {S : Type v} {F : Type u_1} [FunLike F R S] [] (s : ) (f : F) (hf : ) (x : s) :
( x) = f x
def NonUnitalRingHom.srange {R : Type u} {S : Type v} {F : Type u_1} [FunLike F R S] [] (f : F) :

The range of a non-unital ring homomorphism is a non-unital subsemiring. See note [range copy pattern].

Equations
Instances For
@[simp]
theorem NonUnitalRingHom.coe_srange {R : Type u} {S : Type v} {F : Type u_1} [FunLike F R S] [] (f : F) :
@[simp]
theorem NonUnitalRingHom.mem_srange {R : Type u} {S : Type v} {F : Type u_1} [FunLike F R S] [] {f : F} {y : S} :
∃ (x : R), f x = y
theorem NonUnitalRingHom.srange_eq_map {R : Type u} {S : Type v} {F : Type u_1} [FunLike F R S] [] (f : F) :
theorem NonUnitalRingHom.mem_srange_self {R : Type u} {S : Type v} {F : Type u_1} [FunLike F R S] [] (f : F) (x : R) :
theorem NonUnitalRingHom.map_srange {R : Type u} {S : Type v} {T : Type w} (g : S →ₙ+* T) (f : R →ₙ+* S) :
instance NonUnitalRingHom.finite_srange {R : Type u} {S : Type v} {F : Type u_1} [FunLike F R S] [] [] (f : F) :

The range of a morphism of non-unital semirings is finite if the domain is a finite.

Equations
Equations
• One or more equations did not get rendered due to their size.
Equations
• NonUnitalSubsemiring.instInhabitedNonUnitalSubsemiring = { default := }
theorem NonUnitalSubsemiring.mem_bot {R : Type u} {x : R} :
x x = 0

The inf of two non-unital subsemirings is their intersection.

Equations
• One or more equations did not get rendered due to their size.
@[simp]
theorem NonUnitalSubsemiring.coe_inf {R : Type u} (p : ) (p' : ) :
(p p') = p p'
@[simp]
theorem NonUnitalSubsemiring.mem_inf {R : Type u} {p : } {p' : } {x : R} :
x p p' x p x p'
Equations
• One or more equations did not get rendered due to their size.
@[simp]
theorem NonUnitalSubsemiring.coe_sInf {R : Type u} (S : ) :
(sInf S) = ⋂ s ∈ S, s
theorem NonUnitalSubsemiring.mem_sInf {R : Type u} {S : } {x : R} :
x sInf S pS, x p
@[simp]
@[simp]
theorem NonUnitalSubsemiring.sInf_toAddSubmonoid {R : Type u} (s : ) :

Non-unital subsemirings of a non-unital semiring form a complete lattice.

Equations
• One or more equations did not get rendered due to their size.
theorem NonUnitalSubsemiring.eq_top_iff' {R : Type u} (A : ) :
A = ∀ (x : R), x A

The center of a semiring R is the set of elements that commute and associate with everything in R

Equations
• One or more equations did not get rendered due to their size.
Instances For
@[simp]

The center is commutative and associative.

Equations
• One or more equations did not get rendered due to their size.
theorem Set.mem_center_iff_addMonoidHom (R : Type u) (a : R) :

A point-free means of proving membership in the center, for a non-associative ring.

This can be helpful when working with types that have ext lemmas for R →+ R.

theorem NonUnitalSubsemiring.mem_center_iff {R : Type u_1} {z : R} :
∀ (g : R), g * z = z * g
instance NonUnitalSubsemiring.decidableMemCenter {R : Type u_1} [] [] :
DecidablePred fun (x : R) =>
Equations
def NonUnitalSubsemiring.centralizer {R : Type u_1} (s : Set R) :

The centralizer of a set as non-unital subsemiring.

Equations
• One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem NonUnitalSubsemiring.coe_centralizer {R : Type u_1} (s : Set R) :
theorem NonUnitalSubsemiring.mem_centralizer_iff {R : Type u_1} {s : Set R} {z : R} :
gs, g * z = z * g
theorem NonUnitalSubsemiring.centralizer_le {R : Type u_1} (s : Set R) (t : Set R) (h : s t) :
def NonUnitalSubsemiring.closure {R : Type u} (s : Set R) :

The NonUnitalSubsemiring generated by a set.

Equations
Instances For
theorem NonUnitalSubsemiring.mem_closure {R : Type u} {x : R} {s : Set R} :
∀ (S : ), s Sx S
@[simp]
theorem NonUnitalSubsemiring.subset_closure {R : Type u} {s : Set R} :

The non-unital subsemiring generated by a set includes the set.

theorem NonUnitalSubsemiring.not_mem_of_not_mem_closure {R : Type u} {s : Set R} {P : R} (hP : ) :
Ps
@[simp]
theorem NonUnitalSubsemiring.closure_le {R : Type u} {s : Set R} {t : } :
s t

A non-unital subsemiring S includes closure s if and only if it includes s.

theorem NonUnitalSubsemiring.closure_mono {R : Type u} ⦃s : Set R ⦃t : Set R (h : s t) :

Subsemiring closure of a set is monotone in its argument: if s ⊆ t, then closure s ≤ closure t.

theorem NonUnitalSubsemiring.closure_eq_of_le {R : Type u} {s : Set R} {t : } (h₁ : s t) (h₂ : ) :
theorem NonUnitalSubsemiring.mem_map_equiv {R : Type u} {S : Type v} {f : R ≃+* S} {K : } {x : S} :
x () x K
theorem NonUnitalSubsemiring.map_equiv_eq_comap_symm {R : Type u} {S : Type v} (f : R ≃+* S) (K : ) :
theorem NonUnitalSubsemiring.comap_equiv_eq_map_symm {R : Type u} {S : Type v} (f : R ≃+* S) (K : ) :

The additive closure of a non-unital subsemigroup is a non-unital subsemiring.

Equations
• One or more equations did not get rendered due to their size.
Instances For

The NonUnitalSubsemiring generated by a multiplicative subsemigroup coincides with the NonUnitalSubsemiring.closure of the subsemigroup itself .

@[simp]
theorem NonUnitalSubsemiring.coe_closure_eq {R : Type u} (s : Set R) :

The elements of the non-unital subsemiring closure of M are exactly the elements of the additive closure of a multiplicative subsemigroup M.

theorem NonUnitalSubsemiring.mem_closure_iff {R : Type u} {s : Set R} {x : R} :
@[simp]
theorem NonUnitalSubsemiring.closure_induction {R : Type u} {s : Set R} {p : RProp} {x : R} (h : ) (Hs : xs, p x) (H0 : p 0) (Hadd : ∀ (x y : R), p xp yp (x + y)) (Hmul : ∀ (x y : R), p xp yp (x * y)) :
p x

An induction principle for closure membership. If p holds for 0, 1, and all elements of s, and is preserved under addition and multiplication, then p holds for all elements of the closure of s.

theorem NonUnitalSubsemiring.closure_induction₂ {R : Type u} {s : Set R} {p : RRProp} {x : R} {y : R} (hx : ) (hy : ) (Hs : xs, ys, p x y) (H0_left : ∀ (x : R), p 0 x) (H0_right : ∀ (x : R), p x 0) (Hadd_left : ∀ (x₁ x₂ y : R), p x₁ yp x₂ yp (x₁ + x₂) y) (Hadd_right : ∀ (x y₁ y₂ : R), p x y₁p x y₂p x (y₁ + y₂)) (Hmul_left : ∀ (x₁ x₂ y : R), p x₁ yp x₂ yp (x₁ * x₂) y) (Hmul_right : ∀ (x y₁ y₂ : R), p x y₁p x y₂p x (y₁ * y₂)) :
p x y

An induction principle for closure membership for predicates with two arguments.

def NonUnitalSubsemiring.gi (R : Type u) :
GaloisInsertion NonUnitalSubsemiring.closure SetLike.coe

closure forms a Galois insertion with the coercion to set.

Equations
• One or more equations did not get rendered due to their size.
Instances For
theorem NonUnitalSubsemiring.closure_eq {R : Type u} (s : ) :

Closure of a non-unital subsemiring S equals S.

@[simp]
theorem NonUnitalSubsemiring.closure_union {R : Type u} (s : Set R) (t : Set R) :
theorem NonUnitalSubsemiring.closure_iUnion {R : Type u} {ι : Sort u_2} (s : ιSet R) :
NonUnitalSubsemiring.closure (⋃ (i : ι), s i) = ⨆ (i : ι),
theorem NonUnitalSubsemiring.closure_sUnion {R : Type u} (s : Set (Set R)) :
= ⨆ t ∈ s,
theorem NonUnitalSubsemiring.map_sup {R : Type u} {S : Type v} {F : Type u_1} [FunLike F R S] [] (s : ) (t : ) (f : F) :
theorem NonUnitalSubsemiring.map_iSup {R : Type u} {S : Type v} {F : Type u_1} [FunLike F R S] [] {ι : Sort u_2} (f : F) (s : ) :
= ⨆ (i : ι), NonUnitalSubsemiring.map f (s i)
theorem NonUnitalSubsemiring.comap_inf {R : Type u} {S : Type v} {F : Type u_1} [FunLike F R S] [] (s : ) (t : ) (f : F) :
theorem NonUnitalSubsemiring.comap_iInf {R : Type u} {S : Type v} {F : Type u_1} [FunLike F R S] [] {ι : Sort u_2} (f : F) (s : ) :
= ⨅ (i : ι),
@[simp]
theorem NonUnitalSubsemiring.map_bot {R : Type u} {S : Type v} {F : Type u_1} [FunLike F R S] [] (f : F) :
@[simp]
theorem NonUnitalSubsemiring.comap_top {R : Type u} {S : Type v} {F : Type u_1} [FunLike F R S] [] (f : F) :
def NonUnitalSubsemiring.prod {R : Type u} {S : Type v} (s : ) (t : ) :

Given NonUnitalSubsemirings s, t of semirings R, S respectively, s.prod t is s × t as a non-unital subsemiring of R × S.

Equations
• One or more equations did not get rendered due to their size.
Instances For
theorem NonUnitalSubsemiring.coe_prod {R : Type u} {S : Type v} (s : ) (t : ) :
= s ×ˢ t
theorem NonUnitalSubsemiring.mem_prod {R : Type u} {S : Type v} {s : } {t : } {p : R × S} :
p.1 s p.2 t
theorem NonUnitalSubsemiring.prod_mono {R : Type u} {S : Type v} ⦃s₁ : ⦃s₂ : (hs : s₁ s₂) ⦃t₁ : ⦃t₂ : (ht : t₁ t₂) :
theorem NonUnitalSubsemiring.prod_mono_right {R : Type u} {S : Type v} (s : ) :
Monotone fun (t : ) =>
theorem NonUnitalSubsemiring.prod_mono_left {R : Type u} {S : Type v} (t : ) :
Monotone fun (s : ) =>
theorem NonUnitalSubsemiring.prod_top {R : Type u} {S : Type v} (s : ) :
theorem NonUnitalSubsemiring.top_prod {R : Type u} {S : Type v} (s : ) :
@[simp]
theorem NonUnitalSubsemiring.top_prod_top {R : Type u} {S : Type v} :
def NonUnitalSubsemiring.prodEquiv {R : Type u} {S : Type v} (s : ) (t : ) :
≃+* s × t

Product of non-unital subsemirings is isomorphic to their product as semigroups.

Equations
• One or more equations did not get rendered due to their size.
Instances For
theorem NonUnitalSubsemiring.mem_iSup_of_directed {R : Type u} {ι : Sort u_2} [hι : ] {S : } (hS : Directed (fun (x x_1 : ) => x x_1) S) {x : R} :
x ⨆ (i : ι), S i ∃ (i : ι), x S i
theorem NonUnitalSubsemiring.coe_iSup_of_directed {R : Type u} {ι : Sort u_2} [hι : ] {S : } (hS : Directed (fun (x x_1 : ) => x x_1) S) :
(⨆ (i : ι), S i) = ⋃ (i : ι), (S i)
theorem NonUnitalSubsemiring.mem_sSup_of_directedOn {R : Type u} {S : } (Sne : ) (hS : DirectedOn (fun (x x_1 : ) => x x_1) S) {x : R} :
x sSup S ∃ s ∈ S, x s
theorem NonUnitalSubsemiring.coe_sSup_of_directedOn {R : Type u} {S : } (Sne : ) (hS : DirectedOn (fun (x x_1 : ) => x x_1) S) :
(sSup S) = ⋃ s ∈ S, s
def NonUnitalRingHom.codRestrict {R : Type u} {S : Type v} {F : Type u_1} [FunLike F R S] [] {S' : Type u_2} [SetLike S' S] [] (f : F) (s : S') (h : ∀ (x : R), f x s) :
R →ₙ+* s

Restriction of a non-unital ring homomorphism to a non-unital subsemiring of the codomain.

Equations
• One or more equations did not get rendered due to their size.
Instances For
def NonUnitalRingHom.srangeRestrict {R : Type u} {S : Type v} {F : Type u_1} [FunLike F R S] [] (f : F) :

Restriction of a non-unital ring homomorphism to its range interpreted as a non-unital subsemiring.

This is the bundled version of Set.rangeFactorization.

Equations
Instances For
@[simp]
theorem NonUnitalRingHom.coe_srangeRestrict {R : Type u} {S : Type v} {F : Type u_1} [FunLike F R S] [] (f : F) (x : R) :
() = f x
theorem NonUnitalRingHom.srangeRestrict_surjective {R : Type u} {S : Type v} {F : Type u_1} [FunLike F R S] [] (f : F) :
theorem NonUnitalRingHom.srange_top_iff_surjective {R : Type u} {S : Type v} {F : Type u_1} [FunLike F R S] [] {f : F} :
@[simp]
theorem NonUnitalRingHom.srange_top_of_surjective {R : Type u} {S : Type v} {F : Type u_1} [FunLike F R S] [] (f : F) (hf : ) :

The range of a surjective non-unital ring homomorphism is the whole of the codomain.

def NonUnitalRingHom.eqSlocus {R : Type u} {S : Type v} {F : Type u_1} [FunLike F R S] [] (f : F) (g : F) :

The non-unital subsemiring of elements x : R such that f x = g x

Equations
• One or more equations did not get rendered due to their size.
Instances For
theorem NonUnitalRingHom.eqOn_sclosure {R : Type u} {S : Type v} {F : Type u_1} [FunLike F R S] [] {f : F} {g : F} {s : Set R} (h : Set.EqOn (f) (g) s) :
Set.EqOn f g

If two non-unital ring homomorphisms are equal on a set, then they are equal on its non-unital subsemiring closure.

theorem NonUnitalRingHom.eq_of_eqOn_stop {R : Type u} {S : Type v} {F : Type u_1} [FunLike F R S] {f : F} {g : F} (h : Set.EqOn f g ) :
f = g
theorem NonUnitalRingHom.eq_of_eqOn_sdense {R : Type u} {S : Type v} {F : Type u_1} [FunLike F R S] [] {s : Set R} (hs : ) {f : F} {g : F} (h : Set.EqOn (f) (g) s) :
f = g
theorem NonUnitalRingHom.sclosure_preimage_le {R : Type u} {S : Type v} {F : Type u_1} [FunLike F R S] [] (f : F) (s : Set S) :
theorem NonUnitalRingHom.map_sclosure {R : Type u} {S : Type v} {F : Type u_1} [FunLike F R S] [] (f : F) (s : Set R) :

The image under a ring homomorphism of the subsemiring generated by a set equals the subsemiring generated by the image of the set.

def NonUnitalSubsemiring.inclusion {R : Type u} {S : } {T : } (h : S T) :
S →ₙ+* T

The non-unital ring homomorphism associated to an inclusion of non-unital subsemirings.

Equations
Instances For
@[simp]
theorem NonUnitalSubsemiring.srange_subtype {R : Type u} (s : ) :
@[simp]
theorem NonUnitalSubsemiring.range_fst {R : Type u} {S : Type v} :
@[simp]
theorem NonUnitalSubsemiring.range_snd {R : Type u} {S : Type v} :
def RingEquiv.nonUnitalSubsemiringCongr {R : Type u} {s : } {t : } (h : s = t) :
s ≃+* t

Makes the identity isomorphism from a proof two non-unital subsemirings of a multiplicative monoid are equal.

Equations
• One or more equations did not get rendered due to their size.
Instances For
def RingEquiv.sofLeftInverse' {R : Type u} {S : Type v} {F : Type u_1} [FunLike F R S] [] {g : SR} {f : F} (h : ) :

Restrict a non-unital ring homomorphism with a left inverse to a ring isomorphism to its NonUnitalRingHom.srange.

Equations
• One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem RingEquiv.sofLeftInverse'_apply {R : Type u} {S : Type v} {F : Type u_1} [FunLike F R S] [] {g : SR} {f : F} (h : ) (x : R) :
() = f x
@[simp]
theorem RingEquiv.sofLeftInverse'_symm_apply {R : Type u} {S : Type v} {F : Type u_1} [FunLike F R S] [] {g : SR} {f : F} (h : ) (x : ) :
= g x
@[simp]
theorem RingEquiv.nonUnitalSubsemiringMap_apply_coe {R : Type u} {S : Type v} (e : R ≃+* S) (s : ) (x : s.toAddSubmonoid) :
() = e x
@[simp]
theorem RingEquiv.nonUnitalSubsemiringMap_symm_apply_coe {R : Type u} {S : Type v} (e : R ≃+* S) (s : ) (y : ( '' s.toAddSubmonoid)) :
() = () y
def RingEquiv.nonUnitalSubsemiringMap {R : Type u} {S : Type v} (e : R ≃+* S) (s : ) :

Given an equivalence e : R ≃+* S of non-unital semirings and a non-unital subsemiring s of R, non_unital_subsemiring_map e s is the induced equivalence between s and s.map e

Equations
• One or more equations did not get rendered due to their size.
Instances For