uhc-util-0.1.6.5: UHC utilities

Safe HaskellNone
LanguageHaskell98

UHC.Util.CHR.Solve.TreeTrie.Mono

Description

Derived from work by Gerrit vd Geest, but greatly adapted to use more efficient searching.

Assumptions (to be documented further) - The key [Trie.TrieKey Key] used to lookup a constraint in a CHR should be distinguishing enough to be used for the prevention of the application of a propagation rule for a 2nd time.

This is a monomorphic Solver, i.e. the solver is polymorph but therefore can only work on 1 type of constraints, rules, etc.

Synopsis

Documentation

data CHRStore cnstr guard prio Source

A CHR store is a trie structure

Instances

emptyCHRStore :: CHRStore cnstr guard prio Source

chrStoreFromElems :: (TTKeyable c, Ord (TTKey c), TTKey c ~ TrTrKey c) => [Rule c g p] -> CHRStore c g p Source

Convert from list to store

chrStoreUnion :: Ord (TTKey c) => CHRStore c g p -> CHRStore c g p -> CHRStore c g p Source

chrStoreUnions :: Ord (TTKey c) => [CHRStore c g p] -> CHRStore c g p Source

chrStoreToList :: Ord (TTKey c) => CHRStore c g p -> [(CHRKey c, [Rule c g p])] Source

chrStoreElems :: Ord (TTKey c) => CHRStore c g p -> [Rule c g p] Source

ppCHRStore :: (PP c, PP g, PP p, Ord (TTKey c), PP (TTKey c)) => CHRStore c g p -> PP_Doc Source

ppCHRStore' :: (PP c, PP g, PP p, Ord (TTKey c), PP (TTKey c)) => CHRStore c g p -> PP_Doc Source

data SolveStep' c r s Source

A trace step

Constructors

SolveStep 

Fields

stepChr :: r
 
stepSubst :: s
 
stepNewTodo :: [c]
 
stepNewDone :: [c]
 
SolveStats 
SolveDbg 

Fields

stepPP :: PP_Doc
 

Instances

Show (SolveStep' c r s) Source 
(PP r, PP c) => PP (SolveStep' c r s) Source 

type SolveStep c g p s = SolveStep' c (Rule c g p) s Source

type SolveTrace c g p s = SolveTrace' c (Rule c g p) s Source

ppSolveTrace :: (PP r, PP c) => SolveTrace' c r s -> PP_Doc Source

type SolveState c g p s = SolveState' c (Rule c g p) (StoredCHR c g p) s Source

emptySolveState :: SolveState' c r sr s Source

solveStateResetDone :: SolveState' c r sr s -> SolveState' c r sr s Source

chrSolveStateDoneConstraints :: SolveState' c r sr s -> [c] Source

chrSolveStateTrace :: SolveState' c r sr s -> SolveTrace' c r s Source

class (IsCHRConstraint env c s, IsCHRGuard env g s, IsCHRPrio env p s, VarLookupCmb s s, VarUpdatable s s, CHREmptySubstitution s, TrTrKey c ~ TTKey c) => IsCHRSolvable env c g p s Source

(Class alias) API for solving requirements

chrSolve' :: forall env c g p s. IsCHRSolvable env c g p s => env -> CHRStore c g p -> [c] -> ([c], [c], SolveTrace c g p s) Source

Solve

chrSolve'' :: forall env c g p s. IsCHRSolvable env c g p s => env -> CHRStore c g p -> [c] -> SolveState c g p s -> SolveState c g p s Source

Solve

chrSolveM :: forall env c g p s. IsCHRSolvable env c g p s => env -> CHRStore c g p -> [c] -> State (SolveState c g p s) () Source

Solve