module Data.SBV.TestSuite.Basics.ProofTests(testSuite) where
import Data.SBV
import Data.SBV.Internals
import Data.SBV.Examples.Basics.ProofTests
testSuite :: SBVTestSuite
testSuite = mkTestSuite $ \_ -> test [
"proofs-1" ~: assert =<< isTheorem f1eqf2
, "proofs-2" ~: assert . not =<< isTheorem f1eqf3
, "proofs-3" ~: assert =<< isTheorem f3eqf4
, "proofs-4" ~: assert =<< isTheorem f1Single
, "proofs-5" ~: assert =<< isSatisfiable f1eqf2
, "proofs-6" ~: assert =<< isSatisfiable f1eqf3
, "proofs-7" ~: assert . not =<< isSatisfiable (\x -> x .== x + (1 :: SWord16))
, "proofs-8" ~: assert =<< isSatisfiable (\x -> x :: SBool)
, "proofs-9" ~: assert =<< isSatisfiable (\x -> return x :: Predicate)
, "proofs-10" ~: assert =<< isSatisfiable (forAll_ $ \x -> x :: SBool)
, "proofs-11" ~: assert =<< isSatisfiable (forAll_ $ \x -> return x :: Predicate)
, "proofs-12" ~: assert =<< isSatisfiable (forAll ["q"] $ \x -> x :: SBool)
, "proofs-13" ~: assert =<< isSatisfiable (forAll ["q"] $ \x -> return x :: Predicate)
]