Portability | unportable |
---|---|
Stability | unstable |
Maintainer | Martin Avanzini <martin.avanzini@uibk.ac.at>, Andreas Schnabl <andreas.schnabl@uibk.ac.at> |
Safe Haskell | Safe-Infered |
This module implements fixing of compatibility violations, as employed in the bound processor.
Documentation
type MemoReachable = MemoAction LTerm (Set State)
reachableStates :: Automaton -> LTerm -> MemoReachable (Set State)
type Constraint = Set (Set Problem)
oneOf :: [Constraint] -> Constraint
requireAll :: [Problem] -> Constraint
qed :: Constraint
fail :: Constraint
isBot :: Constraint -> Bool
isReducibleProblem :: Problem -> Bool
replaceProblem :: Problem -> Constraint -> Constraint -> Constraint
type ReductionRule = Problem -> StateT Automaton MemoReachable Constraint
type DisjunctSelector = Constraint -> StateT Automaton MemoReachable [Problem]
type ProblemSelector = Constraint -> StateT Automaton MemoReachable Problem
applyRule :: ProblemSelector -> ProblemCutter -> Constraint -> StateT Automaton MemoReachable Constraint
reduceConstraint :: DisjunctSelector -> ProblemSelector -> ProblemCutter -> Constraint -> StateT Automaton MemoReachable ()
isViolation :: (LTerm, State) -> StateT Automaton MemoReachable Bool
fixViolation :: Automaton -> (LTerm, State) -> Automaton