sbv 8.16 → 8.17
raw patch · 59 files changed
+3188/−3169 lines, 59 files
Files
- CHANGES.md +19/−1
- Data/SBV.hs +4/−3
- Data/SBV/Client.hs +2/−0
- Data/SBV/Control.hs +20/−18
- Data/SBV/Core/Concrete.hs +16/−14
- Data/SBV/Core/Operations.hs +9/−8
- Data/SBV/Core/Symbolic.hs +2/−0
- Data/SBV/Internals.hs +2/−2
- Data/SBV/Maybe.hs +24/−8
- Data/SBV/Provers/Bitwuzla.hs +50/−0
- Data/SBV/Provers/CVC5.hs +64/−0
- Data/SBV/Provers/Prover.hs +11/−1
- Data/SBV/SMT/SMT.hs +12/−1
- Data/SBV/SMT/SMTLib2.hs +4/−2
- Data/SBV/Set.hs +12/−0
- Data/SBV/Utils/Lib.hs +2/−2
- Data/SBV/Utils/Numeric.hs +1/−2
- Data/SBV/Utils/SExpr.hs +79/−2
- INSTALL +1/−1
- README.md +2/−11
- SBVTestSuite/GoldFiles/pareto1.gold +107/−107
- SBVTestSuite/GoldFiles/pareto2.gold +148/−148
- SBVTestSuite/GoldFiles/quantified_prove_forallforall_satisfiable_p.gold +2/−2
- SBVTestSuite/GoldFiles/quantified_sat_existsexists_satisfiable_c.gold +2/−2
- SBVTestSuite/GoldFiles/quantified_sat_existsexists_satisfiable_p.gold +2/−2
- SBVTestSuite/GoldFiles/query1.gold +13/−13
- SBVTestSuite/GoldFiles/queryArrays1.gold +2/−2
- SBVTestSuite/GoldFiles/queryArrays4.gold +5/−3
- SBVTestSuite/GoldFiles/query_Interpolant4.gold +2/−5
- SBVTestSuite/GoldFiles/query_badOption.gold +1/−1
- SBVTestSuite/GoldFiles/query_bitwuzla.gold +63/−0
- SBVTestSuite/GoldFiles/query_cvc5.gold +65/−0
- SBVTestSuite/GoldFiles/query_uiSat_test2.gold +2/−10
- SBVTestSuite/GoldFiles/set_compl1.gold +19/−26
- SBVTestSuite/GoldFiles/set_delete1.gold +19/−27
- SBVTestSuite/GoldFiles/set_diff1.gold +17/−19
- SBVTestSuite/GoldFiles/set_disj1.gold +14/−16
- SBVTestSuite/GoldFiles/set_empty1.gold +9/−12
- SBVTestSuite/GoldFiles/set_full1.gold +9/−12
- SBVTestSuite/GoldFiles/set_insert1.gold +19/−27
- SBVTestSuite/GoldFiles/set_intersect1.gold +17/−19
- SBVTestSuite/GoldFiles/set_member1.gold +11/−15
- SBVTestSuite/GoldFiles/set_notMember1.gold +11/−15
- SBVTestSuite/GoldFiles/set_psubset1.gold +9/−11
- SBVTestSuite/GoldFiles/set_subset1.gold +9/−11
- SBVTestSuite/GoldFiles/set_tupleSet.gold +3/−2
- SBVTestSuite/GoldFiles/set_uninterp1.gold +16/−16
- SBVTestSuite/GoldFiles/set_union1.gold +17/−19
- SBVTestSuite/GoldFiles/uiSat_test2.gold +61/−135
- SBVTestSuite/GoldFiles/uiSat_test3.gold +2144/−2380
- SBVTestSuite/GoldFiles/validate_1.gold +4/−4
- SBVTestSuite/GoldFiles/validate_2.gold +4/−4
- SBVTestSuite/SBVConnectionTest.hs +1/−1
- SBVTestSuite/TestSuite/Arrays/Query.hs +1/−0
- SBVTestSuite/TestSuite/Basics/Set.hs +16/−25
- SBVTestSuite/TestSuite/Queries/Int_Boolector.hs +1/−0
- SBVTestSuite/TestSuite/Queries/Int_CVC4.hs +1/−0
- SBVTestSuite/TestSuite/Queries/Tables.hs +2/−0
- sbv.cabal +4/−2
CHANGES.md view
@@ -1,7 +1,25 @@ * Hackage: <http://hackage.haskell.org/package/sbv> * GitHub: <http://leventerkok.github.io/sbv/> -* Latest Hackage released version: 8.16, 2021-08-18+* Latest Hackage released version: 8.17, 2021-10-25++### Version 8.17, 2021-10-25++ * SBV now supports cvc5; the latest incarnation of CVC. See https://github.com/cvc5/cvc5+ for details.++ * SBV now supports bitwuzla; the latest incarnation of Boolector. See https://github.com/bitwuzla/bitwuzla+ for details.++ * Fixed handling of CRational values in constant folding, which was missing a case.+ Thanks to Jaro Reinders for reporting.++ * Fixed calls to distinct for floating-point values, causing SBV to throw an exception.++ * Add missing instances of SatModel for Char and String. Thanks to eax- on github+ for the contribution.++ * Export svToSV from Data.SBV.Dynamic. Thanks to Matt Parker for the PR. ### Version 8.16, 2021-08-18
Data/SBV.hs view
@@ -113,9 +113,10 @@ -- -- * ABC from University of Berkeley: <http://www.eecs.berkeley.edu/~alanmi/abc/> ----- * CVC4 from Stanford: <https://cvc4.github.io/>+-- * CVC4, and CVC5 from Stanford University and the University of Iowa. <https://cvc4.github.io/> and <https://cvc5.github.io> ----- * Boolector from Johannes Kepler University: <http://fmv.jku.at/boolector/>+-- * Boolector from Johannes Kepler University: <http://fmv.jku.at/boolector/> and its successor Bitwuzla from Stanford+-- university: <https://github.com/bitwuzla/bitwuzla> -- -- * MathSAT from Fondazione Bruno Kessler and DISI-University of Trento: <http://mathsat.fbk.eu/> --@@ -368,7 +369,7 @@ -- $verbosity -- ** Solvers- , boolector, cvc4, yices, dReal, z3, mathSAT, abc+ , boolector, bitwuzla, cvc4, cvc5, yices, dReal, z3, mathSAT, abc -- ** Configurations , defaultSolverConfig, defaultSMTCfg, defaultDeltaSMTCfg, sbvCheckSolverInstallation, getAvailableSolvers , setLogic, Logic(..), setOption, setInfo, setTimeOut
Data/SBV/Client.hs view
@@ -49,7 +49,9 @@ defaultSolverConfig :: Solver -> SMTConfig defaultSolverConfig ABC = abc defaultSolverConfig Boolector = boolector+defaultSolverConfig Bitwuzla = bitwuzla defaultSolverConfig CVC4 = cvc4+defaultSolverConfig CVC5 = cvc5 defaultSolverConfig DReal = dReal defaultSolverConfig MathSAT = mathSAT defaultSolverConfig Yices = yices
Data/SBV/Control.hs view
@@ -127,28 +127,30 @@ -- Query the solver: Are the constraints satisfiable? cs <- checkSat case cs of- Unk -> error "Solver said unknown!"- Unsat -> return Nothing -- no solution!- Sat -> -- Query the values:- do xv <- getValue x- yv <- getValue y+ Unk -> error "Solver said unknown!"+ DSat{} -> error "Solver said DSat!"+ Unsat -> return Nothing -- no solution!+ Sat -> -- Query the values:+ do xv <- getValue x+ yv <- getValue y - io $ putStrLn $ "Solver returned: " ++ show (xv, yv)+ io $ putStrLn $ "Solver returned: " ++ show (xv, yv) - -- We can now add new constraints,- -- Or perform arbitrary computations and tell- -- the solver anything we want!- constrain $ x .> literal xv + literal yv+ -- We can now add new constraints,+ -- Or perform arbitrary computations and tell+ -- the solver anything we want!+ constrain $ x .> literal xv + literal yv - -- call checkSat again- csNew <- checkSat- case csNew of- Unk -> error "Solver said unknown!"- Unsat -> return Nothing- Sat -> do xv2 <- getValue x- yv2 <- getValue y+ -- call checkSat again+ csNew <- checkSat+ case csNew of+ Unk -> error "Solver said unknown!"+ DSat{} -> error "Solver said DSat!"+ Unsat -> return Nothing+ Sat -> do xv2 <- getValue x+ yv2 <- getValue y - return $ Just (xv2, yv2)+ return $ Just (xv2, yv2) @ Note the type of @test@: it returns an optional pair of integers in the 'Symbolic' monad. We turn
Data/SBV/Core/Concrete.hs view
@@ -313,6 +313,7 @@ -> (Float -> Float -> b) -> (Double -> Double -> b) -> (FP -> FP -> b)+ -> (Rational -> Rational -> b) -> (Char -> Char -> b) -> (String -> String -> b) -> ([CVal] -> [CVal] -> b)@@ -321,20 +322,21 @@ -> (Either CVal CVal -> Either CVal CVal -> b) -> ((Maybe Int, String) -> (Maybe Int, String) -> b) -> CV -> CV -> b-liftCV2 r i f d af c s u v m e w x y = case (cvVal x, cvVal y) of- (CAlgReal a, CAlgReal b) -> r a b- (CInteger a, CInteger b) -> i a b- (CFloat a, CFloat b) -> f a b- (CDouble a, CDouble b) -> d a b- (CFP a, CFP b) -> af a b- (CChar a, CChar b) -> c a b- (CString a, CString b) -> s a b- (CList a, CList b) -> u a b- (CTuple a, CTuple b) -> v a b- (CMaybe a, CMaybe b) -> m a b- (CEither a, CEither b) -> e a b- (CUserSort a, CUserSort b) -> w a b- _ -> error $ "SBV.liftCV2: impossible, incompatible args received: " ++ show (x, y)+liftCV2 r i f d af ra c s u v m e w x y = case (cvVal x, cvVal y) of+ (CAlgReal a, CAlgReal b) -> r a b+ (CInteger a, CInteger b) -> i a b+ (CFloat a, CFloat b) -> f a b+ (CDouble a, CDouble b) -> d a b+ (CFP a, CFP b) -> af a b+ (CRational a, CRational b) -> ra a b+ (CChar a, CChar b) -> c a b+ (CString a, CString b) -> s a b+ (CList a, CList b) -> u a b+ (CTuple a, CTuple b) -> v a b+ (CMaybe a, CMaybe b) -> m a b+ (CEither a, CEither b) -> e a b+ (CUserSort a, CUserSort b) -> w a b+ _ -> error $ "SBV.liftCV2: impossible, incompatible args received: " ++ show (x, y) -- | Map a unary function through a 'CV'. mapCV :: (AlgReal -> AlgReal)
Data/SBV/Core/Operations.hs view
@@ -296,7 +296,7 @@ | isSet a && isSet b = svSetEqual a b | True- = liftSym2B (mkSymOpSC (eqOptBool Equal trueSV) Equal) rationalCheck (==) (==) (==) (==) (==) (==) (==) (==) (==) (==) (==) (==) a b+ = liftSym2B (mkSymOpSC (eqOptBool Equal trueSV) Equal) rationalCheck (==) (==) (==) (==) (==) (==) (==) (==) (==) (==) (==) (==) (==) a b -- | Inequality. svNotEqual :: SVal -> SVal -> SVal@@ -304,7 +304,7 @@ | isSet a && isSet b = svNot $ svEqual a b | True- = liftSym2B (mkSymOpSC (eqOptBool NotEqual falseSV) NotEqual) rationalCheck (/=) (/=) (/=) (/=) (/=) (/=) (/=) (/=) (/=) (/=) (/=) (/=) a b+ = liftSym2B (mkSymOpSC (eqOptBool NotEqual falseSV) NotEqual) rationalCheck (/=) (/=) (/=) (/=) (/=) (/=) (/=) (/=) (/=) (/=) (/=) (/=) (/=) a b -- | Set equality. Note that we only do constant folding if we get both a regular or both a -- complement set. Otherwise we get a symbolic value even if they might be completely concrete.@@ -351,28 +351,28 @@ svLessThan x y | isConcreteMax x = svFalse | isConcreteMin y = svFalse- | True = liftSym2B (mkSymOpSC (eqOpt falseSV) LessThan) rationalCheck (<) (<) (<) (<) (<) (<) (<) (<) (<) (<) (<) (uiLift "<" (<)) x y+ | True = liftSym2B (mkSymOpSC (eqOpt falseSV) LessThan) rationalCheck (<) (<) (<) (<) (<) (<) (<) (<) (<) (<) (<) (<) (uiLift "<" (<)) x y -- | Greater than. svGreaterThan :: SVal -> SVal -> SVal svGreaterThan x y | isConcreteMin x = svFalse | isConcreteMax y = svFalse- | True = liftSym2B (mkSymOpSC (eqOpt falseSV) GreaterThan) rationalCheck (>) (>) (>) (>) (>) (>) (>) (>) (>) (>) (>) (uiLift ">" (>)) x y+ | True = liftSym2B (mkSymOpSC (eqOpt falseSV) GreaterThan) rationalCheck (>) (>) (>) (>) (>) (>) (>) (>) (>) (>) (>) (>) (uiLift ">" (>)) x y -- | Less than or equal to. svLessEq :: SVal -> SVal -> SVal svLessEq x y | isConcreteMin x = svTrue | isConcreteMax y = svTrue- | True = liftSym2B (mkSymOpSC (eqOpt trueSV) LessEq) rationalCheck (<=) (<=) (<=) (<=) (<=) (<=) (<=) (<=) (<=) (<=) (<=) (uiLift "<=" (<=)) x y+ | True = liftSym2B (mkSymOpSC (eqOpt trueSV) LessEq) rationalCheck (<=) (<=) (<=) (<=) (<=) (<=) (<=) (<=) (<=) (<=) (<=) (<=) (uiLift "<=" (<=)) x y -- | Greater than or equal to. svGreaterEq :: SVal -> SVal -> SVal svGreaterEq x y | isConcreteMax x = svTrue | isConcreteMin y = svTrue- | True = liftSym2B (mkSymOpSC (eqOpt trueSV) GreaterEq) rationalCheck (>=) (>=) (>=) (>=) (>=) (>=) (>=) (>=) (>=) (>=) (>=) (uiLift ">=" (>=)) x y+ | True = liftSym2B (mkSymOpSC (eqOpt trueSV) GreaterEq) rationalCheck (>=) (>=) (>=) (>=) (>=) (>=) (>=) (>=) (>=) (>=) (>=) (>=) (uiLift ">=" (>=)) x y -- | Bitwise and. svAnd :: SVal -> SVal -> SVal@@ -1100,6 +1100,7 @@ -> (Float -> Float -> Bool) -> (Double -> Double -> Bool) -> (FP -> FP -> Bool)+ -> (Rational -> Rational -> Bool) -> (Char -> Char -> Bool) -> (String -> String -> Bool) -> ([CVal] -> [CVal] -> Bool)@@ -1108,8 +1109,8 @@ -> (Either CVal CVal -> Either CVal CVal -> Bool) -> ((Maybe Int, String) -> (Maybe Int, String) -> Bool) -> SVal -> SVal -> SVal-liftSym2B _ okCV opCR opCI opCF opCD opAF opCC opCS opCSeq opCTup opCMaybe opCEither opUI (SVal _ (Left a)) (SVal _ (Left b)) | okCV a b = svBool (liftCV2 opCR opCI opCF opCD opAF opCC opCS opCSeq opCTup opCMaybe opCEither opUI a b)-liftSym2B opS _ _ _ _ _ _ _ _ _ _ _ _ _ a b = SVal KBool $ Right $ liftSV2 opS KBool a b+liftSym2B _ okCV opCR opCI opCF opCD opAF opAR opCC opCS opCSeq opCTup opCMaybe opCEither opUI (SVal _ (Left a)) (SVal _ (Left b)) | okCV a b = svBool (liftCV2 opCR opCI opCF opCD opAF opAR opCC opCS opCSeq opCTup opCMaybe opCEither opUI a b)+liftSym2B opS _ _ _ _ _ _ _ _ _ _ _ _ _ _ a b = SVal KBool $ Right $ liftSV2 opS KBool a b -- | Create a symbolic two argument operation; with shortcut optimizations mkSymOpSC :: (SV -> SV -> Maybe SV) -> Op -> State -> Kind -> SV -> SV -> IO SV
Data/SBV/Core/Symbolic.hs view
@@ -2056,7 +2056,9 @@ -- | Solvers that SBV is aware of data Solver = ABC | Boolector+ | Bitwuzla | CVC4+ | CVC5 | DReal | MathSAT | Yices
Data/SBV/Internals.hs view
@@ -30,7 +30,7 @@ , module Data.SBV.Core.Data -- * Operations useful for instantiating SBV type classes- , genLiteral, genFromCV, CV(..), genMkSymVar, genParse, showModel, SMTModel(..), liftQRem, liftDMod, registerKind+ , genLiteral, genFromCV, CV(..), genMkSymVar, genParse, showModel, SMTModel(..), liftQRem, liftDMod, registerKind, svToSV -- * Compilation to C, extras , compileToC', compileToCLib'@@ -61,7 +61,7 @@ import Data.SBV.Core.Data import Data.SBV.Core.Model (genLiteral, genFromCV, genMkSymVar, liftQRem, liftDMod)-import Data.SBV.Core.Symbolic (IStage(..), QueryContext(..), MonadQuery, addSValOptGoal, registerKind, VarContext(..))+import Data.SBV.Core.Symbolic (IStage(..), QueryContext(..), MonadQuery, addSValOptGoal, registerKind, VarContext(..), svToSV) import Data.SBV.Core.Floating ( sFloatAsComparableSWord32, sDoubleAsComparableSWord64, sFloatingPointAsComparableSWord , sComparableSWord32AsSFloat, sComparableSWord64AsSDouble, sComparableSWordAsSFloatingPoint
Data/SBV/Maybe.hs view
@@ -10,11 +10,12 @@ -- Symbolic option type, symbolic version of Haskell's 'Maybe' type. ----------------------------------------------------------------------------- +{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE Rank2Types #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} -{-# OPTIONS_GHC -Wall -Werror #-}+{-# OPTIONS_GHC -Wall -Werror -fno-warn-orphans #-} module Data.SBV.Maybe ( -- * Constructing optional values@@ -22,7 +23,7 @@ -- * Destructing optionals , maybe -- * Mapping functions- , map+ , map, map2 -- * Scrutinizing the branches of an option , isNothing, isJust, fromMaybe, fromJust ) where@@ -33,7 +34,7 @@ import Data.Proxy (Proxy(Proxy)) import Data.SBV.Core.Data-import Data.SBV.Core.Model () -- instances only+import Data.SBV.Core.Model (ite) -- For doctest use only --@@ -41,7 +42,7 @@ -- >>> import Data.SBV.Core.Model -- >>> import Data.SBV.Provers.Prover --- | The symbolic 'Nothing'+-- | The symbolic 'Nothing'. -- -- >>> sNothing :: SMaybe Integer -- Nothing :: SMaybe Integer@@ -58,7 +59,7 @@ isNothing :: SymVal a => SMaybe a -> SBool isNothing = maybe sTrue (const sFalse) --- | Construct an @SMaybe a@ from an @SBV a@+-- | Construct an @SMaybe a@ from an @SBV a@. -- -- >>> sJust 3 -- Just 3 :: SMaybe Integer@@ -143,7 +144,7 @@ -- We're good to go: return e --- | Construct an @SMaybe a@ from a @Maybe (SBV a)@+-- | Construct an @SMaybe a@ from a @Maybe (SBV a)@. -- -- >>> liftMaybe (Just (3 :: SInteger)) -- Just 3 :: SMaybe Integer@@ -152,7 +153,7 @@ liftMaybe :: SymVal a => Maybe (SBV a) -> SMaybe a liftMaybe = Prelude.maybe (literal Nothing) sJust --- | Map over the 'Just' side of a 'Maybe'+-- | Map over the 'Just' side of a 'Maybe'. -- -- >>> prove $ \x -> fromJust (map (+1) (sJust x)) .== x+1 -- Q.E.D.@@ -165,8 +166,14 @@ => (SBV a -> SBV b) -> SMaybe a -> SMaybe b-map f = maybe (literal Nothing) (sJust . f)+map f = maybe sNothing (sJust . f) +-- | Map over two maybe values.+map2 :: forall a b c. (SymVal a, SymVal b, SymVal c) => (SBV a -> SBV b -> SBV c) -> SMaybe a -> SMaybe b -> SMaybe c+map2 op mx my = ite (isJust mx .&& isJust my)+ (sJust (fromJust mx `op` fromJust my))+ sNothing+ -- | Case analysis for symbolic 'Maybe's. If the value 'isNothing', return the -- default value; if it 'isJust', apply the function. --@@ -206,3 +213,12 @@ -- Do we have a value? noVal <- newExpr st KBool $ SBVApp (MaybeIs ka False) [mav] newExpr st kb $ SBVApp Ite [noVal, br1, br2]++-- | Custom 'Num' instance over 'SMaybe'+instance {-# OVERLAPPING #-} (Ord a, SymVal a, Num a) => Num (SBV (Maybe a)) where+ (+) = map2 (+)+ (-) = map2 (-)+ (*) = map2 (*)+ abs = map abs+ signum = map signum+ fromInteger = sJust . fromInteger
+ Data/SBV/Provers/Bitwuzla.hs view
@@ -0,0 +1,50 @@+-----------------------------------------------------------------------------+-- |+-- Module : Data.SBV.Provers.Bitwuzla+-- Copyright : (c) Levent Erkok+-- License : BSD3+-- Maintainer: erkokl@gmail.com+-- Stability : experimental+--+-- The connection to the Bitwuzla SMT solver+-----------------------------------------------------------------------------++{-# OPTIONS_GHC -Wall -Werror #-}++module Data.SBV.Provers.Bitwuzla(bitwuzla) where++import Data.SBV.Core.Data+import Data.SBV.SMT.SMT++-- | The description of the Bitwuzla SMT solver+-- The default executable is @\"bitwuzla\"@, which must be in your path. You can use the @SBV_BITWUZLA@ environment variable to point to the executable on your system.+-- You can use the @SBV_BITWUZLA_OPTIONS@ environment variable to override the options.+bitwuzla :: SMTSolver+bitwuzla = SMTSolver {+ name = Bitwuzla+ , executable = "bitwuzla"+ , preprocess = id+ , options = const ["--smt2", "-m", "--output-format=smt2", "--no-exit-codes", "--incremental"]+ , engine = standardEngine "SBV_BITWUZLA" "SBV_BITWUZLA_OPTIONS"+ , capabilities = SolverCapabilities {+ supportsQuantifiers = False+ , supportsDefineFun = True+ , supportsDistinct = True+ , supportsBitVectors = True+ , supportsUninterpretedSorts = False+ , supportsUnboundedInts = False+ , supportsInt2bv = False+ , supportsReals = False+ , supportsApproxReals = False+ , supportsDeltaSat = Nothing+ , supportsIEEE754 = False+ , supportsSets = False+ , supportsOptimization = False+ , supportsPseudoBooleans = False+ , supportsCustomQueries = True+ , supportsGlobalDecls = True+ , supportsDataTypes = False+ , supportsDirectAccessors = False+ , supportsFlattenedModels = Nothing+ }+ }
+ Data/SBV/Provers/CVC5.hs view
@@ -0,0 +1,64 @@+-----------------------------------------------------------------------------+-- |+-- Module : Data.SBV.Provers.CVC5+-- Copyright : (c) Levent Erkok+-- License : BSD3+-- Maintainer: erkokl@gmail.com+-- Stability : experimental+--+-- The connection to the CVC5 SMT solver+-----------------------------------------------------------------------------++{-# LANGUAGE ScopedTypeVariables #-}++{-# OPTIONS_GHC -Wall -Werror #-}++module Data.SBV.Provers.CVC5(cvc5) where++import Data.Char (isSpace)++import Data.SBV.Core.Data+import Data.SBV.SMT.SMT++-- | The description of the CVC5 SMT solver+-- The default executable is @\"cvc5\"@, which must be in your path. You can use the @SBV_CVC5@ environment variable to point to the executable on your system.+-- You can use the @SBV_CVC5_OPTIONS@ environment variable to override the options.+cvc5 :: SMTSolver+cvc5 = SMTSolver {+ name = CVC5+ , executable = "cvc5"+ , preprocess = clean+ , options = const ["--lang", "smt", "--incremental", "--no-interactive", "--model-witness-value"]+ , engine = standardEngine "SBV_CVC5" "SBV_CVC5_OPTIONS"+ , capabilities = SolverCapabilities {+ supportsQuantifiers = True+ , supportsDefineFun = True+ , supportsDistinct = True+ , supportsBitVectors = True+ , supportsUninterpretedSorts = True+ , supportsUnboundedInts = True+ , supportsInt2bv = True+ , supportsReals = True -- Not quite the same capability as Z3; but works more or less..+ , supportsApproxReals = False+ , supportsDeltaSat = Nothing+ , supportsIEEE754 = True+ , supportsSets = False+ , supportsOptimization = False+ , supportsPseudoBooleans = False+ , supportsCustomQueries = True+ , supportsGlobalDecls = True+ , supportsDataTypes = True+ , supportsDirectAccessors = True+ , supportsFlattenedModels = Nothing+ }+ }+ where -- CVC5 wants all input on one line+ clean = map simpleSpace . noComment++ noComment "" = ""+ noComment (';':cs) = noComment $ dropWhile (/= '\n') cs+ noComment (c:cs) = c : noComment cs++ simpleSpace c+ | isSpace c = ' '+ | True = c
Data/SBV/Provers/Prover.hs view
@@ -31,7 +31,7 @@ , runSMT, runSMTWith , SatModel(..), Modelable(..), displayModels, extractModels , getModelDictionaries, getModelValues, getModelUninterpretedValues- , abc, boolector, cvc4, dReal, mathSAT, yices, z3, defaultSMTCfg, defaultDeltaSMTCfg+ , abc, boolector, bitwuzla, cvc4, cvc5, dReal, mathSAT, yices, z3, defaultSMTCfg, defaultDeltaSMTCfg ) where @@ -71,7 +71,9 @@ import qualified Data.SBV.Provers.ABC as ABC import qualified Data.SBV.Provers.Boolector as Boolector+import qualified Data.SBV.Provers.Bitwuzla as Bitwuzla import qualified Data.SBV.Provers.CVC4 as CVC4+import qualified Data.SBV.Provers.CVC5 as CVC5 import qualified Data.SBV.Provers.DReal as DReal import qualified Data.SBV.Provers.MathSAT as MathSAT import qualified Data.SBV.Provers.Yices as Yices@@ -115,9 +117,17 @@ boolector :: SMTConfig boolector = mkConfig Boolector.boolector SMTLib2 [] +-- | Default configuration for the Bitwuzla SMT solver+bitwuzla :: SMTConfig+bitwuzla = mkConfig Bitwuzla.bitwuzla SMTLib2 []+ -- | Default configuration for the CVC4 SMT Solver. cvc4 :: SMTConfig cvc4 = mkConfig CVC4.cvc4 SMTLib2 [allOnStdOut]++-- | Default configuration for the CVC5 SMT Solver.+cvc5 :: SMTConfig+cvc5 = mkConfig CVC5.cvc5 SMTLib2 [allOnStdOut] -- | Default configuration for the Yices SMT Solver. dReal :: SMTConfig
Data/SBV/SMT/SMT.hs view
@@ -10,6 +10,7 @@ ----------------------------------------------------------------------------- {-# LANGUAGE DefaultSignatures #-}+{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-}@@ -323,10 +324,20 @@ -- | A rounding mode, extracted from a model. (Default definition suffices) instance SatModel RoundingMode +-- | 'String' as extracted from a model+instance {-# OVERLAPS #-} SatModel [Char] where+ parseCVs (CV _ (CString c):r) = Just (c, r)+ parseCVs _ = Nothing++-- | 'Char' as extracted from a model+instance SatModel Char where+ parseCVs (CV _ (CChar c):r) = Just (c, r)+ parseCVs _ = Nothing+ -- | A list of values as extracted from a model. When reading a list, we -- go as long as we can (maximal-munch). Note that this never fails, as -- we can always return the empty list!-instance SatModel a => SatModel [a] where+instance {-# OVERLAPPABLE #-} SatModel a => SatModel [a] where parseCVs [] = Just ([], []) parseCVs xs = case parseCVs xs of Just (a, ys) -> case parseCVs ys of
Data/SBV/SMT/SMTLib2.hs view
@@ -761,11 +761,13 @@ | fpOp = lift2 "fp.eq" sgn sbvs | True = lift2 "=" sgn sbvs + -- Do not use distinct on floats; because +0/-0, and NaNs mess+ -- up the meaning. Just go with reqular equals. notEqual sgn sbvs | fpOp || not hasDistinct = liftP sbvs | True = liftN "distinct" sgn sbvs- where liftP [_, _] = "(not " ++ equal sgn sbvs ++ ")"- liftP args = "(and " ++ unwords (walk args) ++ ")"+ where liftP xs@[_, _] = "(not " ++ equal sgn xs ++ ")"+ liftP args = "(and " ++ unwords (walk args) ++ ")" walk [] = [] walk (e:es) = map (\e' -> liftP [e, e']) es ++ walk es
Data/SBV/Set.hs view
@@ -58,6 +58,8 @@ import Data.SBV.Core.Model ((.==), (./=)) import Data.SBV.Core.Symbolic (SetOp(..)) +import qualified Data.Generics.Uniplate.Data as G+ -- For doctest use only -- -- $setup@@ -116,6 +118,16 @@ -- Q.E.D. complement :: forall a. (Ord a, SymVal a) => SSet a -> SSet a complement ss+ | KChar `elem` G.universe k+ = error $ unlines [ "*** Data.SBV: Set.complement is not available for the type " ++ show k+ , "***"+ , "*** See: https://github.com/LeventErkok/sbv/issues/601 for a discussion"+ , "*** on why SBV does not support this operation at this type."+ , "***"+ , "*** Alternative: Use sets of strings instead, though the match isn't perfect."+ , "*** If you run into this issue, please comment on the above ticket for"+ , "*** possible improvements."+ ] | Just (RegularSet rs) <- unliteral ss = literal $ ComplementSet rs | Just (ComplementSet cs) <- unliteral ss
Data/SBV/Utils/Lib.hs view
@@ -122,8 +122,8 @@ -- Otherwise, just proceed; hopefully we covered everything above go (c : rest) = c : go rest --- | Given a Haskell string, convert it to SMTLib. if ord is 0x00020 to 0x0007E, then we print it--- will completely be different!+-- | Given a Haskell string, convert it to SMTLib. if ord is 0x00020 to 0x0007E, then we print it as is+-- to cover the printable ASCII range. stringToQFS :: String -> String stringToQFS = concatMap cvt where cvt c
Data/SBV/Utils/Numeric.hs view
@@ -63,8 +63,7 @@ -- | Compute the "floating-point" remainder function, the float/double value that -- remains from the division of @x@ and @y@. There are strict rules around 0's, Infinities,--- and NaN's as coded below, See <http://smt-lib.org/papers/BTRW14.pdf>, towards the--- end of section 4.c.+-- and NaN's as coded below. fpRemH :: RealFloat a => a -> a -> a fpRemH x y | isInfinite x || isNaN x = 0 / 0
Data/SBV/Utils/SExpr.hs view
@@ -18,10 +18,12 @@ import Data.Bits (setBit, testBit) import Data.Char (isDigit, ord, isSpace) import Data.Either (partitionEithers)-import Data.List (isPrefixOf)+import Data.List (isPrefixOf, nubBy) import Data.Maybe (fromMaybe, listToMaybe) import Data.Word (Word32, Word64) +import Control.Monad (foldM)+ import Numeric (readInt, readDec, readHex, fromRat) import Data.SBV.Core.AlgReals@@ -37,7 +39,7 @@ | EFloat Float | EFloatingPoint FP | EDouble Double- | EApp [SExpr]+ | EApp [SExpr] deriving Show -- | Extremely simple minded tokenizer, good for our use model.@@ -278,8 +280,83 @@ parseSExprFunction :: SExpr -> Maybe (Either String ([([SExpr], SExpr)], SExpr)) parseSExprFunction e | Just r <- parseLambdaExpression e = Just (Right r)+ | Just r <- parseSetLambda e = Just (Right r) | Just r <- parseStoreAssociations e = Just r | True = Nothing -- out-of luck. NB. This is where we would add support for other solvers!++-- | Parse a set-lambda expression, which is literally a lambda function, that might look like this:+-- (lambda ((x!1 String))+-- (or (not (or (= x!1 "o") (= x!1 "l") (= x!1 "e") (= x!1 "h")))+-- (= x!1 "o")+-- (= x!1 "l")+-- (= x!1 "e")+-- (= x!1 "h")))+-- For this, we do a little bit of an interpretative dance to see if we can "construct" the necesary expression.+--+-- In parsed form:+-- EApp [ECon "lambda",EApp [EApp [ECon "x!1",ECon "String"]],EApp [ECon "not",EApp [ECon "or",EApp [ECon "=",ECon "x!1",ECon "\"e\""],EApp [ECon "=",ECon "x!1",ECon "\"l\""]]]]+--+-- This is by no means comprehensive, and is quite crude, but hopefully covers the cases we see in practice.+parseSetLambda :: SExpr -> Maybe ([([SExpr], SExpr)], SExpr)+parseSetLambda funExpr = case funExpr of+ EApp [l@(ECon "lambda"), bv@(EApp [EApp [ECon _, _]]), body] -> go (\bd -> EApp [l, bv, bd]) body+ _ -> Nothing+ where go mkLambda = build+ where build (EApp [ECon "not", rest ]) = neg =<< build rest+ build (EApp (ECon "or" : rest@(_:_))) = foldM1 disj =<< mapM build rest+ build (EApp (ECon "and" : rest@(_:_))) = foldM1 conj =<< mapM build rest+ build other = parseLambdaExpression (mkLambda other)++ -- We're guaranteed by above construction that foldM1 will never take an empty list (due to rest@(_:_) pattern match.)+ foldM1 _ [] = error "Data.SBV.parseSetLambda: Impossible happened; empty arg to foldM1"+ foldM1 f (x:xs) = foldM f x xs++ checkBool (ENum (1, Nothing)) = True+ checkBool (ENum (0, Nothing)) = True+ checkBool _ = False++ negBool (ENum (1, Nothing)) = ENum (0, Nothing)+ negBool _ = ENum (1, Nothing)++ orBool t@(ENum (1, Nothing)) _ = t+ orBool _ t@(ENum (1, Nothing)) = t+ orBool _ _ = ENum (0, Nothing)++ andBool f@(ENum (0, Nothing)) _ = f+ andBool _ f@(ENum (0, Nothing)) = f+ andBool _ _ = ENum (1, Nothing)++ neg :: ([([SExpr], SExpr)], SExpr) -> Maybe ([([SExpr], SExpr)], SExpr)+ neg (rows, dflt)+ | all checkBool (dflt : map snd rows) = Just ([(e, negBool r) | (e, r) <- rows], negBool dflt)+ | True = Nothing++ disj, conj :: ([([SExpr], SExpr)], SExpr) -> ([([SExpr], SExpr)], SExpr) -> Maybe ([([SExpr], SExpr)], SExpr)+ disj = bin orBool+ conj = bin andBool++ bin f rd1@(rows1, dflt1) rd2@(rows2, dflt2)+ | all checkBool (dflt1 : dflt2 : map snd rows1 ++ map snd rows2) = Just (combine f rd1 rd2)+ | True = Nothing++ -- Since we don't have equality over SExprs (can of worms!), we use "show" equality here. The ice is thin, but it works!+ combine f (rows1, dflt1) (rows2, dflt2) = (rows, f dflt1 dflt2)+ where rows = map calc $ nubBy (\x y -> show x == show y) (map fst rows1 ++ map fst rows2)++ calc :: [SExpr] -> ([SExpr], SExpr)+ calc args = (args, f (find rows1 dflt1 args) (find rows2 dflt2 args))++ find rs d a = case [r | (v, r) <- rs, show v == show a] of+ [] -> d+ [x] -> x+ x -> error $ unlines [ "Data.SBV.parseSetLambda: Impossible happened while combining rows."+ , " First row :" ++ show rows1+ , " First dflt :" ++ show dflt1+ , " Second row :" ++ show rows2+ , " Second dflt:" ++ show dflt2+ , " Looking for: " ++ show a+ , "Multiple matches found: " ++ show x+ ] -- | Parse a lambda expression, most likely z3 specific. There's some guess work -- involved here regarding how z3 produces lambda-expressions; while we try to
INSTALL view
@@ -4,7 +4,7 @@ cabal install sbv SBV relies on an external SMT solver to be installed. We currently support-ABC, Boolector, CVC4, MathSAT, Yices, and Z3. We recommend installing the+ABC, Boolector, Bitwuzla, CVC4, CVC5, MathSAT, Yices, and Z3. We recommend installing the freely available z3 SMT solver from Microsoft, the default solver used by SBV. You can get it from <http://github.com/Z3Prover/z3>.
README.md view
@@ -1,16 +1,7 @@ ## SBV: SMT Based Verification in Haskell +[](https://github.com/LeventErkok/sbv/actions/workflows/haskell-ci.yml)+ On Hackage: http://hackage.haskell.org/package/sbv Please see: http://leventerkok.github.io/sbv/--### Build Status-- - Travis (Linux/Mac):- - [](https://travis-ci.com/LeventErkok/sbv)-- - Appveyor (Windows):- - [![Build5][2]][1]--[1]: https://ci.appveyor.com/project/LeventErkok/sbv-[2]: https://ci.appveyor.com/api/projects/status/github/LeventErkok/sbv?svg=true
SBVTestSuite/GoldFiles/pareto1.gold view
@@ -5,101 +5,101 @@ max_x_plus_y = 2 :: Integer min_y = 1 :: Integer Pareto front #2: Optimal model:- x = 0 :: Integer- y = 3 :: Integer- min_x = 0 :: Integer+ x = 3 :: Integer+ y = 0 :: Integer+ min_x = 3 :: Integer max_x_plus_y = 3 :: Integer- min_y = 3 :: Integer+ min_y = 0 :: Integer Pareto front #3: Optimal model:- x = 0 :: Integer- y = 4 :: Integer- min_x = 0 :: Integer+ x = 4 :: Integer+ y = 0 :: Integer+ min_x = 4 :: Integer max_x_plus_y = 4 :: Integer- min_y = 4 :: Integer+ min_y = 0 :: Integer Pareto front #4: Optimal model:- x = 2 :: Integer- y = 4 :: Integer- min_x = 2 :: Integer- max_x_plus_y = 6 :: Integer- min_y = 4 :: Integer+ x = 3 :: Integer+ y = 2 :: Integer+ min_x = 3 :: Integer+ max_x_plus_y = 5 :: Integer+ min_y = 2 :: Integer Pareto front #5: Optimal model: x = 1 :: Integer- y = 4 :: Integer+ y = 3 :: Integer min_x = 1 :: Integer- max_x_plus_y = 5 :: Integer- min_y = 4 :: Integer+ max_x_plus_y = 4 :: Integer+ min_y = 3 :: Integer Pareto front #6: Optimal model:- x = 3 :: Integer+ x = 0 :: Integer y = 4 :: Integer- min_x = 3 :: Integer- max_x_plus_y = 7 :: Integer+ min_x = 0 :: Integer+ max_x_plus_y = 4 :: Integer min_y = 4 :: Integer Pareto front #7: Optimal model:- x = 4 :: Integer- y = 4 :: Integer- min_x = 4 :: Integer- max_x_plus_y = 8 :: Integer- min_y = 4 :: Integer+ x = 0 :: Integer+ y = 3 :: Integer+ min_x = 0 :: Integer+ max_x_plus_y = 3 :: Integer+ min_y = 3 :: Integer Pareto front #8: Optimal model:- x = 5 :: Integer- y = 4 :: Integer- min_x = 5 :: Integer- max_x_plus_y = 9 :: Integer- min_y = 4 :: Integer+ x = 0 :: Integer+ y = 2 :: Integer+ min_x = 0 :: Integer+ max_x_plus_y = 2 :: Integer+ min_y = 2 :: Integer Pareto front #9: Optimal model:+ x = 1 :: Integer+ y = 2 :: Integer+ min_x = 1 :: Integer+ max_x_plus_y = 3 :: Integer+ min_y = 2 :: Integer+Pareto front #10: Optimal model: x = 2 :: Integer- y = 3 :: Integer+ y = 1 :: Integer min_x = 2 :: Integer- max_x_plus_y = 5 :: Integer- min_y = 3 :: Integer-Pareto front #10: Optimal model:+ max_x_plus_y = 3 :: Integer+ min_y = 1 :: Integer+Pareto front #11: Optimal model: x = 3 :: Integer- y = 3 :: Integer+ y = 1 :: Integer min_x = 3 :: Integer- max_x_plus_y = 6 :: Integer- min_y = 3 :: Integer-Pareto front #11: Optimal model:- x = 4 :: Integer- y = 2 :: Integer- min_x = 4 :: Integer- max_x_plus_y = 6 :: Integer- min_y = 2 :: Integer+ max_x_plus_y = 4 :: Integer+ min_y = 1 :: Integer Pareto front #12: Optimal model:- x = 5 :: Integer- y = 2 :: Integer- min_x = 5 :: Integer- max_x_plus_y = 7 :: Integer- min_y = 2 :: Integer-Pareto front #13: Optimal model: x = 4 :: Integer- y = 3 :: Integer+ y = 1 :: Integer min_x = 4 :: Integer- max_x_plus_y = 7 :: Integer- min_y = 3 :: Integer-Pareto front #14: Optimal model:+ max_x_plus_y = 5 :: Integer+ min_y = 1 :: Integer+Pareto front #13: Optimal model: x = 5 :: Integer y = 1 :: Integer min_x = 5 :: Integer max_x_plus_y = 6 :: Integer min_y = 1 :: Integer-Pareto front #15: Optimal model:+Pareto front #14: Optimal model: x = 5 :: Integer- y = 3 :: Integer+ y = 0 :: Integer min_x = 5 :: Integer- max_x_plus_y = 8 :: Integer- min_y = 3 :: Integer-Pareto front #16: Optimal model:- x = 0 :: Integer+ max_x_plus_y = 5 :: Integer+ min_y = 0 :: Integer+Pareto front #15: Optimal model:+ x = 2 :: Integer y = 0 :: Integer- min_x = 0 :: Integer- max_x_plus_y = 0 :: Integer+ min_x = 2 :: Integer+ max_x_plus_y = 2 :: Integer min_y = 0 :: Integer-Pareto front #17: Optimal model:+Pareto front #16: Optimal model: x = 1 :: Integer y = 0 :: Integer min_x = 1 :: Integer max_x_plus_y = 1 :: Integer min_y = 0 :: Integer+Pareto front #17: Optimal model:+ x = 0 :: Integer+ y = 0 :: Integer+ min_x = 0 :: Integer+ max_x_plus_y = 0 :: Integer+ min_y = 0 :: Integer Pareto front #18: Optimal model: x = 0 :: Integer y = 1 :: Integer@@ -107,74 +107,74 @@ max_x_plus_y = 1 :: Integer min_y = 1 :: Integer Pareto front #19: Optimal model:- x = 0 :: Integer- y = 2 :: Integer- min_x = 0 :: Integer- max_x_plus_y = 2 :: Integer- min_y = 2 :: Integer+ x = 3 :: Integer+ y = 3 :: Integer+ min_x = 3 :: Integer+ max_x_plus_y = 6 :: Integer+ min_y = 3 :: Integer Pareto front #20: Optimal model:- x = 1 :: Integer+ x = 4 :: Integer y = 2 :: Integer- min_x = 1 :: Integer- max_x_plus_y = 3 :: Integer+ min_x = 4 :: Integer+ max_x_plus_y = 6 :: Integer min_y = 2 :: Integer Pareto front #21: Optimal model:- x = 3 :: Integer- y = 0 :: Integer- min_x = 3 :: Integer- max_x_plus_y = 3 :: Integer- min_y = 0 :: Integer+ x = 4 :: Integer+ y = 3 :: Integer+ min_x = 4 :: Integer+ max_x_plus_y = 7 :: Integer+ min_y = 3 :: Integer Pareto front #22: Optimal model: x = 4 :: Integer- y = 0 :: Integer+ y = 4 :: Integer min_x = 4 :: Integer- max_x_plus_y = 4 :: Integer- min_y = 0 :: Integer+ max_x_plus_y = 8 :: Integer+ min_y = 4 :: Integer Pareto front #23: Optimal model: x = 3 :: Integer- y = 1 :: Integer+ y = 4 :: Integer min_x = 3 :: Integer- max_x_plus_y = 4 :: Integer- min_y = 1 :: Integer+ max_x_plus_y = 7 :: Integer+ min_y = 4 :: Integer Pareto front #24: Optimal model:- x = 4 :: Integer- y = 1 :: Integer- min_x = 4 :: Integer- max_x_plus_y = 5 :: Integer- min_y = 1 :: Integer+ x = 5 :: Integer+ y = 3 :: Integer+ min_x = 5 :: Integer+ max_x_plus_y = 8 :: Integer+ min_y = 3 :: Integer Pareto front #25: Optimal model:- x = 2 :: Integer- y = 1 :: Integer- min_x = 2 :: Integer- max_x_plus_y = 3 :: Integer- min_y = 1 :: Integer+ x = 5 :: Integer+ y = 4 :: Integer+ min_x = 5 :: Integer+ max_x_plus_y = 9 :: Integer+ min_y = 4 :: Integer Pareto front #26: Optimal model:+ x = 5 :: Integer+ y = 2 :: Integer+ min_x = 5 :: Integer+ max_x_plus_y = 7 :: Integer+ min_y = 2 :: Integer+Pareto front #27: Optimal model: x = 2 :: Integer y = 2 :: Integer min_x = 2 :: Integer max_x_plus_y = 4 :: Integer min_y = 2 :: Integer-Pareto front #27: Optimal model:+Pareto front #28: Optimal model: x = 2 :: Integer- y = 0 :: Integer+ y = 3 :: Integer min_x = 2 :: Integer- max_x_plus_y = 2 :: Integer- min_y = 0 :: Integer-Pareto front #28: Optimal model:- x = 5 :: Integer- y = 0 :: Integer- min_x = 5 :: Integer max_x_plus_y = 5 :: Integer- min_y = 0 :: Integer+ min_y = 3 :: Integer Pareto front #29: Optimal model: x = 1 :: Integer- y = 3 :: Integer+ y = 4 :: Integer min_x = 1 :: Integer- max_x_plus_y = 4 :: Integer- min_y = 3 :: Integer-Pareto front #30: Optimal model:- x = 3 :: Integer- y = 2 :: Integer- min_x = 3 :: Integer max_x_plus_y = 5 :: Integer- min_y = 2 :: Integer+ min_y = 4 :: Integer+Pareto front #30: Optimal model:+ x = 2 :: Integer+ y = 4 :: Integer+ min_x = 2 :: Integer+ max_x_plus_y = 6 :: Integer+ min_y = 4 :: Integer
SBVTestSuite/GoldFiles/pareto2.gold view
@@ -1,182 +1,182 @@ Pareto front #1: Optimal model:- x = 0 :: Integer- y = 1 :: Integer- min_x = 0 :: Integer- max_y = 1 :: Integer- max_x_plus_y = 1 :: Integer-Pareto front #2: Optimal model:- x = 0 :: Integer- y = 2 :: Integer- min_x = 0 :: Integer- max_y = 2 :: Integer- max_x_plus_y = 2 :: Integer-Pareto front #3: Optimal model:- x = 0 :: Integer- y = 3 :: Integer- min_x = 0 :: Integer- max_y = 3 :: Integer- max_x_plus_y = 3 :: Integer-Pareto front #4: Optimal model:- x = 0 :: Integer- y = 5 :: Integer- min_x = 0 :: Integer- max_y = 5 :: Integer- max_x_plus_y = 5 :: Integer-Pareto front #5: Optimal model:- x = 0 :: Integer- y = 6 :: Integer- min_x = 0 :: Integer- max_y = 6 :: Integer- max_x_plus_y = 6 :: Integer-Pareto front #6: Optimal model:- x = 0 :: Integer- y = 7 :: Integer- min_x = 0 :: Integer- max_y = 7 :: Integer- max_x_plus_y = 7 :: Integer-Pareto front #7: Optimal model:- x = 0 :: Integer- y = 9 :: Integer- min_x = 0 :: Integer- max_y = 9 :: Integer- max_x_plus_y = 9 :: Integer-Pareto front #8: Optimal model:- x = 0 :: Integer- y = 8 :: Integer- min_x = 0 :: Integer- max_y = 8 :: Integer- max_x_plus_y = 8 :: Integer-Pareto front #9: Optimal model: x = 0 :: Integer- y = 11 :: Integer+ y = -1 :: Integer min_x = 0 :: Integer- max_y = 11 :: Integer- max_x_plus_y = 11 :: Integer-Pareto front #10: Optimal model:+ max_y = -1 :: Integer+ max_x_plus_y = -1 :: Integer+Pareto front #2: Optimal model: x = 0 :: Integer- y = 13 :: Integer+ y = -2 :: Integer min_x = 0 :: Integer- max_y = 13 :: Integer- max_x_plus_y = 13 :: Integer-Pareto front #11: Optimal model:+ max_y = -2 :: Integer+ max_x_plus_y = -2 :: Integer+Pareto front #3: Optimal model: x = 0 :: Integer- y = 14 :: Integer+ y = -3 :: Integer min_x = 0 :: Integer- max_y = 14 :: Integer- max_x_plus_y = 14 :: Integer-Pareto front #12: Optimal model:+ max_y = -3 :: Integer+ max_x_plus_y = -3 :: Integer+Pareto front #4: Optimal model: x = 0 :: Integer- y = 15 :: Integer+ y = -4 :: Integer min_x = 0 :: Integer- max_y = 15 :: Integer- max_x_plus_y = 15 :: Integer-Pareto front #13: Optimal model:+ max_y = -4 :: Integer+ max_x_plus_y = -4 :: Integer+Pareto front #5: Optimal model: x = 0 :: Integer- y = 17 :: Integer+ y = -5 :: Integer min_x = 0 :: Integer- max_y = 17 :: Integer- max_x_plus_y = 17 :: Integer-Pareto front #14: Optimal model:+ max_y = -5 :: Integer+ max_x_plus_y = -5 :: Integer+Pareto front #6: Optimal model: x = 0 :: Integer- y = 19 :: Integer+ y = -6 :: Integer min_x = 0 :: Integer- max_y = 19 :: Integer- max_x_plus_y = 19 :: Integer-Pareto front #15: Optimal model:+ max_y = -6 :: Integer+ max_x_plus_y = -6 :: Integer+Pareto front #7: Optimal model: x = 0 :: Integer- y = 21 :: Integer+ y = -7 :: Integer min_x = 0 :: Integer- max_y = 21 :: Integer- max_x_plus_y = 21 :: Integer-Pareto front #16: Optimal model:+ max_y = -7 :: Integer+ max_x_plus_y = -7 :: Integer+Pareto front #8: Optimal model: x = 0 :: Integer- y = 23 :: Integer+ y = -8 :: Integer min_x = 0 :: Integer- max_y = 23 :: Integer- max_x_plus_y = 23 :: Integer-Pareto front #17: Optimal model:+ max_y = -8 :: Integer+ max_x_plus_y = -8 :: Integer+Pareto front #9: Optimal model: x = 0 :: Integer- y = 25 :: Integer+ y = -9 :: Integer min_x = 0 :: Integer- max_y = 25 :: Integer- max_x_plus_y = 25 :: Integer+ max_y = -9 :: Integer+ max_x_plus_y = -9 :: Integer+Pareto front #10: Optimal model:+ x = 0 :: Integer+ y = -10 :: Integer+ min_x = 0 :: Integer+ max_y = -10 :: Integer+ max_x_plus_y = -10 :: Integer+Pareto front #11: Optimal model:+ x = 0 :: Integer+ y = -11 :: Integer+ min_x = 0 :: Integer+ max_y = -11 :: Integer+ max_x_plus_y = -11 :: Integer+Pareto front #12: Optimal model:+ x = 0 :: Integer+ y = -12 :: Integer+ min_x = 0 :: Integer+ max_y = -12 :: Integer+ max_x_plus_y = -12 :: Integer+Pareto front #13: Optimal model:+ x = 0 :: Integer+ y = -13 :: Integer+ min_x = 0 :: Integer+ max_y = -13 :: Integer+ max_x_plus_y = -13 :: Integer+Pareto front #14: Optimal model:+ x = 0 :: Integer+ y = -14 :: Integer+ min_x = 0 :: Integer+ max_y = -14 :: Integer+ max_x_plus_y = -14 :: Integer+Pareto front #15: Optimal model:+ x = 0 :: Integer+ y = -15 :: Integer+ min_x = 0 :: Integer+ max_y = -15 :: Integer+ max_x_plus_y = -15 :: Integer+Pareto front #16: Optimal model:+ x = 0 :: Integer+ y = -16 :: Integer+ min_x = 0 :: Integer+ max_y = -16 :: Integer+ max_x_plus_y = -16 :: Integer+Pareto front #17: Optimal model:+ x = 0 :: Integer+ y = -17 :: Integer+ min_x = 0 :: Integer+ max_y = -17 :: Integer+ max_x_plus_y = -17 :: Integer Pareto front #18: Optimal model:- x = 0 :: Integer- y = 27 :: Integer- min_x = 0 :: Integer- max_y = 27 :: Integer- max_x_plus_y = 27 :: Integer+ x = 0 :: Integer+ y = -18 :: Integer+ min_x = 0 :: Integer+ max_y = -18 :: Integer+ max_x_plus_y = -18 :: Integer Pareto front #19: Optimal model:- x = 0 :: Integer- y = 28 :: Integer- min_x = 0 :: Integer- max_y = 28 :: Integer- max_x_plus_y = 28 :: Integer+ x = 0 :: Integer+ y = -19 :: Integer+ min_x = 0 :: Integer+ max_y = -19 :: Integer+ max_x_plus_y = -19 :: Integer Pareto front #20: Optimal model:- x = 0 :: Integer- y = 29 :: Integer- min_x = 0 :: Integer- max_y = 29 :: Integer- max_x_plus_y = 29 :: Integer+ x = 0 :: Integer+ y = -20 :: Integer+ min_x = 0 :: Integer+ max_y = -20 :: Integer+ max_x_plus_y = -20 :: Integer Pareto front #21: Optimal model:- x = 0 :: Integer- y = 31 :: Integer- min_x = 0 :: Integer- max_y = 31 :: Integer- max_x_plus_y = 31 :: Integer+ x = 0 :: Integer+ y = -21 :: Integer+ min_x = 0 :: Integer+ max_y = -21 :: Integer+ max_x_plus_y = -21 :: Integer Pareto front #22: Optimal model:- x = 0 :: Integer- y = 33 :: Integer- min_x = 0 :: Integer- max_y = 33 :: Integer- max_x_plus_y = 33 :: Integer+ x = 0 :: Integer+ y = -22 :: Integer+ min_x = 0 :: Integer+ max_y = -22 :: Integer+ max_x_plus_y = -22 :: Integer Pareto front #23: Optimal model:- x = 0 :: Integer- y = 35 :: Integer- min_x = 0 :: Integer- max_y = 35 :: Integer- max_x_plus_y = 35 :: Integer+ x = 0 :: Integer+ y = -23 :: Integer+ min_x = 0 :: Integer+ max_y = -23 :: Integer+ max_x_plus_y = -23 :: Integer Pareto front #24: Optimal model:- x = 0 :: Integer- y = 37 :: Integer- min_x = 0 :: Integer- max_y = 37 :: Integer- max_x_plus_y = 37 :: Integer+ x = 0 :: Integer+ y = -24 :: Integer+ min_x = 0 :: Integer+ max_y = -24 :: Integer+ max_x_plus_y = -24 :: Integer Pareto front #25: Optimal model:- x = 0 :: Integer- y = 39 :: Integer- min_x = 0 :: Integer- max_y = 39 :: Integer- max_x_plus_y = 39 :: Integer+ x = 0 :: Integer+ y = -25 :: Integer+ min_x = 0 :: Integer+ max_y = -25 :: Integer+ max_x_plus_y = -25 :: Integer Pareto front #26: Optimal model:- x = 0 :: Integer- y = 40 :: Integer- min_x = 0 :: Integer- max_y = 40 :: Integer- max_x_plus_y = 40 :: Integer+ x = 0 :: Integer+ y = -26 :: Integer+ min_x = 0 :: Integer+ max_y = -26 :: Integer+ max_x_plus_y = -26 :: Integer Pareto front #27: Optimal model:- x = 0 :: Integer- y = 42 :: Integer- min_x = 0 :: Integer- max_y = 42 :: Integer- max_x_plus_y = 42 :: Integer+ x = 0 :: Integer+ y = -27 :: Integer+ min_x = 0 :: Integer+ max_y = -27 :: Integer+ max_x_plus_y = -27 :: Integer Pareto front #28: Optimal model:- x = 0 :: Integer- y = 0 :: Integer- min_x = 0 :: Integer- max_y = 0 :: Integer- max_x_plus_y = 0 :: Integer+ x = 0 :: Integer+ y = -28 :: Integer+ min_x = 0 :: Integer+ max_y = -28 :: Integer+ max_x_plus_y = -28 :: Integer Pareto front #29: Optimal model:- x = 0 :: Integer- y = -2 :: Integer- min_x = 0 :: Integer- max_y = -2 :: Integer- max_x_plus_y = -2 :: Integer+ x = 0 :: Integer+ y = -29 :: Integer+ min_x = 0 :: Integer+ max_y = -29 :: Integer+ max_x_plus_y = -29 :: Integer Pareto front #30: Optimal model:- x = 0 :: Integer- y = -4 :: Integer- min_x = 0 :: Integer- max_y = -4 :: Integer- max_x_plus_y = -4 :: Integer+ x = 0 :: Integer+ y = -30 :: Integer+ min_x = 0 :: Integer+ max_y = -30 :: Integer+ max_x_plus_y = -30 :: Integer *** Note: Pareto-front extraction was terminated as requested by the user. *** There might be many other results!
SBVTestSuite/GoldFiles/quantified_prove_forallforall_satisfiable_p.gold view
@@ -32,8 +32,8 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (s0))-[RECV] ((s0 #x50))+[RECV] ((s0 #xfe)) [SEND] (get-value (s1))-[RECV] ((s1 #x0f))+[RECV] ((s1 #x01)) *** Solver : Z3 *** Exit code: ExitSuccess
SBVTestSuite/GoldFiles/quantified_sat_existsexists_satisfiable_c.gold view
@@ -32,8 +32,8 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (s0))-[RECV] ((s0 #x01))+[RECV] ((s0 #x02)) [SEND] (get-value (s1))-[RECV] ((s1 #x00))+[RECV] ((s1 #x01)) *** Solver : Z3 *** Exit code: ExitSuccess
SBVTestSuite/GoldFiles/quantified_sat_existsexists_satisfiable_p.gold view
@@ -32,8 +32,8 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (s0))-[RECV] ((s0 #x01))+[RECV] ((s0 #x02)) [SEND] (get-value (s1))-[RECV] ((s1 #x00))+[RECV] ((s1 #x01)) *** Solver : Z3 *** Exit code: ExitSuccess
SBVTestSuite/GoldFiles/query1.gold view
@@ -153,19 +153,19 @@ [SEND] (get-proof) [RECV] ((set-logic ALL) (proof- (let (($x221 (<= s0 6)))- (let (($x225 (not $x221)))- (let (($x232 (or (not bey) $x225)))- (let ((@x230 (monotonicity (rewrite (= (> s0 6) $x225)) (= (=> bey (> s0 6)) (=> bey $x225)))))- (let ((@x236 (trans @x230 (rewrite (= (=> bey $x225) $x232)) (= (=> bey (> s0 6)) $x232))))- (let ((@x237 (mp (asserted (=> bey (> s0 6))) @x236 $x232)))- (let (($x249 (>= s0 6)))- (let (($x248 (not $x249)))- (let (($x256 (or (not hey) $x248)))- (let ((@x247 (trans (rewrite (= (< s0 6) (not (<= 6 s0)))) (rewrite (= (not (<= 6 s0)) $x248)) (= (< s0 6) $x248))))- (let ((@x260 (trans (monotonicity @x247 (= (=> hey (< s0 6)) (=> hey $x248))) (rewrite (= (=> hey $x248) $x256)) (= (=> hey (< s0 6)) $x256))))- (let ((@x261 (mp (asserted (=> hey (< s0 6))) @x260 $x256)))- (unit-resolution ((_ th-lemma arith farkas 1 1) (or $x249 $x221)) (unit-resolution @x261 (asserted hey) $x248) (unit-resolution @x237 (asserted bey) $x225) false)))))))))))))))+ (let (($x265 (<= s0 6)))+ (let (($x269 (not $x265)))+ (let (($x276 (or (not bey) $x269)))+ (let ((@x274 (monotonicity (rewrite (= (> s0 6) $x269)) (= (=> bey (> s0 6)) (=> bey $x269)))))+ (let ((@x280 (trans @x274 (rewrite (= (=> bey $x269) $x276)) (= (=> bey (> s0 6)) $x276))))+ (let ((@x281 (mp (asserted (=> bey (> s0 6))) @x280 $x276)))+ (let (($x293 (>= s0 6)))+ (let (($x292 (not $x293)))+ (let (($x300 (or (not hey) $x292)))+ (let ((@x291 (trans (rewrite (= (< s0 6) (not (<= 6 s0)))) (rewrite (= (not (<= 6 s0)) $x292)) (= (< s0 6) $x292))))+ (let ((@x304 (trans (monotonicity @x291 (= (=> hey (< s0 6)) (=> hey $x292))) (rewrite (= (=> hey $x292) $x300)) (= (=> hey (< s0 6)) $x300))))+ (let ((@x305 (mp (asserted (=> hey (< s0 6))) @x304 $x300)))+ (unit-resolution ((_ th-lemma arith farkas 1 1) (or $x293 $x265)) (unit-resolution @x305 (asserted hey) $x292) (unit-resolution @x281 (asserted bey) $x269) false))))))))))))))) [SEND, TimeOut: 90000ms] (get-assertions) [RECV] ((! s7 :named |a > 0|)
SBVTestSuite/GoldFiles/queryArrays1.gold view
@@ -40,7 +40,7 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (s0))-[RECV] ((s0 #x01))+[RECV] ((s0 #xff)) [SEND] (get-value (s1)) [RECV] ((s1 #x00)) [SEND] (get-value (s3))@@ -48,5 +48,5 @@ *** Solver : Z3 *** Exit code: ExitSuccess - FINAL:(1,0,0)+ FINAL:(255,0,0) DONE!
SBVTestSuite/GoldFiles/queryArrays4.gold view
@@ -550,9 +550,11 @@ [GOOD] (define-fun s260 () (_ BitVec 8) (table0 s1)) [GOOD] (define-fun s261 () Bool (= s1 s260)) [GOOD] (assert s261)-[GOOD] (define-fun s262 () (_ BitVec 8) (bvadd s0 s3))-[GOOD] (define-fun s263 () Bool (= s1 s262))-[GOOD] (assert s263)+[GOOD] (define-fun s262 () Bool (= s0 s2))+[GOOD] (assert s262)+[GOOD] (define-fun s263 () (_ BitVec 8) (bvadd s0 s3))+[GOOD] (define-fun s264 () Bool (= s1 s263))+[GOOD] (assert s264) [SEND] (check-sat) [RECV] sat [SEND] (get-value (s1))
SBVTestSuite/GoldFiles/query_Interpolant4.gold view
@@ -40,12 +40,9 @@ [GOOD] (define-fun s12 () Bool (distinct s10 s11)) [GOOD] (define-fun s13 () Bool (and s9 s12)) [SEND] (get-interpolant s8 s13)-[RECV] (or (and (= s1 s2) (= s1 s3))- (<= (+ (* (- 1) s1) s0) (- 1))- (<= (+ s1 (* (- 1) s0)) (- 1))- (= s2 s3))+[RECV] (or (<= (+ (* (- 1) s1) s0) (- 1)) (<= (+ s1 (* (- 1) s0)) (- 1)) (= s2 s3)) *** Solver : Z3 *** Exit code: ExitSuccess FINAL OUTPUT:-"(or (and (= s1 s2) (= s1 s3)) (<= (+ (* (- 1) s1) s0) (- 1)) (<= (+ s1 (* (- 1) s0)) (- 1)) (= s2 s3))"+"(or (<= (+ (* (- 1) s1) s0) (- 1)) (<= (+ s1 (* (- 1) s0)) (- 1)) (= s2 s3))"
SBVTestSuite/GoldFiles/query_badOption.gold view
@@ -17,6 +17,7 @@ *** debug_ref_count (bool) (default: false) *** dot_proof_file (string) (default: proof.dot) *** dump_models (bool) (default: false)+*** encoding (string) (default: unicode) *** memory_high_watermark (unsigned int) (default: 0) *** memory_max_alloc_count (unsigned int) (default: 0) *** memory_max_size (unsigned int) (default: 0)@@ -30,7 +31,6 @@ *** trace (bool) (default: false) *** trace_file_name (string) (default: z3.log) *** type_check (bool) (default: true)-*** unicode (bool) *** unsat_core (bool) (default: false) *** verbose (unsigned int) (default: 0) *** warning (bool) (default: true)
+ SBVTestSuite/GoldFiles/query_bitwuzla.gold view
@@ -0,0 +1,63 @@+** Calling: bitwuzla --smt2 -m --output-format=smt2 --no-exit-codes --incremental+[GOOD] ; Automatically generated by SBV. Do not edit.+[GOOD] (set-option :print-success true)+[GOOD] (set-option :global-declarations true)+[GOOD] (set-option :produce-models true)+[GOOD] (set-logic ALL) ; external query, using all logics.+[GOOD] ; --- uninterpreted sorts ---+[GOOD] ; --- tuples ---+[GOOD] ; --- sums ---+[GOOD] ; --- literal constants ---+[GOOD] (define-fun s2 () (_ BitVec 32) #x00000000)+[GOOD] ; --- skolem constants ---+[GOOD] (declare-fun s0 () (_ BitVec 32)) ; tracks user variable "a"+[GOOD] (declare-fun s1 () (_ BitVec 32)) ; tracks user variable "b"+[GOOD] ; --- constant tables ---+[GOOD] ; --- skolemized tables ---+[GOOD] ; --- arrays ---+[GOOD] ; --- uninterpreted constants ---+[GOOD] ; --- user given axioms ---+[GOOD] ; --- preQuantifier assignments ---+[GOOD] (define-fun s3 () Bool (bvsgt s0 s2))+[GOOD] (define-fun s4 () Bool (bvsgt s1 s2))+[GOOD] ; --- arrayDelayeds ---+[GOOD] ; --- arraySetups ---+[GOOD] ; --- formula ---+[GOOD] ; --- postQuantifier assignments ---+[GOOD] ; --- delayedEqualities ---+[GOOD] ; -- finalAssert ---+[GOOD] (assert s3)+[GOOD] (assert s4)+[GOOD] (define-fun s5 () (_ BitVec 32) #x00000002)+[GOOD] (define-fun s7 () (_ BitVec 32) #x0000000f)+[GOOD] (define-fun s6 () (_ BitVec 32) (bvadd s0 s5))+[GOOD] (define-fun s8 () Bool (bvsle s6 s7))+[GOOD] (assert s8)+[GOOD] (define-fun s9 () (_ BitVec 32) #x00000003)+[GOOD] (define-fun s10 () Bool (bvslt s0 s9))+[GOOD] (assert s10)+[GOOD] (define-fun s11 () Bool (bvslt s1 s5))+[GOOD] (assert s11)+[GOOD] (define-fun s13 () (_ BitVec 32) #x0000000c)+[GOOD] (define-fun s12 () (_ BitVec 32) (bvadd s0 s1))+[GOOD] (define-fun s14 () Bool (bvslt s12 s13))+[GOOD] (assert s14)+[GOOD] (define-fun s15 () Bool (bvslt s0 s5))+[GOOD] (assert s15)+[SEND] (check-sat)+[RECV] sat+[GOOD] (define-fun s16 () (_ BitVec 32) #x00000001)+[GOOD] (define-fun s17 () Bool (bvsge s0 s16))+[GOOD] (assert s17)+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (s0))+[RECV] ((s0 #b00000000000000000000000000000001))+[SEND] (get-value (s1))+[RECV] ((s1 #b00000000000000000000000000000001))+*** Solver : Bitwuzla+*** Exit code: ExitSuccess+*** Std-out : (+ (define-fun s0 () (_ BitVec 32) #b00000000000000000000000000000001)+ (define-fun s1 () (_ BitVec 32) #b00000000000000000000000000000001)+ )
+ SBVTestSuite/GoldFiles/query_cvc5.gold view
@@ -0,0 +1,65 @@+** Calling: cvc5 --lang smt --incremental --no-interactive --model-witness-value+[GOOD] ; Automatically generated by SBV. Do not edit.+[GOOD] (set-option :print-success true)+[GOOD] (set-option :global-declarations true)+[GOOD] (set-option :diagnostic-output-channel "stdout")+[GOOD] (set-option :produce-models true)+[GOOD] (set-logic ALL) ; external query, using all logics.+[GOOD] ; --- uninterpreted sorts ---+[GOOD] ; --- tuples ---+[GOOD] ; --- sums ---+[GOOD] ; --- literal constants ---+[GOOD] (define-fun s2 () (_ BitVec 32) #x00000000)+[GOOD] ; --- skolem constants ---+[GOOD] (declare-fun s0 () (_ BitVec 32)) ; tracks user variable "a"+[GOOD] (declare-fun s1 () (_ BitVec 32)) ; tracks user variable "b"+[GOOD] ; --- constant tables ---+[GOOD] ; --- skolemized tables ---+[GOOD] ; --- arrays ---+[GOOD] ; --- uninterpreted constants ---+[GOOD] ; --- user given axioms ---+[GOOD] ; --- preQuantifier assignments ---+[GOOD] (define-fun s3 () Bool (bvsgt s0 s2))+[GOOD] (define-fun s4 () Bool (bvsgt s1 s2))+[GOOD] ; --- arrayDelayeds ---+[GOOD] ; --- arraySetups ---+[GOOD] ; --- formula ---+[GOOD] ; --- postQuantifier assignments ---+[GOOD] ; --- delayedEqualities ---+[GOOD] ; -- finalAssert ---+[GOOD] (assert (! s3 :named |a > 0|))+[GOOD] (assert s4)+[GOOD] (define-fun s5 () (_ BitVec 32) #x00000002)+[GOOD] (define-fun s7 () (_ BitVec 32) #x0000000f)+[GOOD] (define-fun s6 () (_ BitVec 32) (bvadd s0 s5))+[GOOD] (define-fun s8 () Bool (bvsle s6 s7))+[GOOD] (assert s8)+[GOOD] (define-fun s9 () (_ BitVec 32) #x00000003)+[GOOD] (define-fun s10 () Bool (bvslt s0 s9))+[GOOD] (assert s10)+[GOOD] (define-fun s11 () Bool (bvslt s1 s5))+[GOOD] (assert s11)+[GOOD] (define-fun s13 () (_ BitVec 32) #x0000000c)+[GOOD] (define-fun s12 () (_ BitVec 32) (bvadd s0 s1))+[GOOD] (define-fun s14 () Bool (bvslt s12 s13))+[GOOD] (assert (! s14 :named |a+b_<_12|))+[GOOD] (push 1)+[GOOD] (define-fun s15 () Bool (bvslt s0 s5))+[GOOD] (assert s15)+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (s0))+[RECV] ((s0 #b00000000000000000000000000000001))+[GOOD] (pop 1)+[GOOD] (define-fun s16 () (_ BitVec 32) #x00000001)+[GOOD] (define-fun s17 () Bool (bvsgt s0 s16))+[GOOD] (assert (! s17 :named |extra|))+[GOOD] (assert s11)+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (s0))+[RECV] ((s0 #b00000000000000000000000000000010))+[SEND] (get-value (s1))+[RECV] ((s1 #b00000000000000000000000000000001))+*** Solver : CVC5+*** Exit code: ExitSuccess
SBVTestSuite/GoldFiles/query_uiSat_test2.gold view
@@ -37,16 +37,8 @@ [GOOD] (set-option :pp.min_alias_size 4294967295) [GOOD] (set-option :model.inline_def true ) [SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!1 x!2) (and x!1 (not x!2))))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) true))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) true))+[RECV] ((q2 (store (store ((as const Array) false) true false true) true true true))) -MODEL: SMTModel {modelObjectives = [], modelBindings = Nothing, modelAssocs = [], modelUIFuns = [("q2",(SBool -> SBool -> SBool,([([True :: Bool,False :: Bool],True :: Bool),([True :: Bool,True :: Bool],True :: Bool)],False :: Bool)))]}+MODEL: SMTModel {modelObjectives = [], modelBindings = Nothing, modelAssocs = [], modelUIFuns = [("q2",(SBool -> SBool -> SBool,([([True :: Bool,True :: Bool],True :: Bool),([True :: Bool,False :: Bool],True :: Bool)],False :: Bool)))]} DONE.*** Solver : Z3 *** Exit code: ExitSuccess
SBVTestSuite/GoldFiles/set_compl1.gold view
@@ -8,15 +8,14 @@ [GOOD] (set-option :pp.max_depth 4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295) [GOOD] (set-option :model.inline_def true )-[GOOD] (set-logic ALL) ; has sets, using catch-all.+[GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s1 () (Array String Bool) (store (store (store (store ((as const (Array String Bool)) false) (_ char #x6f) true) (_ char #x6c) true) (_ char #x68) true) (_ char #x65) true))+[GOOD] (define-fun s1 () (Array Int Bool) (store (store (store (store ((as const (Array Int Bool)) false) 4 true) 3 true) 2 true) 1 true)) [GOOD] ; --- skolem constants ----[GOOD] (declare-fun s0 () (Array String Bool)) ; tracks user variable "a"-[GOOD] (assert (forall ((set0 String)) (=> (select s0 set0) (= 1 (str.len set0)))))+[GOOD] (declare-fun s0 () (Array Int Bool)) ; tracks user variable "a" [GOOD] ; --- constant tables --- [GOOD] ; --- skolemized tables --- [GOOD] ; --- arrays ---@@ -34,40 +33,34 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (s0))-[RECV] ((s0 (store (store (store (store ((as const (Array String Bool)) false) "o" true)- "l"- true)- "h"+[RECV] ((s0 (store (store (store (store ((as const (Array Int Bool)) false) 1 true) 3 true)+ 4 true)- "e"+ 2 true)))-[GOOD] (define-fun s3 () (Array String Bool) (complement s0))+[GOOD] (define-fun s3 () (Array Int Bool) (complement s0)) [SEND] (get-value (s3))-[RECV] ((s3 (store (store (store (store ((as const (Array String Bool)) true) "o" false)- "l"- false)- "h"+[RECV] ((s3 (store (store (store (store ((as const (Array Int Bool)) true) 1 false) 3 false)+ 4 false)- "e"+ 2 false)))-[GOOD] (define-fun s4 () (Array String Bool) (complement s3))+[GOOD] (define-fun s4 () (Array Int Bool) (complement s3)) [SEND] (get-value (s4))-[RECV] ((s4 (store (store (store (store ((as const (Array String Bool)) false) "o" true)- "l"- true)- "h"+[RECV] ((s4 (store (store (store (store ((as const (Array Int Bool)) false) 1 true) 3 true)+ 4 true)- "e"+ 2 true)))-[GOOD] (define-fun s5 () (Array String Bool) (intersection s3 s0))+[GOOD] (define-fun s5 () (Array Int Bool) (intersection s3 s0)) [SEND] (get-value (s5))-[RECV] ((s5 ((as const (Array String Bool)) false)))-[GOOD] (define-fun s6 () (Array String Bool) (union s3 s0))+[RECV] ((s5 ((as const (Array Int Bool)) false)))+[GOOD] (define-fun s6 () (Array Int Bool) (union s3 s0)) [SEND] (get-value (s6))-[RECV] ((s6 ((as const (Array String Bool)) true)))+[RECV] ((s6 ((as const (Array Int Bool)) true))) *** Solver : Z3 *** Exit code: ExitSuccess FINAL:-({'e','h','l','o'},U - {'e','h','l','o'},{'e','h','l','o'},{},U)+({1,2,3,4},U - {1,2,3,4},{1,2,3,4},{},U) DONE!
SBVTestSuite/GoldFiles/set_delete1.gold view
@@ -8,18 +8,16 @@ [GOOD] (set-option :pp.max_depth 4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295) [GOOD] (set-option :model.inline_def true )-[GOOD] (set-logic ALL) ; has sets, using catch-all.+[GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s2 () String (_ char #x65))-[GOOD] (define-fun s4 () (Array String Bool) (store (store (store (store ((as const (Array String Bool)) false) (_ char #x6f) true) (_ char #x6c) true) (_ char #x68) true) (_ char #x65) true))+[GOOD] (define-fun s2 () Int 2)+[GOOD] (define-fun s4 () (Array Int Bool) (store (store (store (store ((as const (Array Int Bool)) false) 4 true) 3 true) 2 true) 1 true)) [GOOD] ; --- skolem constants ----[GOOD] (declare-fun s0 () String) ; tracks user variable "a"-[GOOD] (assert (= 1 (str.len s0)))-[GOOD] (declare-fun s1 () (Array String Bool)) ; tracks user variable "b"-[GOOD] (assert (forall ((set0 String)) (=> (select s1 set0) (= 1 (str.len set0)))))+[GOOD] (declare-fun s0 () Int) ; tracks user variable "a"+[GOOD] (declare-fun s1 () (Array Int Bool)) ; tracks user variable "b" [GOOD] ; --- constant tables --- [GOOD] ; --- skolemized tables --- [GOOD] ; --- arrays ---@@ -39,37 +37,31 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (s0))-[RECV] ((s0 "e"))+[RECV] ((s0 2)) [SEND] (get-value (s1))-[RECV] ((s1 (store (store (store (store ((as const (Array String Bool)) false) "o" true)- "l"- true)- "h"+[RECV] ((s1 (store (store (store (store ((as const (Array Int Bool)) false) 1 true) 3 true)+ 4 true)- "e"+ 2 true)))-[GOOD] (define-fun s6 () (Array String Bool) (store s1 s0 false))+[GOOD] (define-fun s6 () (Array Int Bool) (store s1 s0 false)) [SEND] (get-value (s6))-[RECV] ((s6 (store (store (store (store ((as const (Array String Bool)) false) "o" true)- "l"- true)- "h"+[RECV] ((s6 (store (store (store (store ((as const (Array Int Bool)) false) 1 true) 3 true)+ 4 true)- "e"+ 2 false)))-[GOOD] (define-fun s7 () (Array String Bool) (complement s1))-[GOOD] (define-fun s8 () (Array String Bool) (store s7 s0 false))+[GOOD] (define-fun s7 () (Array Int Bool) (complement s1))+[GOOD] (define-fun s8 () (Array Int Bool) (store s7 s0 false)) [SEND] (get-value (s8))-[RECV] ((s8 (store (store (store (store ((as const (Array String Bool)) true) "o" false)- "l"- false)- "h"+[RECV] ((s8 (store (store (store (store ((as const (Array Int Bool)) true) 1 false) 3 false)+ 4 false)- "e"+ 2 false))) *** Solver : Z3 *** Exit code: ExitSuccess FINAL:-('e',{'e','h','l','o'},{'h','l','o'},U - {'e','h','l','o'})+(2,{1,2,3,4},{1,3,4},U - {1,2,3,4}) DONE!
SBVTestSuite/GoldFiles/set_diff1.gold view
@@ -8,17 +8,15 @@ [GOOD] (set-option :pp.max_depth 4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295) [GOOD] (set-option :model.inline_def true )-[GOOD] (set-logic ALL) ; has sets, using catch-all.+[GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s2 () (Array String Bool) (store ((as const (Array String Bool)) false) (_ char #x61) true))+[GOOD] (define-fun s2 () (Array Int Bool) (store ((as const (Array Int Bool)) false) 0 true)) [GOOD] ; --- skolem constants ----[GOOD] (declare-fun s0 () (Array String Bool)) ; tracks user variable "a"-[GOOD] (assert (forall ((set0 String)) (=> (select s0 set0) (= 1 (str.len set0)))))-[GOOD] (declare-fun s1 () (Array String Bool)) ; tracks user variable "b"-[GOOD] (assert (forall ((set0 String)) (=> (select s1 set0) (= 1 (str.len set0)))))+[GOOD] (declare-fun s0 () (Array Int Bool)) ; tracks user variable "a"+[GOOD] (declare-fun s1 () (Array Int Bool)) ; tracks user variable "b" [GOOD] ; --- constant tables --- [GOOD] ; --- skolemized tables --- [GOOD] ; --- arrays ---@@ -38,26 +36,26 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (s0))-[RECV] ((s0 (store ((as const (Array String Bool)) false) "a" true)))+[RECV] ((s0 (store ((as const (Array Int Bool)) false) 0 true))) [SEND] (get-value (s1))-[RECV] ((s1 (store ((as const (Array String Bool)) false) "a" true)))-[GOOD] (define-fun s5 () (Array String Bool) (setminus s0 s1))+[RECV] ((s1 (store ((as const (Array Int Bool)) false) 0 true)))+[GOOD] (define-fun s5 () (Array Int Bool) (setminus s0 s1)) [SEND] (get-value (s5))-[RECV] ((s5 ((as const (Array String Bool)) false)))-[GOOD] (define-fun s6 () (Array String Bool) (complement s1))-[GOOD] (define-fun s7 () (Array String Bool) (setminus s0 s6))+[RECV] ((s5 ((as const (Array Int Bool)) false)))+[GOOD] (define-fun s6 () (Array Int Bool) (complement s1))+[GOOD] (define-fun s7 () (Array Int Bool) (setminus s0 s6)) [SEND] (get-value (s7))-[RECV] ((s7 (store ((as const (Array String Bool)) false) "a" true)))-[GOOD] (define-fun s8 () (Array String Bool) (complement s0))-[GOOD] (define-fun s9 () (Array String Bool) (setminus s8 s1))+[RECV] ((s7 (store ((as const (Array Int Bool)) false) 0 true)))+[GOOD] (define-fun s8 () (Array Int Bool) (complement s0))+[GOOD] (define-fun s9 () (Array Int Bool) (setminus s8 s1)) [SEND] (get-value (s9))-[RECV] ((s9 (store ((as const (Array String Bool)) true) "a" false)))-[GOOD] (define-fun s10 () (Array String Bool) (setminus s8 s6))+[RECV] ((s9 (store ((as const (Array Int Bool)) true) 0 false)))+[GOOD] (define-fun s10 () (Array Int Bool) (setminus s8 s6)) [SEND] (get-value (s10))-[RECV] ((s10 ((as const (Array String Bool)) false)))+[RECV] ((s10 ((as const (Array Int Bool)) false))) *** Solver : Z3 *** Exit code: ExitSuccess FINAL:-({'a'},{'a'},{},{'a'},U - {'a'},{})+({0},{0},{},{0},U - {0},{}) DONE!
SBVTestSuite/GoldFiles/set_disj1.gold view
@@ -8,17 +8,15 @@ [GOOD] (set-option :pp.max_depth 4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295) [GOOD] (set-option :model.inline_def true )-[GOOD] (set-logic ALL) ; has sets, using catch-all.+[GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s2 () (Array String Bool) (store ((as const (Array String Bool)) false) (_ char #x61) true))+[GOOD] (define-fun s2 () (Array Int Bool) (store ((as const (Array Int Bool)) false) 0 true)) [GOOD] ; --- skolem constants ----[GOOD] (declare-fun s0 () (Array String Bool)) ; tracks user variable "a"-[GOOD] (assert (forall ((set0 String)) (=> (select s0 set0) (= 1 (str.len set0)))))-[GOOD] (declare-fun s1 () (Array String Bool)) ; tracks user variable "b"-[GOOD] (assert (forall ((set0 String)) (=> (select s1 set0) (= 1 (str.len set0)))))+[GOOD] (declare-fun s0 () (Array Int Bool)) ; tracks user variable "a"+[GOOD] (declare-fun s1 () (Array Int Bool)) ; tracks user variable "b" [GOOD] ; --- constant tables --- [GOOD] ; --- skolemized tables --- [GOOD] ; --- arrays ---@@ -38,25 +36,25 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (s0))-[RECV] ((s0 (store ((as const (Array String Bool)) false) "a" true)))+[RECV] ((s0 (store ((as const (Array Int Bool)) false) 0 true))) [SEND] (get-value (s1))-[RECV] ((s1 (store ((as const (Array String Bool)) false) "a" true)))-[GOOD] (define-fun s6 () (Array String Bool) ((as const (Array String Bool)) false))-[GOOD] (define-fun s5 () (Array String Bool) (intersection s0 s1))+[RECV] ((s1 (store ((as const (Array Int Bool)) false) 0 true)))+[GOOD] (define-fun s6 () (Array Int Bool) ((as const (Array Int Bool)) false))+[GOOD] (define-fun s5 () (Array Int Bool) (intersection s0 s1)) [GOOD] (define-fun s7 () Bool (= s5 s6)) [SEND] (get-value (s7)) [RECV] ((s7 false))-[GOOD] (define-fun s8 () (Array String Bool) (complement s1))-[GOOD] (define-fun s9 () (Array String Bool) (intersection s0 s8))+[GOOD] (define-fun s8 () (Array Int Bool) (complement s1))+[GOOD] (define-fun s9 () (Array Int Bool) (intersection s0 s8)) [GOOD] (define-fun s10 () Bool (= s9 s6)) [SEND] (get-value (s10)) [RECV] ((s10 true))-[GOOD] (define-fun s11 () (Array String Bool) (complement s0))-[GOOD] (define-fun s12 () (Array String Bool) (intersection s11 s1))+[GOOD] (define-fun s11 () (Array Int Bool) (complement s0))+[GOOD] (define-fun s12 () (Array Int Bool) (intersection s11 s1)) [GOOD] (define-fun s13 () Bool (= s12 s6)) [SEND] (get-value (s13)) [RECV] ((s13 true))-[GOOD] (define-fun s14 () (Array String Bool) (intersection s11 s8))+[GOOD] (define-fun s14 () (Array Int Bool) (intersection s11 s8)) [GOOD] (define-fun s15 () Bool (= s14 s6)) [SEND] (get-value (s15)) [RECV] ((s15 false))@@ -64,5 +62,5 @@ *** Exit code: ExitSuccess FINAL:-({'a'},{'a'},False,True,True,False)+({0},{0},False,True,True,False) DONE!
SBVTestSuite/GoldFiles/set_empty1.gold view
@@ -8,15 +8,14 @@ [GOOD] (set-option :pp.max_depth 4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295) [GOOD] (set-option :model.inline_def true )-[GOOD] (set-logic ALL) ; has sets, using catch-all.+[GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s1 () (Array String Bool) (store (store (store (store ((as const (Array String Bool)) false) (_ char #x6f) true) (_ char #x6c) true) (_ char #x68) true) (_ char #x65) true))+[GOOD] (define-fun s1 () (Array Int Bool) (store (store (store (store ((as const (Array Int Bool)) false) 4 true) 3 true) 2 true) 1 true)) [GOOD] ; --- skolem constants ----[GOOD] (declare-fun s0 () (Array String Bool)) ; tracks user variable "a"-[GOOD] (assert (forall ((set0 String)) (=> (select s0 set0) (= 1 (str.len set0)))))+[GOOD] (declare-fun s0 () (Array Int Bool)) ; tracks user variable "a" [GOOD] ; --- constant tables --- [GOOD] ; --- skolemized tables --- [GOOD] ; --- arrays ---@@ -34,18 +33,16 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (s0))-[RECV] ((s0 (store (store (store (store ((as const (Array String Bool)) false) "o" true)- "l"- true)- "h"+[RECV] ((s0 (store (store (store (store ((as const (Array Int Bool)) false) 1 true) 3 true)+ 4 true)- "e"+ 2 true)))-[GOOD] (define-fun s3 () (Array String Bool) ((as const (Array String Bool)) false))+[GOOD] (define-fun s3 () (Array Int Bool) ((as const (Array Int Bool)) false)) [GOOD] (define-fun s4 () Bool (= s0 s3)) [SEND] (get-value (s4)) [RECV] ((s4 false))-[GOOD] (define-fun s5 () (Array String Bool) (complement s0))+[GOOD] (define-fun s5 () (Array Int Bool) (complement s0)) [GOOD] (define-fun s6 () Bool (= s5 s3)) [SEND] (get-value (s6)) [RECV] ((s6 false))@@ -53,5 +50,5 @@ *** Exit code: ExitSuccess FINAL:-({'e','h','l','o'},False,False)+({1,2,3,4},False,False) DONE!
SBVTestSuite/GoldFiles/set_full1.gold view
@@ -8,15 +8,14 @@ [GOOD] (set-option :pp.max_depth 4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295) [GOOD] (set-option :model.inline_def true )-[GOOD] (set-logic ALL) ; has sets, using catch-all.+[GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s1 () (Array String Bool) (store (store (store (store ((as const (Array String Bool)) false) (_ char #x6f) true) (_ char #x6c) true) (_ char #x68) true) (_ char #x65) true))+[GOOD] (define-fun s1 () (Array Int Bool) (store (store (store (store ((as const (Array Int Bool)) false) 4 true) 3 true) 2 true) 1 true)) [GOOD] ; --- skolem constants ----[GOOD] (declare-fun s0 () (Array String Bool)) ; tracks user variable "a"-[GOOD] (assert (forall ((set0 String)) (=> (select s0 set0) (= 1 (str.len set0)))))+[GOOD] (declare-fun s0 () (Array Int Bool)) ; tracks user variable "a" [GOOD] ; --- constant tables --- [GOOD] ; --- skolemized tables --- [GOOD] ; --- arrays ---@@ -34,18 +33,16 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (s0))-[RECV] ((s0 (store (store (store (store ((as const (Array String Bool)) false) "o" true)- "l"- true)- "h"+[RECV] ((s0 (store (store (store (store ((as const (Array Int Bool)) false) 1 true) 3 true)+ 4 true)- "e"+ 2 true)))-[GOOD] (define-fun s3 () (Array String Bool) ((as const (Array String Bool)) true))+[GOOD] (define-fun s3 () (Array Int Bool) ((as const (Array Int Bool)) true)) [GOOD] (define-fun s4 () Bool (= s0 s3)) [SEND] (get-value (s4)) [RECV] ((s4 false))-[GOOD] (define-fun s5 () (Array String Bool) (complement s0))+[GOOD] (define-fun s5 () (Array Int Bool) (complement s0)) [GOOD] (define-fun s6 () Bool (= s5 s3)) [SEND] (get-value (s6)) [RECV] ((s6 false))@@ -53,5 +50,5 @@ *** Exit code: ExitSuccess FINAL:-({'e','h','l','o'},False,False)+({1,2,3,4},False,False) DONE!
SBVTestSuite/GoldFiles/set_insert1.gold view
@@ -8,18 +8,16 @@ [GOOD] (set-option :pp.max_depth 4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295) [GOOD] (set-option :model.inline_def true )-[GOOD] (set-logic ALL) ; has sets, using catch-all.+[GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s2 () String (_ char #x65))-[GOOD] (define-fun s4 () (Array String Bool) (store (store (store (store ((as const (Array String Bool)) false) (_ char #x6f) true) (_ char #x6c) true) (_ char #x68) true) (_ char #x65) true))+[GOOD] (define-fun s2 () Int 2)+[GOOD] (define-fun s4 () (Array Int Bool) (store (store (store (store ((as const (Array Int Bool)) false) 4 true) 3 true) 2 true) 1 true)) [GOOD] ; --- skolem constants ----[GOOD] (declare-fun s0 () String) ; tracks user variable "a"-[GOOD] (assert (= 1 (str.len s0)))-[GOOD] (declare-fun s1 () (Array String Bool)) ; tracks user variable "b"-[GOOD] (assert (forall ((set0 String)) (=> (select s1 set0) (= 1 (str.len set0)))))+[GOOD] (declare-fun s0 () Int) ; tracks user variable "a"+[GOOD] (declare-fun s1 () (Array Int Bool)) ; tracks user variable "b" [GOOD] ; --- constant tables --- [GOOD] ; --- skolemized tables --- [GOOD] ; --- arrays ---@@ -39,37 +37,31 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (s0))-[RECV] ((s0 "e"))+[RECV] ((s0 2)) [SEND] (get-value (s1))-[RECV] ((s1 (store (store (store (store ((as const (Array String Bool)) false) "o" true)- "l"- true)- "h"+[RECV] ((s1 (store (store (store (store ((as const (Array Int Bool)) false) 1 true) 3 true)+ 4 true)- "e"+ 2 true)))-[GOOD] (define-fun s6 () (Array String Bool) (store s1 s0 true))+[GOOD] (define-fun s6 () (Array Int Bool) (store s1 s0 true)) [SEND] (get-value (s6))-[RECV] ((s6 (store (store (store (store ((as const (Array String Bool)) false) "o" true)- "l"- true)- "h"+[RECV] ((s6 (store (store (store (store ((as const (Array Int Bool)) false) 1 true) 3 true)+ 4 true)- "e"+ 2 true)))-[GOOD] (define-fun s7 () (Array String Bool) (complement s1))-[GOOD] (define-fun s8 () (Array String Bool) (store s7 s0 true))+[GOOD] (define-fun s7 () (Array Int Bool) (complement s1))+[GOOD] (define-fun s8 () (Array Int Bool) (store s7 s0 true)) [SEND] (get-value (s8))-[RECV] ((s8 (store (store (store (store ((as const (Array String Bool)) true) "o" false)- "l"- false)- "h"+[RECV] ((s8 (store (store (store (store ((as const (Array Int Bool)) true) 1 false) 3 false)+ 4 false)- "e"+ 2 true))) *** Solver : Z3 *** Exit code: ExitSuccess FINAL:-('e',{'e','h','l','o'},{'e','h','l','o'},U - {'h','l','o'})+(2,{1,2,3,4},{1,2,3,4},U - {1,3,4}) DONE!
SBVTestSuite/GoldFiles/set_intersect1.gold view
@@ -8,17 +8,15 @@ [GOOD] (set-option :pp.max_depth 4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295) [GOOD] (set-option :model.inline_def true )-[GOOD] (set-logic ALL) ; has sets, using catch-all.+[GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s2 () (Array String Bool) (store ((as const (Array String Bool)) false) (_ char #x61) true))+[GOOD] (define-fun s2 () (Array Int Bool) (store ((as const (Array Int Bool)) false) 0 true)) [GOOD] ; --- skolem constants ----[GOOD] (declare-fun s0 () (Array String Bool)) ; tracks user variable "a"-[GOOD] (assert (forall ((set0 String)) (=> (select s0 set0) (= 1 (str.len set0)))))-[GOOD] (declare-fun s1 () (Array String Bool)) ; tracks user variable "b"-[GOOD] (assert (forall ((set0 String)) (=> (select s1 set0) (= 1 (str.len set0)))))+[GOOD] (declare-fun s0 () (Array Int Bool)) ; tracks user variable "a"+[GOOD] (declare-fun s1 () (Array Int Bool)) ; tracks user variable "b" [GOOD] ; --- constant tables --- [GOOD] ; --- skolemized tables --- [GOOD] ; --- arrays ---@@ -38,26 +36,26 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (s0))-[RECV] ((s0 (store ((as const (Array String Bool)) false) "a" true)))+[RECV] ((s0 (store ((as const (Array Int Bool)) false) 0 true))) [SEND] (get-value (s1))-[RECV] ((s1 (store ((as const (Array String Bool)) false) "a" true)))-[GOOD] (define-fun s5 () (Array String Bool) (intersection s0 s1))+[RECV] ((s1 (store ((as const (Array Int Bool)) false) 0 true)))+[GOOD] (define-fun s5 () (Array Int Bool) (intersection s0 s1)) [SEND] (get-value (s5))-[RECV] ((s5 (store ((as const (Array String Bool)) false) "a" true)))-[GOOD] (define-fun s6 () (Array String Bool) (complement s1))-[GOOD] (define-fun s7 () (Array String Bool) (intersection s0 s6))+[RECV] ((s5 (store ((as const (Array Int Bool)) false) 0 true)))+[GOOD] (define-fun s6 () (Array Int Bool) (complement s1))+[GOOD] (define-fun s7 () (Array Int Bool) (intersection s0 s6)) [SEND] (get-value (s7))-[RECV] ((s7 ((as const (Array String Bool)) false)))-[GOOD] (define-fun s8 () (Array String Bool) (complement s0))-[GOOD] (define-fun s9 () (Array String Bool) (intersection s8 s1))+[RECV] ((s7 ((as const (Array Int Bool)) false)))+[GOOD] (define-fun s8 () (Array Int Bool) (complement s0))+[GOOD] (define-fun s9 () (Array Int Bool) (intersection s8 s1)) [SEND] (get-value (s9))-[RECV] ((s9 ((as const (Array String Bool)) false)))-[GOOD] (define-fun s10 () (Array String Bool) (intersection s8 s6))+[RECV] ((s9 ((as const (Array Int Bool)) false)))+[GOOD] (define-fun s10 () (Array Int Bool) (intersection s8 s6)) [SEND] (get-value (s10))-[RECV] ((s10 (store ((as const (Array String Bool)) true) "a" false)))+[RECV] ((s10 (store ((as const (Array Int Bool)) true) 0 false))) *** Solver : Z3 *** Exit code: ExitSuccess FINAL:-({'a'},{'a'},{'a'},{},{},U - {'a'})+({0},{0},{0},{},{},U - {0}) DONE!
SBVTestSuite/GoldFiles/set_member1.gold view
@@ -8,18 +8,16 @@ [GOOD] (set-option :pp.max_depth 4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295) [GOOD] (set-option :model.inline_def true )-[GOOD] (set-logic ALL) ; has sets, using catch-all.+[GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s2 () String (_ char #x65))-[GOOD] (define-fun s4 () (Array String Bool) (store (store (store (store ((as const (Array String Bool)) false) (_ char #x6f) true) (_ char #x6c) true) (_ char #x68) true) (_ char #x65) true))+[GOOD] (define-fun s2 () Int 2)+[GOOD] (define-fun s4 () (Array Int Bool) (store (store (store (store ((as const (Array Int Bool)) false) 4 true) 3 true) 2 true) 1 true)) [GOOD] ; --- skolem constants ----[GOOD] (declare-fun s0 () String) ; tracks user variable "a"-[GOOD] (assert (= 1 (str.len s0)))-[GOOD] (declare-fun s1 () (Array String Bool)) ; tracks user variable "b"-[GOOD] (assert (forall ((set0 String)) (=> (select s1 set0) (= 1 (str.len set0)))))+[GOOD] (declare-fun s0 () Int) ; tracks user variable "a"+[GOOD] (declare-fun s1 () (Array Int Bool)) ; tracks user variable "b" [GOOD] ; --- constant tables --- [GOOD] ; --- skolemized tables --- [GOOD] ; --- arrays ---@@ -39,19 +37,17 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (s0))-[RECV] ((s0 "e"))+[RECV] ((s0 2)) [SEND] (get-value (s1))-[RECV] ((s1 (store (store (store (store ((as const (Array String Bool)) false) "o" true)- "l"- true)- "h"+[RECV] ((s1 (store (store (store (store ((as const (Array Int Bool)) false) 1 true) 3 true)+ 4 true)- "e"+ 2 true))) [GOOD] (define-fun s6 () Bool (select s1 s0)) [SEND] (get-value (s6)) [RECV] ((s6 true))-[GOOD] (define-fun s7 () (Array String Bool) (complement s1))+[GOOD] (define-fun s7 () (Array Int Bool) (complement s1)) [GOOD] (define-fun s8 () Bool (select s7 s0)) [SEND] (get-value (s8)) [RECV] ((s8 false))@@ -59,5 +55,5 @@ *** Exit code: ExitSuccess FINAL:-('e',{'e','h','l','o'},True,False)+(2,{1,2,3,4},True,False) DONE!
SBVTestSuite/GoldFiles/set_notMember1.gold view
@@ -8,18 +8,16 @@ [GOOD] (set-option :pp.max_depth 4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295) [GOOD] (set-option :model.inline_def true )-[GOOD] (set-logic ALL) ; has sets, using catch-all.+[GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s2 () String (_ char #x65))-[GOOD] (define-fun s4 () (Array String Bool) (store (store (store (store ((as const (Array String Bool)) false) (_ char #x6f) true) (_ char #x6c) true) (_ char #x68) true) (_ char #x65) true))+[GOOD] (define-fun s2 () Int 2)+[GOOD] (define-fun s4 () (Array Int Bool) (store (store (store (store ((as const (Array Int Bool)) false) 4 true) 3 true) 2 true) 1 true)) [GOOD] ; --- skolem constants ----[GOOD] (declare-fun s0 () String) ; tracks user variable "a"-[GOOD] (assert (= 1 (str.len s0)))-[GOOD] (declare-fun s1 () (Array String Bool)) ; tracks user variable "b"-[GOOD] (assert (forall ((set0 String)) (=> (select s1 set0) (= 1 (str.len set0)))))+[GOOD] (declare-fun s0 () Int) ; tracks user variable "a"+[GOOD] (declare-fun s1 () (Array Int Bool)) ; tracks user variable "b" [GOOD] ; --- constant tables --- [GOOD] ; --- skolemized tables --- [GOOD] ; --- arrays ---@@ -39,20 +37,18 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (s0))-[RECV] ((s0 "e"))+[RECV] ((s0 2)) [SEND] (get-value (s1))-[RECV] ((s1 (store (store (store (store ((as const (Array String Bool)) false) "o" true)- "l"- true)- "h"+[RECV] ((s1 (store (store (store (store ((as const (Array Int Bool)) false) 1 true) 3 true)+ 4 true)- "e"+ 2 true))) [GOOD] (define-fun s6 () Bool (select s1 s0)) [GOOD] (define-fun s7 () Bool (not s6)) [SEND] (get-value (s7)) [RECV] ((s7 false))-[GOOD] (define-fun s8 () (Array String Bool) (complement s1))+[GOOD] (define-fun s8 () (Array Int Bool) (complement s1)) [GOOD] (define-fun s9 () Bool (select s8 s0)) [GOOD] (define-fun s10 () Bool (not s9)) [SEND] (get-value (s10))@@ -61,5 +57,5 @@ *** Exit code: ExitSuccess FINAL:-('e',{'e','h','l','o'},False,True)+(2,{1,2,3,4},False,True) DONE!
SBVTestSuite/GoldFiles/set_psubset1.gold view
@@ -8,17 +8,15 @@ [GOOD] (set-option :pp.max_depth 4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295) [GOOD] (set-option :model.inline_def true )-[GOOD] (set-logic ALL) ; has sets, using catch-all.+[GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s2 () (Array String Bool) (store ((as const (Array String Bool)) false) (_ char #x61) true))+[GOOD] (define-fun s2 () (Array Int Bool) (store ((as const (Array Int Bool)) false) 0 true)) [GOOD] ; --- skolem constants ----[GOOD] (declare-fun s0 () (Array String Bool)) ; tracks user variable "a"-[GOOD] (assert (forall ((set0 String)) (=> (select s0 set0) (= 1 (str.len set0)))))-[GOOD] (declare-fun s1 () (Array String Bool)) ; tracks user variable "b"-[GOOD] (assert (forall ((set0 String)) (=> (select s1 set0) (= 1 (str.len set0)))))+[GOOD] (declare-fun s0 () (Array Int Bool)) ; tracks user variable "a"+[GOOD] (declare-fun s1 () (Array Int Bool)) ; tracks user variable "b" [GOOD] ; --- constant tables --- [GOOD] ; --- skolemized tables --- [GOOD] ; --- arrays ---@@ -38,23 +36,23 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (s0))-[RECV] ((s0 (store ((as const (Array String Bool)) false) "a" true)))+[RECV] ((s0 (store ((as const (Array Int Bool)) false) 0 true))) [SEND] (get-value (s1))-[RECV] ((s1 (store ((as const (Array String Bool)) false) "a" true)))+[RECV] ((s1 (store ((as const (Array Int Bool)) false) 0 true))) [GOOD] (define-fun s5 () Bool (subset s0 s1)) [GOOD] (define-fun s6 () Bool (= s0 s1)) [GOOD] (define-fun s7 () Bool (not s6)) [GOOD] (define-fun s8 () Bool (and s5 s7)) [SEND] (get-value (s8)) [RECV] ((s8 false))-[GOOD] (define-fun s9 () (Array String Bool) (complement s1))+[GOOD] (define-fun s9 () (Array Int Bool) (complement s1)) [GOOD] (define-fun s10 () Bool (subset s0 s9)) [GOOD] (define-fun s11 () Bool (= s0 s9)) [GOOD] (define-fun s12 () Bool (not s11)) [GOOD] (define-fun s13 () Bool (and s10 s12)) [SEND] (get-value (s13)) [RECV] ((s13 false))-[GOOD] (define-fun s14 () (Array String Bool) (complement s0))+[GOOD] (define-fun s14 () (Array Int Bool) (complement s0)) [GOOD] (define-fun s15 () Bool (subset s14 s1)) [GOOD] (define-fun s16 () Bool (= s14 s1)) [GOOD] (define-fun s17 () Bool (not s16))@@ -71,5 +69,5 @@ *** Exit code: ExitSuccess FINAL:-({'a'},{'a'},False,False,False,False)+({0},{0},False,False,False,False) DONE!
SBVTestSuite/GoldFiles/set_subset1.gold view
@@ -8,17 +8,15 @@ [GOOD] (set-option :pp.max_depth 4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295) [GOOD] (set-option :model.inline_def true )-[GOOD] (set-logic ALL) ; has sets, using catch-all.+[GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s2 () (Array String Bool) (store ((as const (Array String Bool)) false) (_ char #x61) true))+[GOOD] (define-fun s2 () (Array Int Bool) (store ((as const (Array Int Bool)) false) 0 true)) [GOOD] ; --- skolem constants ----[GOOD] (declare-fun s0 () (Array String Bool)) ; tracks user variable "a"-[GOOD] (assert (forall ((set0 String)) (=> (select s0 set0) (= 1 (str.len set0)))))-[GOOD] (declare-fun s1 () (Array String Bool)) ; tracks user variable "b"-[GOOD] (assert (forall ((set0 String)) (=> (select s1 set0) (= 1 (str.len set0)))))+[GOOD] (declare-fun s0 () (Array Int Bool)) ; tracks user variable "a"+[GOOD] (declare-fun s1 () (Array Int Bool)) ; tracks user variable "b" [GOOD] ; --- constant tables --- [GOOD] ; --- skolemized tables --- [GOOD] ; --- arrays ---@@ -38,17 +36,17 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (s0))-[RECV] ((s0 (store ((as const (Array String Bool)) false) "a" true)))+[RECV] ((s0 (store ((as const (Array Int Bool)) false) 0 true))) [SEND] (get-value (s1))-[RECV] ((s1 (store ((as const (Array String Bool)) false) "a" true)))+[RECV] ((s1 (store ((as const (Array Int Bool)) false) 0 true))) [GOOD] (define-fun s5 () Bool (subset s0 s1)) [SEND] (get-value (s5)) [RECV] ((s5 true))-[GOOD] (define-fun s6 () (Array String Bool) (complement s1))+[GOOD] (define-fun s6 () (Array Int Bool) (complement s1)) [GOOD] (define-fun s7 () Bool (subset s0 s6)) [SEND] (get-value (s7)) [RECV] ((s7 false))-[GOOD] (define-fun s8 () (Array String Bool) (complement s0))+[GOOD] (define-fun s8 () (Array Int Bool) (complement s0)) [GOOD] (define-fun s9 () Bool (subset s8 s1)) [SEND] (get-value (s9)) [RECV] ((s9 false))@@ -59,5 +57,5 @@ *** Exit code: ExitSuccess FINAL:-({'a'},{'a'},True,False,False,True)+({0},{0},True,False,False,True) DONE!
SBVTestSuite/GoldFiles/set_tupleSet.gold view
@@ -36,11 +36,12 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (s0))-[RECV] ((s0 (mkSBVTuple2 (lambda ((x!1 Bool)) x!1) (lambda ((x!1 Bool)) (not x!1)))))+[RECV] ((s0 (mkSBVTuple2 (lambda ((x!1 Bool)) x!1)+ (store ((as const (Array Bool Bool)) false) false true)))) *** Solver : Z3 *** Exit code: ExitSuccess FINAL: Satisfiable. Model:- s0 = ({True},U - {True}) :: ({Bool}, {Bool})+ s0 = ({True},{False}) :: ({Bool}, {Bool}) DONE!
SBVTestSuite/GoldFiles/set_uninterp1.gold view
@@ -46,7 +46,7 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (s0))-[RECV] ((s0 (lambda ((x!1 E)) (= x!1 A))))+[RECV] ((s0 (store ((as const (Array E Bool)) false) A true))) [GOOD] (push 1) [GOOD] (define-fun s4 () (Array E Bool) (store ((as const (Array E Bool)) false) A true)) [GOOD] (define-fun s5 () Bool (= s0 s4))@@ -66,9 +66,9 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (s0))-[RECV] ((s0 (store (store ((as const (Array E Bool)) false) C true) B true)))+[RECV] ((s0 (store ((as const (Array E Bool)) false) B true))) [GOOD] (push 1)-[GOOD] (define-fun s10 () (Array E Bool) (store (store ((as const (Array E Bool)) false) C true) B true))+[GOOD] (define-fun s10 () (Array E Bool) (store ((as const (Array E Bool)) false) B true)) [GOOD] (define-fun s11 () Bool (= s0 s10)) [GOOD] (define-fun s12 () Bool (not s11)) [GOOD] (assert s12)@@ -76,9 +76,9 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (s0))-[RECV] ((s0 (lambda ((x!1 E)) (= x!1 B))))+[RECV] ((s0 (store ((as const (Array E Bool)) false) C true))) [GOOD] (push 1)-[GOOD] (define-fun s13 () (Array E Bool) (store ((as const (Array E Bool)) false) B true))+[GOOD] (define-fun s13 () (Array E Bool) (store ((as const (Array E Bool)) false) C true)) [GOOD] (define-fun s14 () Bool (= s0 s13)) [GOOD] (define-fun s15 () Bool (not s14)) [GOOD] (assert s15)@@ -86,9 +86,9 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (s0))-[RECV] ((s0 (store (store ((as const (Array E Bool)) false) C true) A true)))+[RECV] ((s0 (store (store ((as const (Array E Bool)) false) B true) C true))) [GOOD] (push 1)-[GOOD] (define-fun s16 () (Array E Bool) (store (store ((as const (Array E Bool)) false) C true) A true))+[GOOD] (define-fun s16 () (Array E Bool) (store (store ((as const (Array E Bool)) false) C true) B true)) [GOOD] (define-fun s17 () Bool (= s0 s16)) [GOOD] (define-fun s18 () Bool (not s17)) [GOOD] (assert s18)@@ -96,9 +96,9 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (s0))-[RECV] ((s0 (store (store (store ((as const (Array E Bool)) false) C true) B true) A true)))+[RECV] ((s0 (store (store ((as const (Array E Bool)) false) C true) A true))) [GOOD] (push 1)-[GOOD] (define-fun s19 () (Array E Bool) (store (store (store ((as const (Array E Bool)) false) C true) B true) A true))+[GOOD] (define-fun s19 () (Array E Bool) (store (store ((as const (Array E Bool)) false) C true) A true)) [GOOD] (define-fun s20 () Bool (= s0 s19)) [GOOD] (define-fun s21 () Bool (not s20)) [GOOD] (assert s21)@@ -106,9 +106,9 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (s0))-[RECV] ((s0 (lambda ((x!1 E)) (= x!1 C))))+[RECV] ((s0 (store (store (store ((as const (Array E Bool)) false) B true) C true) A true))) [GOOD] (push 1)-[GOOD] (define-fun s22 () (Array E Bool) (store ((as const (Array E Bool)) false) C true))+[GOOD] (define-fun s22 () (Array E Bool) (store (store (store ((as const (Array E Bool)) false) C true) B true) A true)) [GOOD] (define-fun s23 () Bool (= s0 s22)) [GOOD] (define-fun s24 () Bool (not s23)) [GOOD] (assert s24)@@ -128,15 +128,15 @@ FINAL: Solution #1:- s0 = {C} :: {E}-Solution #2: s0 = {A,B,C} :: {E}-Solution #3:+Solution #2: s0 = {A,C} :: {E}+Solution #3:+ s0 = {B,C} :: {E} Solution #4:- s0 = {B} :: {E}+ s0 = {C} :: {E} Solution #5:- s0 = {B,C} :: {E}+ s0 = {B} :: {E} Solution #6: s0 = {A,B} :: {E} Solution #7:
SBVTestSuite/GoldFiles/set_union1.gold view
@@ -8,17 +8,15 @@ [GOOD] (set-option :pp.max_depth 4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295) [GOOD] (set-option :model.inline_def true )-[GOOD] (set-logic ALL) ; has sets, using catch-all.+[GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s2 () (Array String Bool) (store ((as const (Array String Bool)) false) (_ char #x61) true))+[GOOD] (define-fun s2 () (Array Int Bool) (store ((as const (Array Int Bool)) false) 0 true)) [GOOD] ; --- skolem constants ----[GOOD] (declare-fun s0 () (Array String Bool)) ; tracks user variable "a"-[GOOD] (assert (forall ((set0 String)) (=> (select s0 set0) (= 1 (str.len set0)))))-[GOOD] (declare-fun s1 () (Array String Bool)) ; tracks user variable "b"-[GOOD] (assert (forall ((set0 String)) (=> (select s1 set0) (= 1 (str.len set0)))))+[GOOD] (declare-fun s0 () (Array Int Bool)) ; tracks user variable "a"+[GOOD] (declare-fun s1 () (Array Int Bool)) ; tracks user variable "b" [GOOD] ; --- constant tables --- [GOOD] ; --- skolemized tables --- [GOOD] ; --- arrays ---@@ -38,26 +36,26 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (s0))-[RECV] ((s0 (store ((as const (Array String Bool)) false) "a" true)))+[RECV] ((s0 (store ((as const (Array Int Bool)) false) 0 true))) [SEND] (get-value (s1))-[RECV] ((s1 (store ((as const (Array String Bool)) false) "a" true)))-[GOOD] (define-fun s5 () (Array String Bool) (union s0 s1))+[RECV] ((s1 (store ((as const (Array Int Bool)) false) 0 true)))+[GOOD] (define-fun s5 () (Array Int Bool) (union s0 s1)) [SEND] (get-value (s5))-[RECV] ((s5 (store ((as const (Array String Bool)) false) "a" true)))-[GOOD] (define-fun s6 () (Array String Bool) (complement s1))-[GOOD] (define-fun s7 () (Array String Bool) (union s0 s6))+[RECV] ((s5 (store ((as const (Array Int Bool)) false) 0 true)))+[GOOD] (define-fun s6 () (Array Int Bool) (complement s1))+[GOOD] (define-fun s7 () (Array Int Bool) (union s0 s6)) [SEND] (get-value (s7))-[RECV] ((s7 ((as const (Array String Bool)) true)))-[GOOD] (define-fun s8 () (Array String Bool) (complement s0))-[GOOD] (define-fun s9 () (Array String Bool) (union s8 s1))+[RECV] ((s7 ((as const (Array Int Bool)) true)))+[GOOD] (define-fun s8 () (Array Int Bool) (complement s0))+[GOOD] (define-fun s9 () (Array Int Bool) (union s8 s1)) [SEND] (get-value (s9))-[RECV] ((s9 ((as const (Array String Bool)) true)))-[GOOD] (define-fun s10 () (Array String Bool) (union s8 s6))+[RECV] ((s9 ((as const (Array Int Bool)) true)))+[GOOD] (define-fun s10 () (Array Int Bool) (union s8 s6)) [SEND] (get-value (s10))-[RECV] ((s10 (store ((as const (Array String Bool)) true) "a" false)))+[RECV] ((s10 (store ((as const (Array Int Bool)) true) 0 false))) *** Solver : Z3 *** Exit code: ExitSuccess FINAL:-({'a'},{'a'},{'a'},U,U,U - {'a'})+({0},{0},{0},U,U,U - {0}) DONE!
SBVTestSuite/GoldFiles/uiSat_test2.gold view
@@ -76,15 +76,7 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!1) x!2))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) true))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))+[RECV] ((q2 (store ((as const Array) false) false true true))) [GOOD] (define-fun q2_model4 ((x!0 Bool) (x!1 Bool)) Bool (ite (and (= x!0 false) (= x!1 true)) true false)@@ -99,18 +91,10 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!1 x!2) (and (not x!1) x!2)))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) true))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) true))+[RECV] ((q2 (store (store ((as const Array) false) false true true) true false true))) [GOOD] (define-fun q2_model5 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 true) (= x!1 false)) true (ite (and (= x!0 false) (= x!1 true)) true- (ite (and (= x!0 true) (= x!1 true)) true false)) ) [GOOD] (define-fun q2_model5_reject () Bool@@ -123,17 +107,9 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and x!1 x!2))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) true))+[RECV] ((q2 (store ((as const Array) false) true false true))) [GOOD] (define-fun q2_model6 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 true) (= x!1 true)) true+ (ite (and (= x!0 true) (= x!1 false)) true false) ) [GOOD] (define-fun q2_model6_reject () Bool@@ -146,18 +122,11 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and x!1 (not x!2)))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) true))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))+[RECV] ((q2 (store (store ((as const Array) false) true false true) true true true))) [GOOD] (define-fun q2_model7 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 true) (= x!1 true)) true (ite (and (= x!0 true) (= x!1 false)) true- false)+ false)) ) [GOOD] (define-fun q2_model7_reject () Bool (exists ((x!0 Bool) (x!1 Bool))@@ -169,19 +138,10 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!1 x!2) (and x!1 (not x!2))))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) true))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) true))+[RECV] ((q2 (store ((as const Array) false) true true true))) [GOOD] (define-fun q2_model8 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 true) (= x!1 false)) true (ite (and (= x!0 true) (= x!1 true)) true- false))+ false) ) [GOOD] (define-fun q2_model8_reject () Bool (exists ((x!0 Bool) (x!1 Bool))@@ -193,19 +153,11 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and (not x!1) x!2) (and x!1 (not x!2))))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) true))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) true))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))+[RECV] ((q2 (store (store ((as const Array) true) false false false) true false false))) [GOOD] (define-fun q2_model9 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 false) (= x!1 true)) true- (ite (and (= x!0 true) (= x!1 false)) true- false))+ (ite (and (= x!0 true) (= x!1 false)) false+ (ite (and (= x!0 false) (= x!1 false)) false+ true)) ) [GOOD] (define-fun q2_model9_reject () Bool (exists ((x!0 Bool) (x!1 Bool))@@ -217,20 +169,11 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool))- (or (and (not x!1) (not x!2)) (and x!1 (not x!2))))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) true))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) true))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))+[RECV] ((q2 (store (store ((as const Array) true) true false false) true true false))) [GOOD] (define-fun q2_model10 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 false) (= x!1 false)) true- (ite (and (= x!0 true) (= x!1 false)) true- false))+ (ite (and (= x!0 true) (= x!1 true)) false+ (ite (and (= x!0 true) (= x!1 false)) false+ true)) ) [GOOD] (define-fun q2_model10_reject () Bool (exists ((x!0 Bool) (x!1 Bool))@@ -242,9 +185,9 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (q2))-[RECV] ((q2 (store ((as const Array) true) false true false)))+[RECV] ((q2 (store ((as const Array) true) true false false))) [GOOD] (define-fun q2_model11 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 false) (= x!1 true)) false+ (ite (and (= x!0 true) (= x!1 false)) false true) ) [GOOD] (define-fun q2_model11_reject () Bool@@ -257,11 +200,10 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (q2))-[RECV] ((q2 (store (store ((as const Array) true) false true false) true false false)))+[RECV] ((q2 (store ((as const Array) true) true true false))) [GOOD] (define-fun q2_model12 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 true) (= x!1 false)) false- (ite (and (= x!0 false) (= x!1 true)) false- true))+ (ite (and (= x!0 true) (= x!1 true)) false+ true) ) [GOOD] (define-fun q2_model12_reject () Bool (exists ((x!0 Bool) (x!1 Bool))@@ -273,18 +215,11 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!1) (not x!2)))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) true))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))+[RECV] ((q2 (store (store ((as const Array) true) true false false) false true false))) [GOOD] (define-fun q2_model13 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 false) (= x!1 false)) true- false)+ (ite (and (= x!0 false) (= x!1 true)) false+ (ite (and (= x!0 true) (= x!1 false)) false+ true)) ) [GOOD] (define-fun q2_model13_reject () Bool (exists ((x!0 Bool) (x!1 Bool))@@ -296,20 +231,10 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool))- (or (and (not x!1) x!2) (and (not x!1) (not x!2))))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) true))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) true))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))+[RECV] ((q2 (store ((as const Array) false) false false true))) [GOOD] (define-fun q2_model14 ((x!0 Bool) (x!1 Bool)) Bool (ite (and (= x!0 false) (= x!1 false)) true- (ite (and (= x!0 false) (= x!1 true)) true- false))+ false) ) [GOOD] (define-fun q2_model14_reject () Bool (exists ((x!0 Bool) (x!1 Bool))@@ -321,10 +246,11 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (q2))-[RECV] ((q2 (store ((as const Array) true) true false false)))+[RECV] ((q2 (store (store ((as const Array) false) false false true) true false true))) [GOOD] (define-fun q2_model15 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 true) (= x!1 false)) false- true)+ (ite (and (= x!0 true) (= x!1 false)) true+ (ite (and (= x!0 false) (= x!1 false)) true+ false)) ) [GOOD] (define-fun q2_model15_reject () Bool (exists ((x!0 Bool) (x!1 Bool))@@ -336,9 +262,9 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (q2))-[RECV] ((q2 (store ((as const Array) true) true true false)))+[RECV] ((q2 (store ((as const Array) true) false true false))) [GOOD] (define-fun q2_model16 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 true) (= x!1 true)) false+ (ite (and (= x!0 false) (= x!1 true)) false true) ) [GOOD] (define-fun q2_model16_reject () Bool@@ -355,58 +281,58 @@ RESULT: Solution #1: q2 :: Bool -> Bool -> Bool- q2 True True = False- q2 _ _ = True + q2 False True = False+ q2 _ _ = True Solution #2: q2 :: Bool -> Bool -> Bool- q2 True False = False- q2 _ _ = True -Solution #3:- q2 :: Bool -> Bool -> Bool+ q2 True False = True q2 False False = True - q2 False True = True q2 _ _ = False-Solution #4:+Solution #3: q2 :: Bool -> Bool -> Bool q2 False False = True q2 _ _ = False-Solution #5:+Solution #4: q2 :: Bool -> Bool -> Bool- q2 True False = False q2 False True = False+ q2 True False = False q2 _ _ = True +Solution #5:+ q2 :: Bool -> Bool -> Bool+ q2 True True = False+ q2 _ _ = True Solution #6: q2 :: Bool -> Bool -> Bool- q2 False True = False- q2 _ _ = True + q2 True False = False+ q2 _ _ = True Solution #7: q2 :: Bool -> Bool -> Bool- q2 False False = True - q2 True False = True - q2 _ _ = False+ q2 True True = False+ q2 True False = False+ q2 _ _ = True Solution #8: q2 :: Bool -> Bool -> Bool- q2 False True = True - q2 True False = True - q2 _ _ = False+ q2 True False = False+ q2 False False = False+ q2 _ _ = True Solution #9: q2 :: Bool -> Bool -> Bool- q2 True False = True - q2 True True = True - q2 _ _ = False+ q2 True True = True + q2 _ _ = False Solution #10: q2 :: Bool -> Bool -> Bool+ q2 True True = True q2 True False = True q2 _ _ = False Solution #11: q2 :: Bool -> Bool -> Bool- q2 True True = True - q2 _ _ = False+ q2 True False = True + q2 _ _ = False Solution #12: q2 :: Bool -> Bool -> Bool- q2 False True = True - q2 True True = True - q2 _ _ = False+ q2 True False = True + q2 False True = True + q2 _ _ = False Solution #13: q2 :: Bool -> Bool -> Bool q2 False True = True
SBVTestSuite/GoldFiles/uiSat_test3.gold view
@@ -140,2386 +140,2150 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))-[SEND] (get-value (q2))-[RECV] ((q2 (store ((as const Array) true) false true false)))-[GOOD] (define-fun q1_model5 ((x!0 Bool)) Bool- (ite (and (= x!0 true)) true- false)- )-[GOOD] (define-fun q1_model5_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model5 x!0))))-[GOOD] (define-fun q2_model5 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 false) (= x!1 true)) false- true)- )-[GOOD] (define-fun q2_model5_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model5 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_5 () Bool - (or q1_model5_reject- q2_model5_reject- ))-[GOOD] (assert uiFunRejector_model_5)-Looking for solution 6-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!1) (not x!2)))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) true))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model6 ((x!0 Bool)) Bool- (ite (and (= x!0 true)) true- false)- )-[GOOD] (define-fun q1_model6_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model6 x!0))))-[GOOD] (define-fun q2_model6 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 false) (= x!1 false)) true- false)- )-[GOOD] (define-fun q2_model6_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model6 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_6 () Bool - (or q1_model6_reject- q2_model6_reject- ))-[GOOD] (assert uiFunRejector_model_6)-Looking for solution 7-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))-[SEND] (get-value (q2))-[RECV] ((q2 (store ((as const Array) true) true false false)))-[GOOD] (define-fun q1_model7 ((x!0 Bool)) Bool- (ite (and (= x!0 true)) true- false)- )-[GOOD] (define-fun q1_model7_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model7 x!0))))-[GOOD] (define-fun q2_model7 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 true) (= x!1 false)) false- true)- )-[GOOD] (define-fun q2_model7_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model7 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_7 () Bool - (or q1_model7_reject- q2_model7_reject- ))-[GOOD] (assert uiFunRejector_model_7)-Looking for solution 8-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))-[SEND] (get-value (q2))-[RECV] ((q2 (store (store ((as const Array) true) true false false) true true false)))-[GOOD] (define-fun q1_model8 ((x!0 Bool)) Bool- (ite (and (= x!0 true)) true- false)- )-[GOOD] (define-fun q1_model8_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model8 x!0))))-[GOOD] (define-fun q2_model8 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 true) (= x!1 true)) false- (ite (and (= x!0 true) (= x!1 false)) false- true))- )-[GOOD] (define-fun q2_model8_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model8 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_8 () Bool - (or q1_model8_reject- q2_model8_reject- ))-[GOOD] (assert uiFunRejector_model_8)-Looking for solution 9-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))-[SEND] (get-value (q2))-[RECV] ((q2 (store ((as const Array) true) true true false)))-[GOOD] (define-fun q1_model9 ((x!0 Bool)) Bool- (ite (and (= x!0 true)) true- false)- )-[GOOD] (define-fun q1_model9_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model9 x!0))))-[GOOD] (define-fun q2_model9 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 true) (= x!1 true)) false- true)- )-[GOOD] (define-fun q2_model9_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model9 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_9 () Bool - (or q1_model9_reject- q2_model9_reject- ))-[GOOD] (assert uiFunRejector_model_9)-Looking for solution 10-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))-[SEND] (get-value (q2))-[RECV] ((q2 ((as const Array) true)))-[GOOD] (define-fun q1_model10 ((x!0 Bool)) Bool- (ite (and (= x!0 true)) true- false)- )-[GOOD] (define-fun q1_model10_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model10 x!0))))-[GOOD] (define-fun q2_model10 ((x!0 Bool) (x!1 Bool)) Bool- true- )-[GOOD] (define-fun q2_model10_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model10 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_10 () Bool - (or q1_model10_reject- q2_model10_reject- ))-[GOOD] (assert uiFunRejector_model_10)-Looking for solution 11-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) false)))-[SEND] (get-value (q2))-[RECV] ((q2 (store ((as const Array) true) true false false)))-[GOOD] (define-fun q1_model11 ((x!0 Bool)) Bool- false- )-[GOOD] (define-fun q1_model11_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model11 x!0))))-[GOOD] (define-fun q2_model11 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 true) (= x!1 false)) false- true)- )-[GOOD] (define-fun q2_model11_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model11 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_11 () Bool - (or q1_model11_reject- q2_model11_reject- ))-[GOOD] (assert uiFunRejector_model_11)-Looking for solution 12-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) false)))-[SEND] (get-value (q2))-[RECV] ((q2 (store ((as const Array) true) true true false)))-[GOOD] (define-fun q1_model12 ((x!0 Bool)) Bool- false- )-[GOOD] (define-fun q1_model12_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model12 x!0))))-[GOOD] (define-fun q2_model12 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 true) (= x!1 true)) false- true)- )-[GOOD] (define-fun q2_model12_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model12 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_12 () Bool - (or q1_model12_reject- q2_model12_reject- ))-[GOOD] (assert uiFunRejector_model_12)-Looking for solution 13-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) false)))-[SEND] (get-value (q2))-[RECV] ((q2 (store (store ((as const Array) true) true true false) true false false)))-[GOOD] (define-fun q1_model13 ((x!0 Bool)) Bool- false- )-[GOOD] (define-fun q1_model13_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model13 x!0))))-[GOOD] (define-fun q2_model13 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 true) (= x!1 false)) false- (ite (and (= x!0 true) (= x!1 true)) false- true))- )-[GOOD] (define-fun q2_model13_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model13 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_13 () Bool - (or q1_model13_reject- q2_model13_reject- ))-[GOOD] (assert uiFunRejector_model_13)-Looking for solution 14-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) false)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool))- (or (and (not x!1) (not x!2)) (and x!1 (not x!2))))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) true))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) true))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model14 ((x!0 Bool)) Bool- false- )-[GOOD] (define-fun q1_model14_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model14 x!0))))-[GOOD] (define-fun q2_model14 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 false) (= x!1 false)) true- (ite (and (= x!0 true) (= x!1 false)) true- false))- )-[GOOD] (define-fun q2_model14_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model14 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_14 () Bool - (or q1_model14_reject- q2_model14_reject- ))-[GOOD] (assert uiFunRejector_model_14)-Looking for solution 15-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (store ((as const Array) true) true false)))-[SEND] (get-value (q2))-[RECV] ((q2 (store ((as const Array) true) false true false)))-[GOOD] (define-fun q1_model15 ((x!0 Bool)) Bool- (ite (and (= x!0 true)) false- true)- )-[GOOD] (define-fun q1_model15_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model15 x!0))))-[GOOD] (define-fun q2_model15 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 false) (= x!1 true)) false- true)- )-[GOOD] (define-fun q2_model15_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model15 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_15 () Bool - (or q1_model15_reject- q2_model15_reject- ))-[GOOD] (assert uiFunRejector_model_15)-Looking for solution 16-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) (not x!1))))-[SEND] (get-value (q2))-[RECV] ((q2 (store (store ((as const Array) true) false true false) true true false)))-[GOOD] (define-fun q1_model16 ((x!0 Bool)) Bool- (ite (and (= x!0 true)) false- true)- )-[GOOD] (define-fun q1_model16_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model16 x!0))))-[GOOD] (define-fun q2_model16 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 true) (= x!1 true)) false- (ite (and (= x!0 false) (= x!1 true)) false- true))- )-[GOOD] (define-fun q2_model16_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model16 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_16 () Bool - (or q1_model16_reject- q2_model16_reject- ))-[GOOD] (assert uiFunRejector_model_16)-Looking for solution 17-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) true)))-[SEND] (get-value (q2))-[RECV] ((q2 (store ((as const Array) true) false true false)))-[GOOD] (define-fun q1_model17 ((x!0 Bool)) Bool- true- )-[GOOD] (define-fun q1_model17_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model17 x!0))))-[GOOD] (define-fun q2_model17 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 false) (= x!1 true)) false- true)- )-[GOOD] (define-fun q2_model17_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model17 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_17 () Bool - (or q1_model17_reject- q2_model17_reject- ))-[GOOD] (assert uiFunRejector_model_17)-Looking for solution 18-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) true)))-[SEND] (get-value (q2))-[RECV] ((q2 (store (store ((as const Array) true) false true false) true true false)))-[GOOD] (define-fun q1_model18 ((x!0 Bool)) Bool- true- )-[GOOD] (define-fun q1_model18_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model18 x!0))))-[GOOD] (define-fun q2_model18 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 true) (= x!1 true)) false- (ite (and (= x!0 false) (= x!1 true)) false- true))- )-[GOOD] (define-fun q2_model18_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model18 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_18 () Bool - (or q1_model18_reject- q2_model18_reject- ))-[GOOD] (assert uiFunRejector_model_18)-Looking for solution 19-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool))- (or (and (not x!1) (not x!2)) (and x!1 (not x!2))))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) true))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) true))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model19 ((x!0 Bool)) Bool- (ite (and (= x!0 true)) true- false)- )-[GOOD] (define-fun q1_model19_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model19 x!0))))-[GOOD] (define-fun q2_model19 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 false) (= x!1 false)) true- (ite (and (= x!0 true) (= x!1 false)) true- false))- )-[GOOD] (define-fun q2_model19_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model19 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_19 () Bool - (or q1_model19_reject- q2_model19_reject- ))-[GOOD] (assert uiFunRejector_model_19)-Looking for solution 20-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))-[SEND] (get-value (q2))-[RECV] ((q2 (store (store ((as const Array) true) true false false) false true false)))-[GOOD] (define-fun q1_model20 ((x!0 Bool)) Bool- (ite (and (= x!0 true)) true- false)- )-[GOOD] (define-fun q1_model20_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model20 x!0))))-[GOOD] (define-fun q2_model20 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 false) (= x!1 true)) false- (ite (and (= x!0 true) (= x!1 false)) false- true))- )-[GOOD] (define-fun q2_model20_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model20 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_20 () Bool - (or q1_model20_reject- q2_model20_reject- ))-[GOOD] (assert uiFunRejector_model_20)-Looking for solution 21-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) false)))-[SEND] (get-value (q2))-[RECV] ((q2 (store (store ((as const Array) true) false true false) true false false)))-[GOOD] (define-fun q1_model21 ((x!0 Bool)) Bool- false- )-[GOOD] (define-fun q1_model21_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model21 x!0))))-[GOOD] (define-fun q2_model21 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 true) (= x!1 false)) false- (ite (and (= x!0 false) (= x!1 true)) false- true))- )-[GOOD] (define-fun q2_model21_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model21 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_21 () Bool - (or q1_model21_reject- q2_model21_reject- ))-[GOOD] (assert uiFunRejector_model_21)-Looking for solution 22-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (store ((as const Array) true) true false)))-[SEND] (get-value (q2))-[RECV] ((q2 (store (store ((as const Array) true) false true false) true false false)))-[GOOD] (define-fun q1_model22 ((x!0 Bool)) Bool- (ite (and (= x!0 true)) false- true)- )-[GOOD] (define-fun q1_model22_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model22 x!0))))-[GOOD] (define-fun q2_model22 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 true) (= x!1 false)) false- (ite (and (= x!0 false) (= x!1 true)) false- true))- )-[GOOD] (define-fun q2_model22_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model22 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_22 () Bool - (or q1_model22_reject- q2_model22_reject- ))-[GOOD] (assert uiFunRejector_model_22)-Looking for solution 23-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) true)))-[SEND] (get-value (q2))-[RECV] ((q2 (store (store ((as const Array) true) false true false) true false false)))-[GOOD] (define-fun q1_model23 ((x!0 Bool)) Bool- true- )-[GOOD] (define-fun q1_model23_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model23 x!0))))-[GOOD] (define-fun q2_model23 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 true) (= x!1 false)) false- (ite (and (= x!0 false) (= x!1 true)) false- true))- )-[GOOD] (define-fun q2_model23_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model23 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_23 () Bool - (or q1_model23_reject- q2_model23_reject- ))-[GOOD] (assert uiFunRejector_model_23)-Looking for solution 24-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (store ((as const Array) true) true false)))-[SEND] (get-value (q2))-[RECV] ((q2 (store ((as const Array) true) true false false)))-[GOOD] (define-fun q1_model24 ((x!0 Bool)) Bool- (ite (and (= x!0 true)) false- true)- )-[GOOD] (define-fun q1_model24_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model24 x!0))))-[GOOD] (define-fun q2_model24 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 true) (= x!1 false)) false- true)- )-[GOOD] (define-fun q2_model24_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model24 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_24 () Bool - (or q1_model24_reject- q2_model24_reject- ))-[GOOD] (assert uiFunRejector_model_24)-Looking for solution 25-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) true)))-[SEND] (get-value (q2))-[RECV] ((q2 (store ((as const Array) true) true false false)))-[GOOD] (define-fun q1_model25 ((x!0 Bool)) Bool- true- )-[GOOD] (define-fun q1_model25_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model25 x!0))))-[GOOD] (define-fun q2_model25 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 true) (= x!1 false)) false- true)- )-[GOOD] (define-fun q2_model25_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model25 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_25 () Bool - (or q1_model25_reject- q2_model25_reject- ))-[GOOD] (assert uiFunRejector_model_25)-Looking for solution 26-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (store ((as const Array) true) true false)))-[SEND] (get-value (q2))-[RECV] ((q2 ((as const Array) true)))-[GOOD] (define-fun q1_model26 ((x!0 Bool)) Bool- (ite (and (= x!0 true)) false- true)- )-[GOOD] (define-fun q1_model26_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model26 x!0))))-[GOOD] (define-fun q2_model26 ((x!0 Bool) (x!1 Bool)) Bool- true- )-[GOOD] (define-fun q2_model26_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model26 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_26 () Bool - (or q1_model26_reject- q2_model26_reject- ))-[GOOD] (assert uiFunRejector_model_26)-Looking for solution 27-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) true)))-[SEND] (get-value (q2))-[RECV] ((q2 ((as const Array) true)))-[GOOD] (define-fun q1_model27 ((x!0 Bool)) Bool- true- )-[GOOD] (define-fun q1_model27_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model27 x!0))))-[GOOD] (define-fun q2_model27 ((x!0 Bool) (x!1 Bool)) Bool- true- )-[GOOD] (define-fun q2_model27_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model27 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_27 () Bool - (or q1_model27_reject- q2_model27_reject- ))-[GOOD] (assert uiFunRejector_model_27)-Looking for solution 28-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (store ((as const Array) true) true false)))-[SEND] (get-value (q2))-[RECV] ((q2 (store ((as const Array) true) true true false)))-[GOOD] (define-fun q1_model28 ((x!0 Bool)) Bool- (ite (and (= x!0 true)) false- true)- )-[GOOD] (define-fun q1_model28_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model28 x!0))))-[GOOD] (define-fun q2_model28 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 true) (= x!1 true)) false- true)- )-[GOOD] (define-fun q2_model28_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model28 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_28 () Bool - (or q1_model28_reject- q2_model28_reject- ))-[GOOD] (assert uiFunRejector_model_28)-Looking for solution 29-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))-[SEND] (get-value (q2))-[RECV] ((q2 (store ((as const Array) true) false false false)))-[GOOD] (define-fun q1_model29 ((x!0 Bool)) Bool- (ite (and (= x!0 true)) true- false)- )-[GOOD] (define-fun q1_model29_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model29 x!0))))-[GOOD] (define-fun q2_model29 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 false) (= x!1 false)) false- true)- )-[GOOD] (define-fun q2_model29_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model29 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_29 () Bool - (or q1_model29_reject- q2_model29_reject- ))-[GOOD] (assert uiFunRejector_model_29)-Looking for solution 30-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and x!1 x!2))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) true))-[GOOD] (define-fun q1_model30 ((x!0 Bool)) Bool- (ite (and (= x!0 true)) true- false)- )-[GOOD] (define-fun q1_model30_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model30 x!0))))-[GOOD] (define-fun q2_model30 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 true) (= x!1 true)) true- false)- )-[GOOD] (define-fun q2_model30_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model30 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_30 () Bool - (or q1_model30_reject- q2_model30_reject- ))-[GOOD] (assert uiFunRejector_model_30)-Looking for solution 31-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!1 x!2) (and (not x!1) x!2)))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) true))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) true))-[GOOD] (define-fun q1_model31 ((x!0 Bool)) Bool- (ite (and (= x!0 true)) true- false)- )-[GOOD] (define-fun q1_model31_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model31 x!0))))-[GOOD] (define-fun q2_model31 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 false) (= x!1 true)) true- (ite (and (= x!0 true) (= x!1 true)) true- false))- )-[GOOD] (define-fun q2_model31_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model31 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_31 () Bool - (or q1_model31_reject- q2_model31_reject- ))-[GOOD] (assert uiFunRejector_model_31)-Looking for solution 32-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!1) x!2))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) true))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model32 ((x!0 Bool)) Bool- (ite (and (= x!0 true)) true- false)- )-[GOOD] (define-fun q1_model32_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model32 x!0))))-[GOOD] (define-fun q2_model32 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 false) (= x!1 true)) true- false)- )-[GOOD] (define-fun q2_model32_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model32 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_32 () Bool - (or q1_model32_reject- q2_model32_reject- ))-[GOOD] (assert uiFunRejector_model_32)-Looking for solution 33-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) false)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!1 x!2) (and (not x!1) x!2)))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) true))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) true))-[GOOD] (define-fun q1_model33 ((x!0 Bool)) Bool- false- )-[GOOD] (define-fun q1_model33_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model33 x!0))))-[GOOD] (define-fun q2_model33 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 false) (= x!1 true)) true- (ite (and (= x!0 true) (= x!1 true)) true- false))- )-[GOOD] (define-fun q2_model33_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model33 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_33 () Bool - (or q1_model33_reject- q2_model33_reject- ))-[GOOD] (assert uiFunRejector_model_33)-Looking for solution 34-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))-[SEND] (get-value (q2))-[RECV] ((q2 ((as const Array) false)))-[GOOD] (define-fun q1_model34 ((x!0 Bool)) Bool- (ite (and (= x!0 true)) true- false)- )-[GOOD] (define-fun q1_model34_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model34 x!0))))-[GOOD] (define-fun q2_model34 ((x!0 Bool) (x!1 Bool)) Bool- false- )-[GOOD] (define-fun q2_model34_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model34 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_34 () Bool - (or q1_model34_reject- q2_model34_reject- ))-[GOOD] (assert uiFunRejector_model_34)-Looking for solution 35-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) false)))-[SEND] (get-value (q2))-[RECV] ((q2 (store (store ((as const Array) true) false false false) true true false)))-[GOOD] (define-fun q1_model35 ((x!0 Bool)) Bool- false- )-[GOOD] (define-fun q1_model35_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model35 x!0))))-[GOOD] (define-fun q2_model35 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 true) (= x!1 true)) false- (ite (and (= x!0 false) (= x!1 false)) false- true))- )-[GOOD] (define-fun q2_model35_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model35 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_35 () Bool - (or q1_model35_reject- q2_model35_reject- ))-[GOOD] (assert uiFunRejector_model_35)-Looking for solution 36-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) false)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and x!1 (not x!2)))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) true))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model36 ((x!0 Bool)) Bool- false- )-[GOOD] (define-fun q1_model36_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model36 x!0))))-[GOOD] (define-fun q2_model36 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 true) (= x!1 false)) true- false)- )-[GOOD] (define-fun q2_model36_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model36 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_36 () Bool - (or q1_model36_reject- q2_model36_reject- ))-[GOOD] (assert uiFunRejector_model_36)-Looking for solution 37-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) false)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!1 x!2) (and x!1 (not x!2))))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) true))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) true))-[GOOD] (define-fun q1_model37 ((x!0 Bool)) Bool- false- )-[GOOD] (define-fun q1_model37_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model37 x!0))))-[GOOD] (define-fun q2_model37 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 true) (= x!1 false)) true- (ite (and (= x!0 true) (= x!1 true)) true- false))- )-[GOOD] (define-fun q2_model37_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model37 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_37 () Bool - (or q1_model37_reject- q2_model37_reject- ))-[GOOD] (assert uiFunRejector_model_37)-Looking for solution 38-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and x!1 (not x!2)))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) true))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model38 ((x!0 Bool)) Bool- (ite (and (= x!0 true)) true- false)- )-[GOOD] (define-fun q1_model38_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model38 x!0))))-[GOOD] (define-fun q2_model38 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 true) (= x!1 false)) true- false)- )-[GOOD] (define-fun q2_model38_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model38 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_38 () Bool - (or q1_model38_reject- q2_model38_reject- ))-[GOOD] (assert uiFunRejector_model_38)-Looking for solution 39-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!1 x!2) (and x!1 (not x!2))))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) true))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) true))-[GOOD] (define-fun q1_model39 ((x!0 Bool)) Bool- (ite (and (= x!0 true)) true- false)- )-[GOOD] (define-fun q1_model39_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model39 x!0))))-[GOOD] (define-fun q2_model39 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 true) (= x!1 false)) true- (ite (and (= x!0 true) (= x!1 true)) true- false))- )-[GOOD] (define-fun q2_model39_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model39 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_39 () Bool - (or q1_model39_reject- q2_model39_reject- ))-[GOOD] (assert uiFunRejector_model_39)-Looking for solution 40-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) false)))-[SEND] (get-value (q2))-[RECV] ((q2 (store ((as const Array) true) false false false)))-[GOOD] (define-fun q1_model40 ((x!0 Bool)) Bool- false- )-[GOOD] (define-fun q1_model40_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model40 x!0))))-[GOOD] (define-fun q2_model40 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 false) (= x!1 false)) false- true)- )-[GOOD] (define-fun q2_model40_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model40 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_40 () Bool - (or q1_model40_reject- q2_model40_reject- ))-[GOOD] (assert uiFunRejector_model_40)-Looking for solution 41-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))-[SEND] (get-value (q2))-[RECV] ((q2 (store (store ((as const Array) true) false false false) true true false)))-[GOOD] (define-fun q1_model41 ((x!0 Bool)) Bool- (ite (and (= x!0 true)) true- false)- )-[GOOD] (define-fun q1_model41_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model41 x!0))))-[GOOD] (define-fun q2_model41 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 true) (= x!1 true)) false- (ite (and (= x!0 false) (= x!1 false)) false- true))- )-[GOOD] (define-fun q2_model41_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model41 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_41 () Bool - (or q1_model41_reject- q2_model41_reject- ))-[GOOD] (assert uiFunRejector_model_41)-Looking for solution 42-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) (not x!1))))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool))- (or (and (not x!1) (not x!2)) (and (not x!1) x!2)))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) true))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) true))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model42 ((x!0 Bool)) Bool- (ite (and (= x!0 true)) false- true)- )-[GOOD] (define-fun q1_model42_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model42 x!0))))-[GOOD] (define-fun q2_model42 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 false) (= x!1 false)) true- (ite (and (= x!0 false) (= x!1 true)) true- false))- )-[GOOD] (define-fun q2_model42_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model42 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_42 () Bool - (or q1_model42_reject- q2_model42_reject- ))-[GOOD] (assert uiFunRejector_model_42)-Looking for solution 43-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) false)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and x!1 x!2))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) true))-[GOOD] (define-fun q1_model43 ((x!0 Bool)) Bool- false- )-[GOOD] (define-fun q1_model43_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model43 x!0))))-[GOOD] (define-fun q2_model43 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 true) (= x!1 true)) true- false)- )-[GOOD] (define-fun q2_model43_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model43 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_43 () Bool - (or q1_model43_reject- q2_model43_reject- ))-[GOOD] (assert uiFunRejector_model_43)-Looking for solution 44-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) (not x!1))))-[SEND] (get-value (q2))-[RECV] ((q2 ((as const Array) false)))-[GOOD] (define-fun q1_model44 ((x!0 Bool)) Bool- (ite (and (= x!0 true)) false- true)- )-[GOOD] (define-fun q1_model44_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model44 x!0))))-[GOOD] (define-fun q2_model44 ((x!0 Bool) (x!1 Bool)) Bool- false- )-[GOOD] (define-fun q2_model44_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model44 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_44 () Bool - (or q1_model44_reject- q2_model44_reject- ))-[GOOD] (assert uiFunRejector_model_44)-Looking for solution 45-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) (not x!1))))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and x!1 (not x!2)))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) true))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model45 ((x!0 Bool)) Bool- (ite (and (= x!0 true)) false- true)- )-[GOOD] (define-fun q1_model45_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model45 x!0))))-[GOOD] (define-fun q2_model45 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 true) (= x!1 false)) true- false)- )-[GOOD] (define-fun q2_model45_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model45 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_45 () Bool - (or q1_model45_reject- q2_model45_reject- ))-[GOOD] (assert uiFunRejector_model_45)-Looking for solution 46-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) (not x!1))))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and (not x!1) x!2) (and x!1 (not x!2))))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) true))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) true))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model46 ((x!0 Bool)) Bool- (ite (and (= x!0 true)) false- true)- )-[GOOD] (define-fun q1_model46_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model46 x!0))))-[GOOD] (define-fun q2_model46 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 false) (= x!1 true)) true- (ite (and (= x!0 true) (= x!1 false)) true- false))- )-[GOOD] (define-fun q2_model46_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model46 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_46 () Bool - (or q1_model46_reject- q2_model46_reject- ))-[GOOD] (assert uiFunRejector_model_46)-Looking for solution 47-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) (not x!1))))-[SEND] (get-value (q2))-[RECV] ((q2 (store ((as const Array) true) false false false)))-[GOOD] (define-fun q1_model47 ((x!0 Bool)) Bool- (ite (and (= x!0 true)) false- true)- )-[GOOD] (define-fun q1_model47_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model47 x!0))))-[GOOD] (define-fun q2_model47 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 false) (= x!1 false)) false- true)- )-[GOOD] (define-fun q2_model47_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model47 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_47 () Bool - (or q1_model47_reject- q2_model47_reject- ))-[GOOD] (assert uiFunRejector_model_47)-Looking for solution 48-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) true)))-[SEND] (get-value (q2))-[RECV] ((q2 (store ((as const Array) true) false false false)))-[GOOD] (define-fun q1_model48 ((x!0 Bool)) Bool- true- )-[GOOD] (define-fun q1_model48_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model48 x!0))))-[GOOD] (define-fun q2_model48 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 false) (= x!1 false)) false- true)- )-[GOOD] (define-fun q2_model48_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model48 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_48 () Bool - (or q1_model48_reject- q2_model48_reject- ))-[GOOD] (assert uiFunRejector_model_48)-Looking for solution 49-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) true)))-[SEND] (get-value (q2))-[RECV] ((q2 (store (store ((as const Array) true) false false false) false true false)))-[GOOD] (define-fun q1_model49 ((x!0 Bool)) Bool- true- )-[GOOD] (define-fun q1_model49_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model49 x!0))))-[GOOD] (define-fun q2_model49 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 false) (= x!1 true)) false- (ite (and (= x!0 false) (= x!1 false)) false- true))- )-[GOOD] (define-fun q2_model49_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model49 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_49 () Bool - (or q1_model49_reject- q2_model49_reject- ))-[GOOD] (assert uiFunRejector_model_49)-Looking for solution 50-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) true)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and x!1 x!2))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) true))-[GOOD] (define-fun q1_model50 ((x!0 Bool)) Bool- true- )-[GOOD] (define-fun q1_model50_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model50 x!0))))-[GOOD] (define-fun q2_model50 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 true) (= x!1 true)) true- false)- )-[GOOD] (define-fun q2_model50_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model50 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_50 () Bool - (or q1_model50_reject- q2_model50_reject- ))-[GOOD] (assert uiFunRejector_model_50)-Looking for solution 51-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (store ((as const Array) true) true false)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and x!1 x!2))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) true))-[GOOD] (define-fun q1_model51 ((x!0 Bool)) Bool- (ite (and (= x!0 true)) false- true)- )-[GOOD] (define-fun q1_model51_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model51 x!0))))-[GOOD] (define-fun q2_model51 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 true) (= x!1 true)) true- false)- )-[GOOD] (define-fun q2_model51_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model51 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_51 () Bool - (or q1_model51_reject- q2_model51_reject- ))-[GOOD] (assert uiFunRejector_model_51)-Looking for solution 52-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (store ((as const Array) true) true false)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!1 x!2) (and x!1 (not x!2))))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) true))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) true))-[GOOD] (define-fun q1_model52 ((x!0 Bool)) Bool- (ite (and (= x!0 true)) false- true)- )-[GOOD] (define-fun q1_model52_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model52 x!0))))-[GOOD] (define-fun q2_model52 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 true) (= x!1 false)) true- (ite (and (= x!0 true) (= x!1 true)) true- false))- )-[GOOD] (define-fun q2_model52_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model52 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_52 () Bool - (or q1_model52_reject- q2_model52_reject- ))-[GOOD] (assert uiFunRejector_model_52)-Looking for solution 53-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) false)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!1) x!2))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) true))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model53 ((x!0 Bool)) Bool- false- )-[GOOD] (define-fun q1_model53_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model53 x!0))))-[GOOD] (define-fun q2_model53 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 false) (= x!1 true)) true- false)- )-[GOOD] (define-fun q2_model53_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model53 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_53 () Bool - (or q1_model53_reject- q2_model53_reject- ))-[GOOD] (assert uiFunRejector_model_53)-Looking for solution 54-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (store ((as const Array) true) true false)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!1) x!2))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) true))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model54 ((x!0 Bool)) Bool- (ite (and (= x!0 true)) false- true)- )-[GOOD] (define-fun q1_model54_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model54 x!0))))-[GOOD] (define-fun q2_model54 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 false) (= x!1 true)) true- false)- )-[GOOD] (define-fun q2_model54_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model54 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_54 () Bool - (or q1_model54_reject- q2_model54_reject- ))-[GOOD] (assert uiFunRejector_model_54)-Looking for solution 55-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (store ((as const Array) true) true false)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!1 x!2) (and (not x!1) x!2)))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) true))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) true))-[GOOD] (define-fun q1_model55 ((x!0 Bool)) Bool- (ite (and (= x!0 true)) false- true)- )-[GOOD] (define-fun q1_model55_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model55 x!0))))-[GOOD] (define-fun q2_model55 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 false) (= x!1 true)) true- (ite (and (= x!0 true) (= x!1 true)) true- false))- )-[GOOD] (define-fun q2_model55_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model55 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_55 () Bool - (or q1_model55_reject- q2_model55_reject- ))-[GOOD] (assert uiFunRejector_model_55)-Looking for solution 56-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) true)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!1 x!2) (and (not x!1) x!2)))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) true))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) true))-[GOOD] (define-fun q1_model56 ((x!0 Bool)) Bool- true- )-[GOOD] (define-fun q1_model56_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model56 x!0))))-[GOOD] (define-fun q2_model56 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 false) (= x!1 true)) true- (ite (and (= x!0 true) (= x!1 true)) true- false))- )-[GOOD] (define-fun q2_model56_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model56 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_56 () Bool - (or q1_model56_reject- q2_model56_reject- ))-[GOOD] (assert uiFunRejector_model_56)-Looking for solution 57-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) true)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!1) x!2))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) true))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model57 ((x!0 Bool)) Bool- true- )-[GOOD] (define-fun q1_model57_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model57 x!0))))-[GOOD] (define-fun q2_model57 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 false) (= x!1 true)) true- false)- )-[GOOD] (define-fun q2_model57_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model57 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_57 () Bool - (or q1_model57_reject- q2_model57_reject- ))-[GOOD] (assert uiFunRejector_model_57)-Looking for solution 58-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) true)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and (not x!1) x!2) (and x!1 (not x!2))))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) true))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) true))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model58 ((x!0 Bool)) Bool- true- )-[GOOD] (define-fun q1_model58_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model58 x!0))))-[GOOD] (define-fun q2_model58 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 false) (= x!1 true)) true- (ite (and (= x!0 true) (= x!1 false)) true- false))- )-[GOOD] (define-fun q2_model58_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model58 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_58 () Bool - (or q1_model58_reject- q2_model58_reject- ))-[GOOD] (assert uiFunRejector_model_58)-Looking for solution 59-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) true)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and x!1 (not x!2)))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) true))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model59 ((x!0 Bool)) Bool- true- )-[GOOD] (define-fun q1_model59_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model59 x!0))))-[GOOD] (define-fun q2_model59 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 true) (= x!1 false)) true- false)- )-[GOOD] (define-fun q2_model59_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model59 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_59 () Bool - (or q1_model59_reject- q2_model59_reject- ))-[GOOD] (assert uiFunRejector_model_59)-Looking for solution 60-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) false)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!1) (not x!2)))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) true))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model60 ((x!0 Bool)) Bool- false- )-[GOOD] (define-fun q1_model60_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model60 x!0))))-[GOOD] (define-fun q2_model60 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 false) (= x!1 false)) true- false)- )-[GOOD] (define-fun q2_model60_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model60 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_60 () Bool - (or q1_model60_reject- q2_model60_reject- ))-[GOOD] (assert uiFunRejector_model_60)-Looking for solution 61-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) true)))-[SEND] (get-value (q2))-[RECV] ((q2 (store ((as const Array) true) true true false)))-[GOOD] (define-fun q1_model61 ((x!0 Bool)) Bool- true- )-[GOOD] (define-fun q1_model61_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model61 x!0))))-[GOOD] (define-fun q2_model61 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 true) (= x!1 true)) false- true)- )-[GOOD] (define-fun q2_model61_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model61 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_61 () Bool - (or q1_model61_reject- q2_model61_reject- ))-[GOOD] (assert uiFunRejector_model_61)-Looking for solution 62-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) true)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool))- (or (and (not x!1) (not x!2)) (and (not x!1) x!2)))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) true))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) true))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model62 ((x!0 Bool)) Bool- true- )-[GOOD] (define-fun q1_model62_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model62 x!0))))-[GOOD] (define-fun q2_model62 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 false) (= x!1 false)) true- (ite (and (= x!0 false) (= x!1 true)) true- false))- )-[GOOD] (define-fun q2_model62_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model62 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_62 () Bool - (or q1_model62_reject- q2_model62_reject- ))-[GOOD] (assert uiFunRejector_model_62)-Looking for solution 63-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (store ((as const Array) true) true false)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!1) (not x!2)))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) true))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model63 ((x!0 Bool)) Bool- (ite (and (= x!0 true)) false- true)- )-[GOOD] (define-fun q1_model63_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model63 x!0))))-[GOOD] (define-fun q2_model63 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 false) (= x!1 false)) true- false)- )-[GOOD] (define-fun q2_model63_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model63 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_63 () Bool - (or q1_model63_reject- q2_model63_reject- ))-[GOOD] (assert uiFunRejector_model_63)-Looking for solution 64-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) true)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!1) (not x!2)))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) true))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model64 ((x!0 Bool)) Bool- true- )-[GOOD] (define-fun q1_model64_reject () Bool- (exists ((x!0 Bool))- (distinct (q1 x!0)- (q1_model64 x!0))))-[GOOD] (define-fun q2_model64 ((x!0 Bool) (x!1 Bool)) Bool- (ite (and (= x!0 false) (= x!1 false)) true- false)- )-[GOOD] (define-fun q2_model64_reject () Bool- (exists ((x!0 Bool) (x!1 Bool))- (distinct (q2 x!0 x!1)- (q2_model64 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_64 () Bool - (or q1_model64_reject- q2_model64_reject- ))-[GOOD] (assert uiFunRejector_model_64)-Looking for solution 65-[SEND] (check-sat)-[RECV] unsat-*** Solver : Z3-*** Exit code: ExitSuccess--RESULT: Solution #1:- q1 :: Bool -> Bool- q1 _ = True-- q2 :: Bool -> Bool -> Bool- q2 False False = True - q2 _ _ = False-Solution #2:- q1 :: Bool -> Bool- q1 True = False- q1 _ = True -- q2 :: Bool -> Bool -> Bool- q2 False False = True - q2 _ _ = False-Solution #3:- q1 :: Bool -> Bool- q1 _ = True-- q2 :: Bool -> Bool -> Bool- q2 False False = True - q2 False True = True - q2 _ _ = False-Solution #4:- q1 :: Bool -> Bool- q1 _ = True-- q2 :: Bool -> Bool -> Bool- q2 True True = False- q2 _ _ = True -Solution #5:- q1 :: Bool -> Bool- q1 _ = False-- q2 :: Bool -> Bool -> Bool- q2 False False = True - q2 _ _ = False-Solution #6:- q1 :: Bool -> Bool- q1 _ = True-- q2 :: Bool -> Bool -> Bool- q2 True False = True - q2 _ _ = False-Solution #7:- q1 :: Bool -> Bool- q1 _ = True-- q2 :: Bool -> Bool -> Bool- q2 False True = True - q2 True False = True - q2 _ _ = False-Solution #8:- q1 :: Bool -> Bool- q1 _ = True-- q2 :: Bool -> Bool -> Bool- q2 False True = True - q2 _ _ = False-Solution #9:- q1 :: Bool -> Bool- q1 _ = True-- q2 :: Bool -> Bool -> Bool- q2 False True = True - q2 True True = True - q2 _ _ = False-Solution #10:- q1 :: Bool -> Bool- q1 True = False- q1 _ = True -- q2 :: Bool -> Bool -> Bool- q2 False True = True - q2 True True = True - q2 _ _ = False-Solution #11:- q1 :: Bool -> Bool- q1 True = False- q1 _ = True -- q2 :: Bool -> Bool -> Bool- q2 False True = True - q2 _ _ = False-Solution #12:- q1 :: Bool -> Bool- q1 _ = False-- q2 :: Bool -> Bool -> Bool- q2 False True = True - q2 _ _ = False-Solution #13:- q1 :: Bool -> Bool- q1 True = False- q1 _ = True -- q2 :: Bool -> Bool -> Bool- q2 True False = True - q2 True True = True - q2 _ _ = False-Solution #14:- q1 :: Bool -> Bool- q1 True = False- q1 _ = True -- q2 :: Bool -> Bool -> Bool- q2 True True = True - q2 _ _ = False-Solution #15:- q1 :: Bool -> Bool- q1 _ = True-- q2 :: Bool -> Bool -> Bool- q2 True True = True - q2 _ _ = False-Solution #16:- q1 :: Bool -> Bool- q1 _ = True-- q2 :: Bool -> Bool -> Bool- q2 False True = False- q2 False False = False- q2 _ _ = True -Solution #17:- q1 :: Bool -> Bool- q1 _ = True-- q2 :: Bool -> Bool -> Bool- q2 False False = False- q2 _ _ = True -Solution #18:- q1 :: Bool -> Bool- q1 True = False- q1 _ = True -- q2 :: Bool -> Bool -> Bool- q2 False False = False- q2 _ _ = True -Solution #19:- q1 :: Bool -> Bool- q1 True = False- q1 _ = True -- q2 :: Bool -> Bool -> Bool- q2 False True = True - q2 True False = True - q2 _ _ = False-Solution #20:- q1 :: Bool -> Bool- q1 True = False- q1 _ = True -- q2 :: Bool -> Bool -> Bool- q2 True False = True - q2 _ _ = False-Solution #21:- q1 :: Bool -> Bool- q1 True = False- q1 _ = True -- q2 :: Bool -> Bool -> Bool- q2 _ _ = False-Solution #22:- q1 :: Bool -> Bool- q1 _ = False-- q2 :: Bool -> Bool -> Bool- q2 True True = True - q2 _ _ = False-Solution #23:- q1 :: Bool -> Bool- q1 True = False- q1 _ = True -- q2 :: Bool -> Bool -> Bool- q2 False False = True - q2 False True = True - q2 _ _ = False-Solution #24:- q1 :: Bool -> Bool- q1 True = True - q1 _ = False-- q2 :: Bool -> Bool -> Bool- q2 True True = False- q2 False False = False- q2 _ _ = True -Solution #25:- q1 :: Bool -> Bool- q1 _ = False-- q2 :: Bool -> Bool -> Bool- q2 False False = False- q2 _ _ = True -Solution #26:- q1 :: Bool -> Bool- q1 True = True - q1 _ = False-- q2 :: Bool -> Bool -> Bool- q2 True False = True - q2 True True = True - q2 _ _ = False-Solution #27:- q1 :: Bool -> Bool- q1 True = True - q1 _ = False-- q2 :: Bool -> Bool -> Bool- q2 True False = True - q2 _ _ = False-Solution #28:- q1 :: Bool -> Bool- q1 _ = False-- q2 :: Bool -> Bool -> Bool- q2 True False = True - q2 True True = True - q2 _ _ = False-Solution #29:- q1 :: Bool -> Bool- q1 _ = False-- q2 :: Bool -> Bool -> Bool- q2 True False = True - q2 _ _ = False-Solution #30:- q1 :: Bool -> Bool- q1 _ = False-- q2 :: Bool -> Bool -> Bool- q2 True True = False- q2 False False = False- q2 _ _ = True -Solution #31:- q1 :: Bool -> Bool- q1 True = True - q1 _ = False-- q2 :: Bool -> Bool -> Bool- q2 _ _ = False-Solution #32:- q1 :: Bool -> Bool- q1 _ = False-- q2 :: Bool -> Bool -> Bool- q2 False True = True - q2 True True = True - q2 _ _ = False-Solution #33:- q1 :: Bool -> Bool- q1 True = True - q1 _ = False-- q2 :: Bool -> Bool -> Bool- q2 False True = True - q2 _ _ = False-Solution #34:- q1 :: Bool -> Bool- q1 True = True - q1 _ = False-- q2 :: Bool -> Bool -> Bool- q2 False True = True - q2 True True = True - q2 _ _ = False-Solution #35:- q1 :: Bool -> Bool- q1 True = True - q1 _ = False-- q2 :: Bool -> Bool -> Bool- q2 True True = True - q2 _ _ = False-Solution #36:- q1 :: Bool -> Bool- q1 True = True - q1 _ = False-- q2 :: Bool -> Bool -> Bool- q2 False False = False- q2 _ _ = True -Solution #37:- q1 :: Bool -> Bool- q1 True = False- q1 _ = True -- q2 :: Bool -> Bool -> Bool- q2 True True = False- q2 _ _ = True -Solution #38:- q1 :: Bool -> Bool- q1 _ = True-- q2 :: Bool -> Bool -> Bool- q2 _ _ = True-Solution #39:- q1 :: Bool -> Bool- q1 True = False- q1 _ = True -- q2 :: Bool -> Bool -> Bool- q2 _ _ = True-Solution #40:- q1 :: Bool -> Bool- q1 _ = True-- q2 :: Bool -> Bool -> Bool- q2 True False = False- q2 _ _ = True -Solution #41:- q1 :: Bool -> Bool- q1 True = False- q1 _ = True -- q2 :: Bool -> Bool -> Bool- q2 True False = False- q2 _ _ = True -Solution #42:- q1 :: Bool -> Bool- q1 _ = True-- q2 :: Bool -> Bool -> Bool- q2 True False = False- q2 False True = False- q2 _ _ = True -Solution #43:- q1 :: Bool -> Bool- q1 True = False- q1 _ = True -- q2 :: Bool -> Bool -> Bool- q2 True False = False- q2 False True = False- q2 _ _ = True -Solution #44:- q1 :: Bool -> Bool- q1 _ = False-- q2 :: Bool -> Bool -> Bool- q2 True False = False- q2 False True = False- q2 _ _ = True -Solution #45:- q1 :: Bool -> Bool- q1 True = True - q1 _ = False-- q2 :: Bool -> Bool -> Bool- q2 False True = False- q2 True False = False- q2 _ _ = True -Solution #46:- q1 :: Bool -> Bool- q1 True = True - q1 _ = False-- q2 :: Bool -> Bool -> Bool- q2 False False = True - q2 True False = True - q2 _ _ = False-Solution #47:- q1 :: Bool -> Bool- q1 _ = True-- q2 :: Bool -> Bool -> Bool- q2 True True = False- q2 False True = False- q2 _ _ = True -Solution #48:- q1 :: Bool -> Bool- q1 _ = True-- q2 :: Bool -> Bool -> Bool- q2 False True = False- q2 _ _ = True -Solution #49:- q1 :: Bool -> Bool- q1 True = False- q1 _ = True -- q2 :: Bool -> Bool -> Bool- q2 True True = False- q2 False True = False- q2 _ _ = True -Solution #50:- q1 :: Bool -> Bool- q1 True = False- q1 _ = True -- q2 :: Bool -> Bool -> Bool- q2 False True = False- q2 _ _ = True -Solution #51:- q1 :: Bool -> Bool- q1 _ = False-- q2 :: Bool -> Bool -> Bool- q2 False False = True - q2 True False = True - q2 _ _ = False-Solution #52:- q1 :: Bool -> Bool- q1 _ = False-- q2 :: Bool -> Bool -> Bool- q2 True False = False- q2 True True = False- q2 _ _ = True -Solution #53:- q1 :: Bool -> Bool- q1 _ = False-- q2 :: Bool -> Bool -> Bool- q2 True True = False- q2 _ _ = True -Solution #54:- q1 :: Bool -> Bool- q1 _ = False-- q2 :: Bool -> Bool -> Bool- q2 True False = False- q2 _ _ = True -Solution #55:- q1 :: Bool -> Bool- q1 True = True - q1 _ = False-- q2 :: Bool -> Bool -> Bool- q2 _ _ = True-Solution #56:- q1 :: Bool -> Bool- q1 True = True - q1 _ = False-- q2 :: Bool -> Bool -> Bool- q2 True True = False- q2 _ _ = True -Solution #57:- q1 :: Bool -> Bool- q1 True = True - q1 _ = False-- q2 :: Bool -> Bool -> Bool- q2 True True = False- q2 True False = False- q2 _ _ = True -Solution #58:- q1 :: Bool -> Bool- q1 True = True - q1 _ = False-- q2 :: Bool -> Bool -> Bool- q2 True False = False- q2 _ _ = True -Solution #59:- q1 :: Bool -> Bool- q1 True = True - q1 _ = False-- q2 :: Bool -> Bool -> Bool- q2 False False = True - q2 _ _ = False-Solution #60:- q1 :: Bool -> Bool- q1 True = True - q1 _ = False-- q2 :: Bool -> Bool -> Bool- q2 False True = False- q2 _ _ = True +[RECV] ((q1 ((as const Array) false)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) false) false false true)))+[GOOD] (define-fun q1_model5 ((x!0 Bool)) Bool+ false+ )+[GOOD] (define-fun q1_model5_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model5 x!0))))+[GOOD] (define-fun q2_model5 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 false) (= x!1 false)) true+ false)+ )+[GOOD] (define-fun q2_model5_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model5 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_5 () Bool + (or q1_model5_reject+ q2_model5_reject+ ))+[GOOD] (assert uiFunRejector_model_5)+Looking for solution 6+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) false) false false true)))+[GOOD] (define-fun q1_model6 ((x!0 Bool)) Bool+ (ite (and (= x!0 true)) true+ false)+ )+[GOOD] (define-fun q1_model6_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model6 x!0))))+[GOOD] (define-fun q2_model6 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 false) (= x!1 false)) true+ false)+ )+[GOOD] (define-fun q2_model6_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model6 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_6 () Bool + (or q1_model6_reject+ q2_model6_reject+ ))+[GOOD] (assert uiFunRejector_model_6)+Looking for solution 7+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) true) false true false)))+[GOOD] (define-fun q1_model7 ((x!0 Bool)) Bool+ (ite (and (= x!0 true)) true+ false)+ )+[GOOD] (define-fun q1_model7_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model7 x!0))))+[GOOD] (define-fun q2_model7 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 false) (= x!1 true)) false+ true)+ )+[GOOD] (define-fun q2_model7_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model7 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_7 () Bool + (or q1_model7_reject+ q2_model7_reject+ ))+[GOOD] (assert uiFunRejector_model_7)+Looking for solution 8+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) true) false true false) true true false)))+[GOOD] (define-fun q1_model8 ((x!0 Bool)) Bool+ (ite (and (= x!0 true)) true+ false)+ )+[GOOD] (define-fun q1_model8_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model8 x!0))))+[GOOD] (define-fun q2_model8 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 true) (= x!1 true)) false+ (ite (and (= x!0 false) (= x!1 true)) false+ true))+ )+[GOOD] (define-fun q2_model8_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model8 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_8 () Bool + (or q1_model8_reject+ q2_model8_reject+ ))+[GOOD] (assert uiFunRejector_model_8)+Looking for solution 9+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) true) true true false)))+[GOOD] (define-fun q1_model9 ((x!0 Bool)) Bool+ (ite (and (= x!0 true)) true+ false)+ )+[GOOD] (define-fun q1_model9_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model9 x!0))))+[GOOD] (define-fun q2_model9 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 true) (= x!1 true)) false+ true)+ )+[GOOD] (define-fun q2_model9_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model9 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_9 () Bool + (or q1_model9_reject+ q2_model9_reject+ ))+[GOOD] (assert uiFunRejector_model_9)+Looking for solution 10+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))+[SEND] (get-value (q2))+[RECV] ((q2 ((as const Array) true)))+[GOOD] (define-fun q1_model10 ((x!0 Bool)) Bool+ (ite (and (= x!0 true)) true+ false)+ )+[GOOD] (define-fun q1_model10_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model10 x!0))))+[GOOD] (define-fun q2_model10 ((x!0 Bool) (x!1 Bool)) Bool+ true+ )+[GOOD] (define-fun q2_model10_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model10 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_10 () Bool + (or q1_model10_reject+ q2_model10_reject+ ))+[GOOD] (assert uiFunRejector_model_10)+Looking for solution 11+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) true) true false false)))+[GOOD] (define-fun q1_model11 ((x!0 Bool)) Bool+ (ite (and (= x!0 true)) true+ false)+ )+[GOOD] (define-fun q1_model11_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model11 x!0))))+[GOOD] (define-fun q2_model11 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 true) (= x!1 false)) false+ true)+ )+[GOOD] (define-fun q2_model11_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model11 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_11 () Bool + (or q1_model11_reject+ q2_model11_reject+ ))+[GOOD] (assert uiFunRejector_model_11)+Looking for solution 12+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) true) true false false) false true false)))+[GOOD] (define-fun q1_model12 ((x!0 Bool)) Bool+ (ite (and (= x!0 true)) true+ false)+ )+[GOOD] (define-fun q1_model12_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model12 x!0))))+[GOOD] (define-fun q2_model12 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 false) (= x!1 true)) false+ (ite (and (= x!0 true) (= x!1 false)) false+ true))+ )+[GOOD] (define-fun q2_model12_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model12 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_12 () Bool + (or q1_model12_reject+ q2_model12_reject+ ))+[GOOD] (assert uiFunRejector_model_12)+Looking for solution 13+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) true)))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) true) true false false) false true false)))+[GOOD] (define-fun q1_model13 ((x!0 Bool)) Bool+ true+ )+[GOOD] (define-fun q1_model13_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model13 x!0))))+[GOOD] (define-fun q2_model13 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 false) (= x!1 true)) false+ (ite (and (= x!0 true) (= x!1 false)) false+ true))+ )+[GOOD] (define-fun q2_model13_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model13 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_13 () Bool + (or q1_model13_reject+ q2_model13_reject+ ))+[GOOD] (assert uiFunRejector_model_13)+Looking for solution 14+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) true)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) false) false false true)))+[GOOD] (define-fun q1_model14 ((x!0 Bool)) Bool+ true+ )+[GOOD] (define-fun q1_model14_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model14 x!0))))+[GOOD] (define-fun q2_model14 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 false) (= x!1 false)) true+ false)+ )+[GOOD] (define-fun q2_model14_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model14 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_14 () Bool + (or q1_model14_reject+ q2_model14_reject+ ))+[GOOD] (assert uiFunRejector_model_14)+Looking for solution 15+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) true)))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) false) false false true) true false true)))+[GOOD] (define-fun q1_model15 ((x!0 Bool)) Bool+ true+ )+[GOOD] (define-fun q1_model15_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model15 x!0))))+[GOOD] (define-fun q2_model15 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 true) (= x!1 false)) true+ (ite (and (= x!0 false) (= x!1 false)) true+ false))+ )+[GOOD] (define-fun q2_model15_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model15 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_15 () Bool + (or q1_model15_reject+ q2_model15_reject+ ))+[GOOD] (assert uiFunRejector_model_15)+Looking for solution 16+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (store ((as const Array) true) true false)))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) false) false false true) true false true)))+[GOOD] (define-fun q1_model16 ((x!0 Bool)) Bool+ (ite (and (= x!0 true)) false+ true)+ )+[GOOD] (define-fun q1_model16_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model16 x!0))))+[GOOD] (define-fun q2_model16 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 true) (= x!1 false)) true+ (ite (and (= x!0 false) (= x!1 false)) true+ false))+ )+[GOOD] (define-fun q2_model16_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model16 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_16 () Bool + (or q1_model16_reject+ q2_model16_reject+ ))+[GOOD] (assert uiFunRejector_model_16)+Looking for solution 17+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (store ((as const Array) true) true false)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) false) false false true)))+[GOOD] (define-fun q1_model17 ((x!0 Bool)) Bool+ (ite (and (= x!0 true)) false+ true)+ )+[GOOD] (define-fun q1_model17_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model17 x!0))))+[GOOD] (define-fun q2_model17 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 false) (= x!1 false)) true+ false)+ )+[GOOD] (define-fun q2_model17_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model17 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_17 () Bool + (or q1_model17_reject+ q2_model17_reject+ ))+[GOOD] (assert uiFunRejector_model_17)+Looking for solution 18+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (store ((as const Array) true) true false)))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) false) false false true) true true true)))+[GOOD] (define-fun q1_model18 ((x!0 Bool)) Bool+ (ite (and (= x!0 true)) false+ true)+ )+[GOOD] (define-fun q1_model18_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model18 x!0))))+[GOOD] (define-fun q2_model18 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 true) (= x!1 true)) true+ (ite (and (= x!0 false) (= x!1 false)) true+ false))+ )+[GOOD] (define-fun q2_model18_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model18 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_18 () Bool + (or q1_model18_reject+ q2_model18_reject+ ))+[GOOD] (assert uiFunRejector_model_18)+Looking for solution 19+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) false)))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) true) false true false) true false false)))+[GOOD] (define-fun q1_model19 ((x!0 Bool)) Bool+ false+ )+[GOOD] (define-fun q1_model19_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model19 x!0))))+[GOOD] (define-fun q2_model19 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 true) (= x!1 false)) false+ (ite (and (= x!0 false) (= x!1 true)) false+ true))+ )+[GOOD] (define-fun q2_model19_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model19 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_19 () Bool + (or q1_model19_reject+ q2_model19_reject+ ))+[GOOD] (assert uiFunRejector_model_19)+Looking for solution 20+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) false)))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) true) true true false) false true false)))+[GOOD] (define-fun q1_model20 ((x!0 Bool)) Bool+ false+ )+[GOOD] (define-fun q1_model20_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model20 x!0))))+[GOOD] (define-fun q2_model20 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 false) (= x!1 true)) false+ (ite (and (= x!0 true) (= x!1 true)) false+ true))+ )+[GOOD] (define-fun q2_model20_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model20 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_20 () Bool + (or q1_model20_reject+ q2_model20_reject+ ))+[GOOD] (assert uiFunRejector_model_20)+Looking for solution 21+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) true)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) true) false true false)))+[GOOD] (define-fun q1_model21 ((x!0 Bool)) Bool+ true+ )+[GOOD] (define-fun q1_model21_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model21 x!0))))+[GOOD] (define-fun q2_model21 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 false) (= x!1 true)) false+ true)+ )+[GOOD] (define-fun q2_model21_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model21 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_21 () Bool + (or q1_model21_reject+ q2_model21_reject+ ))+[GOOD] (assert uiFunRejector_model_21)+Looking for solution 22+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) true)))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) true) true true false) true false false)))+[GOOD] (define-fun q1_model22 ((x!0 Bool)) Bool+ true+ )+[GOOD] (define-fun q1_model22_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model22 x!0))))+[GOOD] (define-fun q2_model22 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 true) (= x!1 false)) false+ (ite (and (= x!0 true) (= x!1 true)) false+ true))+ )+[GOOD] (define-fun q2_model22_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model22 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_22 () Bool + (or q1_model22_reject+ q2_model22_reject+ ))+[GOOD] (assert uiFunRejector_model_22)+Looking for solution 23+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) true) true true false) true false false)))+[GOOD] (define-fun q1_model23 ((x!0 Bool)) Bool+ (ite (and (= x!0 true)) true+ false)+ )+[GOOD] (define-fun q1_model23_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model23 x!0))))+[GOOD] (define-fun q2_model23 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 true) (= x!1 false)) false+ (ite (and (= x!0 true) (= x!1 true)) false+ true))+ )+[GOOD] (define-fun q2_model23_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model23 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_23 () Bool + (or q1_model23_reject+ q2_model23_reject+ ))+[GOOD] (assert uiFunRejector_model_23)+Looking for solution 24+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) false)))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) true) true false false) true true false)))+[GOOD] (define-fun q1_model24 ((x!0 Bool)) Bool+ false+ )+[GOOD] (define-fun q1_model24_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model24 x!0))))+[GOOD] (define-fun q2_model24 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 true) (= x!1 true)) false+ (ite (and (= x!0 true) (= x!1 false)) false+ true))+ )+[GOOD] (define-fun q2_model24_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model24 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_24 () Bool + (or q1_model24_reject+ q2_model24_reject+ ))+[GOOD] (assert uiFunRejector_model_24)+Looking for solution 25+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) false)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) true) true false false)))+[GOOD] (define-fun q1_model25 ((x!0 Bool)) Bool+ false+ )+[GOOD] (define-fun q1_model25_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model25 x!0))))+[GOOD] (define-fun q2_model25 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 true) (= x!1 false)) false+ true)+ )+[GOOD] (define-fun q2_model25_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model25 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_25 () Bool + (or q1_model25_reject+ q2_model25_reject+ ))+[GOOD] (assert uiFunRejector_model_25)+Looking for solution 26+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (store ((as const Array) false) false true)))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) true) true false false) true true false)))+[GOOD] (define-fun q1_model26 ((x!0 Bool)) Bool+ (ite (and (= x!0 false)) true+ false)+ )+[GOOD] (define-fun q1_model26_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model26 x!0))))+[GOOD] (define-fun q2_model26 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 true) (= x!1 true)) false+ (ite (and (= x!0 true) (= x!1 false)) false+ true))+ )+[GOOD] (define-fun q2_model26_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model26 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_26 () Bool + (or q1_model26_reject+ q2_model26_reject+ ))+[GOOD] (assert uiFunRejector_model_26)+Looking for solution 27+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))+[SEND] (get-value (q2))+[RECV] ((q2 ((as const Array) false)))+[GOOD] (define-fun q1_model27 ((x!0 Bool)) Bool+ (ite (and (= x!0 true)) true+ false)+ )+[GOOD] (define-fun q1_model27_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model27 x!0))))+[GOOD] (define-fun q2_model27 ((x!0 Bool) (x!1 Bool)) Bool+ false+ )+[GOOD] (define-fun q2_model27_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model27 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_27 () Bool + (or q1_model27_reject+ q2_model27_reject+ ))+[GOOD] (assert uiFunRejector_model_27)+Looking for solution 28+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) true) false false false)))+[GOOD] (define-fun q1_model28 ((x!0 Bool)) Bool+ (ite (and (= x!0 true)) true+ false)+ )+[GOOD] (define-fun q1_model28_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model28 x!0))))+[GOOD] (define-fun q2_model28 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 false) (= x!1 false)) false+ true)+ )+[GOOD] (define-fun q2_model28_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model28 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_28 () Bool + (or q1_model28_reject+ q2_model28_reject+ ))+[GOOD] (assert uiFunRejector_model_28)+Looking for solution 29+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) false) false true true)))+[GOOD] (define-fun q1_model29 ((x!0 Bool)) Bool+ (ite (and (= x!0 true)) true+ false)+ )+[GOOD] (define-fun q1_model29_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model29 x!0))))+[GOOD] (define-fun q2_model29 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 false) (= x!1 true)) true+ false)+ )+[GOOD] (define-fun q2_model29_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model29 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_29 () Bool + (or q1_model29_reject+ q2_model29_reject+ ))+[GOOD] (assert uiFunRejector_model_29)+Looking for solution 30+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) false) false true true) true false true)))+[GOOD] (define-fun q1_model30 ((x!0 Bool)) Bool+ (ite (and (= x!0 true)) true+ false)+ )+[GOOD] (define-fun q1_model30_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model30 x!0))))+[GOOD] (define-fun q2_model30 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 true) (= x!1 false)) true+ (ite (and (= x!0 false) (= x!1 true)) true+ false))+ )+[GOOD] (define-fun q2_model30_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model30 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_30 () Bool + (or q1_model30_reject+ q2_model30_reject+ ))+[GOOD] (assert uiFunRejector_model_30)+Looking for solution 31+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) false) true true true)))+[GOOD] (define-fun q1_model31 ((x!0 Bool)) Bool+ (ite (and (= x!0 true)) true+ false)+ )+[GOOD] (define-fun q1_model31_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model31 x!0))))+[GOOD] (define-fun q2_model31 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 true) (= x!1 true)) true+ false)+ )+[GOOD] (define-fun q2_model31_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model31 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_31 () Bool + (or q1_model31_reject+ q2_model31_reject+ ))+[GOOD] (assert uiFunRejector_model_31)+Looking for solution 32+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) false) true false true)))+[GOOD] (define-fun q1_model32 ((x!0 Bool)) Bool+ (ite (and (= x!0 true)) true+ false)+ )+[GOOD] (define-fun q1_model32_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model32 x!0))))+[GOOD] (define-fun q2_model32 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 true) (= x!1 false)) true+ false)+ )+[GOOD] (define-fun q2_model32_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model32 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_32 () Bool + (or q1_model32_reject+ q2_model32_reject+ ))+[GOOD] (assert uiFunRejector_model_32)+Looking for solution 33+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) false)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) true) false false false)))+[GOOD] (define-fun q1_model33 ((x!0 Bool)) Bool+ false+ )+[GOOD] (define-fun q1_model33_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model33 x!0))))+[GOOD] (define-fun q2_model33 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 false) (= x!1 false)) false+ true)+ )+[GOOD] (define-fun q2_model33_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model33 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_33 () Bool + (or q1_model33_reject+ q2_model33_reject+ ))+[GOOD] (assert uiFunRejector_model_33)+Looking for solution 34+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) false)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) false) true false true)))+[GOOD] (define-fun q1_model34 ((x!0 Bool)) Bool+ false+ )+[GOOD] (define-fun q1_model34_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model34 x!0))))+[GOOD] (define-fun q2_model34 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 true) (= x!1 false)) true+ false)+ )+[GOOD] (define-fun q2_model34_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model34 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_34 () Bool + (or q1_model34_reject+ q2_model34_reject+ ))+[GOOD] (assert uiFunRejector_model_34)+Looking for solution 35+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) false)))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) false) true false true) true true true)))+[GOOD] (define-fun q1_model35 ((x!0 Bool)) Bool+ false+ )+[GOOD] (define-fun q1_model35_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model35 x!0))))+[GOOD] (define-fun q2_model35 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 true) (= x!1 true)) true+ (ite (and (= x!0 true) (= x!1 false)) true+ false))+ )+[GOOD] (define-fun q2_model35_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model35 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_35 () Bool + (or q1_model35_reject+ q2_model35_reject+ ))+[GOOD] (assert uiFunRejector_model_35)+Looking for solution 36+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) false) true false true) true true true)))+[GOOD] (define-fun q1_model36 ((x!0 Bool)) Bool+ (ite (and (= x!0 true)) true+ false)+ )+[GOOD] (define-fun q1_model36_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model36 x!0))))+[GOOD] (define-fun q2_model36 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 true) (= x!1 true)) true+ (ite (and (= x!0 true) (= x!1 false)) true+ false))+ )+[GOOD] (define-fun q2_model36_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model36 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_36 () Bool + (or q1_model36_reject+ q2_model36_reject+ ))+[GOOD] (assert uiFunRejector_model_36)+Looking for solution 37+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) false) true true true) false true true)))+[GOOD] (define-fun q1_model37 ((x!0 Bool)) Bool+ (ite (and (= x!0 true)) true+ false)+ )+[GOOD] (define-fun q1_model37_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model37 x!0))))+[GOOD] (define-fun q2_model37 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 false) (= x!1 true)) true+ (ite (and (= x!0 true) (= x!1 true)) true+ false))+ )+[GOOD] (define-fun q2_model37_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model37 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_37 () Bool + (or q1_model37_reject+ q2_model37_reject+ ))+[GOOD] (assert uiFunRejector_model_37)+Looking for solution 38+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) false)))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) false) true true true) false true true)))+[GOOD] (define-fun q1_model38 ((x!0 Bool)) Bool+ false+ )+[GOOD] (define-fun q1_model38_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model38 x!0))))+[GOOD] (define-fun q2_model38 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 false) (= x!1 true)) true+ (ite (and (= x!0 true) (= x!1 true)) true+ false))+ )+[GOOD] (define-fun q2_model38_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model38 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_38 () Bool + (or q1_model38_reject+ q2_model38_reject+ ))+[GOOD] (assert uiFunRejector_model_38)+Looking for solution 39+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) false)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) false) false true true)))+[GOOD] (define-fun q1_model39 ((x!0 Bool)) Bool+ false+ )+[GOOD] (define-fun q1_model39_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model39 x!0))))+[GOOD] (define-fun q2_model39 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 false) (= x!1 true)) true+ false)+ )+[GOOD] (define-fun q2_model39_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model39 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_39 () Bool + (or q1_model39_reject+ q2_model39_reject+ ))+[GOOD] (assert uiFunRejector_model_39)+Looking for solution 40+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (store ((as const Array) false) false true)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) false) false true true)))+[GOOD] (define-fun q1_model40 ((x!0 Bool)) Bool+ (ite (and (= x!0 false)) true+ false)+ )+[GOOD] (define-fun q1_model40_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model40 x!0))))+[GOOD] (define-fun q2_model40 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 false) (= x!1 true)) true+ false)+ )+[GOOD] (define-fun q2_model40_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model40 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_40 () Bool + (or q1_model40_reject+ q2_model40_reject+ ))+[GOOD] (assert uiFunRejector_model_40)+Looking for solution 41+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (store ((as const Array) false) false true)))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) false) false true true) true true true)))+[GOOD] (define-fun q1_model41 ((x!0 Bool)) Bool+ (ite (and (= x!0 false)) true+ false)+ )+[GOOD] (define-fun q1_model41_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model41 x!0))))+[GOOD] (define-fun q2_model41 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 true) (= x!1 true)) true+ (ite (and (= x!0 false) (= x!1 true)) true+ false))+ )+[GOOD] (define-fun q2_model41_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model41 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_41 () Bool + (or q1_model41_reject+ q2_model41_reject+ ))+[GOOD] (assert uiFunRejector_model_41)+Looking for solution 42+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) true)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) false) false true true)))+[GOOD] (define-fun q1_model42 ((x!0 Bool)) Bool+ true+ )+[GOOD] (define-fun q1_model42_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model42 x!0))))+[GOOD] (define-fun q2_model42 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 false) (= x!1 true)) true+ false)+ )+[GOOD] (define-fun q2_model42_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model42 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_42 () Bool + (or q1_model42_reject+ q2_model42_reject+ ))+[GOOD] (assert uiFunRejector_model_42)+Looking for solution 43+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) true)))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) false) false true true) true true true)))+[GOOD] (define-fun q1_model43 ((x!0 Bool)) Bool+ true+ )+[GOOD] (define-fun q1_model43_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model43 x!0))))+[GOOD] (define-fun q2_model43 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 true) (= x!1 true)) true+ (ite (and (= x!0 false) (= x!1 true)) true+ false))+ )+[GOOD] (define-fun q2_model43_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model43 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_43 () Bool + (or q1_model43_reject+ q2_model43_reject+ ))+[GOOD] (assert uiFunRejector_model_43)+Looking for solution 44+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) true)))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) true) false false false) true true false)))+[GOOD] (define-fun q1_model44 ((x!0 Bool)) Bool+ true+ )+[GOOD] (define-fun q1_model44_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model44 x!0))))+[GOOD] (define-fun q2_model44 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 true) (= x!1 true)) false+ (ite (and (= x!0 false) (= x!1 false)) false+ true))+ )+[GOOD] (define-fun q2_model44_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model44 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_44 () Bool + (or q1_model44_reject+ q2_model44_reject+ ))+[GOOD] (assert uiFunRejector_model_44)+Looking for solution 45+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) true)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) true) false false false)))+[GOOD] (define-fun q1_model45 ((x!0 Bool)) Bool+ true+ )+[GOOD] (define-fun q1_model45_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model45 x!0))))+[GOOD] (define-fun q2_model45 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 false) (= x!1 false)) false+ true)+ )+[GOOD] (define-fun q2_model45_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model45 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_45 () Bool + (or q1_model45_reject+ q2_model45_reject+ ))+[GOOD] (assert uiFunRejector_model_45)+Looking for solution 46+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) true)))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) true) false false false) false true false)))+[GOOD] (define-fun q1_model46 ((x!0 Bool)) Bool+ true+ )+[GOOD] (define-fun q1_model46_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model46 x!0))))+[GOOD] (define-fun q2_model46 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 false) (= x!1 true)) false+ (ite (and (= x!0 false) (= x!1 false)) false+ true))+ )+[GOOD] (define-fun q2_model46_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model46 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_46 () Bool + (or q1_model46_reject+ q2_model46_reject+ ))+[GOOD] (assert uiFunRejector_model_46)+Looking for solution 47+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) true)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) false) true false true)))+[GOOD] (define-fun q1_model47 ((x!0 Bool)) Bool+ true+ )+[GOOD] (define-fun q1_model47_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model47 x!0))))+[GOOD] (define-fun q2_model47 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 true) (= x!1 false)) true+ false)+ )+[GOOD] (define-fun q2_model47_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model47 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_47 () Bool + (or q1_model47_reject+ q2_model47_reject+ ))+[GOOD] (assert uiFunRejector_model_47)+Looking for solution 48+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) true)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) false) true true true)))+[GOOD] (define-fun q1_model48 ((x!0 Bool)) Bool+ true+ )+[GOOD] (define-fun q1_model48_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model48 x!0))))+[GOOD] (define-fun q2_model48 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 true) (= x!1 true)) true+ false)+ )+[GOOD] (define-fun q2_model48_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model48 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_48 () Bool + (or q1_model48_reject+ q2_model48_reject+ ))+[GOOD] (assert uiFunRejector_model_48)+Looking for solution 49+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) false)))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) false) false true true) true false true)))+[GOOD] (define-fun q1_model49 ((x!0 Bool)) Bool+ false+ )+[GOOD] (define-fun q1_model49_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model49 x!0))))+[GOOD] (define-fun q2_model49 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 true) (= x!1 false)) true+ (ite (and (= x!0 false) (= x!1 true)) true+ false))+ )+[GOOD] (define-fun q2_model49_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model49 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_49 () Bool + (or q1_model49_reject+ q2_model49_reject+ ))+[GOOD] (assert uiFunRejector_model_49)+Looking for solution 50+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (store ((as const Array) false) false true)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) false) true true true)))+[GOOD] (define-fun q1_model50 ((x!0 Bool)) Bool+ (ite (and (= x!0 false)) true+ false)+ )+[GOOD] (define-fun q1_model50_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model50 x!0))))+[GOOD] (define-fun q2_model50 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 true) (= x!1 true)) true+ false)+ )+[GOOD] (define-fun q2_model50_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model50 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_50 () Bool + (or q1_model50_reject+ q2_model50_reject+ ))+[GOOD] (assert uiFunRejector_model_50)+Looking for solution 51+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) false)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) false) true true true)))+[GOOD] (define-fun q1_model51 ((x!0 Bool)) Bool+ false+ )+[GOOD] (define-fun q1_model51_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model51 x!0))))+[GOOD] (define-fun q2_model51 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 true) (= x!1 true)) true+ false)+ )+[GOOD] (define-fun q2_model51_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model51 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_51 () Bool + (or q1_model51_reject+ q2_model51_reject+ ))+[GOOD] (assert uiFunRejector_model_51)+Looking for solution 52+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (store ((as const Array) false) false true)))+[SEND] (get-value (q2))+[RECV] ((q2 ((as const Array) false)))+[GOOD] (define-fun q1_model52 ((x!0 Bool)) Bool+ (ite (and (= x!0 false)) true+ false)+ )+[GOOD] (define-fun q1_model52_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model52 x!0))))+[GOOD] (define-fun q2_model52 ((x!0 Bool) (x!1 Bool)) Bool+ false+ )+[GOOD] (define-fun q2_model52_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model52 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_52 () Bool + (or q1_model52_reject+ q2_model52_reject+ ))+[GOOD] (assert uiFunRejector_model_52)+Looking for solution 53+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (store ((as const Array) true) true false)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) false) true false true)))+[GOOD] (define-fun q1_model53 ((x!0 Bool)) Bool+ (ite (and (= x!0 true)) false+ true)+ )+[GOOD] (define-fun q1_model53_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model53 x!0))))+[GOOD] (define-fun q2_model53 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 true) (= x!1 false)) true+ false)+ )+[GOOD] (define-fun q2_model53_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model53 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_53 () Bool + (or q1_model53_reject+ q2_model53_reject+ ))+[GOOD] (assert uiFunRejector_model_53)+Looking for solution 54+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (store ((as const Array) false) false true)))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) false) true false true) false true true)))+[GOOD] (define-fun q1_model54 ((x!0 Bool)) Bool+ (ite (and (= x!0 false)) true+ false)+ )+[GOOD] (define-fun q1_model54_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model54 x!0))))+[GOOD] (define-fun q2_model54 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 false) (= x!1 true)) true+ (ite (and (= x!0 true) (= x!1 false)) true+ false))+ )+[GOOD] (define-fun q2_model54_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model54 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_54 () Bool + (or q1_model54_reject+ q2_model54_reject+ ))+[GOOD] (assert uiFunRejector_model_54)+Looking for solution 55+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (store ((as const Array) true) true false)))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) false) true false true) true true true)))+[GOOD] (define-fun q1_model55 ((x!0 Bool)) Bool+ (ite (and (= x!0 true)) false+ true)+ )+[GOOD] (define-fun q1_model55_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model55 x!0))))+[GOOD] (define-fun q2_model55 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 true) (= x!1 true)) true+ (ite (and (= x!0 true) (= x!1 false)) true+ false))+ )+[GOOD] (define-fun q2_model55_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model55 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_55 () Bool + (or q1_model55_reject+ q2_model55_reject+ ))+[GOOD] (assert uiFunRejector_model_55)+Looking for solution 56+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (store ((as const Array) true) true false)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) true) false true false)))+[GOOD] (define-fun q1_model56 ((x!0 Bool)) Bool+ (ite (and (= x!0 true)) false+ true)+ )+[GOOD] (define-fun q1_model56_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model56 x!0))))+[GOOD] (define-fun q2_model56 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 false) (= x!1 true)) false+ true)+ )+[GOOD] (define-fun q2_model56_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model56 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_56 () Bool + (or q1_model56_reject+ q2_model56_reject+ ))+[GOOD] (assert uiFunRejector_model_56)+Looking for solution 57+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) true)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) true) true false false)))+[GOOD] (define-fun q1_model57 ((x!0 Bool)) Bool+ true+ )+[GOOD] (define-fun q1_model57_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model57 x!0))))+[GOOD] (define-fun q2_model57 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 true) (= x!1 false)) false+ true)+ )+[GOOD] (define-fun q2_model57_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model57 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_57 () Bool + (or q1_model57_reject+ q2_model57_reject+ ))+[GOOD] (assert uiFunRejector_model_57)+Looking for solution 58+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (store ((as const Array) true) true false)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) true) true false false)))+[GOOD] (define-fun q1_model58 ((x!0 Bool)) Bool+ (ite (and (= x!0 true)) false+ true)+ )+[GOOD] (define-fun q1_model58_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model58 x!0))))+[GOOD] (define-fun q2_model58 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 true) (= x!1 false)) false+ true)+ )+[GOOD] (define-fun q2_model58_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model58 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_58 () Bool + (or q1_model58_reject+ q2_model58_reject+ ))+[GOOD] (assert uiFunRejector_model_58)+Looking for solution 59+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (store ((as const Array) true) true false)))+[SEND] (get-value (q2))+[RECV] ((q2 ((as const Array) true)))+[GOOD] (define-fun q1_model59 ((x!0 Bool)) Bool+ (ite (and (= x!0 true)) false+ true)+ )+[GOOD] (define-fun q1_model59_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model59 x!0))))+[GOOD] (define-fun q2_model59 ((x!0 Bool) (x!1 Bool)) Bool+ true+ )+[GOOD] (define-fun q2_model59_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model59 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_59 () Bool + (or q1_model59_reject+ q2_model59_reject+ ))+[GOOD] (assert uiFunRejector_model_59)+Looking for solution 60+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) true)))+[SEND] (get-value (q2))+[RECV] ((q2 ((as const Array) true)))+[GOOD] (define-fun q1_model60 ((x!0 Bool)) Bool+ true+ )+[GOOD] (define-fun q1_model60_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model60 x!0))))+[GOOD] (define-fun q2_model60 ((x!0 Bool) (x!1 Bool)) Bool+ true+ )+[GOOD] (define-fun q2_model60_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model60 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_60 () Bool + (or q1_model60_reject+ q2_model60_reject+ ))+[GOOD] (assert uiFunRejector_model_60)+Looking for solution 61+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (store ((as const Array) true) true false)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) true) false false false)))+[GOOD] (define-fun q1_model61 ((x!0 Bool)) Bool+ (ite (and (= x!0 true)) false+ true)+ )+[GOOD] (define-fun q1_model61_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model61 x!0))))+[GOOD] (define-fun q2_model61 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 false) (= x!1 false)) false+ true)+ )+[GOOD] (define-fun q2_model61_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model61 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_61 () Bool + (or q1_model61_reject+ q2_model61_reject+ ))+[GOOD] (assert uiFunRejector_model_61)+Looking for solution 62+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) true)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) true) true true false)))+[GOOD] (define-fun q1_model62 ((x!0 Bool)) Bool+ true+ )+[GOOD] (define-fun q1_model62_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model62 x!0))))+[GOOD] (define-fun q2_model62 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 true) (= x!1 true)) false+ true)+ )+[GOOD] (define-fun q2_model62_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model62 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_62 () Bool + (or q1_model62_reject+ q2_model62_reject+ ))+[GOOD] (assert uiFunRejector_model_62)+Looking for solution 63+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) false)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) true) true true false)))+[GOOD] (define-fun q1_model63 ((x!0 Bool)) Bool+ false+ )+[GOOD] (define-fun q1_model63_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model63 x!0))))+[GOOD] (define-fun q2_model63 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 true) (= x!1 true)) false+ true)+ )+[GOOD] (define-fun q2_model63_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model63 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_63 () Bool + (or q1_model63_reject+ q2_model63_reject+ ))+[GOOD] (assert uiFunRejector_model_63)+Looking for solution 64+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (store ((as const Array) false) false true)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) true) true true false)))+[GOOD] (define-fun q1_model64 ((x!0 Bool)) Bool+ (ite (and (= x!0 false)) true+ false)+ )+[GOOD] (define-fun q1_model64_reject () Bool+ (exists ((x!0 Bool))+ (distinct (q1 x!0)+ (q1_model64 x!0))))+[GOOD] (define-fun q2_model64 ((x!0 Bool) (x!1 Bool)) Bool+ (ite (and (= x!0 true) (= x!1 true)) false+ true)+ )+[GOOD] (define-fun q2_model64_reject () Bool+ (exists ((x!0 Bool) (x!1 Bool))+ (distinct (q2 x!0 x!1)+ (q2_model64 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_64 () Bool + (or q1_model64_reject+ q2_model64_reject+ ))+[GOOD] (assert uiFunRejector_model_64)+Looking for solution 65+[SEND] (check-sat)+[RECV] unsat+*** Solver : Z3+*** Exit code: ExitSuccess++RESULT: Solution #1:+ q1 :: Bool -> Bool+ q1 False = True + q1 _ = False++ q2 :: Bool -> Bool -> Bool+ q2 True True = False+ q2 _ _ = True +Solution #2:+ q1 :: Bool -> Bool+ q1 _ = False++ q2 :: Bool -> Bool -> Bool+ q2 True True = False+ q2 _ _ = True +Solution #3:+ q1 :: Bool -> Bool+ q1 _ = True++ q2 :: Bool -> Bool -> Bool+ q2 True True = False+ q2 _ _ = True +Solution #4:+ q1 :: Bool -> Bool+ q1 True = False+ q1 _ = True ++ q2 :: Bool -> Bool -> Bool+ q2 False False = False+ q2 _ _ = True +Solution #5:+ q1 :: Bool -> Bool+ q1 _ = True++ q2 :: Bool -> Bool -> Bool+ q2 _ _ = True+Solution #6:+ q1 :: Bool -> Bool+ q1 True = False+ q1 _ = True ++ q2 :: Bool -> Bool -> Bool+ q2 _ _ = True+Solution #7:+ q1 :: Bool -> Bool+ q1 True = False+ q1 _ = True ++ q2 :: Bool -> Bool -> Bool+ q2 True False = False+ q2 _ _ = True +Solution #8:+ q1 :: Bool -> Bool+ q1 _ = True++ q2 :: Bool -> Bool -> Bool+ q2 True False = False+ q2 _ _ = True +Solution #9:+ q1 :: Bool -> Bool+ q1 True = False+ q1 _ = True ++ q2 :: Bool -> Bool -> Bool+ q2 False True = False+ q2 _ _ = True +Solution #10:+ q1 :: Bool -> Bool+ q1 True = False+ q1 _ = True ++ q2 :: Bool -> Bool -> Bool+ q2 True True = True + q2 True False = True + q2 _ _ = False+Solution #11:+ q1 :: Bool -> Bool+ q1 False = True + q1 _ = False++ q2 :: Bool -> Bool -> Bool+ q2 False True = True + q2 True False = True + q2 _ _ = False+Solution #12:+ q1 :: Bool -> Bool+ q1 True = False+ q1 _ = True ++ q2 :: Bool -> Bool -> Bool+ q2 True False = True + q2 _ _ = False+Solution #13:+ q1 :: Bool -> Bool+ q1 False = True + q1 _ = False++ q2 :: Bool -> Bool -> Bool+ q2 _ _ = False+Solution #14:+ q1 :: Bool -> Bool+ q1 _ = False++ q2 :: Bool -> Bool -> Bool+ q2 True True = True + q2 _ _ = False+Solution #15:+ q1 :: Bool -> Bool+ q1 False = True + q1 _ = False++ q2 :: Bool -> Bool -> Bool+ q2 True True = True + q2 _ _ = False+Solution #16:+ q1 :: Bool -> Bool+ q1 _ = False++ q2 :: Bool -> Bool -> Bool+ q2 True False = True + q2 False True = True + q2 _ _ = False+Solution #17:+ q1 :: Bool -> Bool+ q1 _ = True++ q2 :: Bool -> Bool -> Bool+ q2 True True = True + q2 _ _ = False+Solution #18:+ q1 :: Bool -> Bool+ q1 _ = True++ q2 :: Bool -> Bool -> Bool+ q2 True False = True + q2 _ _ = False+Solution #19:+ q1 :: Bool -> Bool+ q1 _ = True++ q2 :: Bool -> Bool -> Bool+ q2 False True = False+ q2 False False = False+ q2 _ _ = True +Solution #20:+ q1 :: Bool -> Bool+ q1 _ = True++ q2 :: Bool -> Bool -> Bool+ q2 False False = False+ q2 _ _ = True +Solution #21:+ q1 :: Bool -> Bool+ q1 _ = True++ q2 :: Bool -> Bool -> Bool+ q2 True True = False+ q2 False False = False+ q2 _ _ = True +Solution #22:+ q1 :: Bool -> Bool+ q1 _ = True++ q2 :: Bool -> Bool -> Bool+ q2 True True = True + q2 False True = True + q2 _ _ = False+Solution #23:+ q1 :: Bool -> Bool+ q1 _ = True++ q2 :: Bool -> Bool -> Bool+ q2 False True = True + q2 _ _ = False+Solution #24:+ q1 :: Bool -> Bool+ q1 False = True + q1 _ = False++ q2 :: Bool -> Bool -> Bool+ q2 True True = True + q2 False True = True + q2 _ _ = False+Solution #25:+ q1 :: Bool -> Bool+ q1 False = True + q1 _ = False++ q2 :: Bool -> Bool -> Bool+ q2 False True = True + q2 _ _ = False+Solution #26:+ q1 :: Bool -> Bool+ q1 _ = False++ q2 :: Bool -> Bool -> Bool+ q2 False True = True + q2 _ _ = False+Solution #27:+ q1 :: Bool -> Bool+ q1 _ = False++ q2 :: Bool -> Bool -> Bool+ q2 False True = True + q2 True True = True + q2 _ _ = False+Solution #28:+ q1 :: Bool -> Bool+ q1 True = True + q1 _ = False++ q2 :: Bool -> Bool -> Bool+ q2 False True = True + q2 True True = True + q2 _ _ = False+Solution #29:+ q1 :: Bool -> Bool+ q1 True = True + q1 _ = False++ q2 :: Bool -> Bool -> Bool+ q2 True True = True + q2 True False = True + q2 _ _ = False+Solution #30:+ q1 :: Bool -> Bool+ q1 _ = False++ q2 :: Bool -> Bool -> Bool+ q2 True True = True + q2 True False = True + q2 _ _ = False+Solution #31:+ q1 :: Bool -> Bool+ q1 _ = False++ q2 :: Bool -> Bool -> Bool+ q2 True False = True + q2 _ _ = False+Solution #32:+ q1 :: Bool -> Bool+ q1 _ = False++ q2 :: Bool -> Bool -> Bool+ q2 False False = False+ q2 _ _ = True +Solution #33:+ q1 :: Bool -> Bool+ q1 True = True + q1 _ = False++ q2 :: Bool -> Bool -> Bool+ q2 True False = True + q2 _ _ = False+Solution #34:+ q1 :: Bool -> Bool+ q1 True = True + q1 _ = False++ q2 :: Bool -> Bool -> Bool+ q2 True True = True + q2 _ _ = False+Solution #35:+ q1 :: Bool -> Bool+ q1 True = True + q1 _ = False++ q2 :: Bool -> Bool -> Bool+ q2 True False = True + q2 False True = True + q2 _ _ = False+Solution #36:+ q1 :: Bool -> Bool+ q1 True = True + q1 _ = False++ q2 :: Bool -> Bool -> Bool+ q2 False True = True + q2 _ _ = False+Solution #37:+ q1 :: Bool -> Bool+ q1 True = True + q1 _ = False++ q2 :: Bool -> Bool -> Bool+ q2 False False = False+ q2 _ _ = True +Solution #38:+ q1 :: Bool -> Bool+ q1 True = True + q1 _ = False++ q2 :: Bool -> Bool -> Bool+ q2 _ _ = False+Solution #39:+ q1 :: Bool -> Bool+ q1 False = True + q1 _ = False++ q2 :: Bool -> Bool -> Bool+ q2 True True = False+ q2 True False = False+ q2 _ _ = True +Solution #40:+ q1 :: Bool -> Bool+ q1 _ = False++ q2 :: Bool -> Bool -> Bool+ q2 True False = False+ q2 _ _ = True +Solution #41:+ q1 :: Bool -> Bool+ q1 _ = False++ q2 :: Bool -> Bool -> Bool+ q2 True True = False+ q2 True False = False+ q2 _ _ = True +Solution #42:+ q1 :: Bool -> Bool+ q1 True = True + q1 _ = False++ q2 :: Bool -> Bool -> Bool+ q2 True False = False+ q2 True True = False+ q2 _ _ = True +Solution #43:+ q1 :: Bool -> Bool+ q1 _ = True++ q2 :: Bool -> Bool -> Bool+ q2 True False = False+ q2 True True = False+ q2 _ _ = True +Solution #44:+ q1 :: Bool -> Bool+ q1 _ = True++ q2 :: Bool -> Bool -> Bool+ q2 False True = False+ q2 _ _ = True +Solution #45:+ q1 :: Bool -> Bool+ q1 _ = False++ q2 :: Bool -> Bool -> Bool+ q2 False True = False+ q2 True True = False+ q2 _ _ = True +Solution #46:+ q1 :: Bool -> Bool+ q1 _ = False++ q2 :: Bool -> Bool -> Bool+ q2 True False = False+ q2 False True = False+ q2 _ _ = True +Solution #47:+ q1 :: Bool -> Bool+ q1 True = False+ q1 _ = True ++ q2 :: Bool -> Bool -> Bool+ q2 True True = True + q2 False False = True + q2 _ _ = False+Solution #48:+ q1 :: Bool -> Bool+ q1 True = False+ q1 _ = True ++ q2 :: Bool -> Bool -> Bool+ q2 False False = True + q2 _ _ = False+Solution #49:+ q1 :: Bool -> Bool+ q1 True = False+ q1 _ = True ++ q2 :: Bool -> Bool -> Bool+ q2 True False = True + q2 False False = True + q2 _ _ = False+Solution #50:+ q1 :: Bool -> Bool+ q1 _ = True++ q2 :: Bool -> Bool -> Bool+ q2 True False = True + q2 False False = True + q2 _ _ = False+Solution #51:+ q1 :: Bool -> Bool+ q1 _ = True++ q2 :: Bool -> Bool -> Bool+ q2 False False = True + q2 _ _ = False+Solution #52:+ q1 :: Bool -> Bool+ q1 _ = True++ q2 :: Bool -> Bool -> Bool+ q2 False True = False+ q2 True False = False+ q2 _ _ = True +Solution #53:+ q1 :: Bool -> Bool+ q1 True = True + q1 _ = False++ q2 :: Bool -> Bool -> Bool+ q2 False True = False+ q2 True False = False+ q2 _ _ = True +Solution #54:+ q1 :: Bool -> Bool+ q1 True = True + q1 _ = False++ q2 :: Bool -> Bool -> Bool+ q2 True False = False+ q2 _ _ = True +Solution #55:+ q1 :: Bool -> Bool+ q1 True = True + q1 _ = False++ q2 :: Bool -> Bool -> Bool+ q2 _ _ = True+Solution #56:+ q1 :: Bool -> Bool+ q1 True = True + q1 _ = False++ q2 :: Bool -> Bool -> Bool+ q2 True True = False+ q2 _ _ = True +Solution #57:+ q1 :: Bool -> Bool+ q1 True = True + q1 _ = False++ q2 :: Bool -> Bool -> Bool+ q2 True True = False+ q2 False True = False+ q2 _ _ = True +Solution #58:+ q1 :: Bool -> Bool+ q1 True = True + q1 _ = False++ q2 :: Bool -> Bool -> Bool+ q2 False True = False+ q2 _ _ = True +Solution #59:+ q1 :: Bool -> Bool+ q1 True = True + q1 _ = False++ q2 :: Bool -> Bool -> Bool+ q2 False False = True + q2 _ _ = False+Solution #60:+ q1 :: Bool -> Bool+ q1 _ = False++ q2 :: Bool -> Bool -> Bool+ q2 False False = True + q2 _ _ = False Solution #61: q1 :: Bool -> Bool q1 _ = False
SBVTestSuite/GoldFiles/validate_1.gold view
@@ -31,11 +31,11 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (s0))-[RECV] ((s0 (_ +zero 8 24)))+[RECV] ((s0 (fp #b0 #xfe #b11111111111111111111111))) *** Solver : Z3 *** Exit code: ExitSuccess [VALIDATE] Validating the model. Assignment:-[VALIDATE] x = 0.0 :: Float+[VALIDATE] x = 3.4028235e38 :: Float [VALIDATE] There are no constraints to check. [VALIDATE] Validating outputs. @@ -44,7 +44,7 @@ *** *** Assignment: *** -*** x = 0.0 :: Float+*** x = 3.4028235e38 :: Float *** *** Not all floating point operations are supported concretely. *** @@ -54,4 +54,4 @@ *** Alleged model: *** *** Satisfiable. Model:-*** x = 0.0 :: Float+*** x = 3.4028235e38 :: Float
SBVTestSuite/GoldFiles/validate_2.gold view
@@ -31,11 +31,11 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (s0))-[RECV] ((s0 (_ -zero 8 24)))+[RECV] ((s0 (fp #b1 #x00 #b10000000000000000000000))) *** Solver : Z3 *** Exit code: ExitSuccess [VALIDATE] Validating the model. Assignment:-[VALIDATE] x = -0.0 :: Float+[VALIDATE] x = -5.877472e-39 :: Float [VALIDATE] There are no constraints to check. [VALIDATE] Validating outputs. @@ -44,7 +44,7 @@ *** *** Assignment: *** -*** x = -0.0 :: Float+*** x = -5.877472e-39 :: Float *** *** Floating point FMA operation is not supported concretely. *** @@ -54,4 +54,4 @@ *** Alleged model: *** *** Satisfiable. Model:-*** x = -0.0 :: Float+*** x = -5.877472e-39 :: Float
SBVTestSuite/SBVConnectionTest.hs view
@@ -18,7 +18,7 @@ solverName = show . name . solver main :: IO ()-main = do let allSolvers = map (\s -> (solverName s, s)) [abc, boolector, cvc4, mathSAT, yices, z3, dReal]+main = do let allSolvers = map (\s -> (solverName s, s)) [abc, boolector, bitwuzla, cvc4, cvc5, mathSAT, yices, z3, dReal] args <- getArgs
SBVTestSuite/TestSuite/Arrays/Query.hs view
@@ -80,6 +80,7 @@ _ <- checkSat iv <- getValue i constrain $ j .== select [0 .. 255] 0 j+ constrain $ i .== literal iv constrain $ j .== i+1 _ <- checkSat jv <- getValue j
SBVTestSuite/TestSuite/Basics/Set.hs view
@@ -34,26 +34,17 @@ __unused :: SE __unused = error "stop GHC from complaining unused names" sA sB sC -type SC = SSet Char-type RC = RCSet Char+type SC = SSet Integer+type RC = RCSet Integer cSetAL :: SC-cSetAL = fromList "hello"--- cSetBL :: SC--- cSetBL = fromList "there"+cSetAL = fromList [1,2,3,3,4] -cCharA :: SChar-cCharA = literal 'e'+cIntA :: SInteger+cIntA = literal 2 --- The goal is to get rid of the following test vectors, and--- use the more interesting ones above. Unfortunately,--- there's a z3 bug in set-model generation that spits--- out models that we cannot parse. So, we're sticking--- to really simple examples in some cases here. cSetA :: SC-cSetA = singleton $ literal 'a'--- cSetB :: SC--- cSetB = singleton $ literal 'b'+cSetA = singleton $ literal 0 -- Test suite tests :: TestTree@@ -69,10 +60,10 @@ , goldenCapturedIO "set_subset1" $ tq $ templateBB cSetA cSetA isSubsetOf , goldenCapturedIO "set_psubset1" $ tq $ templateBB cSetA cSetA isProperSubsetOf , goldenCapturedIO "set_disj1" $ tq $ templateBB cSetA cSetA disjoint- , goldenCapturedIO "set_insert1" $ tq $ templateBE cCharA cSetAL insert- , goldenCapturedIO "set_delete1" $ tq $ templateBE cCharA cSetAL delete- , goldenCapturedIO "set_member1" $ tq $ templateBEB cCharA cSetAL member- , goldenCapturedIO "set_notMember1" $ tq $ templateBEB cCharA cSetAL notMember+ , goldenCapturedIO "set_insert1" $ tq $ templateBE cIntA cSetAL insert+ , goldenCapturedIO "set_delete1" $ tq $ templateBE cIntA cSetAL delete+ , goldenCapturedIO "set_member1" $ tq $ templateBEB cIntA cSetAL member+ , goldenCapturedIO "set_notMember1" $ tq $ templateBEB cIntA cSetAL notMember , goldenCapturedIO "set_tupleSet" $ ta setOfTuples ] where ta tc goldFile = record goldFile =<< tc defaultSMTCfg{verbose=True, redirectVerbose=Just goldFile}@@ -145,9 +136,9 @@ query $ do ensureSat (,,,,,) <$> getValue a <*> getValue b <*> getValue o1 <*> getValue o2 <*> getValue o3 <*> getValue o4 -templateBE :: SChar -> SC -> (SChar -> SC -> SC) -> Symbolic (Char, RC, RC, RC)-templateBE ic is f = do a <- sChar "a"- b <- sSet "b"+templateBE :: SInteger -> SC -> (SInteger -> SC -> SC) -> Symbolic (Integer, RC, RC, RC)+templateBE ic is f = do a <- sInteger "a"+ b <- sSet "b" constrain $ a .== ic constrain $ b .== is@@ -158,9 +149,9 @@ query $ do ensureSat (,,,) <$> getValue a <*> getValue b <*> getValue o1 <*> getValue o2 -templateBEB :: SChar -> SC -> (SChar -> SC -> SBool) -> Symbolic (Char, RC, Bool, Bool)-templateBEB ic is f = do a <- sChar "a"- b <- sSet "b"+templateBEB :: SInteger -> SC -> (SInteger -> SC -> SBool) -> Symbolic (Integer, RC, Bool, Bool)+templateBEB ic is f = do a <- sInteger "a"+ b <- sSet "b" constrain $ a .== ic constrain $ b .== is
SBVTestSuite/TestSuite/Queries/Int_Boolector.hs view
@@ -26,6 +26,7 @@ tests = testGroup "Basics.QueryIndividual" [ goldenCapturedIO "query_boolector" $ \rf -> runSMTWith boolector{verbose=True, redirectVerbose=Just rf} q+ , goldenCapturedIO "query_bitwuzla" $ \rf -> runSMTWith bitwuzla {verbose=True, redirectVerbose=Just rf} q ] q :: Symbolic ()
SBVTestSuite/TestSuite/Queries/Int_CVC4.hs view
@@ -26,6 +26,7 @@ tests = testGroup "Basics.QueryIndividual" [ goldenCapturedIO "query_cvc4" $ \rf -> runSMTWith cvc4{verbose=True, redirectVerbose=Just rf} q+ , goldenCapturedIO "query_cvc5" $ \rf -> runSMTWith cvc5{verbose=True, redirectVerbose=Just rf} q ] q :: Symbolic ()
SBVTestSuite/TestSuite/Queries/Tables.hs view
@@ -11,8 +11,10 @@ {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE Rank2Types #-} {-# LANGUAGE QuantifiedConstraints #-}+ {-# OPTIONS_GHC -Wall -Werror -Wno-orphans #-} module TestSuite.Queries.Tables (tests) where
sbv.cabal view
@@ -1,7 +1,7 @@ Cabal-Version: 2.2 Name : sbv-Version : 8.16+Version : 8.17 Category : Formal Methods, Theorem Provers, Bit vectors, Symbolic Computation, Math, SMT Synopsis : SMT Based Verification: Symbolic Haskell theorem prover using SMT solving. Description : Express properties about Haskell programs and automatically prove them using SMT@@ -21,7 +21,7 @@ Data-Files : SBVTestSuite/GoldFiles/*.gold Extra-Source-Files : INSTALL, README.md, COPYRIGHT, CHANGES.md -Tested-With : GHC==9.0.1, GHC==8.10.2, GHC==8.8.4+Tested-With : GHC==9.0.1 source-repository head type: git@@ -212,7 +212,9 @@ , Data.SBV.Provers.Prover , Data.SBV.Provers.ABC , Data.SBV.Provers.Boolector+ , Data.SBV.Provers.Bitwuzla , Data.SBV.Provers.CVC4+ , Data.SBV.Provers.CVC5 , Data.SBV.Provers.DReal , Data.SBV.Provers.MathSAT , Data.SBV.Provers.Yices