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

LTK.Decide.Finite

Description

This module implements an algorithm to decide whether a given FSA is finite. Also included for convenience is a test for cofiniteness.

Since: 1.0

Synopsis

Documentation

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

True iff the automaton accepts only finitely many words.

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

True iff the syntactic monoid is nilpotent and the sole idempotent is rejecting

Since: 1.1

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

True iff the automaton accepts all but finitely many words.

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

True iff the syntactic monoid is nilpotent and the sole idempotent is accepting

Since: 1.1

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

True iff the automaton is finite on a tier.

Since: 1.1

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

True iff the syntactic monoid is nilpotent without its identity, and the sole other idempotent is rejecting

Since: 1.1

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

True iff the automaton is cofinite on a tier.

Since: 1.1

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

True iff the syntactic monoid is nilpotent without its identity, and the sole other idempotent is accepting

Since: 1.1