CurryInfo: verify-3.1.0 / ToVerifier.generateTheorem

definition:
generateTheorem :: Options -> QName -> IO ()
generateTheorem opts qpropname = do
  (newopts, allprogs, allfuncs) <- getAllFunctions opts [] [] [qpropname]
  let alltypenames = foldr union []
                       (map (\fd -> tconsOfType (typeOfQualType (funcType fd)))
                            allfuncs)
      noproptypenames = filter ((/= propTypesModule) . fst) alltypenames
  alltypes <- getAllTypeDecls opts allprogs noproptypenames []
  when (optVerb opts > 2) $ do
    putStrLn $ "Theorem `" ++ snd qpropname ++ "':\nInvolved operations:"
    putStrLn $ unwords (map (showQName . funcName) allfuncs)
    putStrLn $ "Involved types:"
    putStrLn $ unwords (map (showQName . typeName) alltypes)
  case optTarget opts of
    "agda" -> theoremToAgda newopts qpropname allfuncs alltypes
    t      -> error $ "Unknown translation target: " ++ t
demand:
no demanded arguments
deterministic:
deterministic operation
documentation:
-- Generate a proof file for a given property name.
indeterministic:
might be indeterministic
infix:
no fixity defined
name:
generateTheorem
precedence:
no precedence defined
result-values:
_
signature:
VerifyOptions.Options -> (String, String) -> Prelude.IO ()
solution-complete:
operation might suspend on free variables
terminating:
possibly non-terminating
totally-defined:
possibly non-reducible on same data term