packages feed

boolector-0.0.0.8: test/Const_Example.hs

import qualified Boolector as B

import Control.Monad.IO.Class
import Control.Exception (assert)
import Control.Concurrent

main :: IO ()
main = do
  -- Create new Boolector state with a 1s timeout
  bs <- B.newBoolectorState (Just 1)
  B.evalBoolector bs $ do
    -- Create a 8-bit bit-vector
    u8 <- B.bitvecSort 8

    -- Create a constant value and two variables of sort u8
    c <- B.unsignedInt 35 u8
    x <- B.var u8 "x"

    -- Get model
    mc <- B.signedBvConst c
    mx <- B.signedBvConst x
    assert (mc == Just 35) $ return ()
    assert (mx == Nothing) $ return ()