Copyright | (c) 2013-2016 Galois Inc. |
---|---|
License | BSD3 |
Maintainer | cryptol@galois.com |
Stability | provisional |
Portability | portable |
Safe Haskell | Safe |
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]
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.