what4-1.5.1: Solver-agnostic symbolic values support for issuing queries
Copyright(c) Galois Inc 2015-2020
LicenseBSD3
MaintainerRob Dockins <rdockins@galois.com>
Stabilityprovisional
Safe HaskellSafe-Inferred
LanguageHaskell2010

What4.Solver.Adapter

Description

 
Synopsis

Documentation

data SolverAdapter st Source #

The main interface for interacting with a solver in an "offline" fashion, which means that a new solver process is started for each query.

Constructors

SolverAdapter 

Fields

Instances

Instances details
Show (SolverAdapter st) Source # 
Instance details

Defined in What4.Solver.Adapter

Methods

showsPrec :: Int -> SolverAdapter st -> ShowS

show :: SolverAdapter st -> String

showList :: [SolverAdapter st] -> ShowS

Eq (SolverAdapter st) Source # 
Instance details

Defined in What4.Solver.Adapter

Methods

(==) :: SolverAdapter st -> SolverAdapter st -> Bool

(/=) :: SolverAdapter st -> SolverAdapter st -> Bool

Ord (SolverAdapter st) Source # 
Instance details

Defined in What4.Solver.Adapter

Methods

compare :: SolverAdapter st -> SolverAdapter st -> Ordering

(<) :: SolverAdapter st -> SolverAdapter st -> Bool

(<=) :: SolverAdapter st -> SolverAdapter st -> Bool

(>) :: SolverAdapter st -> SolverAdapter st -> Bool

(>=) :: SolverAdapter st -> SolverAdapter st -> Bool

max :: SolverAdapter st -> SolverAdapter st -> SolverAdapter st

min :: SolverAdapter st -> SolverAdapter st -> SolverAdapter st

defaultWriteSMTLIB2Features :: ProblemFeatures Source #

Default featues to use for writing SMTLIB2 files.

data LogData Source #

A collection of operations for producing output from solvers. Solvers can produce messages at varying verbosity levels that might be appropriate for user output by using the logCallbackVerbose operation. If a logHandle is provided, the entire interaction sequence with the solver will be mirrored into that handle.

Constructors

LogData 

Fields

  • logCallbackVerbose :: Int -> String -> IO ()

    takes a verbosity and a message to log

  • logVerbosity :: Int

    the default verbosity; typical default is 2

  • logReason :: String

    the reason for performing the operation

  • logHandle :: Maybe Handle

    handle on which to mirror solver input/responses

logCallback :: LogData -> String -> IO () Source #

smokeTest :: ExprBuilder t st fs -> SolverAdapter st -> IO (Maybe SomeException) Source #

Test the ability to interact with a solver by peforming a check-sat query on a trivially unsatisfiable problem.