Copyright | (c) 2021 Dakotah Lambert |
---|---|
License | MIT |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
This module implements an algorithm to decide whether a given FSA is Definite (Def) or Reverse Definite (RDef) based on the classic semigroup characterizations summarized by Brzozowski and Fich in their 1984 work "On Generalized Locally Testable Languages".
Since: 1.0
Synopsis
- isDef :: (Ord n, Ord e) => FSA n e -> Bool
- isDefM :: (Ord n, Ord e) => SynMon n e -> Bool
- isRDef :: (Ord n, Ord e) => FSA n e -> Bool
- isRDefM :: (Ord n, Ord e) => SynMon n e -> Bool
- isTDef :: (Ord n, Ord e) => FSA n e -> Bool
- isTDefM :: (Ord n, Ord e) => SynMon n e -> Bool
- isTRDef :: (Ord n, Ord e) => FSA n e -> Bool
- isTRDefM :: (Ord n, Ord e) => SynMon n e -> Bool
Plain
isDef :: (Ord n, Ord e) => FSA n e -> Bool Source #
True iff the automaton recognizes a definite stringset, characterized by a set of permitted suffixes.
isRDef :: (Ord n, Ord e) => FSA n e -> Bool Source #
True iff the automaton recognizes a reverse definite stringset, characterized by a set of permitted prefixes.