uhc-util-0.1.6.3: UHC utilities

Safe HaskellNone
LanguageHaskell98

UHC.Util.CHR.Rule

Description

Derived from work by Gerrit vd Geest, but with searching structures for predicates to avoid explosion of search space during resolution.

Synopsis

Documentation

data CHRRule env subst Source

Constructors

CHRRule 

Fields

chrRule :: Rule (CHRConstraint env subst) (CHRGuard env subst)
 

Instances

Show (CHRRule env subst) Source 
PP (CHRRule env subst) Source 
type TTKey (CHRRule env subst) = TTKey (CHRConstraint env subst) Source 

data Rule cnstr guard Source

A CHR (rule) consist of head (simplification + propagation, boundary indicated by an Int), guard, and a body. All may be empty, but not all at the same time.

Constructors

Rule 

Fields

ruleHead :: ![cnstr]
 
ruleSimpSz :: !Int
 
ruleGuard :: ![guard]
 
ruleBody :: ![cnstr]
 

Instances

(Data cnstr, Data guard) => Data (Rule cnstr guard) Source 
Show (Rule c g) Source 
(PP c, PP g) => PP (Rule c g) Source 
(Serialize c, Serialize g) => Serialize (Rule c g) Source 
TTKeyable cnstr => TTKeyable (Rule cnstr guard) Source 
(VarExtractable c, VarExtractable g, (~) * (ExtrValVarKey c) (ExtrValVarKey g)) => VarExtractable (Rule c g) Source 
(VarUpdatable c s, VarUpdatable g s) => VarUpdatable (Rule c g) s Source 
type TTKey (Rule cnstr guard) = TTKey cnstr Source 
type ExtrValVarKey (Rule c g) = ExtrValVarKey c Source 

(<==>) :: (MkRule r, MkSolverConstraint (SolverConstraint r) c1, MkSolverConstraint (SolverConstraint r) c2) => [c1] -> [c2] -> r infix 1 Source

(==>) :: (MkRule r, MkSolverConstraint (SolverConstraint r) c1, MkSolverConstraint (SolverConstraint r) c2) => [c1] -> [c2] -> r infix 1 Source

(|>) :: (MkRule r, MkSolverGuard (SolverGuard r) g') => r -> [g'] -> r infixr 0 Source

class MkSolverGuard g g' where Source

Methods

toSolverGuard :: g' -> g Source

fromSolverGuard :: g -> Maybe g' Source

Instances