CurryInfo: verify-3.1.0 / ToVerifier.generateTheorem

definition: Info
 
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: Info
 no demanded arguments
deterministic: Info
 deterministic operation
documentation: Info
 
Generate a proof file for a given property name.
indeterministic: Info
 might be indeterministic
infix: Info
 no fixity defined
iotype: Info
 {(_,_) |-> _}
name: Info
 generateTheorem
precedence: Info
 no precedence defined
result-values: Info
 _
signature: Info
 VerifyOptions.Options -> (String, String) -> Prelude.IO ()
solution-complete: Info
 operation might suspend on free variables
terminating: Info
 possibly non-terminating
totally-defined: Info
 possibly non-reducible on same data term