cryptol-3.3.0: Cryptol: The Language of Cryptography
Copyright(c) 2013-2016 Galois Inc.
LicenseBSD3
Maintainer[email protected]
Stabilityprovisional
Portabilityportable
Safe HaskellSafe-Inferred
LanguageHaskell2010

Cryptol.TypeCheck.Solve

Description

 
Synopsis

Documentation

proveImplication :: Bool -> Maybe Name -> [TParam] -> [Prop] -> [Goal] -> InferM Subst Source #

Prove an implication, and return any improvements that we computed. Records errors, if any of the goals couldn't be solved.

tryProveImplication :: Maybe Name -> [TParam] -> [Prop] -> [Goal] -> InferM (Either [Error] [Warning]) Source #

Tries to prove an implication. If proved, then returns a (possibly-empty) list of warnings raised during proving. If not proved, then returns `Left errs`, which records all errors raised during proving.

proveModuleTopLevel :: InferM () Source #

Try to clean-up any left-over constraints after we've checked everything in a module. Typically these are either trivial things, or constraints on the module's type parameters.