Safe Haskell | None |
---|
Documentation
data SimpleConstraint (t :: ConstraintType) where Source #
SimpleInput :: forall v. Typeable v => StorageType -> Var v -> ValueSet v -> SimpleConstraint 'Input | |
SimpleCondition :: Term 'Transparent Bool -> SimpleConstraint 'Condition | |
SimpleOverflow :: [Term 'Transparent Integer] -> SimpleConstraint 'Overflow |
data Constraint (t :: ConstraintType) where Source #
InputConstraint :: forall v. Typeable v => (Var v, Int) -> ValueSet v -> Map SomeVar SymbolicInfo -> Constraint 'Input | |
ConditionConstraint :: Term 'Transparent Bool -> Map SomeVar SymbolicInfo -> Constraint 'Condition | |
OverflowConstraints :: [Term 'Transparent Integer] -> Map SomeVar SymbolicInfo -> Constraint 'Overflow |
data ConstraintTree where Source #
Choice :: ConstraintTree -> ConstraintTree -> ConstraintTree | |
Assert :: forall (t :: ConstraintType). SimpleConstraint t -> ConstraintTree -> ConstraintTree | |
Unfold :: ConstraintTree -> ConstraintTree | |
InjectionPoint :: SimpleConstraint 'Input -> ConstraintTree -> ConstraintTree | |
Empty :: ConstraintTree |
data SimplePath where Source #
ClosedPath :: [Some SimpleConstraint] -> SimplePath | |
OpenPath :: forall (t :: ConstraintType). [Some SimpleConstraint] -> SimpleConstraint t -> SimplePath -> SimplePath |
simplePaths :: Int -> ConstraintTree -> [SimplePath] Source #
appendPath :: SimplePath -> SimplePath -> SimplePath Source #
addEnvToPath :: [Some SimpleConstraint] -> Path Source #
canBeInjected :: SimplePath -> Bool Source #
injectionPoints :: SimplePath -> Int Source #
type Path = [Some Constraint] Source #
data SymbolicInfo Source #
SymbolicInfo | |
|
storedValues :: SymbolicInfo -> [(Int, Int)] Source #
completePath :: [Int] -> SimplePath -> Path Source #
partitionPath :: Path -> ([Constraint 'Input], [Constraint 'Condition], [Constraint 'Overflow]) Source #
numberOfPaths :: Integer -> Specification -> Integer Source #
showSimplePath :: SimplePath -> String Source #
showSimpleConstraint :: forall (t :: ConstraintType). SimpleConstraint t -> String Source #
showSomeSimpleConstraint :: Some SimpleConstraint -> String Source #
showConstraint :: forall (t :: ConstraintType). Constraint t -> String Source #
showSomeConstraint :: Some Constraint -> String Source #