Operations on Subsemigroup
s #
In this file we define various operations on Subsemigroup
s and MulHom
s.
Main definitions #
Conversion between multiplicative and additive definitions #
Subsemigroup.toAddSubsemigroup
,Subsemigroup.toAddSubsemigroup'
,AddSubsemigroup.toSubsemigroup
,AddSubsemigroup.toSubsemigroup'
: convert between multiplicative and additive subsemigroups ofM
,Multiplicative M
, andAdditive M
. These are stated asOrderIso
s.
(Commutative) semigroup structure on a subsemigroup #
Subsemigroup.toSemigroup
,Subsemigroup.toCommSemigroup
: a subsemigroup inherits a (commutative) semigroup structure.
Operations on subsemigroups #
Subsemigroup.comap
: preimage of a subsemigroup under a semigroup homomorphism as a subsemigroup of the domain;Subsemigroup.map
: image of a subsemigroup under a semigroup homomorphism as a subsemigroup of the codomain;Subsemigroup.prod
: product of two subsemigroupss : Subsemigroup M
andt : Subsemigroup N
as a subsemigroup ofM × N
;
Semigroup homomorphisms between subsemigroups #
Subsemigroup.subtype
: embedding of a subsemigroup into the ambient semigroup.Subsemigroup.inclusion
: given two subsemigroupsS
,T
such thatS ≤ T
,S.inclusion T
is the inclusion ofS
intoT
as a semigroup homomorphism;MulEquiv.subsemigroupCongr
: converts a proof ofS = T
into a semigroup isomorphism betweenS
andT
.Subsemigroup.prodEquiv
: semigroup isomorphism betweens.prod t
ands × t
;
Operations on MulHom
s #
MulHom.srange
: range of a semigroup homomorphism as a subsemigroup of the codomain;MulHom.restrict
: restrict a semigroup homomorphism to a subsemigroup;MulHom.codRestrict
: restrict the codomain of a semigroup homomorphism to a subsemigroup;MulHom.srangeRestrict
: restrict a semigroup homomorphism to its range;
Implementation notes #
This file follows closely GroupTheory/Submonoid/Operations.lean
, omitting only that which is
necessary.
Tags #
subsemigroup, range, product, map, comap
Conversion to/from Additive
/Multiplicative
#
Subsemigroups of semigroup M
are isomorphic to additive subsemigroups of Additive M
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Additive subsemigroups of an additive semigroup Additive M
are isomorphic to subsemigroups
of M
.
Equations
- AddSubsemigroup.toSubsemigroup' = OrderIso.symm Subsemigroup.toAddSubsemigroup
Instances For
Additive subsemigroups of an additive semigroup A
are isomorphic to
multiplicative subsemigroups of Multiplicative A
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Subsemigroups of a semigroup Multiplicative A
are isomorphic to additive subsemigroups
of A
.
Equations
- Subsemigroup.toAddSubsemigroup' = OrderIso.symm AddSubsemigroup.toSubsemigroup
Instances For
The preimage of an AddSubsemigroup
along an AddSemigroup
homomorphism is an
AddSubsemigroup
.
Equations
Instances For
The preimage of a subsemigroup along a semigroup homomorphism is a subsemigroup.
Equations
Instances For
The image of an AddSubsemigroup
along an AddSemigroup
homomorphism is
an AddSubsemigroup
.
Equations
Instances For
The image of a subsemigroup along a semigroup homomorphism is a subsemigroup.
Equations
Instances For
Equations
- (_ : motive x) = (_ : motive x)
Instances For
map f
and comap f
form a GaloisCoinsertion
when f
is injective.
Equations
- One or more equations did not get rendered due to their size.
Instances For
map f
and comap f
form a GaloisCoinsertion
when f
is injective.
Equations
- One or more equations did not get rendered due to their size.
Instances For
map f
and comap f
form a GaloisInsertion
when f
is surjective.
Equations
- One or more equations did not get rendered due to their size.
Instances For
map f
and comap f
form a GaloisInsertion
when f
is surjective.
Equations
- One or more equations did not get rendered due to their size.
Instances For
An additive submagma of an additive magma inherits an addition.
Equations
- AddMemClass.add S' = { add := fun (a b : ↥S') => { val := ↑a + ↑b, property := (_ : ↑a + ↑b ∈ S') } }
A submagma of a magma inherits a multiplication.
Equations
- MulMemClass.mul S' = { mul := fun (a b : ↥S') => { val := ↑a * ↑b, property := (_ : ↑a * ↑b ∈ S') } }
An AddSubsemigroup
of an AddSemigroup
inherits an AddSemigroup
structure.
Equations
- AddMemClass.toAddSemigroup S = Function.Injective.addSemigroup Subtype.val (_ : Function.Injective fun (a : ↥S) => ↑a) (_ : ∀ (x x_1 : ↥S), ↑(x + x_1) = ↑(x + x_1))
A subsemigroup of a semigroup inherits a semigroup structure.
Equations
- MulMemClass.toSemigroup S = Function.Injective.semigroup Subtype.val (_ : Function.Injective fun (a : ↥S) => ↑a) (_ : ∀ (x x_1 : ↥S), ↑(x * x_1) = ↑(x * x_1))
An AddSubsemigroup
of an AddCommSemigroup
is an AddCommSemigroup
.
Equations
- AddMemClass.toAddCommSemigroup S = Function.Injective.addCommSemigroup Subtype.val (_ : Function.Injective fun (a : ↥S) => ↑a) (_ : ∀ (x x_1 : ↥S), ↑(x + x_1) = ↑(x + x_1))
A subsemigroup of a CommSemigroup
is a CommSemigroup
.
Equations
- MulMemClass.toCommSemigroup S = Function.Injective.commSemigroup Subtype.val (_ : Function.Injective fun (a : ↥S) => ↑a) (_ : ∀ (x x_1 : ↥S), ↑(x * x_1) = ↑(x * x_1))
The natural semigroup hom from an AddSubsemigroup
of
AddSubsemigroup
M
to M
.
Equations
- AddMemClass.subtype S' = { toFun := Subtype.val, map_add' := (_ : ∀ (x x_1 : ↥S'), ↑(x + x_1) = ↑(x + x_1)) }
Instances For
The natural semigroup hom from a subsemigroup of semigroup M
to M
.
Equations
- MulMemClass.subtype S' = { toFun := Subtype.val, map_mul' := (_ : ∀ (x x_1 : ↥S'), ↑(x * x_1) = ↑(x * x_1)) }
Instances For
An additive subsemigroup is isomorphic to its image under an injective function
Equations
- One or more equations did not get rendered due to their size.
Instances For
A subsemigroup is isomorphic to its image under an injective function
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given AddSubsemigroup
s s
, t
of AddSemigroup
s A
, B
respectively,
s × t
as an AddSubsemigroup
of A × B
.
Equations
Instances For
Given Subsemigroup
s s
, t
of semigroups M
, N
respectively, s × t
as a subsemigroup
of M × N
.
Equations
Instances For
The product of additive subsemigroups is isomorphic to their product as additive semigroups
Equations
- One or more equations did not get rendered due to their size.
Instances For
The product of subsemigroups is isomorphic to their product as semigroups.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The range of an AddHom
is an AddSubsemigroup
.
Equations
- AddHom.srange f = AddSubsemigroup.copy (AddSubsemigroup.map f ⊤) (Set.range ⇑f) (_ : Set.range ⇑f = ⇑f '' Set.univ)
Instances For
The range of a semigroup homomorphism is a subsemigroup. See Note [range copy pattern].
Equations
- MulHom.srange f = Subsemigroup.copy (Subsemigroup.map f ⊤) (Set.range ⇑f) (_ : Set.range ⇑f = ⇑f '' Set.univ)
Instances For
The range of a surjective AddSemigroup
hom is the whole of the codomain.
The range of a surjective semigroup hom is the whole of the codomain.
The image under an AddSemigroup
hom of the AddSubsemigroup
generated by a set
equals the AddSubsemigroup
generated by the image of the set.
The image under a semigroup hom of the subsemigroup generated by a set equals the subsemigroup generated by the image of the set.
Restriction of an AddSemigroup hom to an AddSubsemigroup
of the domain.
Equations
- AddHom.restrict f S = AddHom.comp f (AddMemClass.subtype S)
Instances For
Restriction of a semigroup hom to a subsemigroup of the domain.
Equations
- MulHom.restrict f S = MulHom.comp f (MulMemClass.subtype S)
Instances For
Restriction of an AddSemigroup
hom to an AddSubsemigroup
of the codomain.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Restriction of a semigroup hom to a subsemigroup of the codomain.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Restriction of an AddSemigroup
hom to its range interpreted as a subsemigroup.
Equations
- AddHom.srangeRestrict f = AddHom.codRestrict f (AddHom.srange f) (_ : ∀ (x : M), ∃ (y : M), f y = f x)
Instances For
Restriction of a semigroup hom to its range interpreted as a subsemigroup.
Equations
- MulHom.srangeRestrict f = MulHom.codRestrict f (MulHom.srange f) (_ : ∀ (x : M), ∃ (y : M), f y = f x)
Instances For
Equations
- (_ : motive x) = (_ : motive x)
Instances For
The AddHom
from the preimage of an additive subsemigroup to itself.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The MulHom
from the preimage of a subsemigroup to itself.
Equations
- One or more equations did not get rendered due to their size.
Instances For
the AddHom
from an additive subsemigroup to its image. See
AddEquiv.addSubsemigroupMap
for a variant for AddEquiv
s.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The MulHom
from a subsemigroup to its image.
See MulEquiv.subsemigroupMap
for a variant for MulEquiv
s.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The AddSemigroup
hom associated to an inclusion of subsemigroups.
Equations
- AddSubsemigroup.inclusion h = AddHom.codRestrict (AddMemClass.subtype S) T (_ : ∀ (x : ↥S), (AddMemClass.subtype S) x ∈ T)
Instances For
The semigroup hom associated to an inclusion of subsemigroups.
Equations
- Subsemigroup.inclusion h = MulHom.codRestrict (MulMemClass.subtype S) T (_ : ∀ (x : ↥S), (MulMemClass.subtype S) x ∈ T)
Instances For
Makes the identity additive isomorphism from a proof two subsemigroups of an additive semigroup are equal.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Makes the identity isomorphism from a proof that two subsemigroups of a multiplicative semigroup are equal.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- (_ : motive x) = (_ : motive x)
Instances For
An additive semigroup homomorphism f : M →+ N
with a left-inverse
g : N → M
defines an additive equivalence between M
and f.srange
.
This is a bidirectional version of AddHom.srangeRestrict
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A semigroup homomorphism f : M →ₙ* N
with a left-inverse g : N → M
defines a multiplicative
equivalence between M
and f.srange
.
This is a bidirectional version of MulHom.srangeRestrict
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
An AddEquiv
φ
between two additive semigroups M
and N
induces an AddEquiv
between a subsemigroup S ≤ M
and the subsemigroup φ(S) ≤ N
.
See AddHom.addSubsemigroupMap
for a variant for AddHom
s.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A MulEquiv
φ
between two semigroups M
and N
induces a MulEquiv
between
a subsemigroup S ≤ M
and the subsemigroup φ(S) ≤ N
.
See MulHom.subsemigroupMap
for a variant for MulHom
s.
Equations
- One or more equations did not get rendered due to their size.