packages feed

sbv 8.5 → 8.6

raw patch · 141 files changed

+2947/−2695 lines, 141 files

Files

CHANGES.md view
@@ -1,7 +1,41 @@ * Hackage: <http://hackage.haskell.org/package/sbv> * GitHub:  <http://leventerkok.github.com/sbv/> -* Latest Hackage released version: 8.5, 2019-10-16+* Latest Hackage released version: 8.6, 2020-02-08++### Version 8.6, 2020-02-08++  * Fix typo in error message. Thanks to Oliver Charles+    for the patch.++  * Fix parsing of sequence counter-examples to accommodate+    recent changes in z3.++  * Add missing exports related to N-bit words. Thanks to+    Markus Barenhoff for the patch.++  * Generalized code-generation functions to accept a function+    with an arbitrary return type, which was previously just unit.+    This allows for complicated code-generation scenarios where+    one code-gen run can produce input to the next.++  * Scalability improvements for internal data structures. Thanks+    to Brian Huffman for the patch.++  * Add interpolation support for Z3, following changes to that+    solver. Note that SBV now supports two different APIs for+    interpolation extraction, one for Z3 and the other for+    MathSAT. This is unfortunate, but necessary since interpolant+    extraction isn't quite standardized amongst solvers and+    MathSAT and Z3 use sufficiently different calling mechanisms+    to warrant their own calls. See 'Documentation.SBV.Examples.Queries.Interpolants'+    for examples that illustrate both cases.++  * Add a new argument to `displayModels` function to allow rearranging+    of the results in an 'allSat` call. Strictly speaking this is+    a backwards breaking change, but substituting `id` for the+    new argument gives you old functionality, so easy to work-around.+  ### Version 8.5, 2019-10-16 
@@ -1,4 +1,4 @@-Copyright (c) 2010-2019, Levent Erkok (erkokl@gmail.com)+Copyright (c) 2010-2020, Levent Erkok (erkokl@gmail.com) All rights reserved.  The sbv library is distributed with the BSD3 license. See the LICENSE file
Data/SBV.hs view
@@ -147,7 +147,7 @@   -- *** Signed bit-vectors   , SInt8, SInt16, SInt32, SInt64, SInt, IntN   -- *** Converting between fixed-size and arbitrary bitvectors-  , FromSized, ToSized, fromSized, toSized+  , IsNonZero, FromSized, ToSized, fromSized, toSized   -- ** Unbounded integers   -- $unboundedLimitations   , SInteger
Data/SBV/Compilers/C.hs view
@@ -50,12 +50,17 @@ -- --   * The final argument is the function to be compiled. ----- Compilation will also generate a @Makefile@,  a header file, and a driver (test) program, etc.-compileToC :: Maybe FilePath -> String -> SBVCodeGen () -> IO ()-compileToC mbDirName nm f = compileToC' nm f >>= renderCgPgmBundle mbDirName+-- Compilation will also generate a @Makefile@,  a header file, and a driver (test) program, etc. As a+-- result, we return whatever the code-gen function returns. Most uses should simply have @()@ as+-- the return type here, but the value can be useful if you want to chain the result of+-- one compilation act to the next.+compileToC :: Maybe FilePath -> String -> SBVCodeGen a -> IO a+compileToC mbDirName nm f = do (retVal, cfg, bundle) <- compileToC' nm f+                               renderCgPgmBundle mbDirName (cfg, bundle)+                               return retVal  -- | Lower level version of 'compileToC', producing a 'CgPgmBundle'-compileToC' :: String -> SBVCodeGen () -> IO (CgConfig, CgPgmBundle)+compileToC' :: String -> SBVCodeGen a -> IO (a, CgConfig, CgPgmBundle) compileToC' nm f = do rands <- randoms `fmap` newStdGen                       codeGen SBVToC (defaultCgConfig { cgDriverVals = rands }) nm f @@ -69,12 +74,16 @@ -- --   * The third argument is the list of functions to include, in the form of function-name/code pairs, similar --     to the second and third arguments of 'compileToC', except in a list.-compileToCLib :: Maybe FilePath -> String -> [(String, SBVCodeGen ())] -> IO ()-compileToCLib mbDirName libName comps = compileToCLib' libName comps >>= renderCgPgmBundle mbDirName+compileToCLib :: Maybe FilePath -> String -> [(String, SBVCodeGen a)] -> IO [a]+compileToCLib mbDirName libName comps = do (retVal, cfg, pgm) <- compileToCLib' libName comps+                                           renderCgPgmBundle mbDirName (cfg, pgm)+                                           return retVal  -- | Lower level version of 'compileToCLib', producing a 'CgPgmBundle'-compileToCLib' :: String -> [(String, SBVCodeGen ())] -> IO (CgConfig, CgPgmBundle)-compileToCLib' libName comps = mergeToLib libName `fmap` mapM (uncurry compileToC') comps+compileToCLib' :: String -> [(String, SBVCodeGen a)] -> IO ([a], CgConfig, CgPgmBundle)+compileToCLib' libName comps = do resCfgBundles <- mapM (uncurry compileToC') comps+                                  let (finalCfg, finalPgm) = mergeToLib libName [(c, b) | (_, c, b) <- resCfgBundles]+                                  return ([r | (r, _, _) <- resCfgBundles], finalCfg, finalPgm)  --------------------------------------------------------------------------- -- * Implementation
Data/SBV/Compilers/CodeGen.hs view
@@ -335,9 +335,9 @@  -- | Generate code for a symbolic program, returning a Code-gen bundle, i.e., collection -- of makefiles, source code, headers, etc.-codeGen :: CgTarget l => l -> CgConfig -> String -> SBVCodeGen () -> IO (CgConfig, CgPgmBundle)+codeGen :: CgTarget l => l -> CgConfig -> String -> SBVCodeGen a -> IO (a, CgConfig, CgPgmBundle) codeGen l cgConfig nm (SBVCodeGen comp) = do-   (((), st'), res) <- runSymbolic CodeGen $ runStateT comp initCgState { cgFinalConfig = cgConfig }+   ((retVal, st'), res) <- runSymbolic CodeGen $ runStateT comp initCgState { cgFinalConfig = cgConfig }    let st = st' { cgInputs       = reverse (cgInputs st')                 , cgOutputs      = reverse (cgOutputs st')                 }@@ -346,7 +346,7 @@    unless (null dupNames) $         error $ "SBV.codeGen: " ++ show nm ++ " has following argument names duplicated: " ++ unwords dupNames -   return (cgFinalConfig st, translate l (cgFinalConfig st) nm st res)+   return (retVal, cgFinalConfig st, translate l (cgFinalConfig st) nm st res)  -- | Render a code-gen bundle to a directory or to stdout renderCgPgmBundle :: Maybe FilePath -> (CgConfig, CgPgmBundle) -> IO ()
Data/SBV/Control.hs view
@@ -39,7 +39,7 @@      , getProof       -- ** Extracting interpolants-     , getInterpolant+     , getInterpolantMathSAT, getInterpolantZ3       -- ** Extracting assertions      , getAssertions@@ -88,7 +88,7 @@                                       , getAssertionStackDepth                                       , inNewAssertionStack, push, pop                                       , caseSplit, resetAssertions, echo, exit-                                      , getUnsatCore, getProof, getInterpolant+                                      , getUnsatCore, getProof, getInterpolantMathSAT, getInterpolantZ3                                       , getAssertions, getAssignment                                       , mkSMTResult, freshVar_, freshVar                                       , freshArray, freshArray_, checkSat, ensureSat
Data/SBV/Control/BaseIO.hs view
@@ -225,7 +225,10 @@ getProof :: Query String getProof = Trans.getProof --- | Retrieve an interpolant after an 'Data.SBV.Control.Unsat' result is obtained. Note you must have arranged for+-- | Interpolant extraction for MathSAT. Compare with 'getInterpolantZ3', which performs+-- similar function (but with a different use model) in Z3.+--+-- Retrieve an interpolant after an 'Data.SBV.Control.Unsat' result is obtained. Note you must have arranged for -- interpolants to be produced first via -- -- @@@ -235,7 +238,7 @@ -- for this call to not error out! -- -- To get an interpolant for a pair of formulas @A@ and @B@, use a 'Data.SBV.constrainWithAttribute' call to attach--- interplation groups to @A@ and @B@. Then call 'getInterpolant' @[\"A\"]@, assuming those are the names+-- interplation groups to @A@ and @B@. Then call 'getInterpolantMathSAT' @[\"A\"]@, assuming those are the names -- you gave to the formulas in the @A@ group. -- -- An interpolant for @A@ and @B@ is a formula @I@ such that:@@ -250,12 +253,52 @@ -- be satisfied at the same time. Furthermore, @I@ will have only the symbols that are common -- to @A@ and @B@. ----- N.B. As of Z3 version 4.8.0; Z3 no longer supports interpolants. Use the MathSAT backend for extracting--- interpolants. See "Documentation.SBV.Examples.Queries.Interpolants" for an example.+-- NB. Interpolant extraction isn't standardized well in SMTLib. Currently both MathSAT and Z3+-- support them, but with slightly differing APIs. So, we support two APIs with slightly+-- differing types to accommodate both. See "Documentation.SBV.Examples.Queries.Interpolants" for example+-- usages in these solvers. ----- NB. For a version which generalizes over the underlying monad, see 'Data.SBV.Trans.Control.getInterpolant'-getInterpolant :: [String] -> Query String-getInterpolant = Trans.getInterpolant+-- NB. For a version which generalizes over the underlying monad, see 'Data.SBV.Trans.Control.getInterpolantMathSAT'+getInterpolantMathSAT :: [String] -> Query String+getInterpolantMathSAT = Trans.getInterpolantMathSAT++-- | Interpolant extraction for z3. Compare with 'getInterpolantMathSAT', which performs+-- similar function (but with a different use model) in MathSAT.+--+-- Unlike the MathSAT variant, you should simply call 'getInterpolantZ3' on symbolic booleans+-- to retrieve the interpolant. Do not call `checkSat` or create named constraints. This makes it+-- harder to identify formulas, but the current state of affairs in interpolant API requires this kludge.+--+-- An interpolant for @A@ and @B@ is a formula @I@ such that:+--+-- @+--        A ==> I+--    and B ==> not I+-- @+--+-- That is, it's evidence that @A@ and @B@ cannot be true together+-- since @A@ implies @I@ but @B@ implies @not I@; establishing that @A@ and @B@ cannot+-- be satisfied at the same time. Furthermore, @I@ will have only the symbols that are common+-- to @A@ and @B@.+--+-- In Z3, interpolants generalize to sequences: If you pass more than two formulas, then you will get+-- a sequence of interpolants. In general, for @N@ formulas that are not satisfiable together, you will be+-- returned @N-1@ interpolants. If formulas are @A1 .. An@, then interpolants will be @I1 .. I(N-1)@, such+-- that @A1 ==> I1@, @A2 /\\ I1 ==> I2@, @A3 /\\ I2 ==> I3@, ..., and finally @AN ===> not I(N-1)@.+--+-- Currently, SBV only returns simple and sequence interpolants, and does not support tree-interpolants.+-- If you need these, please get in touch. Furthermore, the result will be a list of mere strings representing the+-- interpolating formulas, as opposed to a more structured type. Please get in touch if you use this function and can+-- suggest a better API.+--+-- NB. Interpolant extraction isn't standardized well in SMTLib. Currently both MathSAT and Z3+-- support them, but with slightly differing APIs. So, we support two APIs with slightly+-- differing types to accommodate both. See "Documentation.SBV.Examples.Queries.Interpolants" for example+-- usages in these solvers.+--+-- NB. For a version which generalizes over the underlying monad, see 'Data.SBV.Trans.Control.getInterpolantZ3'+getInterpolantZ3 :: [SBool] -> Query String+getInterpolantZ3 = Trans.getInterpolantZ3  -- | Retrieve assertions. Note you must have arranged for -- assertions to be available first via
Data/SBV/Control/Query.hs view
@@ -19,7 +19,7 @@ module Data.SBV.Control.Query (        send, ask, retrieveResponse      , CheckSatResult(..), checkSat, checkSatUsing, checkSatAssuming, checkSatAssumingWithUnsatisfiableSet-     , getUnsatCore, getProof, getInterpolant, getAssignment, getOption, freshVar, freshVar_, freshArray, freshArray_, push, pop, getAssertionStackDepth+     , getUnsatCore, getProof, getInterpolantMathSAT, getInterpolantZ3, getAssignment, getOption, freshVar, freshVar_, freshArray, freshArray_, push, pop, getAssertionStackDepth      , inNewAssertionStack, echo, caseSplit, resetAssertions, exit, getAssertions, getValue, getUninterpretedValue, getModel, getSMTResult      , getLexicographicOptResults, getIndependentOptResults, getParetoOptResults, getAllSatResult, getUnknownReason, getObservables, ensureSat      , SMTOption(..), SMTInfoFlag(..), SMTErrorBehavior(..), SMTReasonUnknown(..), SMTInfoResponse(..), getInfo@@ -30,8 +30,8 @@      , io      ) where -import Control.Monad            (unless, when, zipWithM)-import Control.Monad.IO.Class   (MonadIO)+import Control.Monad          (unless, when, zipWithM)+import Control.Monad.IO.Class (MonadIO)  import Data.IORef (readIORef) @@ -653,11 +653,11 @@         -- result of parsing is ignored.         parse r bad $ \_ -> return r --- | Generalization of 'Data.SBV.Control.getInterpolant'-getInterpolant :: (MonadIO m, MonadQuery m) => [String] -> m String-getInterpolant fs+-- | Generalization of 'Data.SBV.Control.getInterpolantMathSAT'. Use this version with MathSAT.+getInterpolantMathSAT :: (MonadIO m, MonadQuery m) => [String] -> m String+getInterpolantMathSAT fs   | null fs-  = error "SBV.getInterpolant requires at least one marked constraint, received none!"+  = error "SBV.getInterpolantMathSAT requires at least one marked constraint, received none!"   | True   = do let bar s = '|' : s ++ "|"            cmd = "(get-interpolant (" ++ unwords (map bar fs) ++ "))"@@ -670,6 +670,25 @@                                  , "and that you have used the proper attributes using the"                                  , "constrainWithAttribute function."                                  ]++       r <- ask cmd++       parse r bad $ \e -> return $ serialize False e+++-- | Generalization of 'Data.SBV.Control.getInterpolantZ3'. Use this version with Z3.+getInterpolantZ3 :: (MonadIO m, MonadQuery m) => [SBool] -> m String+getInterpolantZ3 fs+  | length fs < 2+  = error $ "SBV.getInterpolantZ3 requires at least two booleans, received: " ++ show fs+  | True+  = do ss <- let fAll []     sofar = return $ reverse sofar+                 fAll (b:bs) sofar = do sv <- inNewContext (`sbvToSV` b)+                                        fAll bs (sv : sofar)+             in fAll fs []++       let cmd = "(get-interpolant " ++ unwords (map show ss) ++ ")"+           bad = unexpected "getInterpolant" cmd "a get-interpolant response" Nothing         r <- ask cmd 
Data/SBV/Control/Utils.hs view
@@ -402,9 +402,8 @@           c2w8 = fromIntegral . ord     -- Otherwise we have a good old sequence, just parse it simply:-   sexprToVal (EApp [ECon "seq.++", l, r])            = do l' <- sexprToVal l-                                                           r' <- sexprToVal r-                                                           return $ l' ++ r'+   sexprToVal (EApp (ECon "seq.++" : rest))           = do elts <- mapM sexprToVal rest+                                                           return $ concat elts    sexprToVal (EApp [ECon "seq.unit", a])             = do a' <- sexprToVal a                                                            return [a']    sexprToVal (EApp [ECon "as", ECon "seq.empty", _]) = return []@@ -980,7 +979,7 @@                 walk (EApp [ECon "seq.unit", v])             = case recoverKindedValue ek v of                                                                  Just w -> [cvVal w]                                                                  Nothing -> error $ "Cannot parse a sequence item of kind " ++ show ek ++ " from: " ++ show v ++ extra v-                walk (EApp [ECon "seq.++", pre, post])       = walk pre ++ walk post+                walk (EApp (ECon "seq.++" : rest))           = concatMap walk rest                 walk cur                                     = error $ "Expected a sequence constant, but received: " ++ show cur ++ extra cur                  extra cur | show cur == t = ""@@ -1166,7 +1165,7 @@ -- | What are the top level inputs? Trackers are returned as top level existentials getQuantifiedInputs :: (MonadIO m, MonadQuery m) => m [(Quantifier, NamedSymVar)] getQuantifiedInputs = do State{rinps} <- queryState-                         (rQinps, rTrackers) <- liftIO $ readIORef rinps+                         ((rQinps, rTrackers), _) <- liftIO $ readIORef rinps                           let qinps    = reverse rQinps                              trackers = map (EX,) $ reverse rTrackers@@ -1611,7 +1610,7 @@                     case queryContext of                       QueryInternal -> return ()         -- we're good, internal usages don't mess with scopes                       QueryExternal -> do-                        (userInps, _) <- readIORef (rinps st)+                        ((userInps, _), _) <- readIORef (rinps st)                         let badInps = reverse [n | (ALL, (_, n)) <- userInps]                         case badInps of                           [] -> return ()
Data/SBV/Core/Data.hs view
@@ -389,7 +389,7 @@    softConstrain :: SBool -> m ()    -- | Add a named constraint. The name is used in unsat-core extraction.    namedConstraint :: String -> SBool -> m ()-   -- | Add a constraint, with arbitrary attributes. Used in interpolant generation.+   -- | Add a constraint, with arbitrary attributes.    constrainWithAttribute :: [(String, String)] -> SBool -> m ()    -- | Set info. Example: @setInfo ":status" ["unsat"]@.    setInfo :: String -> [String] -> m ()
Data/SBV/Core/Floating.hs view
@@ -223,14 +223,14 @@   -- >>> prove $ roundTrip @Int32   -- Falsifiable. Counter-example:   --   s0 = RoundNearestTiesToEven :: RoundingMode-  --   s1 =            -2147483616 :: Int32+  --   s1 =              134280664 :: Int32   --   -- Note how we get a failure on `Int32`. The counter-example value is not representable exactly as a single precision float:   ---  -- >>> toRational (-2147483616 :: Float)-  -- (-2147483648) % 1+  -- >>> toRational (134280664 :: Float)+  -- 134280672 % 1   ---  -- Note how the numerator is different, it is off by 32. This is hardly surprising, since floats become sparser as+  -- Note how the numerator is different, it is off by 8. This is hardly surprising, since floats become sparser as   -- the magnitude increases to be able to cover all the integer values representable.   toSFloat :: SRoundingMode -> SBV a -> SFloat 
Data/SBV/Core/Model.hs view
@@ -1128,24 +1128,24 @@ -- | 'sTrue' if the sum of coefficients for 'sTrue' elements is at most @k@. Generalizes 'pbAtMost'. pbLe :: [(Int, SBool)] -> Int -> SBool pbLe xs k- | k < 0                       = error $ "SBV.pbLe: Non-negative value required, received: " ++ show k- | all isConcrete (map snd xs) = literal $ sum [pbToInteger "pbLe" c b | (c, b) <- xs] <= fromIntegral k- | True                        = liftPB "pbLe" (PB_Le (map fst xs) k) (map snd xs)+ | k < 0                     = error $ "SBV.pbLe: Non-negative value required, received: " ++ show k+ | all (isConcrete . snd) xs = literal $ sum [pbToInteger "pbLe" c b | (c, b) <- xs] <= fromIntegral k+ | True                      = liftPB "pbLe" (PB_Le (map fst xs) k) (map snd xs)  -- | 'sTrue' if the sum of coefficients for 'sTrue' elements is at least @k@. Generalizes 'pbAtLeast'. pbGe :: [(Int, SBool)] -> Int -> SBool pbGe xs k- | k < 0                       = error $ "SBV.pbGe: Non-negative value required, received: " ++ show k- | all isConcrete (map snd xs) = literal $ sum [pbToInteger "pbGe" c b | (c, b) <- xs] >= fromIntegral k- | True                        = liftPB "pbGe" (PB_Ge (map fst xs) k) (map snd xs)+ | k < 0                     = error $ "SBV.pbGe: Non-negative value required, received: " ++ show k+ | all (isConcrete . snd) xs = literal $ sum [pbToInteger "pbGe" c b | (c, b) <- xs] >= fromIntegral k+ | True                      = liftPB "pbGe" (PB_Ge (map fst xs) k) (map snd xs)  -- | 'sTrue' if the sum of coefficients for 'sTrue' elements is exactly least @k@. Useful for coding -- /exactly K-of-N/ constraints, and in particular mutex constraints. pbEq :: [(Int, SBool)] -> Int -> SBool pbEq xs k- | k < 0                       = error $ "SBV.pbEq: Non-negative value required, received: " ++ show k- | all isConcrete (map snd xs) = literal $ sum [pbToInteger "pbEq" c b | (c, b) <- xs] == fromIntegral k- | True                        = liftPB "pbEq" (PB_Eq (map fst xs) k) (map snd xs)+ | k < 0                     = error $ "SBV.pbEq: Non-negative value required, received: " ++ show k+ | all (isConcrete . snd) xs = literal $ sum [pbToInteger "pbEq" c b | (c, b) <- xs] == fromIntegral k+ | True                      = liftPB "pbEq" (PB_Eq (map fst xs) k) (map snd xs)  -- | 'sTrue' if there is at most one set bit pbMutexed :: [SBool] -> SBool
Data/SBV/Core/Symbolic.hs view
@@ -107,8 +107,16 @@ newtype NodeId = NodeId Int deriving (Eq, Ord)  -- | A symbolic word, tracking it's signedness and size.-data SV = SV !Kind !NodeId deriving (Eq, Ord)+data SV = SV !Kind !NodeId +-- | For equality, we merely use the node-id+instance Eq SV where+  SV _ n1 == SV _ n2 = n1 == n2++-- | Again, simply use the node-id for ordering+instance Ord SV where+  SV _ n1 `compare` SV _ n2 = n1 `compare` n2+ instance HasKind SV where   kindOf (SV k _) = k @@ -886,7 +894,9 @@                     , rctr         :: IORef Int                     , rUsedKinds   :: IORef KindSet                     , rUsedLbls    :: IORef (Set.Set String)-                    , rinps        :: IORef ([(Quantifier, NamedSymVar)], [NamedSymVar]) -- User defined, and internal existential+                    , rinps        :: IORef (([(Quantifier, NamedSymVar)], [NamedSymVar]), Set.Set String) -- First : User defined, with proper quantifiers+                                                                                                           -- Second: Internally declared, always existential+                                                                                                           -- Third : Entire set of names, for faster lookup                     , rConstraints :: IORef (S.Seq (Bool, [(String, String)], SV))                     , routs        :: IORef [SV]                     , rtblMap      :: IORef TableMap@@ -1063,7 +1073,7 @@                                      Concrete{}           -> ALL                                n = "__internal_sbv_" ++ nm                                v = (sv, n)-                           modifyState st rinps (first ((q, v) :))+                           modifyState st rinps (first ((q, v) :) *** Set.insert n)                                      $ modifyIncState st rNewInps (\newInps -> case q of                                                                                  EX -> v : newInps                                                                                  -- I don't think the following can actually happen@@ -1143,7 +1153,7 @@   | '|' `elem` nm   = err "contains the character `|', which is not allowed!"   | '\\' `elem` nm-  = err "contains the character `\', which is not allowed!"+  = err "contains the character `\\', which is not allowed!"   | True   = do old <- readIORef $ rUsedLbls st        if nm `Set.member` old@@ -1365,10 +1375,9 @@ -- | Introduce a new user name. We simply append a suffix if we have seen this variable before. introduceUserName :: State -> Bool -> String -> Kind -> Quantifier -> SV -> IO SVal introduceUserName st isTracker nmOrig k q sv = do-        (is, ints) <- readIORef (rinps st)+        (_, old) <- readIORef (rinps st) -        let old = [n | (_, (_, n)) <- is] ++ [n | (_, n) <- ints]-            nm  = mkUnique nmOrig old+        let nm  = mkUnique nmOrig old          if isTracker && q == ALL            then error $ "SBV: Impossible happened! A universally quantified tracker variable is being introduced: " ++ show nm@@ -1382,16 +1391,16 @@                                                            , "Only existential variables are supported in query mode."                                                            ]                    if isTracker-                      then modifyState st rinps (second ((:) (sv, nm)))+                      then modifyState st rinps (second ((:) (sv, nm)) *** Set.insert nm)                                      $ noInteractive ["Adding a new tracker variable in interactive mode: " ++ show nm]-                      else modifyState st rinps (first ((:) (q, (sv, nm))))+                      else modifyState st rinps (first ((:) (q, (sv, nm))) *** Set.insert nm)                                      $ modifyIncState st rNewInps newInp                    return $ SVal k $ Right $ cache (const (return sv))     where -- The following can be rather slow if we keep reusing the same prefix, but I doubt it'll be a problem in practice          -- Also, the following will fail if we span the range of integers without finding a match, but your computer would          -- die way ahead of that happening if that's the case!-         mkUnique prefix names = head $ dropWhile (`elem` names) (prefix : [prefix ++ "_" ++ show i | i <- [(0::Int)..]])+         mkUnique prefix names = head $ dropWhile (`Set.member` names) (prefix : [prefix ++ "_" ++ show i | i <- [(0::Int)..]])  -- | Generalization of 'Data.SBV.addAxiom' addAxiom :: MonadSymbolic m => String -> [String] -> m ()@@ -1415,7 +1424,7 @@      pgm       <- newIORef (SBVPgm S.empty)      emap      <- newIORef Map.empty      cmap      <- newIORef Map.empty-     inps      <- newIORef ([], [])+     inps      <- newIORef (([], []), Set.empty)      outs      <- newIORef []      tables    <- newIORef Map.empty      arrays    <- newIORef IMap.empty@@ -1483,7 +1492,7 @@                                        , rObservables=observes                                        } = do    SBVPgm rpgm  <- readIORef pgm-   inpsO <- (reverse *** reverse) <$> readIORef inps+   inpsO <- (reverse *** reverse) . fst <$> readIORef inps    outsO <- reverse <$> readIORef outs     let swap  (a, b)              = (b, a)
Data/SBV/List.hs view
@@ -130,7 +130,7 @@ -- Q.E.D. -- >>> sat $ \(l :: SList Word16) -> length l .>= 2 .&& listToListAt l 0 ./= listToListAt l (length l - 1) -- Satisfiable. Model:---   s0 = [0,0,2] :: [Word16]+--   s0 = [0,0,256] :: [Word16] listToListAt :: SymVal a => SList a -> SInteger -> SList a listToListAt s offset = subList s offset 1 
Data/SBV/RegExp.hs view
@@ -87,7 +87,7 @@ -- >>> let phone = pre * "-" * post -- >>> sat $ \s -> (s :: SString) `match` phone -- Satisfiable. Model:---   s0 = "200-1000" :: String+--   s0 = "100-1000" :: String class RegExpMatchable a where    -- | @`match` s r@ checks whether @s@ is in the language generated by @r@.    match :: a -> RegExp -> SBool
Data/SBV/SMT/SMT.hs view
@@ -439,10 +439,12 @@ -- | Given an 'Data.SBV.allSat' call, we typically want to iterate over it and print the results in sequence. The -- 'displayModels' function automates this task by calling @disp@ on each result, consecutively. The first -- 'Int' argument to @disp@ 'is the current model number. The second argument is a tuple, where the first--- element indicates whether the model is alleged (i.e., if the solver is not sure, returing Unknown)-displayModels :: SatModel a => (Int -> (Bool, a) -> IO ()) -> AllSatResult -> IO Int-displayModels disp (AllSatResult (_, _, _, ms)) = do-    inds <- zipWithM display [a | Right a <- map (getModelAssignment . SatResult) ms] [(1::Int)..]+-- element indicates whether the model is alleged (i.e., if the solver is not sure, returing Unknown).+-- The arrange argument can sort the results in any way you like, if necessary.+displayModels :: SatModel a => ([(Bool, a)] -> [(Bool, a)]) -> (Int -> (Bool, a) -> IO ()) -> AllSatResult -> IO Int+displayModels arrange disp (AllSatResult (_, _, _, ms)) = do+    let models = [a | Right a <- map (getModelAssignment . SatResult) ms]+    inds <- zipWithM display (arrange models) [(1::Int)..]     return $ last (0:inds)   where display r i = disp i r >> return i 
Data/SBV/SMT/SMTLib2.hs view
@@ -304,7 +304,8 @@         mkLet (s, SBVApp (Label m) [e]) = "(let ((" ++ show s ++ " " ++ cvtSV                skolemMap          e ++ ")) ; " ++ m         mkLet (s, e)                    = "(let ((" ++ show s ++ " " ++ cvtExp solverCaps rm skolemMap tableMap e ++ "))" -        userName s = case s `lookup` map snd inputs of+        userNameMap = M.fromList (map snd inputs)+        userName s = case M.lookup s userNameMap of                         Just u  | show s /= u -> " ; tracks user variable " ++ show u                         _ -> "" 
Data/SBV/Set.hs view
@@ -379,8 +379,8 @@ -- -- >>> prove $ \x (s :: SSet Integer) -> (x `delete` s) `isProperSubsetOf` s -- Falsifiable. Counter-example:---   s0 =       0 :: Integer---   s1 = U - {0} :: {Integer}+--   s0 =         0 :: Integer+--   s1 = U - {0,1} :: {Integer} -- -- >>> prove $ \x (s :: SSet Integer) -> x `member` s .=> (x `delete` s) `isProperSubsetOf` s -- Q.E.D.
Data/SBV/String.hs view
@@ -133,7 +133,7 @@ -- Q.E.D. -- >>> sat $ \s -> length s .>= 2 .&& strToStrAt s 0 ./= strToStrAt s (length s - 1) -- Satisfiable. Model:---   s0 = "\NUL\STX" :: String+--   s0 = "\NUL\NUL\DLE" :: String strToStrAt :: SString -> SInteger -> SString strToStrAt s offset = subStr s offset 1 
Data/SBV/Trans.hs view
@@ -23,9 +23,11 @@   , sAnd, sOr, sAny, sAll   -- ** Bit-vectors   -- *** Unsigned bit-vectors-  , SWord8, SWord16, SWord32, SWord64+  , SWord8, SWord16, SWord32, SWord64, SWord, WordN   -- *** Signed bit-vectors-  , SInt8, SInt16, SInt32, SInt64+  , SInt8, SInt16, SInt32, SInt64, SInt, IntN+  -- *** Converting between fixed-size and arbitrary bitvectors+  , IsNonZero, FromSized, ToSized, fromSized, toSized   -- ** Unbounded integers   , SInteger   -- ** Floating point numbers@@ -163,6 +165,8 @@ import Data.SBV.Provers.Prover  import Data.SBV.Client+import Data.SBV.Client.BaseIO  (FromSized, ToSized, fromSized, toSized)+  import Data.SBV.Utils.TDiff   (Timing(..)) 
Data/SBV/Trans/Control.hs view
@@ -37,7 +37,7 @@      , getProof       -- ** Extracting interpolants-     , getInterpolant+     , getInterpolantMathSAT, getInterpolantZ3       -- ** Extracting assertions      , getAssertions
Documentation/SBV/Examples/BitPrecise/BrokenSearch.hs view
@@ -22,13 +22,13 @@ -- -- >>> checkArithOverflow midPointBroken -- Documentation/SBV/Examples/BitPrecise/BrokenSearch.hs:35:28:+!: SInt32 addition overflows: Violated. Model:---   low  = 2147483583 :: Int32---   high = 2147483647 :: Int32+--   low  = 2147475457 :: Int32+--   high = 2147483645 :: Int32 -- -- Indeed: ----- >>> (2147483583 + 2147483647) `div` (2::Int32)--- -33+-- >>> (2147475457 + 2147483645) `div` (2::Int32)+-- -4097 -- -- giving us a negative mid-point value! midPointBroken :: SInt32 -> SInt32 -> SInt32
Documentation/SBV/Examples/Crypto/AES.hs view
@@ -32,6 +32,8 @@  module Documentation.SBV.Examples.Crypto.AES where +import Control.Monad (void)+ import Data.SBV import Data.SBV.Tools.CodeGen import Data.SBV.Tools.Polynomial@@ -570,7 +572,7 @@ -- | Generate code for AES functionality; given the key size. cgAESLibrary :: Int -> Maybe FilePath -> IO () cgAESLibrary sz mbd-  | sz `elem` [128, 192, 256] = compileToCLib mbd nm (aesLibComponents sz)+  | sz `elem` [128, 192, 256] = void $ compileToCLib mbd nm (aesLibComponents sz)   | True                      = error $ "cgAESLibrary: Size must be one of 128, 192, or 256, received: " ++ show sz   where nm = "aes" ++ show sz ++ "Lib" 
Documentation/SBV/Examples/Existentials/CRCPolynomial.hs view
@@ -60,7 +60,7 @@                                 -- polynomial, as all CRC polynomials have the "+1"                                 -- term in them set. This simplifies the query.                                 return $ sTestBit p 0 .&& crcGood hd p s r-                       cnt <- displayModels disp res+                       cnt <- displayModels id disp res                        putStrLn $ "Found: " ++ show cnt ++ " polynomail(s)."         where disp :: Int -> (Bool, Word16) -> IO ()               disp n (_, s) = putStrLn $ "Polynomial #" ++ show n ++ ". x^16 + " ++ showPolynomial False s
Documentation/SBV/Examples/Lists/BoundedMutex.hs view
@@ -98,7 +98,8 @@ -- so long as both the agents and the arbiter act according to the rules. The check is bounded up-to-the -- given concrete bound; so this is an example of a bounded-model-checking style proof. We have: ----- >>> checkMutex 20+-- Test turned off. See: https://github.com/Z3Prover/z3/issues/2956+-- checkMutex 20 -- All is good! checkMutex :: Int -> IO () checkMutex b = runSMT $ do
Documentation/SBV/Examples/Lists/Nested.hs view
@@ -24,7 +24,8 @@  -- | Simple example demonstrating the use of nested lists. We have: ----- >>> nestedExample+-- Turned off. See: https://github.com/Z3Prover/z3/issues/2820+-- nestedExample -- [[1,2,3],[4,5,6,7],[8,9,10],[11,12,13]] nestedExample :: IO () nestedExample = runSMT $ do a :: SList [Integer] <- free "a"
Documentation/SBV/Examples/Misc/Floating.hs view
@@ -58,21 +58,21 @@ -- -- >>> assocPlusRegular -- Falsifiable. Counter-example:---   x = 3.1705284e18 :: Float---   y =  5.634997e12 :: Float---   z = -1.503316e20 :: Float+--   x =   5.615828e-4 :: Float+--   y = -2.2688436e-3 :: Float+--   z =    -2047.9991 :: Float -- -- Indeed, we have: ----- >>> let x = 3.1705284e18 :: Float--- >>> let y =  5.634997e12 :: Float--- >>> let z = -1.503316e20 :: Float+-- >>> let x =   5.615828e-4 :: Float+-- >>> let y = -2.2688436e-3 :: Float+-- >>> let z =    -2047.9991 :: Float -- >>> x + (y + z)--- -1.4716107e20+-- -2048.001 -- >>> (x + y) + z--- -1.4716106e20+-- -2048.0007 ----- Note the difference in the last digit before the exponent!+-- Note the difference in the results! assocPlusRegular :: IO ThmResult assocPlusRegular = prove $ do [x, y, z] <- sFloats ["x", "y", "z"]                               let lhs = x+(y+z)@@ -92,13 +92,13 @@ -- -- >>> nonZeroAddition -- Falsifiable. Counter-example:---   a = -2.032879e-20 :: Float---   b =  4.887041e-39 :: Float+--   a =   -1.9999999 :: Float+--   b = 9.403954e-38 :: Float -- -- Indeed, we have: ----- >>> let a = -2.032879e-20 :: Float--- >>> let b =  4.887041e-39 :: Float+-- >>> let a =   -1.9999999 :: Float+-- >>> let b = 9.403954e-38 :: Float -- >>> a + b == a -- True -- >>> b == 0@@ -121,11 +121,11 @@ -- -- >>> multInverse -- Falsifiable. Counter-example:---   a = -6.72794746807321e-309 :: Double+--   a = -1.910829855912238e-308 :: Double -- -- Indeed, we have: ----- >>> let a = -6.72794746807321e-309 :: Double+-- >>> let a = -1.910829855912238e-308 :: Double -- >>> a * (1/a) -- 0.9999999999999999 multInverse :: IO ThmResult
Documentation/SBV/Examples/ProofTools/BMC.hs view
@@ -83,7 +83,7 @@ -- BMC: Iteration: 2 -- BMC: Iteration: 3 -- BMC: Solution found at iteration 3--- Right (3,[(0,10),(0,6),(0,2),(2,2)])+-- Right (3,[(0,10),(0,6),(2,6),(2,2)]) -- -- As expected, there's a solution in this case. Furthermore, since the BMC engine -- found a solution at depth @3@, we also know that there is no solution at
Documentation/SBV/Examples/Puzzles/Counts.hs view
@@ -30,6 +30,7 @@ module Documentation.SBV.Examples.Puzzles.Counts where  import Data.SBV+import Data.List (sortOn)  -- | We will assume each number can be represented by an 8-bit word, i.e., can be at most 128. type Count  = SWord8@@ -58,13 +59,13 @@ -- -- >>> counts -- Solution #1--- In this sentence, the number of occurrences of 0 is 1, of 1 is 7, of 2 is 3, of 3 is 2, of 4 is 1, of 5 is 1, of 6 is 1, of 7 is 2, of 8 is 1, of 9 is 1.--- Solution #2 -- In this sentence, the number of occurrences of 0 is 1, of 1 is 11, of 2 is 2, of 3 is 1, of 4 is 1, of 5 is 1, of 6 is 1, of 7 is 1, of 8 is 1, of 9 is 1.+-- Solution #2+-- In this sentence, the number of occurrences of 0 is 1, of 1 is 7, of 2 is 3, of 3 is 2, of 4 is 1, of 5 is 1, of 6 is 1, of 7 is 2, of 8 is 1, of 9 is 1. -- Found: 2 solution(s). counts :: IO () counts = do res <- allSat $ puzzle `fmap` mkExistVars 10-            cnt <- displayModels disp res+            cnt <- displayModels (sortOn show) disp res             putStrLn $ "Found: " ++ show cnt ++ " solution(s)."   where disp n (_, s) = do putStrLn $ "Solution #" ++ show n                            dispSolution s
Documentation/SBV/Examples/Puzzles/Euler185.hs view
@@ -46,6 +46,6 @@ -- Number of solutions: 1 solveEuler185 :: IO () solveEuler185 = do res <- allSat euler185-                   cnt <- displayModels disp res+                   cnt <- displayModels id disp res                    putStrLn $ "Number of solutions: " ++ show cnt    where disp _ (_, ss) = putStrLn $ concatMap show (ss :: [Word8])
Documentation/SBV/Examples/Puzzles/MagicSquare.hs view
@@ -59,7 +59,7 @@  | n < 0 = putStrLn $ "n must be non-negative, received: " ++ show n  | True  = do putStrLn $ "Finding all " ++ show n ++ "-magic squares.."               res <- allSat $ (isMagic . chunk n) `fmap` mkExistVars n2-              cnt <- displayModels disp res+              cnt <- displayModels id disp res               putStrLn $ "Found: " ++ show cnt ++ " solution(s)."    where n2 = n * n          disp i (_, model)
Documentation/SBV/Examples/Puzzles/NQueens.hs view
@@ -36,7 +36,7 @@  | n < 0 = putStrLn $ "n must be non-negative, received: " ++ show n  | True  = do putStrLn $ "Finding all " ++ show n ++ "-queens solutions.."               res <- allSat $ isValid n `fmap` mkExistVars n-              cnt <- displayModels disp res+              cnt <- displayModels id disp res               putStrLn $ "Found: " ++ show cnt ++ " solution(s)."    where disp i (_, s) = do putStr $ "Solution #" ++ show i ++ ": "                             dispSolution s
Documentation/SBV/Examples/Puzzles/Sudoku.hs view
@@ -76,7 +76,7 @@ solveAll :: Puzzle -> IO () solveAll p@(i, f) = do putStrLn "Finding all solutions.."                        res <- allSat $ (valid . f) `fmap` mkExistVars i-                       cnt <- displayModels disp res+                       cnt <- displayModels id disp res                        putStrLn $ "Found: " ++ show cnt ++ " solution(s)."    where disp n s = do putStrLn $ "Solution #" ++ show n                        dispSolution p s
Documentation/SBV/Examples/Puzzles/U2Bridge.hs view
@@ -228,7 +228,7 @@                               p2 <- exists_                               return (b, p1, p2)               res <- allSat $ isValid `fmap` mapM (const genAct) [1..n]-              cnt <- displayModels disp (rearrange res)+              cnt <- displayModels (sortOn show) disp res               if cnt == 0 then return False                           else do putStrLn $ "Found: " ++ show cnt ++ " solution" ++ plu cnt ++ " with " ++ show n ++ " move" ++ plu n ++ "."                                   return True@@ -248,13 +248,6 @@                sh2 t = let s = show t in if length s < 2 then ' ' : s else s                shL False = " --> "                shL True  = " <-- "--        -- The following function can be replaced by id. It's only-        -- here to make sure the multiple solutions come out in the-        -- same order and thus not mess up our test suite if the-        -- solver decides to return them in the alternate order-        rearrange :: AllSatResult -> AllSatResult-        rearrange (AllSatResult (b1, b2, b3, ms)) = AllSatResult (b1, b2, b3, sortOn (show . SatResult) ms)  -- | Solve the U2-bridge crossing puzzle, starting by testing solutions with -- increasing number of steps, until we find one. We have:
Documentation/SBV/Examples/Queries/Interpolants.hs view
@@ -8,8 +8,10 @@ -- -- Demonstrates extraction of interpolants via queries. ----- N.B. As of Z3 version 4.8.0; Z3 no longer supports interpolants. You need--- to use the MathSAT backend for this example to work.+-- N.B. Interpolants are supported by MathSAT and Z3. Unfortunately+-- the extraction of interpolants is not standardized, and are slightly+-- different for these two solvers. So, we have two separate examples+-- to demonstrate the usage. -----------------------------------------------------------------------------  {-# OPTIONS_GHC -Wall -Werror #-}@@ -19,7 +21,7 @@ import Data.SBV import Data.SBV.Control --- | Compute the interpolant for the following sets of formulas:+-- | MathSAT example. Compute the interpolant for the following sets of formulas: -- --     @{x - 3y >= -1, x + y >= 0}@ --@@ -39,7 +41,7 @@ -- An interpolant for these sets would only talk about the variable @x@ that is common -- to both. We have: ----- >>> runSMTWith mathSAT example+-- >>> runSMTWith mathSAT exampleMathSAT -- "(<= 0 s0)" -- -- Notice that we get a string back, not a term; so there's some back-translation we need to do. We@@ -56,13 +58,14 @@ -- Q.E.D. -- -- This establishes that we indeed have an interpolant!-example :: Symbolic String-example = do+exampleMathSAT :: Symbolic String+exampleMathSAT = do        x <- sInteger "x"        y <- sInteger "y"        z <- sInteger "z"         -- tell the solver we want interpolants+       -- NB. Only MathSAT needs this. Z3 doesn't need or like this setting!        setOption $ ProduceInterpolants True         -- create interpolation constraints. MathSAT requires the relevant formulas@@ -75,6 +78,44 @@        -- To obtain the interpolant, we run a query        query $ do cs <- checkSat                   case cs of-                    Unsat -> getInterpolant ["A"]+                    Unsat -> getInterpolantMathSAT ["A"]                     Sat   -> error "Unexpected sat result!"                     Unk   -> error "Unexpected unknown result!"++-- | Z3 example. Compute the interpolant for formulas @y = 2x@ and @y = 2z+1@.+--+-- These formulas are not satisfiable together since it would mean+-- @y@ is both even and odd at the same time. An interpolant for+-- this pair of formulas is a formula that's expressed only in terms+-- of @y@, which is the only common symbol among them. We have:+--+-- >>> runSMT evenOdd+-- "(or (= s1 0) (= s1 (* 2 (div s1 2))))"+--+-- This is a bit hard to read unfortunately, due to translation artifacts and use of strings. To analyze,+-- we need to know that @s1@ is @y@ through SBV's translation. Let's express it in+-- regular infix notation with @y@ for @s1@:+--+-- @(y == 0) || (y == 2 * (y `div` 2))@+--+-- Notice that the only symbol is @y@, as required. To establish that this is+-- indeed an interpolant, we should establish that when @y@ is even, this formula+-- is @True@; and if @y@ is odd, then then it should be @False@. You can argue+-- mathematically that this indeed the case, but let's just use SBV to prove these:+--+-- >>> prove $ \y -> (y `sMod` 2 .== 0) .=> ((y .== 0) .|| (y .== 2 * (y `sDiv` (2::SInteger))))+-- Q.E.D.+--+-- And:+--+-- >>> prove $ \y -> (y `sMod` 2 .== 1) .=> sNot ((y .== 0) .|| (y .== 2 * (y `sDiv` (2::SInteger))))+-- Q.E.D.+--+-- This establishes that we indeed have an interpolant!+evenOdd :: Symbolic String+evenOdd = do+       x <- sInteger "x"+       y <- sInteger "y"+       z <- sInteger "z"++       query $ getInterpolantZ3 [y .== 2*x, y .== 2*z+1]
LICENSE view
@@ -1,6 +1,6 @@ SBV: SMT Based Verification in Haskell -Copyright (c) 2010-2019, Levent Erkok (erkokl@gmail.com)+Copyright (c) 2010-2020, Levent Erkok (erkokl@gmail.com) All rights reserved.  Redistribution and use in source and binary forms, with or without
SBVTestSuite/GoldFiles/barrelRotate_Left_Int16_Word16.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 16) #x0010)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s35 () (_ BitVec 16) #x0000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 16))
SBVTestSuite/GoldFiles/barrelRotate_Left_Int16_Word32.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 32) #x00000010)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s35 () (_ BitVec 16) #x0000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 16))
SBVTestSuite/GoldFiles/barrelRotate_Left_Int16_Word64.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 64) #x0000000000000010)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s35 () (_ BitVec 16) #x0000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 16))
SBVTestSuite/GoldFiles/barrelRotate_Left_Int16_Word8.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 8) #x10)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s35 () (_ BitVec 16) #x0000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 16))
SBVTestSuite/GoldFiles/barrelRotate_Left_Int32_Word16.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 16) #x0020)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s55 () (_ BitVec 32) #x00000000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 32))
SBVTestSuite/GoldFiles/barrelRotate_Left_Int32_Word32.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 32) #x00000020)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s55 () (_ BitVec 32) #x00000000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 32))
SBVTestSuite/GoldFiles/barrelRotate_Left_Int32_Word64.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 64) #x0000000000000020)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s55 () (_ BitVec 32) #x00000000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 32))
SBVTestSuite/GoldFiles/barrelRotate_Left_Int32_Word8.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 8) #x20)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s55 () (_ BitVec 32) #x00000000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 32))
SBVTestSuite/GoldFiles/barrelRotate_Left_Int64_Word16.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 16) #x0040)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s91 () (_ BitVec 64) #x0000000000000000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 64))
SBVTestSuite/GoldFiles/barrelRotate_Left_Int64_Word32.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 32) #x00000040)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s91 () (_ BitVec 64) #x0000000000000000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 64))
SBVTestSuite/GoldFiles/barrelRotate_Left_Int64_Word64.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 64) #x0000000000000040)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s91 () (_ BitVec 64) #x0000000000000000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 64))
SBVTestSuite/GoldFiles/barrelRotate_Left_Int64_Word8.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 8) #x40)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s91 () (_ BitVec 64) #x0000000000000000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 64))
SBVTestSuite/GoldFiles/barrelRotate_Left_Int8_Word16.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 16) #x0008)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s23 () (_ BitVec 8) #x00) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 8))
SBVTestSuite/GoldFiles/barrelRotate_Left_Int8_Word32.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 32) #x00000008)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s23 () (_ BitVec 8) #x00) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 8))
SBVTestSuite/GoldFiles/barrelRotate_Left_Int8_Word64.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 64) #x0000000000000008)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s23 () (_ BitVec 8) #x00) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 8))
SBVTestSuite/GoldFiles/barrelRotate_Left_Int8_Word8.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 8) #x08)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s23 () (_ BitVec 8) #x00) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 8))
SBVTestSuite/GoldFiles/barrelRotate_Left_Word16_Word16.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 16) #x0010)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s35 () (_ BitVec 16) #x0000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 16))
SBVTestSuite/GoldFiles/barrelRotate_Left_Word16_Word32.gold view
@@ -9,9 +9,9 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ---+[GOOD] (define-fun s2 () (_ BitVec 32) #x00000010) [GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s35 () (_ BitVec 16) #x0000)-[GOOD] (define-fun s2 () (_ BitVec 32) #x00000010) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 16)) [GOOD] (declare-fun s1 () (_ BitVec 32))
SBVTestSuite/GoldFiles/barrelRotate_Left_Word16_Word64.gold view
@@ -9,9 +9,9 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ---+[GOOD] (define-fun s2 () (_ BitVec 64) #x0000000000000010) [GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s35 () (_ BitVec 16) #x0000)-[GOOD] (define-fun s2 () (_ BitVec 64) #x0000000000000010) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 16)) [GOOD] (declare-fun s1 () (_ BitVec 64))
SBVTestSuite/GoldFiles/barrelRotate_Left_Word16_Word8.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 8) #x10)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s35 () (_ BitVec 16) #x0000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 16))
SBVTestSuite/GoldFiles/barrelRotate_Left_Word32_Word16.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 16) #x0020)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s55 () (_ BitVec 32) #x00000000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 32))
SBVTestSuite/GoldFiles/barrelRotate_Left_Word32_Word32.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 32) #x00000020)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s55 () (_ BitVec 32) #x00000000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 32))
SBVTestSuite/GoldFiles/barrelRotate_Left_Word32_Word64.gold view
@@ -9,9 +9,9 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ---+[GOOD] (define-fun s2 () (_ BitVec 64) #x0000000000000020) [GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s55 () (_ BitVec 32) #x00000000)-[GOOD] (define-fun s2 () (_ BitVec 64) #x0000000000000020) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 32)) [GOOD] (declare-fun s1 () (_ BitVec 64))
SBVTestSuite/GoldFiles/barrelRotate_Left_Word32_Word8.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 8) #x20)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s55 () (_ BitVec 32) #x00000000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 32))
SBVTestSuite/GoldFiles/barrelRotate_Left_Word64_Word16.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 16) #x0040)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s91 () (_ BitVec 64) #x0000000000000000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 64))
SBVTestSuite/GoldFiles/barrelRotate_Left_Word64_Word32.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 32) #x00000040)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s91 () (_ BitVec 64) #x0000000000000000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 64))
SBVTestSuite/GoldFiles/barrelRotate_Left_Word64_Word64.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 64) #x0000000000000040)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s91 () (_ BitVec 64) #x0000000000000000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 64))
SBVTestSuite/GoldFiles/barrelRotate_Left_Word64_Word8.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 8) #x40)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s91 () (_ BitVec 64) #x0000000000000000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 64))
SBVTestSuite/GoldFiles/barrelRotate_Left_Word8_Word16.gold view
@@ -9,9 +9,9 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ---+[GOOD] (define-fun s2 () (_ BitVec 16) #x0008) [GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s23 () (_ BitVec 8) #x00)-[GOOD] (define-fun s2 () (_ BitVec 16) #x0008) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 8)) [GOOD] (declare-fun s1 () (_ BitVec 16))
SBVTestSuite/GoldFiles/barrelRotate_Left_Word8_Word32.gold view
@@ -9,9 +9,9 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ---+[GOOD] (define-fun s2 () (_ BitVec 32) #x00000008) [GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s23 () (_ BitVec 8) #x00)-[GOOD] (define-fun s2 () (_ BitVec 32) #x00000008) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 8)) [GOOD] (declare-fun s1 () (_ BitVec 32))
SBVTestSuite/GoldFiles/barrelRotate_Left_Word8_Word64.gold view
@@ -9,9 +9,9 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ---+[GOOD] (define-fun s2 () (_ BitVec 64) #x0000000000000008) [GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s23 () (_ BitVec 8) #x00)-[GOOD] (define-fun s2 () (_ BitVec 64) #x0000000000000008) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 8)) [GOOD] (declare-fun s1 () (_ BitVec 64))
SBVTestSuite/GoldFiles/barrelRotate_Left_Word8_Word8.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 8) #x08)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s23 () (_ BitVec 8) #x00) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 8))
SBVTestSuite/GoldFiles/barrelRotate_Right_Int16_Word16.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 16) #x0010)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s35 () (_ BitVec 16) #x0000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 16))
SBVTestSuite/GoldFiles/barrelRotate_Right_Int16_Word32.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 32) #x00000010)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s35 () (_ BitVec 16) #x0000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 16))
SBVTestSuite/GoldFiles/barrelRotate_Right_Int16_Word64.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 64) #x0000000000000010)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s35 () (_ BitVec 16) #x0000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 16))
SBVTestSuite/GoldFiles/barrelRotate_Right_Int16_Word8.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 8) #x10)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s35 () (_ BitVec 16) #x0000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 16))
SBVTestSuite/GoldFiles/barrelRotate_Right_Int32_Word16.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 16) #x0020)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s55 () (_ BitVec 32) #x00000000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 32))
SBVTestSuite/GoldFiles/barrelRotate_Right_Int32_Word32.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 32) #x00000020)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s55 () (_ BitVec 32) #x00000000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 32))
SBVTestSuite/GoldFiles/barrelRotate_Right_Int32_Word64.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 64) #x0000000000000020)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s55 () (_ BitVec 32) #x00000000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 32))
SBVTestSuite/GoldFiles/barrelRotate_Right_Int32_Word8.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 8) #x20)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s55 () (_ BitVec 32) #x00000000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 32))
SBVTestSuite/GoldFiles/barrelRotate_Right_Int64_Word16.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 16) #x0040)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s91 () (_ BitVec 64) #x0000000000000000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 64))
SBVTestSuite/GoldFiles/barrelRotate_Right_Int64_Word32.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 32) #x00000040)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s91 () (_ BitVec 64) #x0000000000000000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 64))
SBVTestSuite/GoldFiles/barrelRotate_Right_Int64_Word64.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 64) #x0000000000000040)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s91 () (_ BitVec 64) #x0000000000000000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 64))
SBVTestSuite/GoldFiles/barrelRotate_Right_Int64_Word8.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 8) #x40)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s91 () (_ BitVec 64) #x0000000000000000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 64))
SBVTestSuite/GoldFiles/barrelRotate_Right_Int8_Word16.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 16) #x0008)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s23 () (_ BitVec 8) #x00) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 8))
SBVTestSuite/GoldFiles/barrelRotate_Right_Int8_Word32.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 32) #x00000008)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s23 () (_ BitVec 8) #x00) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 8))
SBVTestSuite/GoldFiles/barrelRotate_Right_Int8_Word64.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 64) #x0000000000000008)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s23 () (_ BitVec 8) #x00) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 8))
SBVTestSuite/GoldFiles/barrelRotate_Right_Int8_Word8.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 8) #x08)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s23 () (_ BitVec 8) #x00) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 8))
SBVTestSuite/GoldFiles/barrelRotate_Right_Word16_Word16.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 16) #x0010)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s35 () (_ BitVec 16) #x0000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 16))
SBVTestSuite/GoldFiles/barrelRotate_Right_Word16_Word32.gold view
@@ -9,9 +9,9 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ---+[GOOD] (define-fun s2 () (_ BitVec 32) #x00000010) [GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s35 () (_ BitVec 16) #x0000)-[GOOD] (define-fun s2 () (_ BitVec 32) #x00000010) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 16)) [GOOD] (declare-fun s1 () (_ BitVec 32))
SBVTestSuite/GoldFiles/barrelRotate_Right_Word16_Word64.gold view
@@ -9,9 +9,9 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ---+[GOOD] (define-fun s2 () (_ BitVec 64) #x0000000000000010) [GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s35 () (_ BitVec 16) #x0000)-[GOOD] (define-fun s2 () (_ BitVec 64) #x0000000000000010) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 16)) [GOOD] (declare-fun s1 () (_ BitVec 64))
SBVTestSuite/GoldFiles/barrelRotate_Right_Word16_Word8.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 8) #x10)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s35 () (_ BitVec 16) #x0000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 16))
SBVTestSuite/GoldFiles/barrelRotate_Right_Word32_Word16.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 16) #x0020)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s55 () (_ BitVec 32) #x00000000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 32))
SBVTestSuite/GoldFiles/barrelRotate_Right_Word32_Word32.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 32) #x00000020)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s55 () (_ BitVec 32) #x00000000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 32))
SBVTestSuite/GoldFiles/barrelRotate_Right_Word32_Word64.gold view
@@ -9,9 +9,9 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ---+[GOOD] (define-fun s2 () (_ BitVec 64) #x0000000000000020) [GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s55 () (_ BitVec 32) #x00000000)-[GOOD] (define-fun s2 () (_ BitVec 64) #x0000000000000020) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 32)) [GOOD] (declare-fun s1 () (_ BitVec 64))
SBVTestSuite/GoldFiles/barrelRotate_Right_Word32_Word8.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 8) #x20)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s55 () (_ BitVec 32) #x00000000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 32))
SBVTestSuite/GoldFiles/barrelRotate_Right_Word64_Word16.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 16) #x0040)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s91 () (_ BitVec 64) #x0000000000000000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 64))
SBVTestSuite/GoldFiles/barrelRotate_Right_Word64_Word32.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 32) #x00000040)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s91 () (_ BitVec 64) #x0000000000000000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 64))
SBVTestSuite/GoldFiles/barrelRotate_Right_Word64_Word64.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 64) #x0000000000000040)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s91 () (_ BitVec 64) #x0000000000000000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 64))
SBVTestSuite/GoldFiles/barrelRotate_Right_Word64_Word8.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 8) #x40)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s91 () (_ BitVec 64) #x0000000000000000) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 64))
SBVTestSuite/GoldFiles/barrelRotate_Right_Word8_Word16.gold view
@@ -9,9 +9,9 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ---+[GOOD] (define-fun s2 () (_ BitVec 16) #x0008) [GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s23 () (_ BitVec 8) #x00)-[GOOD] (define-fun s2 () (_ BitVec 16) #x0008) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 8)) [GOOD] (declare-fun s1 () (_ BitVec 16))
SBVTestSuite/GoldFiles/barrelRotate_Right_Word8_Word32.gold view
@@ -9,9 +9,9 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ---+[GOOD] (define-fun s2 () (_ BitVec 32) #x00000008) [GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s23 () (_ BitVec 8) #x00)-[GOOD] (define-fun s2 () (_ BitVec 32) #x00000008) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 8)) [GOOD] (declare-fun s1 () (_ BitVec 32))
SBVTestSuite/GoldFiles/barrelRotate_Right_Word8_Word64.gold view
@@ -9,9 +9,9 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ---+[GOOD] (define-fun s2 () (_ BitVec 64) #x0000000000000008) [GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s23 () (_ BitVec 8) #x00)-[GOOD] (define-fun s2 () (_ BitVec 64) #x0000000000000008) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 8)) [GOOD] (declare-fun s1 () (_ BitVec 64))
SBVTestSuite/GoldFiles/barrelRotate_Right_Word8_Word8.gold view
@@ -9,8 +9,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s2 () (_ BitVec 8) #x08)+[GOOD] (define-fun s5 () (_ BitVec 1) #b0) [GOOD] (define-fun s23 () (_ BitVec 8) #x00) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (_ BitVec 8))
SBVTestSuite/GoldFiles/ccitt.gold view
@@ -3,9 +3,6 @@   s1 :: SWord 48 CONSTANTS   s5 = 0 :: WordN 1-  s2054 = 0 :: Word8-  s2055 = 1 :: Word8-  s2183 = 3 :: Word8   s101 = 65536 :: Word64   s102 = 0 :: Word64   s104 = 131072 :: Word64@@ -71,6 +68,9 @@   s795 = 8192 :: Word64   s798 = 16384 :: Word64   s801 = 32768 :: Word64+  s2054 = 0 :: Word8+  s2055 = 1 :: Word8+  s2183 = 3 :: Word8 TABLES ARRAYS UNINTERPRETED CONSTANTS
SBVTestSuite/GoldFiles/freshVars.gold view
@@ -184,20 +184,16 @@ [SEND] (get-value (s62)) [RECV] ((s62 "hello")) [SEND] (get-value (s63))-[RECV] ((s63 (seq.++ (seq.unit 1) (seq.++ (seq.unit 2) (seq.++ (seq.unit 3) (seq.unit 4))))))+[RECV] ((s63 (seq.++ (seq.unit 1) (seq.unit 2) (seq.unit 3) (seq.unit 4)))) [SEND] (get-value (s64))-[RECV] ((s64 (seq.++ (seq.unit (seq.++ (seq.unit 1) (seq.++ (seq.unit 2) (seq.unit 3))))-               (seq.unit (seq.++ (seq.unit 4)-                                 (seq.++ (seq.unit 5)-                                         (seq.++ (seq.unit 6) (seq.unit 7))))))))+[RECV] ((s64 (seq.++ (seq.unit (seq.++ (seq.unit 1) (seq.unit 2) (seq.unit 3)))+               (seq.unit (seq.++ (seq.unit 4) (seq.unit 5) (seq.unit 6) (seq.unit 7)))))) [SEND] (get-value (s65)) [RECV] ((s65 "\x01\x02")) [SEND] (get-value (s66))-[RECV] ((s66 (seq.++ (seq.unit (seq.++ (seq.unit #x0001)-                                 (seq.++ (seq.unit #x0002) (seq.unit #x0003))))-               (seq.++ (seq.unit (as seq.empty (Seq (_ BitVec 16))))-                       (seq.unit (seq.++ (seq.unit #x0004)-                                         (seq.++ (seq.unit #x0005) (seq.unit #x0006))))))))+[RECV] ((s66 (seq.++ (seq.unit (seq.++ (seq.unit #x0001) (seq.unit #x0002) (seq.unit #x0003)))+               (seq.unit (as seq.empty (Seq (_ BitVec 16))))+               (seq.unit (seq.++ (seq.unit #x0004) (seq.unit #x0005) (seq.unit #x0006)))))) *** Solver   : Z3 *** Exit code: ExitSuccess 
SBVTestSuite/GoldFiles/legato.gold view
@@ -7,11 +7,11 @@   s5 :: SBool, existential, aliasing "flagC"   s6 :: SBool, existential, aliasing "flagZ" CONSTANTS-  s10 = 0 :: WordN 1+  s7 = 256 :: Word16   s8 = 0 :: Word8+  s10 = 0 :: WordN 1   s14 = 128 :: Word8   s16 = 127 :: Word8-  s7 = 256 :: Word16 TABLES ARRAYS UNINTERPRETED CONSTANTS
SBVTestSuite/GoldFiles/mapWithFailure.gold view
@@ -14,11 +14,11 @@ [GOOD] ; --- sums --- [GOOD] ; --- literal constants --- [GOOD] (define-fun s2 () Int 0)+[GOOD] (define-fun s4 () (Seq Int) (as seq.empty (Seq Int))) [GOOD] (define-fun s6 () Int 1) [GOOD] (define-fun s91 () Int 2) [GOOD] (define-fun s93 () Int 11) [GOOD] (define-fun s97 () Int 10)-[GOOD] (define-fun s4 () (Seq Int) (as seq.empty (Seq Int))) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (Seq Int)) ; tracks user variable "ints" [GOOD] ; --- constant tables ---
SBVTestSuite/GoldFiles/pareto2.gold view
@@ -1,45 +1,45 @@ Pareto front #1: Optimal model:   x            = 0 :: Integer-  y            = 3 :: Integer+  y            = 0 :: Integer   min_x        = 0 :: Integer-  max_y        = 3 :: Integer-  max_x_plus_y = 3 :: Integer+  max_y        = 0 :: Integer+  max_x_plus_y = 0 :: 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            = 1 :: Integer   min_x        = 0 :: Integer   max_y        = 1 :: Integer   max_x_plus_y = 1 :: Integer-Pareto front #4: Optimal model:+Pareto front #3: Optimal model:   x            = 0 :: Integer-  y            = 0 :: Integer+  y            = 2 :: Integer   min_x        = 0 :: Integer-  max_y        = 0 :: Integer-  max_x_plus_y = 0 :: Integer-Pareto front #5: Optimal model:+  max_y        = 2 :: Integer+  max_x_plus_y = 2 :: Integer+Pareto front #4: Optimal model:   x            =  0 :: Integer   y            = -1 :: Integer   min_x        =  0 :: Integer   max_y        = -1 :: Integer   max_x_plus_y = -1 :: Integer-Pareto front #6: Optimal model:+Pareto front #5: Optimal model:   x            =  0 :: Integer   y            = -2 :: Integer   min_x        =  0 :: Integer   max_y        = -2 :: Integer   max_x_plus_y = -2 :: Integer-Pareto front #7: Optimal model:+Pareto front #6: Optimal model:   x            =  0 :: Integer   y            = -3 :: Integer   min_x        =  0 :: Integer   max_y        = -3 :: Integer   max_x_plus_y = -3 :: Integer+Pareto front #7: Optimal model:+  x            = 0 :: Integer+  y            = 3 :: Integer+  min_x        = 0 :: Integer+  max_y        = 3 :: Integer+  max_x_plus_y = 3 :: Integer Pareto front #8: Optimal model:   x            =  0 :: Integer   y            = -4 :: Integer@@ -53,130 +53,130 @@   max_y        = -5 :: Integer   max_x_plus_y = -5 :: Integer Pareto front #10: Optimal model:+  x            =  0 :: Integer+  y            = -6 :: Integer+  min_x        =  0 :: Integer+  max_y        = -6 :: Integer+  max_x_plus_y = -6 :: Integer+Pareto front #11: Optimal model:+  x            =  0 :: Integer+  y            = -7 :: Integer+  min_x        =  0 :: Integer+  max_y        = -7 :: Integer+  max_x_plus_y = -7 :: Integer+Pareto front #12: Optimal model:+  x            =  0 :: Integer+  y            = -8 :: Integer+  min_x        =  0 :: Integer+  max_y        = -8 :: Integer+  max_x_plus_y = -8 :: Integer+Pareto front #13: Optimal model:+  x            =  0 :: Integer+  y            = -9 :: Integer+  min_x        =  0 :: Integer+  max_y        = -9 :: Integer+  max_x_plus_y = -9 :: Integer+Pareto front #14: Optimal model:+  x            =   0 :: Integer+  y            = -10 :: Integer+  min_x        =   0 :: Integer+  max_y        = -10 :: Integer+  max_x_plus_y = -10 :: Integer+Pareto front #15: Optimal model:+  x            =   0 :: Integer+  y            = -11 :: Integer+  min_x        =   0 :: Integer+  max_y        = -11 :: Integer+  max_x_plus_y = -11 :: Integer+Pareto front #16: Optimal model:+  x            =   0 :: Integer+  y            = -12 :: Integer+  min_x        =   0 :: Integer+  max_y        = -12 :: Integer+  max_x_plus_y = -12 :: Integer+Pareto front #17: Optimal model:+  x            =   0 :: Integer+  y            = -13 :: Integer+  min_x        =   0 :: Integer+  max_y        = -13 :: Integer+  max_x_plus_y = -13 :: Integer+Pareto front #18: Optimal model:+  x            =   0 :: Integer+  y            = -14 :: Integer+  min_x        =   0 :: Integer+  max_y        = -14 :: Integer+  max_x_plus_y = -14 :: Integer+Pareto front #19: Optimal model:   x            = 0 :: Integer   y            = 4 :: Integer   min_x        = 0 :: Integer   max_y        = 4 :: Integer   max_x_plus_y = 4 :: Integer-Pareto front #11: Optimal model:+Pareto front #20: Optimal model:   x            = 0 :: Integer   y            = 5 :: Integer   min_x        = 0 :: Integer   max_y        = 5 :: Integer   max_x_plus_y = 5 :: Integer-Pareto front #12: Optimal model:-  x            =  0 :: Integer-  y            = -6 :: Integer-  min_x        =  0 :: Integer-  max_y        = -6 :: Integer-  max_x_plus_y = -6 :: Integer-Pareto front #13: Optimal model:+Pareto front #21: Optimal model:   x            = 0 :: Integer   y            = 6 :: Integer   min_x        = 0 :: Integer   max_y        = 6 :: Integer   max_x_plus_y = 6 :: Integer-Pareto front #14: Optimal model:-  x            = 0 :: Integer-  y            = 7 :: Integer-  min_x        = 0 :: Integer-  max_y        = 7 :: Integer-  max_x_plus_y = 7 :: Integer-Pareto front #15: Optimal model:-  x            = 0 :: Integer-  y            = 8 :: Integer-  min_x        = 0 :: Integer-  max_y        = 8 :: Integer-  max_x_plus_y = 8 :: Integer-Pareto front #16: Optimal model:-  x            = 0 :: Integer-  y            = 9 :: Integer-  min_x        = 0 :: Integer-  max_y        = 9 :: Integer-  max_x_plus_y = 9 :: Integer-Pareto front #17: Optimal model:-  x            =  0 :: Integer-  y            = 10 :: Integer-  min_x        =  0 :: Integer-  max_y        = 10 :: Integer-  max_x_plus_y = 10 :: Integer-Pareto front #18: Optimal model:-  x            =  0 :: Integer-  y            = 11 :: Integer-  min_x        =  0 :: Integer-  max_y        = 11 :: Integer-  max_x_plus_y = 11 :: Integer-Pareto front #19: Optimal model:-  x            =  0 :: Integer-  y            = 12 :: Integer-  min_x        =  0 :: Integer-  max_y        = 12 :: Integer-  max_x_plus_y = 12 :: Integer-Pareto front #20: Optimal model:-  x            =  0 :: Integer-  y            = 13 :: Integer-  min_x        =  0 :: Integer-  max_y        = 13 :: Integer-  max_x_plus_y = 13 :: Integer-Pareto front #21: Optimal model:-  x            =  0 :: Integer-  y            = 14 :: Integer-  min_x        =  0 :: Integer-  max_y        = 14 :: Integer-  max_x_plus_y = 14 :: Integer Pareto front #22: Optimal model:-  x            =  0 :: Integer-  y            = 15 :: Integer-  min_x        =  0 :: Integer-  max_y        = 15 :: Integer-  max_x_plus_y = 15 :: Integer+  x            =   0 :: Integer+  y            = -15 :: Integer+  min_x        =   0 :: Integer+  max_y        = -15 :: Integer+  max_x_plus_y = -15 :: Integer Pareto front #23: Optimal model:-  x            =  0 :: Integer-  y            = 16 :: Integer-  min_x        =  0 :: Integer-  max_y        = 16 :: Integer-  max_x_plus_y = 16 :: Integer+  x            =   0 :: Integer+  y            = -16 :: Integer+  min_x        =   0 :: Integer+  max_y        = -16 :: Integer+  max_x_plus_y = -16 :: Integer Pareto front #24: Optimal model:-  x            =  0 :: Integer-  y            = -7 :: Integer-  min_x        =  0 :: Integer-  max_y        = -7 :: Integer-  max_x_plus_y = -7 :: Integer+  x            =   0 :: Integer+  y            = -17 :: Integer+  min_x        =   0 :: Integer+  max_y        = -17 :: Integer+  max_x_plus_y = -17 :: Integer Pareto front #25: Optimal model:-  x            =  0 :: Integer-  y            = 17 :: Integer-  min_x        =  0 :: Integer-  max_y        = 17 :: Integer-  max_x_plus_y = 17 :: Integer+  x            =   0 :: Integer+  y            = -18 :: Integer+  min_x        =   0 :: Integer+  max_y        = -18 :: Integer+  max_x_plus_y = -18 :: Integer Pareto front #26: Optimal model:-  x            =  0 :: Integer-  y            = 18 :: Integer-  min_x        =  0 :: Integer-  max_y        = 18 :: Integer-  max_x_plus_y = 18 :: Integer+  x            =   0 :: Integer+  y            = -19 :: Integer+  min_x        =   0 :: Integer+  max_y        = -19 :: Integer+  max_x_plus_y = -19 :: Integer Pareto front #27: Optimal model:-  x            =  0 :: Integer-  y            = 19 :: Integer-  min_x        =  0 :: Integer-  max_y        = 19 :: Integer-  max_x_plus_y = 19 :: Integer+  x            =   0 :: Integer+  y            = -20 :: Integer+  min_x        =   0 :: Integer+  max_y        = -20 :: Integer+  max_x_plus_y = -20 :: Integer Pareto front #28: Optimal model:-  x            =  0 :: Integer-  y            = 20 :: Integer-  min_x        =  0 :: Integer-  max_y        = 20 :: Integer-  max_x_plus_y = 20 :: Integer+  x            =   0 :: Integer+  y            = -21 :: Integer+  min_x        =   0 :: Integer+  max_y        = -21 :: Integer+  max_x_plus_y = -21 :: Integer Pareto front #29: Optimal model:-  x            =  0 :: Integer-  y            = 21 :: Integer-  min_x        =  0 :: Integer-  max_y        = 21 :: Integer-  max_x_plus_y = 21 :: Integer+  x            =   0 :: Integer+  y            = -22 :: Integer+  min_x        =   0 :: Integer+  max_y        = -22 :: Integer+  max_x_plus_y = -22 :: Integer Pareto front #30: Optimal model:-  x            =  0 :: Integer-  y            = -8 :: Integer-  min_x        =  0 :: Integer-  max_y        = -8 :: Integer-  max_x_plus_y = -8 :: Integer+  x            =   0 :: Integer+  y            = -23 :: Integer+  min_x        =   0 :: Integer+  max_y        = -23 :: Integer+  max_x_plus_y = -23 :: Integer *** Note: Pareto-front extraction was terminated as requested by the user. ***       There might be many other results!
SBVTestSuite/GoldFiles/query1.gold view
@@ -73,7 +73,7 @@ [SEND] (get-info :reason-unknown) [RECV] (:reason-unknown "state of the most recent check-sat command is not known") [SEND] (get-info :version)-[RECV] (:version "4.8.7")+[RECV] (:version "4.8.8") [SEND] (get-info :status) [RECV] (:status sat) [GOOD] (define-fun s16 () Int 4)@@ -104,7 +104,7 @@ [SEND] (get-info :reason-unknown) [RECV] (:reason-unknown "unknown") [SEND] (get-info :version)-[RECV] (:version "4.8.7")+[RECV] (:version "4.8.8") [SEND] (get-info :memory) [RECV] unsupported [SEND] (get-info :time)
SBVTestSuite/GoldFiles/queryArrays5.gold view
@@ -20,8 +20,8 @@ [GOOD] ; --- uninterpreted constants --- [GOOD] ; --- user given axioms --- [GOOD] ; --- formula ----[GOOD] (define-fun s4 () (_ BitVec 8) #x01) [GOOD] (define-fun s2 () (_ BitVec 8) #x01)+[GOOD] (define-fun s4 () (_ BitVec 8) #x01) [GOOD] (declare-fun array_1 () (Array (_ BitVec 8) (_ BitVec 8))) [GOOD] (declare-fun array_2 () (Array (_ BitVec 8) (_ BitVec 8))) [GOOD] (define-fun s3 () (_ BitVec 8) (bvadd s1 s2))
+ SBVTestSuite/GoldFiles/query_Interpolant3.gold view
@@ -0,0 +1,37 @@+** Calling: z3 -nw -in -smt2+[GOOD] ; Automatically generated by SBV. Do not edit.+[GOOD] (set-option :print-success true)+[GOOD] (set-option :global-declarations true)+[GOOD] (set-option :smtlib2_compliant true)+[GOOD] (set-option :diagnostic-output-channel "stdout")+[GOOD] (set-option :produce-models true)+[GOOD] (set-logic ALL) ; has unbounded values, using catch-all.+[GOOD] ; --- uninterpreted sorts ---+[GOOD] ; --- tuples ---+[GOOD] ; --- sums ---+[GOOD] ; --- literal constants ---+[GOOD] ; --- skolem constants ---+[GOOD] (declare-fun s0 () Int) ; tracks user variable "a"+[GOOD] (declare-fun s1 () Int) ; tracks user variable "b"+[GOOD] (declare-fun s2 () Int) ; tracks user variable "c"+[GOOD] (declare-fun s3 () Int) ; tracks user variable "d"+[GOOD] ; --- constant tables ---+[GOOD] ; --- skolemized tables ---+[GOOD] ; --- arrays ---+[GOOD] ; --- uninterpreted constants ---+[GOOD] ; --- user given axioms ---+[GOOD] ; --- formula ---+[GOOD] (define-fun s4 () Bool (= s0 s1))+[GOOD] (define-fun s5 () Bool (= s0 s2))+[GOOD] (define-fun s6 () Bool (and s4 s5))+[GOOD] (define-fun s7 () Bool (= s1 s3))+[GOOD] (define-fun s8 () Bool (= s2 s3))+[GOOD] (define-fun s9 () Bool (not s8))+[GOOD] (define-fun s10 () Bool (and s7 s9))+[SEND] (get-interpolant s6 s10)+[RECV] (= s2 s1)+*** Solver   : Z3+*** Exit code: ExitSuccess++FINAL OUTPUT:+"(= s2 s1)"
+ SBVTestSuite/GoldFiles/query_Interpolant4.gold view
@@ -0,0 +1,45 @@+** Calling: z3 -nw -in -smt2+[GOOD] ; Automatically generated by SBV. Do not edit.+[GOOD] (set-option :print-success true)+[GOOD] (set-option :global-declarations true)+[GOOD] (set-option :smtlib2_compliant true)+[GOOD] (set-option :diagnostic-output-channel "stdout")+[GOOD] (set-option :produce-models true)+[GOOD] (set-logic ALL) ; has unbounded values, using catch-all.+[GOOD] ; --- uninterpreted sorts ---+[GOOD] ; --- tuples ---+[GOOD] ; --- sums ---+[GOOD] ; --- literal constants ---+[GOOD] ; --- skolem constants ---+[GOOD] (declare-fun s0 () Int) ; tracks user variable "a"+[GOOD] (declare-fun s1 () Int) ; tracks user variable "b"+[GOOD] (declare-fun s2 () Int) ; tracks user variable "c"+[GOOD] (declare-fun s3 () Int) ; tracks user variable "d"+[GOOD] ; --- constant tables ---+[GOOD] ; --- skolemized tables ---+[GOOD] ; --- arrays ---+[GOOD] ; --- uninterpreted constants ---+[GOOD] ; --- user given axioms ---+[GOOD] ; --- formula ---+[GOOD] (declare-fun f (Int) Int)+[GOOD] (define-fun s4 () Int (f s0))+[GOOD] (define-fun s5 () Bool (= s2 s4))+[GOOD] (define-fun s6 () Int (f s1))+[GOOD] (define-fun s7 () Bool (= s3 s6))+[GOOD] (define-fun s8 () Bool (and s5 s7))+[GOOD] (declare-fun g (Int) Int)+[GOOD] (define-fun s9 () Bool (= s0 s1))+[GOOD] (define-fun s10 () Int (g s2))+[GOOD] (define-fun s11 () Int (g s3))+[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))+*** Solver   : Z3+*** Exit code: ExitSuccess++FINAL OUTPUT:+"(or (and (= s1 s2) (= s1 s3)) (<= (+ (* (- 1) s1) s0) (- 1)) (<= (+ s1 (* (- 1) s0)) (- 1)) (= s2 s3))"
SBVTestSuite/GoldFiles/query_Lists1.gold view
@@ -27,9 +27,7 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (s0))-[RECV] ((s0 (seq.++ (seq.unit 1)-               (seq.++ (seq.unit 2)-                       (seq.++ (seq.unit 3) (seq.++ (seq.unit 4) (seq.unit 5)))))))+[RECV] ((s0 (seq.++ (seq.unit 1) (seq.unit 2) (seq.unit 3) (seq.unit 4) (seq.unit 5)))) *** Solver   : Z3 *** Exit code: ExitSuccess 
SBVTestSuite/GoldFiles/query_badOption.gold view
@@ -21,7 +21,6 @@ ***                  memory_max_alloc_count (unsigned int) (default: 0) ***                  memory_max_size (unsigned int) (default: 0) ***                  model (bool) (default: true)-***                  model_compress (bool) (default: true) ***                  model_validate (bool) (default: false) ***                  proof (bool) (default: false) ***                  rlimit (unsigned int) (default: 0)
SBVTestSuite/GoldFiles/query_uisatex1.gold view
@@ -24,27 +24,27 @@ [GOOD] (define-fun s20 () Int 5) [GOOD] (define-fun s22 () Int 7) [GOOD] (define-fun s24 () Int 6)-[GOOD] (define-fun s32 () Int 121)-[GOOD] (define-fun s37 () Int 8)-[GOOD] (define-fun s62 () Int 21)-[GOOD] (define-fun s67 () Int 210) [GOOD] (define-fun s28 () (_ FloatingPoint  8 24) ((_ to_fp 8 24) roundNearestTiesToEven (/ 4508877.0 524288.0))) [GOOD] (define-fun s31 () (_ FloatingPoint  8 24) ((_ to_fp 8 24) roundNearestTiesToEven (/ 5033165.0 524288.0)))+[GOOD] (define-fun s32 () Int 121)+[GOOD] (define-fun s37 () Int 8) [GOOD] (define-fun s39 () (_ FloatingPoint  8 24) (_ +oo 8 24))-[GOOD] (define-fun s44 () (_ FloatingPoint  8 24) ((_ to_fp 8 24) roundNearestTiesToEven (/ 78.0 1.0)))-[GOOD] (define-fun s48 () (_ FloatingPoint  8 24) ((_ to_fp 8 24) roundNearestTiesToEven (/ 92.0 1.0)))-[GOOD] (define-fun s53 () (_ FloatingPoint  8 24) ((_ to_fp 8 24) roundNearestTiesToEven (/ 7.0 2.0))) [GOOD] (define-fun s41 () (_ BitVec 8) #x63)-[GOOD] (define-fun s50 () (_ BitVec 8) #x72) [GOOD] (define-fun s42 () String "hey")+[GOOD] (define-fun s44 () (_ FloatingPoint  8 24) ((_ to_fp 8 24) roundNearestTiesToEven (/ 78.0 1.0))) [GOOD] (define-fun s46 () String "tey")+[GOOD] (define-fun s48 () (_ FloatingPoint  8 24) ((_ to_fp 8 24) roundNearestTiesToEven (/ 92.0 1.0)))+[GOOD] (define-fun s50 () (_ BitVec 8) #x72) [GOOD] (define-fun s51 () String "foo")+[GOOD] (define-fun s53 () (_ FloatingPoint  8 24) ((_ to_fp 8 24) roundNearestTiesToEven (/ 7.0 2.0))) [GOOD] (define-fun s55 () (Seq Int) (seq.++ (seq.unit 1) (seq.unit 2) (seq.unit 3)))-[GOOD] (define-fun s59 () (Seq Int) (seq.++ (seq.unit 9) (seq.unit 5)))-[GOOD] (define-fun s64 () (Seq Int) (seq.unit 5)) [GOOD] (define-fun s56 () (Seq (_ FloatingPoint  8 24)) (seq.++ (seq.unit ((_ to_fp 8 24) roundNearestTiesToEven (/ 8598323.0 1048576.0))) (seq.unit ((_ to_fp 8 24) roundNearestTiesToEven (/ 3.0 1.0)))))+[GOOD] (define-fun s59 () (Seq Int) (seq.++ (seq.unit 9) (seq.unit 5))) [GOOD] (define-fun s60 () (Seq (_ FloatingPoint  8 24)) (seq.++ (seq.unit ((_ to_fp 8 24) roundNearestTiesToEven (/ 8598323.0 1048576.0))) (seq.unit ((_ to_fp 8 24) roundNearestTiesToEven (/ 9.0 1.0)))))+[GOOD] (define-fun s62 () Int 21)+[GOOD] (define-fun s64 () (Seq Int) (seq.unit 5)) [GOOD] (define-fun s65 () (Seq (_ FloatingPoint  8 24)) (seq.++ (seq.unit ((_ to_fp 8 24) roundNearestTiesToEven (/ 8598323.0 1048576.0))) (seq.unit (_ +zero 8 24))))+[GOOD] (define-fun s67 () Int 210) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () Int) [GOOD] ; --- constant tables ---
SBVTestSuite/GoldFiles/query_uisatex2.gold view
@@ -24,27 +24,27 @@ [GOOD] (define-fun s20 () Int 5) [GOOD] (define-fun s22 () Int 7) [GOOD] (define-fun s24 () Int 6)-[GOOD] (define-fun s32 () Int 121)-[GOOD] (define-fun s37 () Int 8)-[GOOD] (define-fun s62 () Int 21)-[GOOD] (define-fun s67 () Int 210) [GOOD] (define-fun s28 () (_ FloatingPoint  8 24) ((_ to_fp 8 24) roundNearestTiesToEven (/ 4508877.0 524288.0))) [GOOD] (define-fun s31 () (_ FloatingPoint  8 24) ((_ to_fp 8 24) roundNearestTiesToEven (/ 5033165.0 524288.0)))+[GOOD] (define-fun s32 () Int 121)+[GOOD] (define-fun s37 () Int 8) [GOOD] (define-fun s39 () (_ FloatingPoint  8 24) (_ +oo 8 24))-[GOOD] (define-fun s44 () (_ FloatingPoint  8 24) ((_ to_fp 8 24) roundNearestTiesToEven (/ 78.0 1.0)))-[GOOD] (define-fun s48 () (_ FloatingPoint  8 24) ((_ to_fp 8 24) roundNearestTiesToEven (/ 92.0 1.0)))-[GOOD] (define-fun s53 () (_ FloatingPoint  8 24) ((_ to_fp 8 24) roundNearestTiesToEven (/ 7.0 2.0))) [GOOD] (define-fun s41 () (_ BitVec 8) #x63)-[GOOD] (define-fun s50 () (_ BitVec 8) #x72) [GOOD] (define-fun s42 () String "hey")+[GOOD] (define-fun s44 () (_ FloatingPoint  8 24) ((_ to_fp 8 24) roundNearestTiesToEven (/ 78.0 1.0))) [GOOD] (define-fun s46 () String "tey")+[GOOD] (define-fun s48 () (_ FloatingPoint  8 24) ((_ to_fp 8 24) roundNearestTiesToEven (/ 92.0 1.0)))+[GOOD] (define-fun s50 () (_ BitVec 8) #x72) [GOOD] (define-fun s51 () String "foo")+[GOOD] (define-fun s53 () (_ FloatingPoint  8 24) ((_ to_fp 8 24) roundNearestTiesToEven (/ 7.0 2.0))) [GOOD] (define-fun s55 () (Seq Int) (seq.++ (seq.unit 1) (seq.unit 2) (seq.unit 3)))-[GOOD] (define-fun s59 () (Seq Int) (seq.++ (seq.unit 9) (seq.unit 5)))-[GOOD] (define-fun s64 () (Seq Int) (seq.unit 5)) [GOOD] (define-fun s56 () (Seq (_ FloatingPoint  8 24)) (seq.++ (seq.unit ((_ to_fp 8 24) roundNearestTiesToEven (/ 8598323.0 1048576.0))) (seq.unit ((_ to_fp 8 24) roundNearestTiesToEven (/ 3.0 1.0)))))+[GOOD] (define-fun s59 () (Seq Int) (seq.++ (seq.unit 9) (seq.unit 5))) [GOOD] (define-fun s60 () (Seq (_ FloatingPoint  8 24)) (seq.++ (seq.unit ((_ to_fp 8 24) roundNearestTiesToEven (/ 8598323.0 1048576.0))) (seq.unit ((_ to_fp 8 24) roundNearestTiesToEven (/ 9.0 1.0)))))+[GOOD] (define-fun s62 () Int 21)+[GOOD] (define-fun s64 () (Seq Int) (seq.unit 5)) [GOOD] (define-fun s65 () (Seq (_ FloatingPoint  8 24)) (seq.++ (seq.unit ((_ to_fp 8 24) roundNearestTiesToEven (/ 8598323.0 1048576.0))) (seq.unit (_ +zero 8 24))))+[GOOD] (define-fun s67 () Int 210) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () Int) [GOOD] ; --- constant tables ---
SBVTestSuite/GoldFiles/reverse.gold view
@@ -14,8 +14,8 @@ [GOOD] ; --- sums --- [GOOD] ; --- literal constants --- [GOOD] (define-fun s12 () Int 0)-[GOOD] (define-fun s15 () Int 1) [GOOD] (define-fun s14 () (Seq Int) (as seq.empty (Seq Int)))+[GOOD] (define-fun s15 () Int 1) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () Int) ; tracks user variable "a" [GOOD] (declare-fun s1 () Int) ; tracks user variable "b"
SBVTestSuite/GoldFiles/reverseAlt10.gold view
@@ -14,8 +14,8 @@ [GOOD] ; --- sums --- [GOOD] ; --- literal constants --- [GOOD] (define-fun s2 () Int 0)-[GOOD] (define-fun s5 () Int 1) [GOOD] (define-fun s4 () (Seq Int) (as seq.empty (Seq Int)))+[GOOD] (define-fun s5 () Int 1) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (Seq Int)) ; tracks user variable "xs" [GOOD] ; --- constant tables ---
SBVTestSuite/GoldFiles/seqExamples4.gold view
@@ -13,9 +13,9 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s8 () Int 2) [GOOD] (define-fun s2 () (Seq Int) (seq.++ (seq.unit 1) (seq.unit 2) (seq.unit 3))) [GOOD] (define-fun s4 () (Seq Int) (seq.++ (seq.unit 3) (seq.unit 4) (seq.unit 5)))+[GOOD] (define-fun s8 () Int 2) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (Seq Int)) ; tracks user variable "a" [GOOD] (declare-fun s1 () (Seq Int)) ; tracks user variable "b"
SBVTestSuite/GoldFiles/set_uninterp1.gold view
@@ -57,8 +57,8 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (s0))-[RECV] ((s0 (store (store ((as const (Array E Bool)) false) C true) A true)))-[GOOD] (define-fun s10 () (Array E Bool) (store (store ((as const (Array E Bool)) false) C true) A true))+[RECV] ((s0 (store (store (store ((as const (Array E Bool)) false) C true) B true) A true)))+[GOOD] (define-fun s10 () (Array E Bool) (store (store (store ((as const (Array E Bool)) false) C true) B true) A true)) [GOOD] (define-fun s11 () Bool (= s0 s10)) [GOOD] (define-fun s12 () Bool (not s11)) [GOOD] (assert s12)@@ -66,8 +66,8 @@ [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)))-[GOOD] (define-fun s13 () (Array E Bool) (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] (define-fun s13 () (Array E Bool) (store (store ((as const (Array E Bool)) false) C true) A true)) [GOOD] (define-fun s14 () Bool (= s0 s13)) [GOOD] (define-fun s15 () Bool (not s14)) [GOOD] (assert s15)@@ -84,8 +84,8 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (s0))-[RECV] ((s0 (store (store ((as const (Array E Bool)) false) C true) B true)))-[GOOD] (define-fun s19 () (Array E Bool) (store (store ((as const (Array E Bool)) false) C true) B true))+[RECV] ((s0 (lambda ((x!1 E)) (= x!1 C))))+[GOOD] (define-fun s19 () (Array E Bool) (store ((as const (Array E Bool)) false) C true)) [GOOD] (define-fun s20 () Bool (= s0 s19)) [GOOD] (define-fun s21 () Bool (not s20)) [GOOD] (assert s21)@@ -93,8 +93,8 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (s0))-[RECV] ((s0 (lambda ((x!1 E)) (= x!1 C))))-[GOOD] (define-fun s22 () (Array E Bool) (store ((as const (Array E Bool)) false) C true))+[RECV] ((s0 (store (store ((as const (Array E Bool)) false) C true) B true)))+[GOOD] (define-fun s22 () (Array E Bool) (store (store ((as const (Array E Bool)) false) C true) B true)) [GOOD] (define-fun s23 () Bool (= s0 s22)) [GOOD] (define-fun s24 () Bool (not s23)) [GOOD] (assert s24)@@ -112,14 +112,14 @@ Solution #3:   s0 = {A,B} :: {E} Solution #4:-  s0 = {A,C} :: {E}-Solution #5:   s0 = {A,B,C} :: {E}+Solution #5:+  s0 = {A,C} :: {E} Solution #6:   s0 = {B} :: {E} Solution #7:-  s0 = {B,C} :: {E}-Solution #8:   s0 = {C} :: {E}+Solution #8:+  s0 = {B,C} :: {E} Found 8 different solutions. DONE!
SBVTestSuite/GoldFiles/sort.gold view
@@ -14,8 +14,8 @@ [GOOD] ; --- sums --- [GOOD] ; --- literal constants --- [GOOD] (define-fun s13 () Int 0)-[GOOD] (define-fun s16 () Int 1) [GOOD] (define-fun s15 () (Seq Int) (as seq.empty (Seq Int)))+[GOOD] (define-fun s16 () Int 1) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () Int) ; tracks user variable "a" [GOOD] (declare-fun s1 () Int) ; tracks user variable "b"
SBVTestSuite/GoldFiles/strExamples13.gold view
@@ -10,8 +10,8 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s4 () Int 13) [GOOD] (define-fun s1 () String "13")+[GOOD] (define-fun s4 () Int 13) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () String) ; tracks user variable "s" [GOOD] ; --- constant tables ---
SBVTestSuite/GoldFiles/strExamples4.gold view
@@ -10,9 +10,9 @@ [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s8 () Int 2) [GOOD] (define-fun s2 () String "abc") [GOOD] (define-fun s4 () String "cef")+[GOOD] (define-fun s8 () Int 2) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () String) ; tracks user variable "a" [GOOD] (declare-fun s1 () String) ; tracks user variable "b"
SBVTestSuite/GoldFiles/sumMaybe.gold view
@@ -16,9 +16,9 @@                                            ((nothing_SBVMaybe)                                             (just_SBVMaybe (get_just_SBVMaybe T)))))) [GOOD] ; --- literal constants ---+[GOOD] (define-fun s3 () (SBVMaybe Int) (as nothing_SBVMaybe (SBVMaybe Int))) [GOOD] (define-fun s5 () Int 1) [GOOD] (define-fun s15 () Int 0)-[GOOD] (define-fun s3 () (SBVMaybe Int) (as nothing_SBVMaybe (SBVMaybe Int))) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (SBVMaybe Int)) ; tracks user variable "x" [GOOD] ; --- constant tables ---
SBVTestSuite/GoldFiles/tuple_enum.gold view
@@ -21,12 +21,12 @@ [GOOD] ; --- sums --- [GOOD] ; --- literal constants --- [GOOD] (define-fun s3 () Int 1)+[GOOD] (define-fun s6 () (Seq Bool) (seq.unit true)) [GOOD] (define-fun s11 () Int 3) [GOOD] (define-fun s13 () Int 2)+[GOOD] (define-fun s16 () E C) [GOOD] (define-fun s20 () Int 6) [GOOD] (define-fun s22 () Int 4)-[GOOD] (define-fun s16 () E C)-[GOOD] (define-fun s6 () (Seq Bool) (seq.unit true)) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (Seq (SBVTuple2 E (Seq Bool)))) ; tracks user variable "v1" [GOOD] (declare-fun s1 () Bool) ; tracks user variable "q"@@ -75,15 +75,13 @@ [RECV] sat [SEND] (get-value (s0)) [RECV] ((s0 (seq.++ (seq.unit (mkSBVTuple2 B (as seq.empty (Seq Bool))))-               (seq.++ (seq.unit (mkSBVTuple2 A-                                              (seq.++ (seq.unit true) (seq.unit false))))-                       (seq.unit (mkSBVTuple2 C-                                              (seq.++ (seq.unit false)-                                                      (seq.++ (seq.unit false)-                                                              (seq.++ (seq.unit false)-                                                                      (seq.++ (seq.unit false)-                                                                              (seq.++ (seq.unit true)-                                                                                      (seq.unit false))))))))))))+               (seq.unit (mkSBVTuple2 A (seq.++ (seq.unit true) (seq.unit false))))+               (seq.unit (mkSBVTuple2 C+                                      (seq.++ (seq.unit false)+                                              (seq.unit false)+                                              (seq.unit false)+                                              (seq.unit false)+                                              (seq.++ (seq.unit true) (seq.unit false)))))))) [SEND] (get-value (s24)) [RECV] ((s24 (mkSBVTuple2 #x05 (mkSBVTuple3 C #x41 (fp #b0 #x82 #b00000011110101110000101))))) *** Solver   : Z3
SBVTestSuite/GoldFiles/tuple_list.gold view
@@ -19,9 +19,9 @@ [GOOD] (define-fun s1 () Int 0) [GOOD] (define-fun s4 () Int 2) [GOOD] (define-fun s6 () Int 1)+[GOOD] (define-fun s11 () String "foo") [GOOD] (define-fun s14 () Int 4) [GOOD] (define-fun s17 () Int 5)-[GOOD] (define-fun s11 () String "foo") [GOOD] (define-fun s23 () (Seq (SBVTuple2 Int (Seq (SBVTuple2 Int String)))) (seq.++ (seq.unit (mkSBVTuple2 2 (as seq.empty (Seq (SBVTuple2 Int String))))) (seq.unit (mkSBVTuple2 1 (seq.++ (seq.unit (mkSBVTuple2 3 "foo")) (seq.unit (mkSBVTuple2 0 "bar")) (seq.unit (mkSBVTuple2 (- 1) "baz")) (seq.unit (mkSBVTuple2 (- 2) "quux")) (seq.unit (mkSBVTuple2 (- 3) "enough"))))) (seq.unit (mkSBVTuple2 (- 4) (as seq.empty (Seq (SBVTuple2 Int String))))) (seq.unit (mkSBVTuple2 (- 5) (as seq.empty (Seq (SBVTuple2 Int String))))))) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (Seq (SBVTuple2 Int (Seq (SBVTuple2 Int String))))) ; tracks user variable "lst"@@ -58,22 +58,16 @@ [RECV] sat [SEND] (get-value (s0)) [RECV] ((s0 (seq.++ (seq.unit (mkSBVTuple2 2 (as seq.empty (Seq (SBVTuple2 Int String)))))-               (seq.++ (seq.unit (mkSBVTuple2 1-                                              (seq.++ (seq.unit (mkSBVTuple2 3 "foo"))-                                                      (seq.++ (seq.unit (mkSBVTuple2 0-                                                                                     "bar"))-                                                              (seq.++ (seq.unit (mkSBVTuple2 (- 1)-                                                                                             "baz"))-                                                                      (seq.++ (seq.unit (mkSBVTuple2 (- 2)-                                                                                                     "quux"))-                                                                              (seq.unit (mkSBVTuple2 (- 3)-                                                                                                     "enough"))))))))-                       (seq.++ (seq.unit (mkSBVTuple2 (- 4)-                                                      (as seq.empty-                                                          (Seq (SBVTuple2 Int String)))))-                               (seq.unit (mkSBVTuple2 (- 5)-                                                      (as seq.empty-                                                          (Seq (SBVTuple2 Int String))))))))))+               (seq.unit (mkSBVTuple2 1+                                      (seq.++ (seq.unit (mkSBVTuple2 3 "foo"))+                                              (seq.unit (mkSBVTuple2 0 "bar"))+                                              (seq.unit (mkSBVTuple2 (- 1) "baz"))+                                              (seq.unit (mkSBVTuple2 (- 2) "quux"))+                                              (seq.unit (mkSBVTuple2 (- 3) "enough")))))+               (seq.unit (mkSBVTuple2 (- 4)+                                      (as seq.empty (Seq (SBVTuple2 Int String)))))+               (seq.unit (mkSBVTuple2 (- 5)+                                      (as seq.empty (Seq (SBVTuple2 Int String)))))))) *** Solver   : Z3 *** Exit code: ExitSuccess 
SBVTestSuite/GoldFiles/tuple_nested.gold view
@@ -16,10 +16,10 @@                                                          (proj_2_SBVTuple2 T2)))))) [GOOD] ; --- sums --- [GOOD] ; --- literal constants ----[GOOD] (define-fun s13 () (_ BitVec 8) #x00) [GOOD] (define-fun s3 () Int 1)-[GOOD] (define-fun s10 () (_ BitVec 8) #x63) [GOOD] (define-fun s7 () String "foo")+[GOOD] (define-fun s10 () (_ BitVec 8) #x63)+[GOOD] (define-fun s13 () (_ BitVec 8) #x00) [GOOD] ; --- skolem constants --- [GOOD] (declare-fun s0 () (SBVTuple2 (SBVTuple2 Int (SBVTuple2 String (_ BitVec 8))) (_ BitVec 8))) ; tracks user variable "abcd" [GOOD] ; --- constant tables ---
SBVTestSuite/GoldFiles/uiSat_test2.gold view
@@ -265,11 +265,20 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (q2))-[RECV] ((q2 (store (store ((as const Array) true) false true false) true true false)))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool))+         (or (and (not x!2) (not x!1)) (and x!2 (not x!1))))))+[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 q2_model13 ((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))+          (ite (and (= x!0 false) (= x!1 false)) true+          (ite (and (= x!0 true) (= x!1 false)) true+          false))        ) [GOOD] (define-fun q2_model13_reject () Bool           (exists ((x!0 Bool) (x!1 Bool))@@ -281,9 +290,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) true false false))) [GOOD] (define-fun q2_model14 ((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_model14_reject () Bool@@ -296,10 +305,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) true) true false false) true true false))) [GOOD] (define-fun q2_model15 ((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)+          true))        ) [GOOD] (define-fun q2_model15_reject () Bool           (exists ((x!0 Bool) (x!1 Bool))@@ -311,11 +321,10 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (q2))-[RECV] ((q2 (store (store ((as const Array) true) true false false) true true false)))+[RECV] ((q2 (store ((as const Array) true) true 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 true) (= x!1 false)) false-          true))+          true)        ) [GOOD] (define-fun q2_model16_reject () Bool           (exists ((x!0 Bool) (x!1 Bool))@@ -381,20 +390,20 @@   q2 _     _     = True  Solution #13:   q2 :: Bool -> Bool -> Bool-  q2 True  True = False-  q2 False True = False-  q2 _     _    = True +  q2 False False = True +  q2 True  False = True +  q2 _     _     = False Solution #14:   q2 :: Bool -> Bool -> Bool-  q2 True True = False-  q2 _    _    = True -Solution #15:-  q2 :: Bool -> Bool -> Bool   q2 True False = False   q2 _    _     = True -Solution #16:+Solution #15:   q2 :: Bool -> Bool -> Bool   q2 True True  = False   q2 True False = False   q2 _    _     = True +Solution #16:+  q2 :: Bool -> Bool -> Bool+  q2 True True = False+  q2 _    _    = True  Found 16 different solutions.
SBVTestSuite/GoldFiles/uiSat_test3.gold view
@@ -308,2259 +308,2234 @@ [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) true false false)))-[GOOD] (define-fun q1_model10 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) false-          true)-       )-[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-          (ite (and (= x!0 true) (= x!1 false)) false-          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) true)))-[SEND] (get-value (q2))-[RECV] ((q2 (store ((as const Array) true) true false false)))-[GOOD] (define-fun q1_model11 ((x!0 Bool)) Bool-          true-       )-[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 (store ((as const Array) true) true false)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool))-         (or (and (not x!2) x!1) (and (not x!2) (not x!1))))))-[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_model12 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) false-          true)-       )-[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 false)) true-          (ite (and (= x!0 false) (= x!1 true)) true-          false))-       )-[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 (store ((as const Array) true) true false)))-[SEND] (get-value (q2))-[RECV] ((q2 ((as const Array) true)))-[GOOD] (define-fun q1_model13 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) false-          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-          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 (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_model14 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) false-          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 true) (= x!1 true)) false-          true)-       )-[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 ((as const Array) true) true true false)))-[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 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 ((as const Array) true)))-[SEND] (get-value (q2))-[RECV] ((q2 ((as const Array) true)))-[GOOD] (define-fun q1_model16 ((x!0 Bool)) Bool-          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-          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 (store ((as const Array) true) true true false) true false 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 true) (= x!1 false)) false-          (ite (and (= x!0 true) (= 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 (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_model18 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) true-          false)-       )-[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 false)) false-          (ite (and (= x!0 true) (= 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 (store ((as const Array) true) 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 true) (= 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 (lambda ((x!1 Bool)) x!1)))-[SEND] (get-value (q2))-[RECV] ((q2 ((as const Array) true)))-[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-          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 ((as const Array) true) false true 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 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 ((as const Array) true) false true 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 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 true 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 true)) 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 ((as const Array) true)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!2 x!1) (and (not x!2) x!1)))))-[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_model24 ((x!0 Bool)) Bool-          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 false) (= x!1 true)) true-          (ite (and (= x!0 true) (= x!1 true)) true-          false))-       )-[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 (store ((as const Array) true) true false)))-[SEND] (get-value (q2))-[RECV] ((q2 (store (store ((as const Array) true) true false false) false false false)))-[GOOD] (define-fun q1_model25 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) false-          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 false) (= x!1 false)) false-          (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 (store ((as const Array) true) false false false)))-[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-          (ite (and (= x!0 false) (= 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 ((as const Array) true)))-[SEND] (get-value (q2))-[RECV] ((q2 (store ((as const Array) true) false false false)))-[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-          (ite (and (= x!0 false) (= x!1 false)) false-          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 (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 (store ((as const Array) true) false false false) true true 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 true) (= x!1 true)) false-          (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 (store (store ((as const Array) true) true true false) false true false)))-[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 false) (= x!1 true)) false-          (ite (and (= x!0 true) (= x!1 true)) false-          true))-       )-[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)) (and x!2 (not x!1)))))-[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_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 false)) 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)) (or (and x!2 x!1) (and x!2 (not x!1))))))-[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_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-          (ite (and (= x!0 true) (= 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) true)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!2 x!1) (and x!2 (not x!1))))))-[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_model33 ((x!0 Bool)) Bool-          true-       )-[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 true) (= x!1 false)) 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 ((as const Array) false)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!2) x!1))))-[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_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 false) (= x!1 true)) 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 (lambda ((x!1 Bool)) x!1)))-[SEND] (get-value (q2))-[RECV] ((q2 ((as const Array) false)))-[GOOD] (define-fun q1_model35 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) true-          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-          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 ((as const Array) false)))-[SEND] (get-value (q2))-[RECV] ((q2 (store ((as const Array) true) false false 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 false) (= x!1 false)) false-          true)-       )-[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 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!2) x!1))))-[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_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-          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) true) false false false) true true false)))-[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 true) (= x!1 true)) false-          (ite (and (= x!0 false) (= x!1 false)) false-          true))-       )-[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 (store ((as const Array) true) true false)))-[SEND] (get-value (q2))-[RECV] ((q2 ((as const Array) false)))-[GOOD] (define-fun q1_model39 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) false-          true)-       )-[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-          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) true) true false)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and x!2 x!1))))-[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_model40 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) false-          true)-       )-[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 true) (= 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 ((as const Array) false)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and x!2 (not x!1)))))-[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_model41 ((x!0 Bool)) Bool-          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 false)) 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 (lambda ((x!1 Bool)) x!1)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!2 x!1) (and (not x!2) x!1)))))-[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_model42 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) true-          false)-       )-[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-          (ite (and (= x!0 true) (= 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 (lambda ((x!1 Bool)) x!1)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and x!2 x!1))))-[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-          (ite (and (= x!0 true)) true-          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 ((as const Array) false)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and x!2 x!1))))-[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_model44 ((x!0 Bool)) Bool-          false-       )-[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)) true-          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 ((as const Array) false)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!2 x!1) (and x!2 (not x!1))))))-[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_model45 ((x!0 Bool)) Bool-          false-       )-[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-          (ite (and (= x!0 true) (= x!1 true)) 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 (store ((as const Array) true) true false)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and x!2 (not x!1)))))-[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_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 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 (store ((as const Array) true) true false)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!2 x!1) (and x!2 (not x!1))))))-[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_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 true) (= x!1 false)) true-          (ite (and (= x!0 true) (= x!1 true)) 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 (lambda ((x!1 Bool) (x!2 Bool)) (and x!2 (not x!1)))))-[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_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 false)) 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 (store ((as const Array) true) true false)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and (not x!2) x!1) (and x!2 (not x!1))))))-[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_model49 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) false-          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)) true-          (ite (and (= x!0 true) (= x!1 false)) 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 ((as const Array) true)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and (not x!2) x!1) (and x!2 (not x!1))))))-[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_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 false) (= x!1 true)) true-          (ite (and (= x!0 true) (= x!1 false)) 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) true)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!2) x!1))))-[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_model51 ((x!0 Bool)) Bool-          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 false) (= 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 ((as const Array) false)))-[SEND] (get-value (q2))-[RECV] ((q2 (store (store ((as const Array) true) false false false) true false false)))-[GOOD] (define-fun q1_model52 ((x!0 Bool)) Bool-          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-          (ite (and (= x!0 true) (= x!1 false)) false-          (ite (and (= x!0 false) (= x!1 false)) false-          true))-       )-[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))-         (or (and (not x!2) (not x!1)) (and x!2 (not x!1))))))-[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_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 false)) true-          (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 (lambda ((x!1 Bool)) (not x!1))))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool))-         (or (and (not x!2) (not x!1)) (and x!2 (not x!1))))))-[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_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 false)) 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 (lambda ((x!1 Bool)) (not x!1))))-[SEND] (get-value (q2))-[RECV] ((q2 (store ((as const Array) true) false true false)))-[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)) false-          true)-       )-[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 (lambda ((x!1 Bool)) x!1)))-[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)) true-          false)-       )-[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 (store ((as const Array) true) true false)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!2) x!1))))-[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-          (ite (and (= x!0 true)) false-          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)) (and (not x!2) (not x!1)))))-[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_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 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!2 x!1))))-[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_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 true)) 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 (store ((as const Array) true) true false)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!2) (not x!1)))))-[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-          (ite (and (= x!0 true)) false-          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-          (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) false)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool))-         (or (and (not x!2) (not x!1)) (and (not x!2) x!1)))))-[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_model61 ((x!0 Bool)) Bool-          false-       )-[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)) true-          (ite (and (= x!0 false) (= x!1 true)) true-          false))-       )-[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) false)))-[SEND] (get-value (q2))-[RECV] ((q2 (store ((as const Array) true) true true false)))-[GOOD] (define-fun q1_model62 ((x!0 Bool)) Bool-          false-       )-[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 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!2) (not x!1)))))-[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-          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 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)) (or (and x!2 x!1) (and (not x!2) (not x!1))))))-[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) true))-[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-          (ite (and (= x!0 true) (= x!1 true)) 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 _ = False--  q2 :: Bool -> Bool -> Bool-  q2 _ _ = False-Solution #2:-  q1 :: Bool -> Bool-  q1 _ = True--  q2 :: Bool -> Bool -> Bool-  q2 _ _ = False-Solution #3:-  q1 :: Bool -> Bool-  q1 _ = False--  q2 :: Bool -> Bool -> Bool-  q2 _ _ = True-Solution #4:-  q1 :: Bool -> Bool-  q1 _ = False--  q2 :: Bool -> Bool -> Bool-  q2 True False = False-  q2 _    _     = True -Solution #5:-  q1 :: Bool -> Bool-  q1 True = True -  q1 _    = False--  q2 :: Bool -> Bool -> Bool-  q2 True False = False-  q2 _    _     = True -Solution #6:-  q1 :: Bool -> Bool-  q1 True = True -  q1 _    = False--  q2 :: Bool -> Bool -> Bool-  q2 False False = True -  q2 _     _     = False-Solution #7:-  q1 :: Bool -> Bool-  q1 True = True -  q1 _    = False--  q2 :: Bool -> Bool -> Bool-  q2 False False = True -  q2 True  True  = True -  q2 _     _     = False-Solution #8:-  q1 :: Bool -> Bool-  q1 _ = False--  q2 :: Bool -> Bool -> Bool-  q2 False False = True -  q2 True  True  = True -  q2 _     _     = False-Solution #9:-  q1 :: Bool -> Bool-  q1 True = False-  q1 _    = True --  q2 :: Bool -> Bool -> Bool-  q2 False False = True -  q2 True  True  = True -  q2 _     _     = False-Solution #10:-  q1 :: Bool -> Bool-  q1 True = False-  q1 _    = True --  q2 :: Bool -> Bool -> Bool-  q2 True False = False-  q2 _    _     = True -Solution #11:-  q1 :: Bool -> Bool-  q1 _ = True--  q2 :: Bool -> Bool -> Bool-  q2 True False = False-  q2 _    _     = True -Solution #12:-  q1 :: Bool -> Bool-  q1 True = False-  q1 _    = True --  q2 :: Bool -> Bool -> Bool-  q2 False False = True -  q2 False True  = True -  q2 _     _     = False-Solution #13:-  q1 :: Bool -> Bool-  q1 True = False-  q1 _    = True --  q2 :: Bool -> Bool -> Bool-  q2 _ _ = True-Solution #14:-  q1 :: Bool -> Bool-  q1 True = False-  q1 _    = True --  q2 :: Bool -> Bool -> Bool-  q2 True True = False-  q2 _    _    = True -Solution #15:-  q1 :: Bool -> Bool-  q1 _ = True--  q2 :: Bool -> Bool -> Bool-  q2 True True = False-  q2 _    _    = True -Solution #16:-  q1 :: Bool -> Bool-  q1 _ = True--  q2 :: Bool -> Bool -> Bool-  q2 _ _ = True-Solution #17:-  q1 :: Bool -> Bool-  q1 _ = True--  q2 :: Bool -> Bool -> Bool-  q2 True False = False-  q2 True True  = False-  q2 _    _     = True -Solution #18:-  q1 :: Bool -> Bool-  q1 True = True -  q1 _    = False--  q2 :: Bool -> Bool -> Bool-  q2 True False = False-  q2 True True  = False-  q2 _    _     = True -Solution #19:-  q1 :: Bool -> Bool-  q1 True = True -  q1 _    = False--  q2 :: Bool -> Bool -> Bool-  q2 True True = False-  q2 _    _    = True -Solution #20:-  q1 :: Bool -> Bool-  q1 True = True -  q1 _    = False--  q2 :: Bool -> Bool -> Bool-  q2 _ _ = True-Solution #21:-  q1 :: Bool -> Bool-  q1 _ = False--  q2 :: Bool -> Bool -> Bool-  q2 False True = False-  q2 _     _    = True -Solution #22:-  q1 :: Bool -> Bool-  q1 _ = True--  q2 :: Bool -> Bool -> Bool-  q2 False True = False-  q2 _     _    = True -Solution #23:-  q1 :: Bool -> Bool-  q1 _ = True--  q2 :: Bool -> Bool -> Bool-  q2 True  True = False-  q2 False True = False-  q2 _     _    = True -Solution #24:-  q1 :: Bool -> Bool-  q1 _ = True--  q2 :: Bool -> Bool -> Bool-  q2 False True = True -  q2 True  True = True -  q2 _     _    = False-Solution #25:-  q1 :: Bool -> Bool-  q1 True = False-  q1 _    = True --  q2 :: Bool -> Bool -> Bool-  q2 False False = False-  q2 True  False = False-  q2 _     _     = True -Solution #26:-  q1 :: Bool -> Bool-  q1 True = False-  q1 _    = True --  q2 :: Bool -> Bool -> Bool-  q2 False False = False-  q2 _     _     = True -Solution #27:-  q1 :: Bool -> Bool-  q1 _ = True--  q2 :: Bool -> Bool -> Bool-  q2 False False = False-  q2 _     _     = True -Solution #28:-  q1 :: Bool -> Bool-  q1 True = True -  q1 _    = False--  q2 :: Bool -> Bool -> Bool-  q2 False False = False-  q2 _     _     = True -Solution #29:-  q1 :: Bool -> Bool-  q1 True = True -  q1 _    = False--  q2 :: Bool -> Bool -> Bool-  q2 True  True  = False-  q2 False False = False-  q2 _     _     = True -Solution #30:-  q1 :: Bool -> Bool-  q1 True = True -  q1 _    = False--  q2 :: Bool -> Bool -> Bool-  q2 False True = False-  q2 True  True = False-  q2 _     _    = True -Solution #31:-  q1 :: Bool -> Bool-  q1 True = True -  q1 _    = False--  q2 :: Bool -> Bool -> Bool-  q2 True False = True -  q2 _    _     = False-Solution #32:-  q1 :: Bool -> Bool-  q1 True = True -  q1 _    = False--  q2 :: Bool -> Bool -> Bool-  q2 True False = True -  q2 True True  = True -  q2 _    _     = False-Solution #33:-  q1 :: Bool -> Bool-  q1 _ = True--  q2 :: Bool -> Bool -> Bool-  q2 True False = True -  q2 True True  = True -  q2 _    _     = False-Solution #34:-  q1 :: Bool -> Bool-  q1 _ = False--  q2 :: Bool -> Bool -> Bool-  q2 False True = True -  q2 _     _    = False-Solution #35:-  q1 :: Bool -> Bool-  q1 True = True -  q1 _    = False--  q2 :: Bool -> Bool -> Bool-  q2 _ _ = False-Solution #36:-  q1 :: Bool -> Bool-  q1 _ = False--  q2 :: Bool -> Bool -> Bool-  q2 False False = False-  q2 _     _     = True -Solution #37:-  q1 :: Bool -> Bool-  q1 True = True -  q1 _    = False--  q2 :: Bool -> Bool -> Bool-  q2 False True = True -  q2 _     _    = False-Solution #38:-  q1 :: Bool -> Bool-  q1 _ = False--  q2 :: Bool -> Bool -> Bool-  q2 True  True  = False-  q2 False False = False-  q2 _     _     = True -Solution #39:-  q1 :: Bool -> Bool-  q1 True = False-  q1 _    = True --  q2 :: Bool -> Bool -> Bool-  q2 _ _ = False-Solution #40:-  q1 :: Bool -> Bool-  q1 True = False-  q1 _    = True --  q2 :: Bool -> Bool -> Bool-  q2 True True = True -  q2 _    _    = False-Solution #41:-  q1 :: Bool -> Bool-  q1 _ = False--  q2 :: Bool -> Bool -> Bool-  q2 True False = True -  q2 _    _     = False-Solution #42:-  q1 :: Bool -> Bool-  q1 True = True -  q1 _    = False--  q2 :: Bool -> Bool -> Bool-  q2 False True = True -  q2 True  True = True -  q2 _     _    = False-Solution #43:-  q1 :: Bool -> Bool-  q1 True = True -  q1 _    = False--  q2 :: Bool -> Bool -> Bool-  q2 True True = True -  q2 _    _    = False-Solution #44:-  q1 :: Bool -> Bool-  q1 _ = False--  q2 :: Bool -> Bool -> Bool-  q2 True True = True -  q2 _    _    = False-Solution #45:-  q1 :: Bool -> Bool-  q1 _ = False--  q2 :: Bool -> Bool -> Bool-  q2 True False = True -  q2 True True  = True -  q2 _    _     = False-Solution #46:-  q1 :: Bool -> Bool-  q1 True = False-  q1 _    = True --  q2 :: Bool -> Bool -> Bool-  q2 True False = True -  q2 _    _     = False-Solution #47:-  q1 :: Bool -> Bool-  q1 True = False-  q1 _    = True --  q2 :: Bool -> Bool -> Bool-  q2 True False = True -  q2 True True  = True -  q2 _    _     = False-Solution #48:-  q1 :: Bool -> Bool-  q1 _ = True--  q2 :: Bool -> Bool -> Bool-  q2 True False = True -  q2 _    _     = False-Solution #49:-  q1 :: Bool -> Bool-  q1 True = False-  q1 _    = True --  q2 :: Bool -> Bool -> Bool-  q2 False True  = True -  q2 True  False = True -  q2 _     _     = False-Solution #50:-  q1 :: Bool -> Bool-  q1 _ = True--  q2 :: Bool -> Bool -> Bool-  q2 False True  = True -  q2 True  False = True -  q2 _     _     = False-Solution #51:-  q1 :: Bool -> Bool-  q1 _ = True--  q2 :: Bool -> Bool -> Bool-  q2 False True = True -  q2 _     _    = False-Solution #52:-  q1 :: Bool -> Bool-  q1 _ = False--  q2 :: Bool -> Bool -> Bool-  q2 True  False = False-  q2 False False = False-  q2 _     _     = True -Solution #53:-  q1 :: Bool -> Bool-  q1 _ = False--  q2 :: Bool -> Bool -> Bool-  q2 False False = True -  q2 True  False = True -  q2 _     _     = False-Solution #54:-  q1 :: Bool -> Bool-  q1 True = False-  q1 _    = True --  q2 :: Bool -> Bool -> Bool-  q2 False False = True -  q2 True  False = True -  q2 _     _     = False-Solution #55:-  q1 :: Bool -> Bool-  q1 True = False-  q1 _    = True --  q2 :: Bool -> Bool -> Bool-  q2 False True = False-  q2 _     _    = True -Solution #56:-  q1 :: Bool -> Bool-  q1 True = True -  q1 _    = False--  q2 :: Bool -> Bool -> Bool-  q2 False True = False-  q2 _     _    = True -Solution #57:-  q1 :: Bool -> Bool-  q1 True = False-  q1 _    = True --  q2 :: Bool -> Bool -> Bool-  q2 False True = True -  q2 _     _    = False-Solution #58:-  q1 :: Bool -> Bool-  q1 _ = True--  q2 :: Bool -> Bool -> Bool-  q2 False False = True -  q2 _     _     = False-Solution #59:-  q1 :: Bool -> Bool-  q1 _ = True--  q2 :: Bool -> Bool -> Bool-  q2 True True = True -  q2 _    _    = False-Solution #60:-  q1 :: Bool -> Bool-  q1 True = False-  q1 _    = True --  q2 :: Bool -> Bool -> Bool-  q2 False False = True -  q2 _     _     = False-Solution #61:-  q1 :: Bool -> Bool-  q1 _ = False--  q2 :: Bool -> Bool -> Bool-  q2 False False = True -  q2 False True  = True -  q2 _     _     = False-Solution #62:-  q1 :: Bool -> Bool-  q1 _ = False--  q2 :: Bool -> Bool -> Bool-  q2 True True = False-  q2 _    _    = True -Solution #63:-  q1 :: Bool -> Bool-  q1 _ = False--  q2 :: Bool -> Bool -> Bool-  q2 False False = True -  q2 _     _     = False-Solution #64:-  q1 :: Bool -> Bool-  q1 _ = True--  q2 :: Bool -> Bool -> Bool-  q2 False False = True -  q2 True  True  = True -  q2 _     _     = False+[RECV] ((q1 ((as const Array) false)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) true) false true false)))+[GOOD] (define-fun q1_model10 ((x!0 Bool)) Bool+          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+          (ite (and (= x!0 false) (= x!1 true)) false+          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)) (not x!1))))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) true) false true false)))+[GOOD] (define-fun q1_model11 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) false+          true)+       )+[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 false) (= x!1 true)) 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) true)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) true) false true false)))+[GOOD] (define-fun q1_model12 ((x!0 Bool)) Bool+          true+       )+[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+          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) false true false) true false 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 true) (= x!1 false)) false+          (ite (and (= x!0 false) (= 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 (lambda ((x!1 Bool)) x!1)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) true) false true false)))+[GOOD] (define-fun q1_model14 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) true+          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 true)) false+          true)+       )+[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) false)))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) true) false true false) true true false)))+[GOOD] (define-fun q1_model15 ((x!0 Bool)) Bool+          false+       )+[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 true)) false+          (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 ((as const Array) false)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!2) (not x!1)))))+[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_model16 ((x!0 Bool)) Bool+          false+       )+[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 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 (lambda ((x!1 Bool)) (not x!1))))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!2) (not x!1)))))+[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_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 (lambda ((x!1 Bool)) (not x!1))))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool))+         (or (and (not x!2) (not x!1)) (and x!2 (not x!1))))))+[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_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 false) (= x!1 false)) true+          (ite (and (= x!0 true) (= 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) true)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool))+         (or (and (not x!2) (not x!1)) (and x!2 (not x!1))))))+[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+          true+       )+[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 ((as const Array) true)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) true) true true false)))+[GOOD] (define-fun q1_model20 ((x!0 Bool)) Bool+          true+       )+[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 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 (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_model21 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) false+          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 true) (= 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 ((as const Array) true)))+[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+          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 ((as const Array) true)))+[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+          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 (lambda ((x!1 Bool)) x!1)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) true) true true false)))+[GOOD] (define-fun q1_model24 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) true+          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+          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 true 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 true)) 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 (lambda ((x!1 Bool)) x!1)))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) true) true true false) false true false)))+[GOOD] (define-fun q1_model26 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) 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 false) (= x!1 true)) false+          (ite (and (= x!0 true) (= x!1 true)) 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 (lambda ((x!1 Bool) (x!2 Bool)) (and x!2 (not x!1)))))+[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_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 true) (= x!1 false)) true+          false)+       )+[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 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!2) x!1))))+[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_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 ((as const Array) true) false false false)))+[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 false) (= x!1 false)) false+          true)+       )+[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)) (and x!2 x!1))))+[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_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 ((as const Array) false)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and x!2 (not x!1)))))+[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_model32 ((x!0 Bool)) Bool+          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 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!2) x!1))))+[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_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+          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 ((as const Array) false)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!2 x!1) (and x!2 (not x!1))))))+[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_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+          (ite (and (= x!0 true) (= x!1 true)) 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 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!2 x!1) (and (not x!2) x!1)))))+[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_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 false) (= x!1 true)) true+          (ite (and (= x!0 true) (= x!1 true)) 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 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!2 x!1) (and (not x!2) x!1)))))+[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_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 false) (= x!1 true)) true+          (ite (and (= x!0 true) (= x!1 true)) 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)) (and x!2 x!1))))+[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_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 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 ((as const Array) true) false false false)))+[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 false)) false+          true)+       )+[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)) (not x!1))))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) true) false false false)))+[GOOD] (define-fun q1_model39 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) false+          true)+       )+[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 false)) false+          true)+       )+[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 (lambda ((x!1 Bool)) (not x!1))))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) true) false false false) true true false)))+[GOOD] (define-fun q1_model40 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) false+          true)+       )+[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 true) (= x!1 true)) false+          (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 ((as const Array) true)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and (not x!2) x!1) (and x!2 (not x!1))))))+[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_model41 ((x!0 Bool)) Bool+          true+       )+[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 false) (= x!1 true)) true+          (ite (and (= x!0 true) (= x!1 false)) 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) true) false false false)))+[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 false)) false+          true)+       )+[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) true) false false false) false true false)))+[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 false) (= x!1 true)) false+          (ite (and (= x!0 false) (= x!1 false)) false+          true))+       )+[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 (lambda ((x!1 Bool) (x!2 Bool)) (and x!2 (not x!1)))))+[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_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 false)) true+          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 (store ((as const Array) true) true false)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and x!2 (not x!1)))))+[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 (store ((as const Array) true) true false)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!2 x!1) (and x!2 (not x!1))))))+[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_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 true) (= x!1 false)) true+          (ite (and (= x!0 true) (= x!1 true)) 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 (store ((as const Array) true) true false)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!2 x!1) (and (not x!2) x!1)))))+[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_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 true)) true+          (ite (and (= x!0 true) (= x!1 true)) 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 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!2 x!1) (and (not x!2) x!1)))))+[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_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 true)) true+          (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) true)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and x!2 x!1))))+[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_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 true) (= 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 (lambda ((x!1 Bool)) (not x!1))))+[SEND] (get-value (q2))+[RECV] ((q2 ((as const Array) false)))+[GOOD] (define-fun q1_model50 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) false+          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+          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) true)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!2) (not x!1)))))+[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_model51 ((x!0 Bool)) Bool+          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 false) (= x!1 false)) 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 ((as const Array) true)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool))+         (or (and (not x!2) (not x!1)) (and (not x!2) x!1)))))+[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_model52 ((x!0 Bool)) Bool+          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 false) (= x!1 false)) true+          (ite (and (= x!0 false) (= 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 (lambda ((x!1 Bool)) x!1)))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) true) true true false) false false false)))+[GOOD] (define-fun q1_model53 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) true+          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 false)) false+          (ite (and (= x!0 true) (= x!1 true)) false+          true))+       )+[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 ((as const Array) false)))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) true) true true false) false false false)))+[GOOD] (define-fun q1_model54 ((x!0 Bool)) Bool+          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 false)) false+          (ite (and (= x!0 true) (= x!1 true)) false+          true))+       )+[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 ((as const Array) true)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!2) x!1))))+[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_model55 ((x!0 Bool)) Bool+          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+          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 (lambda ((x!1 Bool)) x!1)))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) true) false false false) false true false)))+[GOOD] (define-fun q1_model56 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) true+          false)+       )+[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+          (ite (and (= x!0 false) (= x!1 false)) 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 (store ((as const Array) true) true false)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and x!2 x!1))))+[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_model57 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) false+          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 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 (store ((as const Array) true) true false)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!2) x!1))))+[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_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 false) (= x!1 true)) 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 (lambda ((x!1 Bool)) x!1)))+[SEND] (get-value (q2))+[RECV] ((q2 ((as const Array) true)))+[GOOD] (define-fun q1_model59 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) true+          false)+       )+[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) false)))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) true) true true false) true false 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 true) (= x!1 false)) false+          (ite (and (= x!0 true) (= x!1 true)) false+          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 (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_model61 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) true+          false)+       )+[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 false)) false+          (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 (store ((as const Array) true) true false)))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) true) true true false) true false false)))+[GOOD] (define-fun q1_model62 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) false+          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 false)) false+          (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 (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_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 true) (= x!1 false)) 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 ((as const Array) true)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) true) true false 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 true) (= x!1 false)) 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++  q2 :: Bool -> Bool -> Bool+  q2 _ _ = False+Solution #2:+  q1 :: Bool -> Bool+  q1 _ = True++  q2 :: Bool -> Bool -> Bool+  q2 _ _ = False+Solution #3:+  q1 :: Bool -> Bool+  q1 _ = False++  q2 :: Bool -> Bool -> Bool+  q2 _ _ = True+Solution #4:+  q1 :: Bool -> Bool+  q1 _ = False++  q2 :: Bool -> Bool -> Bool+  q2 True False = False+  q2 _    _     = True +Solution #5:+  q1 :: Bool -> Bool+  q1 True = True +  q1 _    = False++  q2 :: Bool -> Bool -> Bool+  q2 True False = False+  q2 _    _     = True +Solution #6:+  q1 :: Bool -> Bool+  q1 True = True +  q1 _    = False++  q2 :: Bool -> Bool -> Bool+  q2 False False = True +  q2 _     _     = False+Solution #7:+  q1 :: Bool -> Bool+  q1 True = True +  q1 _    = False++  q2 :: Bool -> Bool -> Bool+  q2 False False = True +  q2 True  True  = True +  q2 _     _     = False+Solution #8:+  q1 :: Bool -> Bool+  q1 _ = False++  q2 :: Bool -> Bool -> Bool+  q2 False False = True +  q2 True  True  = True +  q2 _     _     = False+Solution #9:+  q1 :: Bool -> Bool+  q1 True = False+  q1 _    = True ++  q2 :: Bool -> Bool -> Bool+  q2 False False = True +  q2 True  True  = True +  q2 _     _     = False+Solution #10:+  q1 :: Bool -> Bool+  q1 _ = False++  q2 :: Bool -> Bool -> Bool+  q2 False True = False+  q2 _     _    = True +Solution #11:+  q1 :: Bool -> Bool+  q1 True = False+  q1 _    = True ++  q2 :: Bool -> Bool -> Bool+  q2 False True = False+  q2 _     _    = True +Solution #12:+  q1 :: Bool -> Bool+  q1 _ = True++  q2 :: Bool -> Bool -> Bool+  q2 False True = False+  q2 _     _    = True +Solution #13:+  q1 :: Bool -> Bool+  q1 _ = True++  q2 :: Bool -> Bool -> Bool+  q2 True  False = False+  q2 False True  = False+  q2 _     _     = True +Solution #14:+  q1 :: Bool -> Bool+  q1 True = True +  q1 _    = False++  q2 :: Bool -> Bool -> Bool+  q2 False True = False+  q2 _     _    = True +Solution #15:+  q1 :: Bool -> Bool+  q1 _ = False++  q2 :: Bool -> Bool -> Bool+  q2 True  True = False+  q2 False True = False+  q2 _     _    = True +Solution #16:+  q1 :: Bool -> Bool+  q1 _ = False++  q2 :: Bool -> Bool -> Bool+  q2 False False = True +  q2 _     _     = False+Solution #17:+  q1 :: Bool -> Bool+  q1 True = False+  q1 _    = True ++  q2 :: Bool -> Bool -> Bool+  q2 False False = True +  q2 _     _     = False+Solution #18:+  q1 :: Bool -> Bool+  q1 True = False+  q1 _    = True ++  q2 :: Bool -> Bool -> Bool+  q2 False False = True +  q2 True  False = True +  q2 _     _     = False+Solution #19:+  q1 :: Bool -> Bool+  q1 _ = True++  q2 :: Bool -> Bool -> Bool+  q2 False False = True +  q2 True  False = True +  q2 _     _     = False+Solution #20:+  q1 :: Bool -> Bool+  q1 _ = True++  q2 :: Bool -> Bool -> Bool+  q2 True True = False+  q2 _    _    = True +Solution #21:+  q1 :: Bool -> Bool+  q1 True = False+  q1 _    = True ++  q2 :: Bool -> Bool -> Bool+  q2 True True = False+  q2 _    _    = True +Solution #22:+  q1 :: Bool -> Bool+  q1 True = False+  q1 _    = True ++  q2 :: Bool -> Bool -> Bool+  q2 _ _ = True+Solution #23:+  q1 :: Bool -> Bool+  q1 _ = True++  q2 :: Bool -> Bool -> Bool+  q2 _ _ = True+Solution #24:+  q1 :: Bool -> Bool+  q1 True = True +  q1 _    = False++  q2 :: Bool -> Bool -> Bool+  q2 True True = False+  q2 _    _    = True +Solution #25:+  q1 :: Bool -> Bool+  q1 _ = False++  q2 :: Bool -> Bool -> Bool+  q2 True True = False+  q2 _    _    = True +Solution #26:+  q1 :: Bool -> Bool+  q1 True = True +  q1 _    = False++  q2 :: Bool -> Bool -> Bool+  q2 False True = False+  q2 True  True = False+  q2 _     _    = True +Solution #27:+  q1 :: Bool -> Bool+  q1 True = True +  q1 _    = False++  q2 :: Bool -> Bool -> Bool+  q2 _ _ = False+Solution #28:+  q1 :: Bool -> Bool+  q1 True = True +  q1 _    = False++  q2 :: Bool -> Bool -> Bool+  q2 True False = True +  q2 _    _     = False+Solution #29:+  q1 :: Bool -> Bool+  q1 True = True +  q1 _    = False++  q2 :: Bool -> Bool -> Bool+  q2 False True = True +  q2 _     _    = False+Solution #30:+  q1 :: Bool -> Bool+  q1 True = True +  q1 _    = False++  q2 :: Bool -> Bool -> Bool+  q2 False False = False+  q2 _     _     = True +Solution #31:+  q1 :: Bool -> Bool+  q1 True = True +  q1 _    = False++  q2 :: Bool -> Bool -> Bool+  q2 True True = True +  q2 _    _    = False+Solution #32:+  q1 :: Bool -> Bool+  q1 _ = False++  q2 :: Bool -> Bool -> Bool+  q2 True False = True +  q2 _    _     = False+Solution #33:+  q1 :: Bool -> Bool+  q1 _ = False++  q2 :: Bool -> Bool -> Bool+  q2 False True = True +  q2 _     _    = False+Solution #34:+  q1 :: Bool -> Bool+  q1 _ = False++  q2 :: Bool -> Bool -> Bool+  q2 True False = True +  q2 True True  = True +  q2 _    _     = False+Solution #35:+  q1 :: Bool -> Bool+  q1 _ = False++  q2 :: Bool -> Bool -> Bool+  q2 False True = True +  q2 True  True = True +  q2 _     _    = False+Solution #36:+  q1 :: Bool -> Bool+  q1 True = True +  q1 _    = False++  q2 :: Bool -> Bool -> Bool+  q2 False True = True +  q2 True  True = True +  q2 _     _    = False+Solution #37:+  q1 :: Bool -> Bool+  q1 _ = False++  q2 :: Bool -> Bool -> Bool+  q2 True True = True +  q2 _    _    = False+Solution #38:+  q1 :: Bool -> Bool+  q1 _ = False++  q2 :: Bool -> Bool -> Bool+  q2 False False = False+  q2 _     _     = True +Solution #39:+  q1 :: Bool -> Bool+  q1 True = False+  q1 _    = True ++  q2 :: Bool -> Bool -> Bool+  q2 False False = False+  q2 _     _     = True +Solution #40:+  q1 :: Bool -> Bool+  q1 True = False+  q1 _    = True ++  q2 :: Bool -> Bool -> Bool+  q2 True  True  = False+  q2 False False = False+  q2 _     _     = True +Solution #41:+  q1 :: Bool -> Bool+  q1 _ = True++  q2 :: Bool -> Bool -> Bool+  q2 False True  = True +  q2 True  False = True +  q2 _     _     = False+Solution #42:+  q1 :: Bool -> Bool+  q1 _ = True++  q2 :: Bool -> Bool -> Bool+  q2 False False = False+  q2 _     _     = True +Solution #43:+  q1 :: Bool -> Bool+  q1 _ = True++  q2 :: Bool -> Bool -> Bool+  q2 False True  = False+  q2 False False = False+  q2 _     _     = True +Solution #44:+  q1 :: Bool -> Bool+  q1 _ = True++  q2 :: Bool -> Bool -> Bool+  q2 True False = True +  q2 _    _     = False+Solution #45:+  q1 :: Bool -> Bool+  q1 True = False+  q1 _    = True ++  q2 :: Bool -> Bool -> Bool+  q2 True False = True +  q2 _    _     = False+Solution #46:+  q1 :: Bool -> Bool+  q1 True = False+  q1 _    = True ++  q2 :: Bool -> Bool -> Bool+  q2 True False = True +  q2 True True  = True +  q2 _    _     = False+Solution #47:+  q1 :: Bool -> Bool+  q1 True = False+  q1 _    = True ++  q2 :: Bool -> Bool -> Bool+  q2 False True = True +  q2 True  True = True +  q2 _     _    = False+Solution #48:+  q1 :: Bool -> Bool+  q1 _ = True++  q2 :: Bool -> Bool -> Bool+  q2 False True = True +  q2 True  True = True +  q2 _     _    = False+Solution #49:+  q1 :: Bool -> Bool+  q1 _ = True++  q2 :: Bool -> Bool -> Bool+  q2 True True = True +  q2 _    _    = False+Solution #50:+  q1 :: Bool -> Bool+  q1 True = False+  q1 _    = True ++  q2 :: Bool -> Bool -> Bool+  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 False = True +  q2 False True  = True +  q2 _     _     = False+Solution #53:+  q1 :: Bool -> Bool+  q1 True = True +  q1 _    = False++  q2 :: Bool -> Bool -> Bool+  q2 False False = False+  q2 True  True  = False+  q2 _     _     = True +Solution #54:+  q1 :: Bool -> Bool+  q1 _ = False++  q2 :: Bool -> Bool -> Bool+  q2 False False = False+  q2 True  True  = False+  q2 _     _     = True +Solution #55:+  q1 :: Bool -> Bool+  q1 _ = True++  q2 :: Bool -> Bool -> Bool+  q2 False True = True +  q2 _     _    = False+Solution #56:+  q1 :: Bool -> Bool+  q1 True = True +  q1 _    = False++  q2 :: Bool -> Bool -> Bool+  q2 False True  = False+  q2 False False = False+  q2 _     _     = True +Solution #57:+  q1 :: Bool -> Bool+  q1 True = False+  q1 _    = True ++  q2 :: Bool -> Bool -> Bool+  q2 True True = True +  q2 _    _    = False+Solution #58:+  q1 :: Bool -> Bool+  q1 True = False+  q1 _    = True ++  q2 :: Bool -> Bool -> Bool+  q2 False True = True +  q2 _     _    = False+Solution #59:+  q1 :: Bool -> Bool+  q1 True = True +  q1 _    = False++  q2 :: Bool -> Bool -> Bool+  q2 _ _ = True+Solution #60:+  q1 :: Bool -> Bool+  q1 _ = False++  q2 :: Bool -> Bool -> Bool+  q2 True False = False+  q2 True True  = False+  q2 _    _     = True +Solution #61:+  q1 :: Bool -> Bool+  q1 True = True +  q1 _    = False++  q2 :: Bool -> Bool -> Bool+  q2 True False = False+  q2 True True  = False+  q2 _    _     = True +Solution #62:+  q1 :: Bool -> Bool+  q1 True = False+  q1 _    = True ++  q2 :: Bool -> Bool -> Bool+  q2 True False = False+  q2 True True  = False+  q2 _    _     = True +Solution #63:+  q1 :: Bool -> Bool+  q1 True = False+  q1 _    = True ++  q2 :: Bool -> Bool -> Bool+  q2 True False = False+  q2 _    _     = True +Solution #64:+  q1 :: Bool -> Bool+  q1 _ = True++  q2 :: Bool -> Bool -> Bool+  q2 True False = False+  q2 _    _     = True  Found 64 different solutions.
SBVTestSuite/SBVDocTest.hs view
@@ -51,7 +51,7 @@                                               doctest $ args ++ tfs -         where noGood nm sl =  any (`isSuffixOf` map toLower nm) $ map (map toLower) sl+         where noGood nm = any $ (`isSuffixOf` map toLower nm) . map toLower                 skipWindows nm                  | not onWindows = False
SBVTestSuite/TestSuite/BitPrecise/Legato.hs view
@@ -33,7 +33,10 @@                        flagC <- free "flagC"                        flagZ <- free "flagZ"                        output $ legatoIsCorrect (x, y, lo, regX, regA, flagC, flagZ)-       legatoC = snd <$> compileToC' "legatoMult" (do++       thd (_, _, r) = r++       legatoC = thd <$> compileToC' "legatoMult" (do                     cgSetDriverValues [87, 92]                     x <- cgInput "x"                     y <- cgInput "y"
SBVTestSuite/TestSuite/BitPrecise/MergeSort.hs view
@@ -23,7 +23,8 @@ tests = testGroup "BitPrecise.MergeSort" [    goldenVsStringShow "merge" mergeC  ]- where mergeC = snd <$> compileToC' "merge" (do+ where thd (_, _, r) = r+       mergeC = thd <$> compileToC' "merge" (do                    cgSetDriverValues [10, 6, 4, 82, 71]                    xs <- cgInputArr 5 "xs"                    cgOutputArr "ys" (mergeSort xs))
SBVTestSuite/TestSuite/CodeGeneration/AddSub.hs view
@@ -23,7 +23,8 @@ tests = testGroup "CodeGen.addSub" [    goldenVsStringShow "addSub" code  ]- where code = snd <$> compileToC' "addSub" (do+ where thd (_, _, r) = r+       code = thd <$> compileToC' "addSub" (do                 cgSetDriverValues [76, 92]                 cgPerformRTCs True                 x <- cgInput "x"
SBVTestSuite/TestSuite/CodeGeneration/CRC_USB5.hs view
@@ -24,7 +24,8 @@    goldenVsStringShow "crcUSB5_1" $ genC crcUSB  , goldenVsStringShow "crcUSB5_2" $ genC crcUSB'  ]- where genC f = snd <$> compileToC' "crcUSB5" (do+ where thd (_, _, r) = r+       genC f = thd <$> compileToC' "crcUSB5" (do                    cgSetDriverValues [0xFEDC]                    msg <- cgInput "msg"                    cgReturn $ f msg)
SBVTestSuite/TestSuite/CodeGeneration/CgTests.hs view
@@ -26,14 +26,16 @@  , goldenVsStringShow "selUnchecked" $ genSelect False "selUnChecked"  , goldenVsStringShow "codeGen1"       foo  ]- where genSelect b n = snd <$> compileToC' n (do+ where thd (_, _, r) = r++       genSelect b n = thd <$> compileToC' n (do                          cgSetDriverValues [65]                          cgPerformRTCs b                          let sel :: SWord8 -> SWord8                              sel x = select [1, x+2] 3 x                          x <- cgInput "x"                          cgReturn $ sel x)-       foo = snd <$> compileToC' "foo" (do+       foo = thd <$> compileToC' "foo" (do                         cgSetDriverValues $ repeat 0                         (x::SInt16)    <- cgInput "x"                         (ys::[SInt64]) <- cgInputArr 45 "xArr"
SBVTestSuite/TestSuite/CodeGeneration/Fibonacci.hs view
@@ -24,7 +24,8 @@    goldenVsStringShow "fib1" $ tst [12] "fib1" (fib1 64)  , goldenVsStringShow "fib2" $ tst [20] "fib2" (fib2 64)  ]- where tst vs nm f = snd <$> compileToC' nm (do cgPerformRTCs True+ where thd (_, _, r) = r+       tst vs nm f = thd <$> compileToC' nm (do cgPerformRTCs True                                                 cgSetDriverValues vs                                                 n <- cgInput "n"                                                 cgReturn $ f n)
SBVTestSuite/TestSuite/CodeGeneration/Floats.hs view
@@ -22,7 +22,9 @@ tests = testGroup "CodeGeneration.Floats" [    goldenVsStringShow "floats_cgen" code  ]- where code  = snd <$> compileToCLib' "floatCodeGen" cases+ where code  = thd <$> compileToCLib' "floatCodeGen" cases++       thd (_, _, r) = r         setup = do cgSRealType CgLongDouble                   cgIntegerSize 64
SBVTestSuite/TestSuite/CodeGeneration/GCD.hs view
@@ -23,7 +23,8 @@ tests = testGroup "CodeGeneration.GCD" [    goldenVsStringShow "gcd" gcdC  ]- where gcdC = snd <$> compileToC' "sgcd" (do+ where thd (_, _, r) = r+       gcdC = thd <$> compileToC' "sgcd" (do                 cgSetDriverValues [55,154]                 x <- cgInput "x"                 y <- cgInput "y"
SBVTestSuite/TestSuite/CodeGeneration/PopulationCount.hs view
@@ -21,11 +21,12 @@ -- Test suite tests :: TestTree tests = testGroup "CodeGeneration.PopulationCount" [-   goldenVsStringShow "popCount1" $ snd <$> genC False- , goldenVsStringShow "popCount2" $ snd <$> genC True+   goldenVsStringShow "popCount1" $ thd <$> genC False+ , goldenVsStringShow "popCount2" $ thd <$> genC True  ]  where genC b = compileToC' "popCount" $ do                   cgSetDriverValues [0x0123456789ABCDEF]                   cgPerformRTCs b                   x <- cgInput "x"                   cgReturn $ popCountFast x+       thd (_, _, r) = r
SBVTestSuite/TestSuite/CodeGeneration/Uninterpreted.hs view
@@ -23,6 +23,7 @@ tests = testGroup "CodeGeneration.Uninterpreted" [    goldenVsStringShow "cgUninterpret"  genC  ]- where genC = snd <$> compileToC' "tstShiftLeft" (do cgSetDriverValues [1, 2, 3]+ where genC = thd <$> compileToC' "tstShiftLeft" (do cgSetDriverValues [1, 2, 3]                                                      [x, y, z] <- cgInputArr 3 "vs"                                                      cgReturn $ tstShiftLeft x y z)+       thd (_, _, r) = r
SBVTestSuite/TestSuite/Crypto/AES.hs view
@@ -21,9 +21,9 @@ -- Test suite tests :: TestTree tests = testGroup "Crypto.AES" [-   goldenVsStringShow "aes128Enc" $ snd <$> compileToC'    "aes128Enc" (aes128EncDec True)- , goldenVsStringShow "aes128Dec" $ snd <$> compileToC'    "aes128Dec" (aes128EncDec False)- , goldenVsStringShow "aes128Lib" $ snd <$> compileToCLib' "aes128Lib" aes128Comps+   goldenVsStringShow "aes128Enc" $ thd <$> compileToC'    "aes128Enc" (aes128EncDec True)+ , goldenVsStringShow "aes128Dec" $ thd <$> compileToC'    "aes128Dec" (aes128EncDec False)+ , goldenVsStringShow "aes128Lib" $ thd <$> compileToCLib' "aes128Lib" aes128Comps  ]  where aes128EncDec d = do pt  <- cgInputArr 4 "pt"                            key <- cgInputArr 4 "key"@@ -34,3 +34,4 @@                            cgOutputArr "ct" res        aes128Comps = [(f, setVals c) | (f, c) <- aesLibComponents 128]        setVals c = cgSetDriverValues (repeat 0) >> c+       thd (_, _, r) = r
SBVTestSuite/TestSuite/Crypto/SHA.hs view
@@ -21,7 +21,7 @@ -- Test suite tests :: TestTree tests = testGroup "Crypto.AES" [-   goldenVsStringShow "sha256HashBlock" $ snd <$> compileToC' "sha256HashBlock" c+   goldenVsStringShow "sha256HashBlock" $ (\(_, _, r) -> r) <$> compileToC' "sha256HashBlock" c  ]  where c = do let algorithm = sha256P 
SBVTestSuite/TestSuite/Queries/Interpolants.hs view
@@ -24,13 +24,15 @@ tests :: TestTree tests =   testGroup "Basics.QueryInterpolants"-    [ goldenCapturedIO "query_Interpolant1" $ testQuery q1-    , goldenCapturedIO "query_Interpolant2" $ testQuery q2+    [ goldenCapturedIO "query_Interpolant1" $ testQuery mathSAT q1+    , goldenCapturedIO "query_Interpolant2" $ testQuery mathSAT q2+    , goldenCapturedIO "query_Interpolant3" $ testQuery z3      q3+    , goldenCapturedIO "query_Interpolant4" $ testQuery z3      q4     ] -testQuery :: Show a => Symbolic a -> FilePath -> IO ()-testQuery t rf = do r <- runSMTWith mathSAT{verbose=True, redirectVerbose=Just rf} t-                    appendFile rf ("\nFINAL OUTPUT:\n" ++ show r ++ "\n")+testQuery :: Show a => SMTConfig -> Symbolic a -> FilePath -> IO ()+testQuery s t rf = do r <- runSMTWith s{verbose=True, redirectVerbose=Just rf} t+                      appendFile rf ("\nFINAL OUTPUT:\n" ++ show r ++ "\n")  iConstraint :: String -> SBool -> Symbolic () iConstraint g = constrainWithAttribute [(":interpolation-group", g)]@@ -47,7 +49,7 @@         iConstraint "c2" $ b .== d .&& sNot (c .== d)          query $ do _ <- checkSat-                   getInterpolant ["c1"]+                   getInterpolantMathSAT ["c1"]  q2 :: Symbolic String q2 = do a <- sInteger "a"@@ -65,6 +67,31 @@         iConstraint "c2" $   a .== b .&& g c ./= g d          query $ do _ <- checkSat-                   getInterpolant ["c1"]+                   getInterpolantMathSAT ["c1"]+++q3 :: Symbolic String+q3 = do a <- sInteger "a"+        b <- sInteger "b"+        c <- sInteger "c"+        d <- sInteger "d"++        query $ getInterpolantZ3 [ a .== b .&& a .== c+                                 , b .== d .&& sNot (c .== d)+                                 ]++q4 :: Symbolic String+q4 = do a <- sInteger "a"+        b <- sInteger "b"+        c <- sInteger "c"+        d <- sInteger "d"++        let f, g :: SInteger -> SInteger+            f = uninterpret "f"+            g = uninterpret "g"++        query $ getInterpolantZ3 [ f a .== c .&& f b .== d+                                 ,   a .== b .&& g c ./= g d+                                 ]  {-# ANN module ("HLint: ignore Reduce duplication" :: String) #-}
sbv.cabal view
@@ -1,5 +1,5 @@ Name:          sbv-Version:       8.5+Version:       8.6 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@@ -7,7 +7,7 @@                .                For details, please see: <http://leventerkok.github.com/sbv/> -Copyright:     Levent Erkok, 2010-2019+Copyright:     Levent Erkok, 2010-2020 License:       BSD3 License-file:  LICENSE Stability:     Experimental