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

LTK.Tiers

Description

If an FSA defines a stringset that is the preprojection of some other stringset over a smaller alphabet, the functions in this module can determine what that alphabet is and return the appropriate projective automaton.

Synopsis

Documentation

tier :: (Ord n, Ord e) => FSA n e -> Set e Source #

Determine the tier alphabet for which the given FSA is a preprojection. This could simply be the entire alphabet of the FSA. Precondition: the given FSA must be in normal form.

project :: (Ord n, Ord e) => FSA n e -> FSA n e Source #

Remove symbols not relevant to the given FSA's associated projection (as determined by tier). Precondition: the given FSA must be in normal form.