Stephen

This module contains the single class Stephen which implements a version of Stephen’s procedure for computing the size and number of \(\mathscr{R}\)-classes of a finitely presented inverse monoid.

class step_hen.Stephen(presn: step_hen.presentation.InverseMonoidPresentation)

The class encodes a rudimentary version of Stephen’s procedure as described in [Cut01]

__init__(presn: step_hen.presentation.InverseMonoidPresentation)None

Construct a new Stephen from an inverse monoid presentation.

Parameters

presn (InverseMonoidPresentation) – the inverse monoid presentation

Returns

None

Example

P = InverseMonoidPresentation()
P.set_alphabet("xy")
P.add_relation("xxx", "x")
P.add_relation("yyyyy", "y")
P.add_relation("xyxy", "xx")

S = Stephen(P)
number_of_r_classes()int

Returns the number of \(\mathscr{R}\)-classes of the inverse monoid defined by the presentation used to define an instance of this type.

Parameters

None

Returns

An int.

Warning

The procedure implemented by method may never terminate. In particular, it terminates if and only if the inverse monoid defined by the inverse monoid presentation used to construct the class is finite. Even if the monoid defined by the presentation is finite, there is no bound on the run time of this method.

Example

P = InverseMonoidPresentation()
P.set_alphabet("xy")
P.add_relation("xxx", "x")
P.add_relation("yyyyy", "y")
P.add_relation("xyxy", "xx")

S = Stephen(P)
S.number_of_r_classes()  # returns 3
size()int

Returns the size of the inverse monoid defined by the presentation used to define an instance of this type.

Parameters

None

Returns

An int.

Warning

The procedure implemented by method may never terminate. In particular, it terminates if and only if the inverse monoid defined by the inverse monoid presentation used to construct the class is finite. Even if the monoid defined by the presentation is finite, there is no bound on the run time of this method.

Example

P = InverseMonoidPresentation()
P.set_alphabet("xy")
P.add_relation("xxx", "x")
P.add_relation("yyyyy", "y")
P.add_relation("xyxy", "xx")

S = Stephen(P)
S.size()  # returns 13