Safe Haskell | Safe |
---|
This module implements a decision procedure for quantifier-free linear arithmetic. The algorithm is based on the following paper:
An Online Proof-Producing Decision Procedure for Mixed-Integer Linear Arithmetic by Sergey Berezin, Vijay Ganesh, and David L. Dill
- data PropSet
- noProps :: PropSet
- checkSat :: PropSet -> Maybe [(Int, Integer)]
- assert :: Prop -> PropSet -> PropSet
- data Prop
- data Expr
- data BoundType
- getExprBound :: BoundType -> Expr -> PropSet -> Maybe Integer
- getExprRange :: Expr -> PropSet -> Maybe [Integer]
- data Name
- toName :: Int -> Name
- fromName :: Name -> Maybe Int
Documentation
checkSat :: PropSet -> Maybe [(Int, Integer)]Source
Extract a model from a consistent set of propositions.
Returns Nothing
if the assertions have no model.
If a variable does not appear in the assignment, then it is 0 (?).
The type of proposition.
The type of integer expressions. Variable names must be non-negative.
getExprBound :: BoundType -> Expr -> PropSet -> Maybe IntegerSource
Computes bounds on the expression that are compatible with the model.
Returns Nothing
if the bound is not known.