packages feed

sbv 8.16 → 8.17

raw patch · 59 files changed

+3188/−3169 lines, 59 files

Files

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 +[![Build Status](https://github.com/LeventErkok/sbv/actions/workflows/haskell-ci.yml/badge.svg)](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):-     - [![Build Status](https://travis-ci.com/LeventErkok/sbv.svg?branch=master)](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