Copyright | (c) 2013-2016 Galois Inc. |
---|---|
License | BSD3 |
Maintainer | cryptol@galois.com |
Stability | provisional |
Portability | portable |
Safe Haskell | None |
Language | Haskell2010 |
Synopsis
- data ProverCommand = ProverCommand {
- pcQueryType :: QueryType
- pcProverName :: String
- pcVerbose :: Bool
- pcValidate :: Bool
- pcProverStats :: !(IORef ProverStats)
- pcExtraDecls :: [DeclGroup]
- pcSmtFile :: Maybe FilePath
- pcExpr :: Expr
- pcSchema :: Schema
- pcIgnoreSafety :: Bool
- data QueryType
- data SatNum
- data ProverResult
- = AllSatResult [SatResult]
- | ThmResult [Type]
- | CounterExample CounterExampleType SatResult
- | EmptyResult
- | ProverError String
- type ProverStats = NominalDiffTime
- data CounterExampleType
- data FinType
- finType :: TValue -> Maybe FinType
- unFinType :: FinType -> Type
- predArgTypes :: QueryType -> Schema -> Either String [FinType]
- data VarShape sym
- varShapeToValue :: Backend sym => sym -> VarShape sym -> GenValue sym
- freshVar :: Backend sym => FreshVarFns sym -> FinType -> IO (VarShape sym)
- computeModel :: PrimMap -> [FinType] -> [VarShape Concrete] -> [(Type, Expr, Value)]
- data FreshVarFns sym = FreshVarFns {
- freshBitVar :: IO (SBit sym)
- freshWordVar :: Integer -> IO (SWord sym)
- freshIntegerVar :: Maybe Integer -> Maybe Integer -> IO (SInteger sym)
- freshFloatVar :: Integer -> Integer -> IO (SFloat sym)
- modelPred :: Backend sym => sym -> [VarShape sym] -> [VarShape Concrete] -> SEval sym (SBit sym)
- varModelPred :: Backend sym => sym -> (VarShape sym, VarShape Concrete) -> SEval sym (SBit sym)
- varToExpr :: PrimMap -> FinType -> VarShape Concrete -> Expr
Documentation
data ProverCommand Source #
ProverCommand | |
|
data ProverResult Source #
A prover result is either an error message, an empty result (eg for the offline prover), a counterexample or a lazy list of satisfying assignments.
AllSatResult [SatResult] | |
ThmResult [Type] | |
CounterExample CounterExampleType SatResult | |
EmptyResult | |
ProverError String |
type ProverStats = NominalDiffTime Source #
data CounterExampleType Source #
A :prove
command can fail either because some
input causes the predicate to violate a safety assertion,
or because the predicate returns false for some input.
FinType
VarShape
data FreshVarFns sym Source #
FreshVarFns | |
|
modelPred :: Backend sym => sym -> [VarShape sym] -> [VarShape Concrete] -> SEval sym (SBit sym) Source #