CurryInfo: contract-prover-4.0.0 / ContractProver.proveContracts

definition:
 
proveContracts :: Options -> String -> IO ()
proveContracts opts mainmodname = do
  prog <- readTypedFlatCurryWithSpec opts mainmodname
  let errs = checkContractUsage (progName prog)
               (map (\fd -> (snd (funcName fd), funcType fd)) (progFuncs prog))
  if null errs
    then proveContractsInProg opts prog
    else do putStr $ unlines (map showOpError errs)
            exitWith 1
 where
  showOpError (qf,err) =
    snd qf ++ " (module " ++ fst qf ++ "): " ++ err
demand:
 no demanded arguments
deterministic:
 deterministic operation
documentation:
 
Optimize a module by proving its contracts and remove verified
postconditions or add unverified preconditions.
failfree:
 <FAILING>
indeterministic:
 referentially transparent operation
infix:
 no fixity defined
iotype:
 {(_,_) |-> _}
name:
 proveContracts
precedence:
 no precedence defined
result-values:
 _
signature:
 ToolOptions.Options -> String -> Prelude.IO ()
solution-complete:
 operation might suspend on free variables
terminating:
 possibly non-terminating
totally-defined:
 possibly non-reducible on same data term