CurryInfo: contract-prover-4.0.0 / ContractProver.provePreCondition

definition: Info
 
provePreCondition :: Options -> IORef VState -> TAFuncDecl -> IO TAFuncDecl
provePreCondition opts vstref fdecl = do
  ti <- readVerifyInfoRef vstref
  printWhenIntermediate opts $
    "Operation to be checked: " ++ snd (funcName fdecl)
  newrule <- optPreConditionInRule opts ti (funcName fdecl)
                                           (funcRule fdecl) vstref
  return (updFuncRule (const newrule) fdecl)
demand: Info
 no demanded arguments
deterministic: Info
 deterministic operation
failfree: Info
 <FAILING>
indeterministic: Info
 referentially transparent operation
infix: Info
 no fixity defined
iotype: Info
 {(_,_,_) |-> _}
name: Info
 provePreCondition
precedence: Info
 no precedence defined
result-values: Info
 _
signature: Info
 ToolOptions.Options -> Data.IORef.IORef VerifierState.VState
-> FlatCurry.Annotated.Types.AFuncDecl FlatCurry.Types.TypeExpr
-> Prelude.IO (FlatCurry.Annotated.Types.AFuncDecl FlatCurry.Types.TypeExpr)
solution-complete: Info
 operation might suspend on free variables
terminating: Info
 possibly non-terminating
totally-defined: Info
 possibly non-reducible on same data term