Hsmtlib-0.2.0.6: Haskell library for easy interaction with SMT-LIB 2 compliant solvers.

Safe HaskellSafe-Inferred

Hsmtlib.Solver

Description

This module has most types,data and functions that a user might need to utilize the library.

Synopsis

Documentation

data Logic Source

Logics that can be passed to the start of the solver

Instances

Show Logic 

data Solvers Source

Solvers that are currently supported.

Constructors

Z3 
Cvc4 
Yices 
Mathsat 
Altergo 
Boolector 

data GenResult Source

Response from most commands that do not demand a feedback from the solver, e.g: setLogic,push,pop...

Constructors

Success

The command was successfully sent to the solver.

Unsupported

The solver does not support the command.

Error String

Some error occurred in the solver. | Some error occurred parsing the response from the solver.

GUError String 

Instances

Eq GenResult 
Show GenResult 

data SatResult Source

Response from the command checkSat.

Constructors

Sat

The solver has found a model.

Unsat

The solver has established there is no model.

Unknown

The search for a model was inconclusive. Some error occurred parsing the response from the solver.

SUError String 

Instances

Show SatResult 

data GValResult Source

Response from the command getValue

Constructors

Res String Value

Name of the variable or function and result.

VArrays Arrays

The result of arrays

Results [GValResult]

Multiple results from multiple requestes.

GVUError String

Some error occurred parsing the response from the solver.

Instances

Show GValResult 

type Arrays = Map String (Map String Integer)Source

When the value of an array or several values from diferent arrays are requested with getValue then the value returned is a Map where the value ís the name of the array, and the value is also a map. This inner map has as value the position of the array and returned value. Only integers are supported as values of arrays.

data Value Source

The type returned by getValue on constants or functions.

Constructors

VInt Integer 
VRatio Rational 
VBool Bool 
VHex String 

Instances

Show Value 

data Mode Source

Avaliable modes to use a solver.

Constructors

Online 
Script 
Batch 

data SolverConfig Source

Alternative configuration of a solver which can be passed in the function startSolver in Main

Constructors

Config 

Fields

path :: String
 
args :: [String]
 

data Solver Source

Solver data type that has all the functions.

Constructors

Solver 

Fields

setLogic :: Name -> IO GenResult
 
setOption :: Option -> IO GenResult
 
setInfo :: Attr -> IO GenResult
 
declareType :: Name -> Integer -> IO GenResult
 
defineType :: Name -> [Name] -> Type -> IO GenResult
 
declareFun :: Name -> [Type] -> Type -> IO GenResult
 
defineFun :: Name -> [Binder] -> Type -> Expr -> IO GenResult
 
push :: Integer -> IO GenResult
 
pop :: Integer -> IO GenResult
 
assert :: Expr -> IO GenResult
 
checkSat :: IO SatResult
 
getAssertions :: IO String
 
getValue :: [Expr] -> IO GValResult
 
getProof :: IO String
 
getUnsatCore :: IO String
 
getInfo :: InfoFlag -> IO String
 
getOption :: Name -> IO String
 
exit :: IO String
 
BSolver 

Fields

executeBatch :: [Command] -> IO String