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

Language.Hasmtlib.Solver.Common

Synopsis

Documentation

newtype ProcessSolver Source #

A newtype-wrapper for Config which configures a solver via external process.

Constructors

ProcessSolver 

Fields

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

Creates a debugging Solver from a ProcessSolver

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

Creates an interactive session with a solver by creating and returning an alive process-handle Handle.

data Debugger s Source #

A type holding actions for debugging states.

Constructors

Debugger 

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.