| Copyright | (c) 2013-2016 Galois Inc. | 
|---|---|
| License | BSD3 | 
| Maintainer | cryptol@galois.com | 
| Stability | provisional | 
| Portability | portable | 
| Safe Haskell | None | 
| Language | Haskell2010 | 
Cryptol.Symbolic
Description
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 #
Constructors
| ProverCommand | |
| Fields 
 | |
Constructors
| SatQuery SatNum | |
| ProveQuery | |
| SafetyQuery | 
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.
Constructors
| 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.
Constructors
| SafetyViolation | |
| PredicateFalsified | 
FinType
VarShape
data FreshVarFns sym Source #
Constructors
| FreshVarFns | |
| Fields 
 | |
modelPred :: Backend sym => sym -> [VarShape sym] -> [VarShape Concrete] -> SEval sym (SBit sym) Source #