CurryInfo: contract-prover-4.0.0 / ContractProver.pred2smt

definition: Info
 
pred2smt :: TAExpr -> TransStateM Term
pred2smt exp = case exp of
  AVar _ i              -> return (TSVar i)
  ALit _ l              -> return (lit2SMT l)
  AComb _ ct (qf,ftype) args ->
    if qf == pre "not" && length args == 1
      then do barg <- pred2smt (head args)
              return (tNot barg)
      else do bargs <- mapM pred2smt args
              return (TComb (cons2SMT (ct /= ConsCall || not (null bargs))
                                      False qf ftype) bargs)
  _     -> error $ "Translation of some Boolean expressions into SMT " ++
                   "not yet supported:\n" ++ show (unAnnExpr exp)
demand: Info
 argument 1
deterministic: Info
 deterministic operation
documentation: Info
 
Translates a Boolean FlatCurry expression into an SMT formula.
failfree: Info
 <FAILING>
indeterministic: Info
 referentially transparent operation
infix: Info
 no fixity defined
iotype: Info
 {({AVar}) |-> _ || ({ALit}) |-> _ || ({AComb}) |-> _ || ({ALet}) |-> _ || ({AFree}) |-> _ || ({AOr}) |-> _ || ({ACase}) |-> _ || ({ATyped}) |-> _}
name: Info
 pred2smt
precedence: Info
 no precedence defined
result-values: Info
 _
signature: Info
 FlatCurry.Annotated.Types.AExpr FlatCurry.Types.TypeExpr
-> Control.Monad.Trans.State.StateT TransState Prelude.IO ESMT.Term
solution-complete: Info
 operation might suspend on free variables
terminating: Info
 possibly non-terminating
totally-defined: Info
 possibly non-reducible on same data term