cryptol-2.4.0: Cryptol: The Language of Cryptography

Copyright(c) 2013-2016 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

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 #

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

data Env Source #

Constructors

Env 

Instances

Monoid Env Source # 

Methods

mempty :: Env #

mappend :: Env -> Env -> Env #

mconcat :: [Env] -> Env #

bindVar :: (Name, Value) -> Env -> Env Source #

Bind a variable in the evaluation environment.

lookupVar :: Name -> Env -> Maybe Value Source #

Lookup a variable in the environment.

bindType :: TVar -> Either Nat' TValue -> Env -> Env Source #

Bind a type variable of kind *.

lookupType :: TVar -> Env -> Maybe (Either Nat' 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.