Module docstring
{"# Subsemigroups: definition
This file defines bundled multiplicative and additive subsemigroups.
Main definitions
Subsemigroup M: the type of bundled subsemigroup of a magmaM; the underlying set is given in thecarrierfield of the structure, and should be accessed through coercion as in(S : Set M).AddSubsemigroup M: the type of bundled subsemigroups of an additive magmaM.
For each of the following definitions in the Subsemigroup namespace, there is a corresponding
definition in the AddSubsemigroup namespace.
Subsemigroup.copy: copy of a subsemigroup withcarrierreplaced by a set that is equal but possibly not definitionally equal to the carrier of the originalSubsemigroup.
Similarly, for each of these definitions in the MulHom namespace, there is a corresponding
definition in the AddHom namespace.
MulHom.eqLocus f g: the subsemigroup of thosexsuch thatf x = g x
Implementation notes
Subsemigroup inclusion is denoted ≤ rather than ⊆, although ∈ is defined as
membership of a subsemigroup's underlying set.
Note that Subsemigroup M does not actually require Semigroup M,
instead requiring only the weaker Mul M.
This file is designed to have very few dependencies. In particular, it should not use natural numbers.
Tags
subsemigroup, subsemigroups "}