### Navigation

- index
- modules |
- next |
- previous |
- Category Theory »

# Finite Monoids

class `sage.categories.finite_monoids.``FiniteMonoids`(base_category)

  Bases: `sage.categories.category_with_axiom.CategoryWithAxiom_singleton`

  The category of finite (multiplicative) `monoids`.

  A finite monoid is a `finite sets` endowed with an associative unital binary operation \(*\).

  EXAMPLES:

      sage: FiniteMonoids()
      Category of finite monoids
      sage: FiniteMonoids().super_categories()
      [Category of monoids, Category of finite semigroups]

  TESTS:

      sage: TestSuite(FiniteMonoids()).run()

  class `ElementMethods`
    `pseudo_order`()

      Returns the pair \([k, j]\) with \(k\) minimal and \(0\leq j <k\) such that `self^k == self^j`.

      Note that \(j\) is uniquely determined.

      EXAMPLES:

          sage: M = FiniteMonoids().example(); M
          An example of a finite multiplicative monoid: the integers modulo 12

          sage: x = M(2)
          sage: [ x^i for i in range(7) ]
          [1, 2, 4, 8, 4, 8, 4]
          sage: x.pseudo_order()
          [4, 2]

          sage: x = M(3)
          sage: [ x^i for i in range(7) ]
          [1, 3, 9, 3, 9, 3, 9]
          sage: x.pseudo_order()
          [3, 1]

          sage: x = M(4)
          sage: [ x^i for i in range(7) ]
          [1, 4, 4, 4, 4, 4, 4]
          sage: x.pseudo_order()
          [2, 1]

          sage: x = M(5)
          sage: [ x^i for i in range(7) ]
          [1, 5, 1, 5, 1, 5, 1]
          sage: x.pseudo_order()
          [2, 0]

      TODO: more appropriate name? see, for example, Jean-Eric Pin’s lecture notes on semigroups.

### Navigation

- index
- modules |
- next |
- previous |
- Category Theory »