CurryInfo: contract-prover-4.0.0 / Curry2SMT.cons2SMT

definition: Info
 
cons2SMT :: Bool -> Bool -> QName -> TypeExpr -> QIdent
cons2SMT withas withpoly qf rtype =
  if withas && not (isBaseType rtype)
    then As (transOpName qf)
            ((if withpoly then polytype2psort else polytype2sort) rtype)
    else Id (transOpName qf)
demand: Info
 argument 1
deterministic: Info
 deterministic operation
documentation: Info
 
Translates a qualifed name with given result type into an SMT identifier.
If the first argument is true and the result type is not a base type,
the type is attached via `(as ...)` to resolve overloading problems in SMT.
If the second argument is true, parametric sorts are used
(i.e., we translate a polymorphic function), otherwise
type variables are translated into the sort `TVar`.
failfree: Info
 (_, _, _, _)
indeterministic: Info
 referentially transparent operation
infix: Info
 no fixity defined
iotype: Info
 {(_,_,_,_) |-> {As,Id}}
name: Info
 cons2SMT
precedence: Info
 no precedence defined
result-values: Info
 {As,Id}
signature: Info
 Prelude.Bool -> Prelude.Bool -> (String, String) -> FlatCurry.Types.TypeExpr
-> ESMT.QIdent
solution-complete: Info
 operation might suspend on free variables
terminating: Info
 possibly non-terminating
totally-defined: Info
 possibly non-reducible on same data term