qute-symex-0.1.0: A symbolic execution engine for the QBE intermediate language.
Safe HaskellNone
LanguageGHC2021

SimpleBV

Synopsis

Documentation

data SExpr Source #

Instances

Instances details
Generic SExpr Source # 
Instance details

Defined in SimpleBV

Associated Types

type Rep SExpr 
Instance details

Defined in SimpleBV

type Rep SExpr

Methods

from :: SExpr -> Rep SExpr x #

to :: Rep SExpr x -> SExpr #

Show SExpr Source # 
Instance details

Defined in SimpleBV

Methods

showsPrec :: Int -> SExpr -> ShowS #

show :: SExpr -> String #

showList :: [SExpr] -> ShowS #

NFData SExpr Source # 
Instance details

Defined in SimpleBV

Methods

rnf :: SExpr -> () #

Eq SExpr Source # 
Instance details

Defined in SimpleBV

Methods

(==) :: SExpr -> SExpr -> Bool #

(/=) :: SExpr -> SExpr -> Bool #

type Rep SExpr Source # 
Instance details

Defined in SimpleBV

type Rep SExpr

data Solver #

An interactive solver process.

defaultConfig #

Arguments

:: String

Solver executable

-> [String]

Solver arguments

-> Config 

A reasonable default Config value.

newLogger :: Int -> IO Logger #

A simple stdout logger. Shows only messages logged at a level that is greater than or equal to the passed level.

newLoggerWithHandle :: Handle -> Int -> IO Logger #

A simple logger that writes to a Handle. Shows only messages logged at a level that is greater than or equal to the passed level.

newSolver #

Arguments

:: String

Executable

-> [String]

Arguments

-> Maybe Logger

Optional logging here

-> IO Solver 

Start a new solver process.

newSolverWithConfig :: Config -> IO Solver #

Start a new solver process using the provided Config options.

solverLogger :: Config -> SolverLogger #

How to log solver-related messages.

smtSolverLogger :: Logger -> SolverLogger #

A SolverLogger that formats log messages into the SMT-LIB file format so that the resulting log can be parsed as input by an SMT solver.

setLogic :: Solver -> String -> IO () #

Set the solver's logic. Usually, this should be done first.

push :: Solver -> IO () #

Checkpoint state. A special case of pushMany.

pop :: Solver -> IO () #

Restore to last check-point. A special case of popMany.

popMany :: Solver -> Integer -> IO () #

Pop multiple scopes.

check :: Solver -> IO Result #

Check if the current set of assertion is consistent.

data Result #

Results of checking for satisfiability.

Constructors

Sat

The assertions are satisfiable

Unsat

The assertions are unsatisfiable

Unknown

The result is inconclusive

Instances

Instances details
Show Result 
Instance details

Defined in SimpleSMT

Eq Result 
Instance details

Defined in SimpleSMT

Methods

(==) :: Result -> Result -> Bool #

(/=) :: Result -> Result -> Bool #

data Value #

Common values returned by SMT solvers.

Constructors

Bool !Bool

Boolean value

Int !Integer

Integral value

Real !Rational

Rational value

Bits !Int !Integer

Bit vector: width, value

Other !SExpr

Some other value

Instances

Instances details
Show Value 
Instance details

Defined in SimpleSMT

Methods

showsPrec :: Int -> Value -> ShowS #

show :: Value -> String #

showList :: [Value] -> ShowS #

Eq Value 
Instance details

Defined in SimpleSMT

Methods

(==) :: Value -> Value -> Bool #

(/=) :: Value -> Value -> Bool #

pattern W :: Int -> SExpr Source #

pattern Byte :: SExpr Source #

pattern Half :: SExpr Source #

pattern Word :: SExpr Source #

pattern Long :: SExpr Source #