Operations on Subsemigroups #
In this file we define various operations on Subsemigroups and MulHoms.
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 asOrderIsos.
(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 Mandt : Subsemigroup Nas a subsemigroup ofM × N;
Semigroup homomorphisms between subsemigroups #
Subsemigroup.subtype: embedding of a subsemigroup into the ambient semigroup.Subsemigroup.inclusion: given two subsemigroupsS,Tsuch thatS ≤ T,S.inclusion Tis the inclusion ofSintoTas a semigroup homomorphism;MulEquiv.subsemigroupCongr: converts a proof ofS = Tinto a semigroup isomorphism betweenSandT.Subsemigroup.prodEquiv: semigroup isomorphism betweens.prod tands × t;
Operations on MulHoms #
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
- 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 GaloisCoinsertion when f is injective.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- AddSubsemigroup.giMapComap.match_1 x motive x h_1 = Exists.casesOn x fun w h => h_1 w h
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 => { val := ↑a + ↑b, property := (_ : ↑a + ↑b ∈ S') } }
A submagma of a magma inherits a multiplication.
Equations
- MulMemClass.mul S' = { mul := fun a b => { 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 => ↑a) (_ : ∀ (x x_1 : { x // x ∈ 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 => ↑a) (_ : ∀ (x x_1 : { x // x ∈ 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 => ↑a) (_ : ∀ (x x_1 : { x // x ∈ 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 => ↑a) (_ : ∀ (x x_1 : { x // x ∈ S }), ↑(x * x_1) = ↑(x * x_1))
The natural semigroup hom from an AddSubsemigroup of
AddSubsemigroup M to M.
Equations
Instances For
The natural semigroup hom from a subsemigroup of semigroup M to M.
Equations
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 AddSubsemigroups s, t of AddSemigroups A, B respectively,
s × t as an AddSubsemigroup of A × B.
Equations
Instances For
Given Subsemigroups 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, ↑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, ↑f y = ↑f x)
Instances For
Equations
- One or more equations did not get rendered due to their size.
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 AddEquivs.
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 MulEquivs.
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 : { x // 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 : { x // 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
- AddEquiv.ofLeftInverse.match_1 f x motive x h_1 = Exists.casesOn x fun w h => h_1 w h
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 AddHoms.
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 MulHoms.
Equations
- One or more equations did not get rendered due to their size.