Copyright | (c) 2021-2022 Dakotah Lambert |
---|---|
License | MIT |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
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
- isFinite :: (Ord n, Ord e) => FSA n e -> Bool
- isFiniteM :: (Ord n, Ord e) => SynMon n e -> Bool
- isCofinite :: (Ord n, Ord e) => FSA n e -> Bool
- isCofiniteM :: (Ord n, Ord e) => SynMon n e -> Bool
- isTFinite :: (Ord n, Ord e) => FSA n e -> Bool
- isTFiniteM :: (Ord n, Ord e) => SynMon n e -> Bool
- isTCofinite :: (Ord n, Ord e) => FSA n e -> Bool
- isTCofiniteM :: (Ord n, Ord e) => SynMon n e -> Bool
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