language-toolkit-1.2.0.0: A set of tools for analyzing languages via logic and automata
Copyright(c) 2022-2024 Dakotah Lambert
LicenseMIT
Safe HaskellSafe-Inferred
LanguageHaskell2010

LTK.Decide.Multitier

Description

The Boolean closure of tier-based locally V is a subclass of the Meification of V. For instance, multiple-tier-based definite is a proper subclass of the L-trivial languages. This module includes decision algorithms for some classes of multiple-tier-based languages.

The equations given here are adapted from Almeida's (1995) "Finite Semigroups and Universal Algebra" https://doi.org/10.1142/2481 as they are simpler than the equivalent ones I had found independently.

Since: 1.1

Synopsis

Documentation

isMTF :: (Ord n, Ord e) => FSA n e -> Bool #

True iff the given language is multiple-tier-based (co)finite.

isMTDef :: (Ord n, Ord e) => FSA n e -> Bool #

True iff the given language is multiple-tier-based definite.

isMTRDef :: (Ord n, Ord e) => FSA n e -> Bool #

True iff the given language is multiple-tier-based reverse-definite.

isMTGD :: (Ord n, Ord e) => FSA n e -> Bool #

True iff the given language is multiple-tier-based generalized-definite.

isMTFM :: (Ord n, Ord e) => SynMon n e -> Bool #

True iff the monoid is aperiodic and satisfies \(x^{\omega}y=yx^{\omega}\).

isMTDefM :: (Ord n, Ord e) => SynMon n e -> Bool #

True iff the monoid satisfies \(xyx^{\omega}=yx^{\omega}\).

isMTRDefM :: (Ord n, Ord e) => SynMon n e -> Bool #

True iff the monoid satisfies \(x^{\omega}yx=x^{\omega}y\).

isMTGDM :: (Ord n, Ord e) => SynMon n e -> Bool #

True iff the monoid satisfies isMTGDs.

isMTFs :: FiniteSemigroupRep s => s -> Bool #

True iff the semigroup is aperiodic and satisfies \(x^{\omega}y=yx^{\omega}\).

Since: 1.2

isMTDefs :: FiniteSemigroupRep s => s -> Bool #

True iff the semigroup satisifes \(xyx^{\omega}=yx^{\omega}\).

Since: 1.2

isMTRDefs :: FiniteSemigroupRep s => s -> Bool #

True iff the semigroup satisifes \(x^{\omega}yx=x^{\omega}y\).

Since: 1.2

isMTGDs :: FiniteSemigroupRep s => s -> Bool #

True iff the semigroup satisfies \(x^{\omega}uxvx^{\omega}=x^{\omega}uvx^{\omega}\) and \(x^{\omega}uxzvz^{\omega}=x^{\omega}uzxvz^{\omega}\). Thanks to Almeida (1995) for the simplification.

Since: 1.2