Examples of monoids

sage.categories.examples.monoids.Example

alias of sage.categories.examples.monoids.FreeMonoid

class sage.categories.examples.monoids.FreeMonoid(alphabet=('a', 'b', 'c', 'd'))

Bases: sage.categories.examples.semigroups.FreeSemigroup

An example of a monoid: the free monoid

This class illustrates a minimal implementation of a monoid. For a full featured implementation of free monoids, see FreeMonoid().

EXAMPLES:

sage: S = Monoids().example(); S
An example of a monoid: the free monoid generated by ('a', 'b', 'c', 'd')

sage: S.category()
Category of monoids

This is the free semigroup generated by:

sage: S.semigroup_generators()
Family ('a', 'b', 'c', 'd')

with product rule given by concatenation of words:

sage: S('dab') * S('acb')
'dabacb'

and unit given by the empty word:

sage: S.one()
''

We conclude by running systematic tests on this monoid:

sage: TestSuite(S).run(verbose = True)
running ._test_an_element() . . . pass
running ._test_associativity() . . . pass
running ._test_cardinality() . . . pass
running ._test_category() . . . pass
running ._test_elements() . . .
  Running the test suite of self.an_element()
  running ._test_category() . . . pass
  running ._test_eq() . . . pass
  running ._test_new() . . . pass
  running ._test_not_implemented_methods() . . . pass
  running ._test_pickling() . . . pass
  pass
running ._test_elements_eq_reflexive() . . . pass
running ._test_elements_eq_symmetric() . . . pass
running ._test_elements_eq_transitive() . . . pass
running ._test_elements_neq() . . . pass
running ._test_eq() . . . pass
running ._test_new() . . . pass
running ._test_not_implemented_methods() . . . pass
running ._test_one() . . . pass
running ._test_pickling() . . . pass
running ._test_prod() . . . pass
running ._test_some_elements() . . . pass
class Element

Bases: sage.structure.element_wrapper.ElementWrapper

monoid_generators()

Return the generators of this monoid.

EXAMPLES:

sage: M = Monoids().example(); M
An example of a monoid: the free monoid generated by ('a', 'b', 'c', 'd')
sage: M.monoid_generators()
Finite family {'a': 'a', 'b': 'b', 'c': 'c', 'd': 'd'}
sage: a,b,c,d = M.monoid_generators()
sage: a*d*c*b
'adcb'
one()

Returns the one of the monoid, as per Monoids.ParentMethods.one().

EXAMPLES:

sage: M = Monoids().example(); M
An example of a monoid: the free monoid generated by ('a', 'b', 'c', 'd')
sage: M.one()
''