| Copyright | (c) 2013-2016 Galois Inc. | 
|---|---|
| License | BSD3 | 
| Maintainer | cryptol@galois.com | 
| Stability | provisional | 
| Portability | portable | 
| Safe Haskell | Trustworthy | 
| Language | Haskell2010 | 
Cryptol.TypeCheck.Solver.SMT
Description
Synopsis
- data Solver
 - data SolverConfig
 - withSolver :: IO () -> SolverConfig -> (Solver -> IO a) -> IO a
 - startSolver :: IO () -> SolverConfig -> IO Solver
 - stopSolver :: Solver -> IO ()
 - isNumeric :: Prop -> Bool
 - resetSolver :: Solver -> SolverConfig -> IO ()
 - debugBlock :: Solver -> String -> IO a -> IO a
 - debugLog :: DebugLog t => Solver -> t -> IO ()
 - proveImp :: Solver -> [Prop] -> [Goal] -> IO [Goal]
 - checkUnsolvable :: Solver -> [Goal] -> IO Bool
 - tryGetModel :: Solver -> [TVar] -> [Prop] -> IO (Maybe [(TVar, Nat')])
 - shrinkModel :: Solver -> [TVar] -> [Prop] -> [(TVar, Nat')] -> IO [(TVar, Nat')]
 - inNewFrame :: Solver -> IO a -> IO a
 - type TVars = Map TVar SExpr
 - declareVars :: Solver -> [TVar] -> IO TVars
 - assume :: Solver -> TVars -> Prop -> IO ()
 - unsolvable :: Solver -> TVars -> [Prop] -> IO Bool
 - push :: Solver -> IO ()
 - pop :: Solver -> IO ()
 
Setup
data SolverConfig Source #
Instances
withSolver :: IO () -> SolverConfig -> (Solver -> IO a) -> IO a Source #
Execute a computation with a fresh solver instance.
startSolver :: IO () -> SolverConfig -> IO Solver Source #
Start a fresh solver instance
stopSolver :: Solver -> IO () Source #
Shut down a solver instance
resetSolver :: Solver -> SolverConfig -> IO () Source #
Debugging
Proving stuff
checkUnsolvable :: Solver -> [Goal] -> IO Bool Source #
Check if the given goals are known to be unsolvable.