Copyright | (c) 2023 Dakotah Lambert |
---|---|
License | MIT |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
This module provides classification algorithms for finite semigroups.
Synopsis
- isAperiodic :: FiniteSemigroupRep s => s -> Bool
- isBand :: FiniteSemigroupRep s => s -> Bool
- isCommutative :: FiniteSemigroupRep s => s -> Bool
- isDA :: FiniteSemigroupRep s => s -> Bool
- isJTrivial :: FiniteSemigroupRep s => s -> Bool
- isLTrivial :: FiniteSemigroupRep s => s -> Bool
- isNilpotent :: FiniteSemigroupRep s => s -> Bool
- isRTrivial :: FiniteSemigroupRep s => s -> Bool
- isTrivial :: FiniteSemigroupRep s => s -> Bool
- locally :: FiniteSemigroupRep s => (FSMult -> Bool) -> s -> Bool
Documentation
isAperiodic :: FiniteSemigroupRep s => s -> Bool Source #
True if and only if all subgroups are trivial. That is, no two distinct elements are both \(\mathcal{L}\)-related and \(\mathcal{R}\)-related.
isBand :: FiniteSemigroupRep s => s -> Bool Source #
True if and only if all elements are idempotent.
isCommutative :: FiniteSemigroupRep s => s -> Bool Source #
True if and only if \(xy=yx\) for all \(x\) and \(y\).
isDA :: FiniteSemigroupRep s => s -> Bool Source #
True if and only if all regular \(\mathcal{D}\)-classes are aperiodic semigroups. Equivalently: all regular elements are idempotent.
isJTrivial :: FiniteSemigroupRep s => s -> Bool Source #
True if and only if no two distinct elements are \(\mathcal{J}\)-related. Equivalently: both \(\mathcal{L}\)-trivial and \(\mathcal{R}\)-trivial.
isLTrivial :: FiniteSemigroupRep s => s -> Bool Source #
True if and only if no two distinct elements are \(\mathcal{L}\)-related.
isNilpotent :: FiniteSemigroupRep s => s -> Bool Source #
True if and only if the only idempotent element is zero.
isRTrivial :: FiniteSemigroupRep s => s -> Bool Source #
True if and only if no two distinct elements are \(\mathcal{L}\)-related.
isTrivial :: FiniteSemigroupRep s => s -> Bool Source #
True if and only if there is but a single element.
locally :: FiniteSemigroupRep s => (FSMult -> Bool) -> s -> Bool Source #
True if and only if each of the localSubmonoids
satisfies the given proposition.