packages feed

smtLib-1.0: test/Test2.hs

{-# LANGUAGE OverloadedStrings #-}
import SMTLib2
import SMTLib2.Core
import SMTLib2.BitVector
import System.Process
import System.IO

main :: IO ()
main =
  do let txt = show (pp script)
     putStrLn txt
     putStrLn (replicate 80 '-')
     putStrLn =<< readProcess "stp" ["--SMTLIB2"] txt


script :: Script
script = Script
  [ CmdSetLogic "QF_BV"
  , CmdDeclareFun "x" [] (tBitVec 4)
  , CmdAssert (c "x" === bv 3 4)
  , CmdCheckSat
  , CmdExit
  ]

c x = app x []