cryptol-2.2.6: Cryptol: The Language of Cryptography

Copyright(c) 2013-2015 Galois, Inc.
LicenseBSD3
Maintainercryptol@galois.com
Stabilityprovisional
Portabilityportable
Safe HaskellNone
LanguageHaskell98

Cryptol.Symbolic

Description

 

Synopsis

Documentation

data SatNum Source

Constructors

AllSat 
SomeSat Int 

Instances

data ProverCommand Source

Constructors

ProverCommand 

Fields

pcQueryType :: QueryType

The type of query to run

pcProverName :: String

Which prover to use (one of the strings in proverConfigs)

pcVerbose :: Bool

Verbosity flag passed to SBV

pcExtraDecls :: [DeclGroup]

Extra declarations to bring into scope for symbolic simulation

pcSmtFile :: Maybe FilePath

Optionally output the SMTLIB query to a file

pcExpr :: Expr

The typechecked expression to evaluate

pcSchema :: Schema

The Schema of pcExpr

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.

parseValues :: [FinType] -> [CW] -> ([Value], [CW]) Source

data Env Source

Constructors

Env 

Instances

bindVar :: (QName, Value) -> Env -> Env Source

Bind a variable in the evaluation environment.

lookupVar :: QName -> Env -> Maybe Value Source

Lookup a variable in the environment.

bindType :: TVar -> TValue -> Env -> Env Source

Bind a type variable of kind *.

lookupType :: TVar -> Env -> Maybe TValue Source

Lookup a type variable.

copyBySchema :: Env -> Schema -> Value -> Value Source

Make a copy of the given value, building the spine based only on the type without forcing the value argument. This lets us avoid strictness problems when evaluating recursive definitions.

evalComp :: Env -> TValue -> Expr -> [[Match]] -> Value Source

Evaluate a comprehension.

branchEnvs :: Env -> [Match] -> [Env] Source

Turn a list of matches into the final environments for each iteration of the branch.

evalMatch :: Env -> Match -> [Env] Source

Turn a match into the list of environments it represents.