The SimsRefinerFaithful class
For pruning the search tree when looking for congruences arising from right or two-sided congruences representing faithful actions.
This class provides a pruner for pruning the search tree when looking for right congruences representing faithful actions. A right congruence represents a faithful action if and only if it does not contain any non-trivial two-sided congruence. Equivalently, a word graph of a right congruence represents a faithful action if and only if there is no nontrivial pair of words \((u, v)\) such that every vertex of the word graph is compatible with \((u, v)\).
See also
Contents
For pruning the search tree when looking for congruences arising from right or two-sided congruences representing faithful actions. |
|
Check if a word graph can be extended to one defining a faithful congruence. |
|
Get the forbidden pairs defining the refiner. |
|
Overloaded function. |
Full API
- class SimsRefinerFaithful
- __init__(*args, **kwargs)
Overloaded function.
- __init__(self: SimsRefinerFaithful, word: type) None
This function returns an uninitialized
SimsRefinerFaithful
object that uses words of type specified by word.- Keyword Arguments:
word (type) – the type of words to use, must be
list[int]
.
- __init__(self: SimsRefinerFaithful, forbid: list[list[int]]) None
Construct from set of forbidden pairs.
This function constructs a
SimsRefinerFaithful
pruner with respect to the set of forbidden relations in forbid. If forbid contains no trivial pairs (i.e. pairs of words that are equal in the underlying semigroup or monoid), then all word graphs rejected bySimsRefinerFaithful
are guaranteed to not be extendable to a word graph representing a faithful congruence. Otherwise, the pruner will incorrectly reject all word graphs.If in addition forbid is a set of relations containing all minimal congruence generating pairs of a given semigroup or monoid, then
SimsRefinerFaithful
will also correctly determine if a complete word graph represents a faithful congruence. Otherwise, the complete word graphs accepted bySimsRefinerFaithful
are not guaranteed to be faithful and must be checked by some other means.
- __call__(self: SimsRefinerFaithful, wg: WordGraph) bool
Check if a word graph can be extended to one defining a faithful congruence.
Returns
False
if there is no way of adding edges and nodes to wg which will result in a word graph defining a faithful congruence. Otherwise returnsTrue
.
- forbid(self: SimsRefinerFaithful) list[list[int]]
Get the forbidden pairs defining the refiner.
This function returns the defining forbidden pairs of a
SimsRefinerFaithful
instance.
- init(self: SimsRefinerFaithful, forbid: list[list[int]]) SimsRefinerFaithful
Overloaded function.
- init(self: SimsRefinerFaithful) SimsRefinerFaithful
Reinitialize an existing
SimsRefinerFaithful
object.This function puts an object back into the same state as if it had been newly default constructed.
- Returns:
The first argument self.
- Return type:
- init(self: SimsRefinerFaithful, forbid: list[list[int]]) SimsRefinerFaithful
Reinitialize an existing
SimsRefinerFaithful
object from a set of forbidden pairs.This function puts an object back into the same state as if it had been newly constructed from set of forbidden pairs forbid.