cryptol-2.2.1: 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 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.

satProve Source

Arguments

:: Bool 
-> Maybe Int

satNum

-> (String, Bool, Bool) 
-> [DeclGroup] 
-> Maybe FilePath 
-> (Expr, Schema) 
-> ModuleCmd ProverResult 

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.