sbv-14.4: SBVTestSuite/TestSuite/Uninterpreted/EUFLogic.hs
-----------------------------------------------------------------------------
-- |
-- Module : Documentation.SBV.Examples.Uninterpreted.EUFLogic
-- License : BSD3
-- Stability : experimental
--
-- Test suite for the EUFLogic example
-----------------------------------------------------------------------------
{-# LANGUAGE DataKinds #-}
{-# OPTIONS_GHC -Wall -Werror #-}
module TestSuite.Uninterpreted.EUFLogic where
import Documentation.SBV.Examples.Uninterpreted.EUFLogic
import Utils.SBVTestFramework
-- Test suite
tests :: TestTree
tests =
testGroup "Uninterpreted.LargeArgs"
[ testCase "euflogic-1" $ assertIsSat (interpEUF fourteen)
, testCase "unint17arg" $ assertIsSat f17Args
]
fourteen :: EUFExpr Tp_Bool
fourteen = applyOp (Op_BVEq knownBVWidth)
(applyOp f14 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
(applyOp (Op_Plus knownBVWidth) a b)
where
f14 :: Op '[Tp_BV 8, Tp_BV 8, Tp_BV 8, Tp_BV 8, Tp_BV 8, Tp_BV 8, Tp_BV 8,
Tp_BV 8, Tp_BV 8, Tp_BV 8, Tp_BV 8, Tp_BV 8, Tp_BV 8, Tp_BV 8]
(Tp_BV 8)
f14 = mkUnintOp "f"
a, b :: EUFExpr (Tp_BV 8)
a = mkUnintExpr "a"
b = mkUnintExpr "b"
f17Args :: SWord 1 -> SWord 2 -> SWord 3 -> SWord 4 -> SWord 5 -> SWord 6 -> SWord 7 -> SWord 8
-> SWord 9 -> SWord 10 -> SWord 11 -> SWord 12 -> SWord 13 -> SWord 14 -> SWord 15 -> SWord 16
-> SWord 17
-> SBool
f17Args = uninterpret "f17Args"
{- HLint ignore "Use camelCase" -}