Operations on subsemigroups #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
In this file we define various operations on subsemigroups and mul_homs.
Main definitions #
Conversion between multiplicative and additive definitions #
subsemigroup.to_add_subsemigroup,subsemigroup.to_add_subsemigroup',add_subsemigroup.to_subsemigroup,add_subsemigroup.to_subsemigroup': convert between multiplicative and additive subsemigroups ofM,multiplicative M, andadditive M. These are stated asorder_isos.
(Commutative) semigroup structure on a subsemigroup #
subsemigroup.to_semigroup,subsemigroup.to_comm_semigroup: 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;mul_equiv.subsemigroup_congr: converts a proof ofS = Tinto a semigroup isomorphism betweenSandT.subsemigroup.prod_equiv: semigroup isomorphism betweens.prod tands × t;
Operations on mul_homs #
mul_hom.srange: range of a semigroup homomorphism as a subsemigroup of the codomain;mul_hom.restrict: restrict a semigroup homomorphism to a subsemigroup;mul_hom.cod_restrict: restrict the codomain of a semigroup homomorphism to a subsemigroup;mul_hom.srange_restrict: restrict a semigroup homomorphism to its range;
Implementation notes #
This file follows closely group_theory/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
- subsemigroup.to_add_subsemigroup = {to_equiv := {to_fun := λ (S : subsemigroup M), {carrier := ⇑additive.to_mul ⁻¹' ↑S, add_mem' := _}, inv_fun := λ (S : add_subsemigroup (additive M)), {carrier := ⇑additive.of_mul ⁻¹' ↑S, mul_mem' := _}, left_inv := _, right_inv := _}, map_rel_iff' := _}
Additive subsemigroups of an additive semigroup additive M are isomorphic to subsemigroups
of M.
Additive subsemigroups of an additive semigroup A are isomorphic to
multiplicative subsemigroups of multiplicative A.
Equations
- add_subsemigroup.to_subsemigroup = {to_equiv := {to_fun := λ (S : add_subsemigroup A), {carrier := ⇑multiplicative.to_add ⁻¹' ↑S, mul_mem' := _}, inv_fun := λ (S : subsemigroup (multiplicative A)), {carrier := ⇑multiplicative.of_add ⁻¹' ↑S, add_mem' := _}, left_inv := _, right_inv := _}, map_rel_iff' := _}
Subsemigroups of a semigroup multiplicative A are isomorphic to additive subsemigroups
of A.
comap and map #
The preimage of a subsemigroup along a semigroup homomorphism is a subsemigroup.
The preimage of an add_subsemigroup along an add_semigroup homomorphism is an
add_subsemigroup.
The image of a subsemigroup along a semigroup homomorphism is a subsemigroup.
The image of an add_subsemigroup along an add_semigroup homomorphism is
an add_subsemigroup.
map f and comap f form a galois_coinsertion when f is injective.
Equations
map f and comap f form a galois_coinsertion when f is injective.
Equations
map f and comap f form a galois_insertion when f is surjective.
Equations
map f and comap f form a galois_insertion when f is surjective.
Equations
An additive submagma of an additive magma inherits an addition.
An add_subsemigroup of an add_semigroup inherits an add_semigroup structure.
Equations
A subsemigroup of a semigroup inherits a semigroup structure.
Equations
A subsemigroup of a comm_semigroup is a comm_semigroup.
Equations
An add_subsemigroup of an add_comm_semigroup is an add_comm_semigroup.
Equations
The natural semigroup hom from a subsemigroup of semigroup M to M.
Equations
- mul_mem_class.subtype S' = {to_fun := coe coe_to_lift, map_mul' := _}
The natural semigroup hom from an add_subsemigroup of add_semigroup M to M.
Equations
- add_mem_class.subtype S' = {to_fun := coe coe_to_lift, map_add' := _}
An additive subsemigroup is isomorphic to its image under an injective function
A subsemigroup is isomorphic to its image under an injective function
Given subsemigroups s, t of semigroups M, N respectively, s × t as a subsemigroup
of M × N.
Given add_subsemigroups s, t of add_semigroups A, B respectively,
s × t as an add_subsemigroup of A × B.
The product of subsemigroups is isomorphic to their product as semigroups.
The product of additive subsemigroups is isomorphic to their product as additive semigroups
The range of an add_hom is an add_subsemigroup.
The range of a semigroup homomorphism is a subsemigroup. See Note [range copy pattern].
The range of a surjective add_semigroup hom is the whole of the codomain.
The image under a semigroup hom of the subsemigroup generated by a set equals the subsemigroup generated by the image of the set.
The image under an add_semigroup hom of the add_subsemigroup generated by a set
equals the add_subsemigroup generated by the image of the set.
Restriction of an add_semigroup hom to an add_subsemigroup of the domain.
Equations
- f.restrict S = f.comp (add_mem_class.subtype S)
Restriction of an add_semigroup hom to an add_subsemigroup of the
codomain.
Restriction of a semigroup hom to its range interpreted as a subsemigroup.
Equations
- f.srange_restrict = f.cod_restrict f.srange _
Restriction of an add_semigroup hom to its range interpreted as a subsemigroup.
Equations
- f.srange_restrict = f.cod_restrict f.srange _
the add_hom from the preimage of an additive subsemigroup to itself.
Equations
- f.subsemigroup_comap N' = {to_fun := λ (x : ↥(add_subsemigroup.comap f N')), ⟨⇑f ↑x, _⟩, map_add' := _}
The mul_hom from the preimage of a subsemigroup to itself.
Equations
- f.subsemigroup_comap N' = {to_fun := λ (x : ↥(subsemigroup.comap f N')), ⟨⇑f ↑x, _⟩, map_mul' := _}
The mul_hom from a subsemigroup to its image.
See mul_equiv.subsemigroup_map for a variant for mul_equivs.
the add_hom from an additive subsemigroup to its image. See
add_equiv.add_subsemigroup_map for a variant for add_equivs.
The add_semigroup hom associated to an inclusion of subsemigroups.
Equations
The semigroup hom associated to an inclusion of subsemigroups.
Equations
Makes the identity isomorphism from a proof that two subsemigroups of a multiplicative semigroup are equal.
Equations
- mul_equiv.subsemigroup_congr h = {to_fun := (equiv.set_congr _).to_fun, inv_fun := (equiv.set_congr _).inv_fun, left_inv := _, right_inv := _, map_mul' := _}
Makes the identity additive isomorphism from a proof two subsemigroups of an additive semigroup are equal.
Equations
- add_equiv.subsemigroup_congr h = {to_fun := (equiv.set_congr _).to_fun, inv_fun := (equiv.set_congr _).inv_fun, left_inv := _, right_inv := _, map_add' := _}
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 add_hom.srange_restrict.
Equations
- add_equiv.of_left_inverse f h = {to_fun := ⇑(f.srange_restrict), inv_fun := g ∘ ⇑(add_mem_class.subtype f.srange), left_inv := h, right_inv := _, map_add' := _}
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 mul_hom.srange_restrict.
Equations
- mul_equiv.of_left_inverse f h = {to_fun := ⇑(f.srange_restrict), inv_fun := g ∘ ⇑(mul_mem_class.subtype f.srange), left_inv := h, right_inv := _, map_mul' := _}
An add_equiv φ between two additive semigroups M and N induces an add_equiv
between a subsemigroup S ≤ M and the subsemigroup φ(S) ≤ N. See add_hom.add_subsemigroup_map
for a variant for add_homs.
A mul_equiv φ between two semigroups M and N induces a mul_equiv between
a subsemigroup S ≤ M and the subsemigroup φ(S) ≤ N.
See mul_hom.subsemigroup_map for a variant for mul_homs.