Operations on Submonoids #
In this file we define various operations on Submonoids and MonoidHoms.
Main definitions #
Conversion between multiplicative and additive definitions #
Submonoid.toAddSubmonoid,Submonoid.toAddSubmonoid',AddSubmonoid.toSubmonoid,AddSubmonoid.toSubmonoid': convert between multiplicative and additive submonoids ofM,Multiplicative M, andAdditive M. These are stated asOrderIsos.
(Commutative) monoid structure on a submonoid #
Submonoid.toMonoid,Submonoid.toCommMonoid: a submonoid inherits a (commutative) monoid structure.
Group actions by submonoids #
Submonoid.MulAction,Submonoid.DistribMulAction: a submonoid inherits (distributive) multiplicative actions.
Operations on submonoids #
Submonoid.comap: preimage of a submonoid under a monoid homomorphism as a submonoid of the domain;Submonoid.map: image of a submonoid under a monoid homomorphism as a submonoid of the codomain;Submonoid.prod: product of two submonoidss : Submonoid Mandt : Submonoid Nas a submonoid ofM ร N;
Monoid homomorphisms between submonoid #
Submonoid.subtype: embedding of a submonoid into the ambient monoid.Submonoid.inclusion: given two submonoidsS,Tsuch thatS โค T,S.inclusion Tis the inclusion ofSintoTas a monoid homomorphism;MulEquiv.submonoidCongr: converts a proof ofS = Tinto a monoid isomorphism betweenSandT.Submonoid.prodEquiv: monoid isomorphism betweens.prod tands ร t;
Operations on MonoidHoms #
MonoidHom.mrange: range of a monoid homomorphism as a submonoid of the codomain;MonoidHom.mker: kernel of a monoid homomorphism as a submonoid of the domain;MonoidHom.restrict: restrict a monoid homomorphism to a submonoid;MonoidHom.codRestrict: restrict the codomain of a monoid homomorphism to a submonoid;MonoidHom.mrangeRestrict: restrict a monoid homomorphism to its range;
Tags #
submonoid, range, product, map, comap
Conversion to/from Additive/Multiplicative #
Submonoids of monoid M are isomorphic to additive submonoids of Additive M.
Instances For
Additive submonoids of an additive monoid Additive M are isomorphic to submonoids of M.
Instances For
Additive submonoids of an additive monoid A are isomorphic to
multiplicative submonoids of Multiplicative A.
Instances For
Submonoids of a monoid Multiplicative A are isomorphic to additive submonoids of A.
Instances For
The preimage of a submonoid along a monoid homomorphism is a submonoid.
Instances For
The preimage of an AddSubmonoid along an AddMonoid homomorphism is an AddSubmonoid.
Instances For
The image of a submonoid along a monoid homomorphism is a submonoid.
Instances For
The image of an AddSubmonoid along an AddMonoid homomorphism is an AddSubmonoid.
Instances For
map f and comap f form a GaloisCoinsertion when f is injective.
Instances For
map f and comap f form a GaloisCoinsertion when f is injective.
Instances For
map f and comap f form a GaloisInsertion when f is surjective.
Instances For
map f and comap f form a GaloisInsertion when f is surjective.
Instances For
The top submonoid is isomorphic to the monoid.
Instances For
The top additive submonoid is isomorphic to the additive monoid.
Instances For
A subgroup is isomorphic to its image under an injective function. If you have an isomorphism,
use MulEquiv.submonoidMap for better definitional equalities.
Instances For
An additive subgroup is isomorphic to its image under an injective function. If
you have an isomorphism, use AddEquiv.addSubmonoidMap for better definitional equalities.
Instances For
Given submonoids s, t of monoids M, N respectively, s ร t as a submonoid
of M ร N.
Instances For
Given AddSubmonoids s, t of AddMonoids A, B respectively, s ร t
as an AddSubmonoid of A ร B.
Instances For
The product of submonoids is isomorphic to their product as monoids.
Instances For
The product of additive submonoids is isomorphic to their product as additive monoids.
Instances For
For many categories (monoids, modules, rings, ...) the set-theoretic image of a morphism f is
a subobject of the codomain. When this is the case, it is useful to define the range of a morphism
in such a way that the underlying carrier set of the range subobject is definitionally
Set.range f. In particular this means that the types โฅ(Set.range f) and โฅf.range are
interchangeable without proof obligations.
A convenient candidate definition for range which is mathematically correct is map โค f, just as
Set.range could have been defined as f '' Set.univ. However, this lacks the desired definitional
convenience, in that it both does not match Set.range, and that it introduces a redundant x โ โค
term which clutters proofs. In such a case one may resort to the copy
pattern. A copy function converts the definitional problem for the carrier set of a subobject
into a one-off propositional proof obligation which one discharges while writing the definition of
the definitionally convenient range (the parameter hs in the example below).
A good example is the case of a morphism of monoids. A convenient definition for
MonoidHom.mrange would be (โค : Submonoid M).map f. However since this lacks the required
definitional convenience, we first define Submonoid.copy as follows:
protected def copy (S : Submonoid M) (s : Set M) (hs : s = S) : Submonoid M :=
{ carrier := s,
one_mem' := hs.symm โธ S.one_mem',
mul_mem' := hs.symm โธ S.mul_mem' }
and then finally define:
def mrange (f : M โ* N) : Submonoid N :=
((โค : Submonoid M).map f).copy (Set.range f) Set.image_univ.symm
Instances For
The range of a monoid homomorphism is a submonoid. See Note [range copy pattern].
Instances For
The range of an AddMonoidHom is an AddSubmonoid.
Instances For
The range of a surjective monoid hom is the whole of the codomain.
The range of a surjective AddMonoid hom is the whole of the codomain.
The image under a monoid hom of the submonoid generated by a set equals the submonoid generated by the image of the set.
The image under an AddMonoid hom of the AddSubmonoid generated by a set equals
the AddSubmonoid generated by the image of the set.
Restriction of a monoid hom to a submonoid of the domain.
Instances For
Restriction of an AddMonoid hom to an AddSubmonoid of the domain.
Instances For
A version of MonoidHom.restrict as an homomorphism.
Instances For
A version of AddMonoidHom.restrict as an homomorphism.
Instances For
Restriction of a monoid hom to a submonoid of the codomain.
Instances For
Restriction of an AddMonoid hom to an AddSubmonoid of the codomain.
Instances For
Restriction of a monoid hom to its range interpreted as a submonoid.
Instances For
Restriction of an AddMonoid hom to its range interpreted as a submonoid.
Instances For
The multiplicative kernel of a monoid hom is the submonoid of elements x : G such
that f x = 1.
Instances For
The additive kernel of an AddMonoid hom is the AddSubmonoid of elements such that
f x = 0.
Instances For
The MonoidHom from the preimage of a submonoid to itself.
Instances For
The AddMonoidHom from the preimage of an additive submonoid to itself.
Instances For
The MonoidHom from a submonoid to its image.
See MulEquiv.SubmonoidMap for a variant for MulEquivs.
Instances For
The AddMonoidHom from an additive submonoid to its image. See AddEquiv.AddSubmonoidMap
for a variant for AddEquivs.
Instances For
The monoid hom associated to an inclusion of submonoids.
Instances For
The AddMonoid hom associated to an inclusion of submonoids.
Instances For
A submonoid is either the trivial submonoid or nontrivial.
An additive submonoid is either the trivial additive submonoid or nontrivial.
A submonoid is either the trivial submonoid or contains a nonzero element.
An additive submonoid is either the trivial additive submonoid or contains a nonzero element.
A version of Set.pi for submonoids. Given an index set I and a family of submodules
s : ฮ i, Submonoid f i, pi I s is the submonoid of dependent functions f : ฮ i, f i such that
f i belongs to Pi I s whenever i โ I.
Instances For
A version of Set.pi for AddSubmonoids. Given an index set I and a family
of submodules s : ฮ i, AddSubmonoid f i, pi I s is the AddSubmonoid of dependent functions
f : ฮ i, f i such that f i belongs to pi I s whenever i โ I.
Instances For
Makes the identity isomorphism from a proof that two submonoids of a multiplicative monoid are equal.
Instances For
Makes the identity additive isomorphism from a proof two submonoids of an additive monoid are equal.
Instances For
A monoid homomorphism f : M โ* N with a left-inverse g : N โ M defines a multiplicative
equivalence between M and f.mrange.
This is a bidirectional version of MonoidHom.mrangeRestrict.
Instances For
An additive monoid homomorphism f : M โ+ N with a left-inverse g : N โ M defines an
additive equivalence between M and f.mrange. This is a bidirectional version of
AddMonoidHom.mrangeRestrict.
Instances For
A MulEquiv ฯ between two monoids M and N induces a MulEquiv between
a submonoid S โค M and the submonoid ฯ(S) โค N.
See MonoidHom.submonoidMap for a variant for MonoidHoms.
Instances For
An AddEquiv ฯ between two additive monoids M and N induces an AddEquiv
between a submonoid S โค M and the submonoid ฯ(S) โค N. See
AddMonoidHom.addSubmonoidMap for a variant for AddMonoidHoms.
Instances For
The multiplicative equivalence between the type of units of M and the submonoid of unit
elements of M.
Instances For
The additive equivalence between the type of additive units of
M and the additive submonoid whose elements are the additive units of M.