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.domRestrict: restrict a monoid homomorphism to a submonoid of its domain;MonoidHom.restrict: restrict the domain and codomain of a monoid homomorphism;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 MonoidHom is a Submonoid.
Instances For
The preimage of an AddSubmonoid along an AddMonoidHom is an AddSubmonoid.
Instances For
The image of a Submonoid along a MonoidHom is a Submonoid.
Instances For
The image of an AddSubmonoid along an AddMonoidHom 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 AddSubmonoid is isomorphic to the AddMonoid.
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 AddSubgroup 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 AddSubmonoids is isomorphic to their product as AddMonoids.
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 MonoidHom 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 MonoidHom is the whole of the codomain.
The range of a surjective AddMonoidHom is the whole of the codomain.
The image under a MonoidHom of the Submonoid generated by a set equals the Submonoid
generated by the image of the set.
The image under an AddMonoidHom of the AddSubmonoid generated by a set equals the
AddSubmonoid generated by the image of the set.
Restriction of a MonoidHom to a Submonoid of the domain.
Instances For
Restriction of an AddMonoidHom to an AddSubmonoid of the domain.
Instances For
Alias of MonoidHom.domRestrict_apply.
Alias of AddMonoidHom.domRestrict_apply.
Alias of MonoidHom.domRestrict_eq_one_iff.
Alias of AddMonoidHom.domRestrict_eq_zero_iff.
Alias of MonoidHom.domRestrict_mrange.
Alias of AddMonoidHom.domRestrict_mrange.
A version of MonoidHom.domRestrict as a homomorphism.
Instances For
A version of AddMonoidHom.domRestrict as a homomorphism.
Instances For
Alias of MonoidHom.domRestrictHom.
A version of MonoidHom.domRestrict as a homomorphism.
Instances For
Alias of AddMonoidHom.domRestrictHom.
A version of AddMonoidHom.domRestrict as a homomorphism.
Instances For
Alias of MonoidHom.domRestrictHom_apply.
Alias of AddMonoidHom.domRestrictHom_apply.
Restriction of a MonoidHom to a Submonoid of the codomain.
Instances For
Restriction of an AddMonoidHom to an AddSubmonoid of the codomain.
Instances For
Restriction of a MonoidHom to its range interpreted as a Submonoid.
Instances For
Restriction of an AddMonoidHom to its range interpreted as an AddSubmonoid.
Instances For
The multiplicative kernel of a MonoidHom is the Submonoid of elements x : G such that
f x = 1.
Instances For
The additive kernel of an AddMonoidHom is the AddSubmonoid of elements such that
f x = 0.
Instances For
Alias of MonoidHom.domRestrict_mker.
Alias of AddMonoidHom.domRestrict_mker.
The MonoidHom from the preimage of a Submonoid to itself.
Instances For
The AddMonoidHom from the preimage of an AddSubmonoid to itself.
Instances For
Alias of MonoidHom.submonoidComap_surjective.
The MonoidHom from a Submonoid to its image.
See MulEquiv.SubmonoidMap for a variant for MulEquivs.
Instances For
The AddMonoidHom from an AddSubmonoid to its image.
See AddEquiv.AddSubmonoidMap for a variant for AddEquivs.
Instances For
The AddMonoidHom associated to an inclusion of AddSubmonoids.
Instances For
An AddSubmonoid is either the trivial AddSubmonoid or nontrivial.
An AddSubmonoid is either the trivial AddSubmonoid or contains a nonzero element.
A version of Set.pi for Submonoids. Given an index set I and a family of Submonoids
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 AddSubmonoids 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
Restrict the domain and codomain of a MonoidHom.
Instances For
Restrict the domain and codomain of an AddMonoidHom.
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.