finite-semigroups-0.1.0.0: Operations and classification for finite semigroups
Copyright(c) 2023 Dakotah Lambert
LicenseMIT
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.Representation.FiniteSemigroup.Classification

Description

This module provides classification algorithms for finite semigroups.

Synopsis

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.