CurryInfo: contract-prover-4.0.0 / ContractProver.verifyPreConditions

definition:
 
verifyPreConditions :: Options -> TAProg -> IORef VState -> IO TAProg
verifyPreConditions opts prog vstref = do
  newfuns  <- mapM (provePreCondition opts vstref) (progFuncs prog)
  return (updProgFuncs (const newfuns) prog)
demand:
 no demanded arguments
deterministic:
 deterministic operation
documentation:
 
------------------------------------------------------------------------
Try to verify preconditions: If an operation `f` occurring in some
right-hand side has a precondition, a proof for the validity of
this precondition is extracted.
If the proof is not successful, a precondition check is added to this call.
failfree:
 <FAILING>
indeterministic:
 referentially transparent operation
infix:
 no fixity defined
iotype:
 {(_,_,_) |-> _}
name:
 verifyPreConditions
precedence:
 no precedence defined
result-values:
 _
signature:
 ToolOptions.Options -> FlatCurry.Annotated.Types.AProg FlatCurry.Types.TypeExpr
-> Data.IORef.IORef VerifierState.VState
-> Prelude.IO (FlatCurry.Annotated.Types.AProg FlatCurry.Types.TypeExpr)
solution-complete:
 operation might suspend on free variables
terminating:
 possibly non-terminating
totally-defined:
 possibly non-reducible on same data term