hasmtlib-2.1.0: A monad for interfacing with external SMT solvers
Safe HaskellSafe-Inferred
LanguageGHC2021

Language.Hasmtlib.Solver.Common

Synopsis

Documentation

solver :: (RenderSeq s, MonadIO m) => Config -> Solver s m Source #

Creates a Solver from a Config.

debug :: (RenderSeq s, MonadIO m) => Config -> Debugger s -> Solver s m Source #

Creates a debugging Solver from a Config.

interactiveSolver :: MonadIO m => Config -> m (Solver, Handle) Source #

Creates an interactive session with a solver by creating and returning an alive process-handle Handle. Queues commands by default, see Queuing.

data Debugger s Source #

A type holding actions for debugging states.

Constructors

Debugger 

Fields

Instances

Instances details
Default (Debugger OMT) Source # 
Instance details

Defined in Language.Hasmtlib.Solver.Common

Methods

def :: Debugger OMT #

Default (Debugger SMT) Source # 
Instance details

Defined in Language.Hasmtlib.Solver.Common

Methods

def :: Debugger SMT #

processSolver :: (RenderSeq s, MonadIO m) => Config -> Maybe (Debugger s) -> Solver s m Source #

A Solver which holds an external process with a SMT-Solver. This will:

  1. Encode the SMT-problem,
  2. Start a new external process for the SMT-Solver,
  3. Send the problem to the SMT-Solver,
  4. Wait for an answer and parse it and
  5. close the process and clean up all resources.