fixup for incremental solving
authorDejan Jovanović <dejan.jovanovic@gmail.com>
Mon, 26 Nov 2012 17:40:31 +0000 (17:40 +0000)
committerDejan Jovanović <dejan.jovanovic@gmail.com>
Mon, 26 Nov 2012 17:40:31 +0000 (17:40 +0000)
94 files changed:
src/prop/cnf_stream.cpp
src/prop/cnf_stream.h
src/prop/minisat/core/Solver.cc
src/prop/minisat/core/Solver.h
src/prop/minisat/core/SolverTypes.h
src/prop/minisat/minisat.cpp
src/prop/minisat/minisat.h
src/prop/minisat/simp/SimpSolver.cc
src/prop/prop_engine.cpp
src/prop/prop_engine.h
src/prop/sat_solver.h
src/prop/theory_proxy.cpp
src/prop/theory_proxy.h
src/theory/bv/bitblaster.cpp
src/theory/logic_info.cpp
src/theory/logic_info.h
src/theory/theory_engine.cpp
test/regress/regress0/push-pop/Makefile.am
test/regress/regress0/push-pop/arith/Makefile [new file with mode: 0644]
test/regress/regress0/push-pop/arith/Makefile.am [new file with mode: 0644]
test/regress/regress0/push-pop/arith/fuzz_3_1.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/arith/fuzz_3_10.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/arith/fuzz_3_11.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/arith/fuzz_3_12.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/arith/fuzz_3_13.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/arith/fuzz_3_14.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/arith/fuzz_3_15.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/arith/fuzz_3_2.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/arith/fuzz_3_3.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/arith/fuzz_3_4.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/arith/fuzz_3_5.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/arith/fuzz_3_6.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/arith/fuzz_3_7.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/arith/fuzz_3_8.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/arith/fuzz_3_9.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/arith/fuzz_5_1.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/arith/fuzz_5_2.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/arith/fuzz_5_3.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/arith/fuzz_5_4.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/arith/fuzz_5_5.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/arith/fuzz_5_6.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/Makefile [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/Makefile.am [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_1.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_10.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_11.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_12.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_13.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_14.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_15.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_16.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_18.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_19.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_2.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_20.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_21.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_22.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_23.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_24.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_25.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_26.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_27.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_28.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_29.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_3.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_30.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_31.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_32.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_33.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_34.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_35.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_36.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_37.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_38.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_39.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_4.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_40.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_41.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_42.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_43.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_44.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_45.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_46.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_47.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_48.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_49.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_5.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_50.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_51.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_52.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_6.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_7.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_8.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/boolean/fuzz_9.smt2 [new file with mode: 0644]

index 69418af0f5f46c0880573420a620c67773e95310..9f2138e9d26b5edc38c7be8089c991b8d2c7db74 100644 (file)
@@ -45,24 +45,11 @@ namespace prop {
 CnfStream::CnfStream(SatSolver *satSolver, Registrar* registrar, context::Context* context, bool fullLitToNodeMap) :
   d_satSolver(satSolver),
   d_booleanVariables(context),
+  d_nodeToLiteralMap(context),
+  d_literalToNodeMap(context),
   d_fullLitToNodeMap(fullLitToNodeMap),
-  d_registrar(registrar) {
-}
-
-void CnfStream::recordTranslation(TNode node, bool alwaysRecord) {
-  Debug("cnf") << "recordTranslation(" << alwaysRecord << "," << d_removable << "): " << node << std::endl;
-  if (!d_removable) {
-    node = stripNot(node);
-    if(d_translationCache.find(node)->second.recorded) {
-      Debug("cnf") << "--> Already recorded, not recording again." << std::endl;
-    } else {
-      Debug("cnf") << "--> Recorded at position " << d_translationTrail.size() << ". (level " << d_translationCache.find(node)->second.level << ")" << std::endl;
-      Assert(d_translationTrail.empty() || d_translationCache.find(node)->second.level >= d_translationCache.find(d_translationTrail.back())->second.level, "levels on the translation trail should be monotonically increasing ?!");
-      d_translationTrail.push_back(node);
-      d_translationCache.find(node)->second.recorded = true;
-      d_translationCache.find(node.notNode())->second.recorded = true;
-    }
-  }
+  d_registrar(registrar),
+  d_removable(false) {
 }
 
 TseitinCnfStream::TseitinCnfStream(SatSolver* satSolver, Registrar* registrar, context::Context* context, bool fullLitToNodeMap) :
@@ -108,27 +95,24 @@ void CnfStream::assertClause(TNode node, SatLiteral a, SatLiteral b, SatLiteral
   assertClause(node, clause);
 }
 
-bool CnfStream::isTranslated(TNode n) const {
-  TranslationCache::const_iterator find = d_translationCache.find(n);
-  return find != d_translationCache.end() && (*find).second.level >= 0;
-}
-
 bool CnfStream::hasLiteral(TNode n) const {
-  TranslationCache::const_iterator find = d_translationCache.find(n);
-  return find != d_translationCache.end();
+  NodeToLiteralMap::const_iterator find = d_nodeToLiteralMap.find(n);
+  return find != d_nodeToLiteralMap.end();
 }
 
 void TseitinCnfStream::ensureLiteral(TNode n) {
+
+  // These are not removable
+  d_removable = false;
+
   Debug("cnf") << "ensureLiteral(" << n << ")" << endl;
   if(hasLiteral(n)) {
-    // Already a literal!
-    // newLiteral() may be necessary to renew a previously-extant literal
-    SatLiteral lit = isTranslated(n) ? getLiteral(n) : newLiteral(n, true);
-    NodeCache::iterator i = d_nodeCache.find(lit);
-    if(i == d_nodeCache.end()) {
+    SatLiteral lit = getLiteral(n);
+    LiteralToNodeMap::iterator i = d_literalToNodeMap.find(lit);
+    if(i == d_literalToNodeMap.end()) {
       // Store backward-mappings
-      d_nodeCache[lit] = n;
-      d_nodeCache[~lit] = n.notNode();
+      d_literalToNodeMap[lit] = n;
+      d_literalToNodeMap[~lit] = n.notNode();
     }
     return;
   }
@@ -156,8 +140,8 @@ void TseitinCnfStream::ensureLiteral(TNode n) {
     lit = toCNF(n, false);
 
     // Store backward-mappings
-    d_nodeCache[lit] = n;
-    d_nodeCache[~lit] = n.notNode();
+    d_literalToNodeMap[lit] = n;
+    d_literalToNodeMap[~lit] = n.notNode();
   } else {
     // We have a theory atom or variable.
     lit = convertAtom(n);
@@ -184,27 +168,18 @@ SatLiteral CnfStream::newLiteral(TNode node, bool theoryLiteral) {
     } else {
       lit = SatLiteral(d_satSolver->newVar(theoryLiteral));
     }
-    d_translationCache[node].literal = lit;
-    d_translationCache[node.notNode()].literal = ~lit;
+    d_nodeToLiteralMap[node] = lit;
+    d_nodeToLiteralMap[node.notNode()] = ~lit;
   } else {
-    // We already have a literal
     lit = getLiteral(node);
-    d_satSolver->renewVar(lit);
   }
 
-  // We will translate clauses, so remember the level
-  int level = d_satSolver->getAssertionLevel();
-  d_translationCache[node].recorded = false;
-  d_translationCache[node.notNode()].recorded = false;
-  d_translationCache[node].level = level;
-  d_translationCache[node.notNode()].level = level;
-
   // If it's a theory literal, need to store it for back queries
   if ( theoryLiteral || d_fullLitToNodeMap ||
        ( CVC4_USE_REPLAY && options::replayLog() != NULL ) ||
        (Dump.isOn("clauses")) ) {
-    d_nodeCache[lit] = node;
-    d_nodeCache[~lit] = node.notNode();
+    d_literalToNodeMap[lit] = node;
+    d_literalToNodeMap[~lit] = node.notNode();
   }
 
   // If a theory literal, we pre-register it
@@ -222,11 +197,11 @@ SatLiteral CnfStream::newLiteral(TNode node, bool theoryLiteral) {
 
 TNode CnfStream::getNode(const SatLiteral& literal) {
   Debug("cnf") << "getNode(" << literal << ")" << endl;
-  NodeCache::iterator find = d_nodeCache.find(literal);
-  Assert(find != d_nodeCache.end());
-  Assert(d_translationCache.find(find->second) != d_translationCache.end());
-  Debug("cnf") << "getNode(" << literal << ") => " << find->second << endl;
-  return find->second;
+  LiteralToNodeMap::iterator find = d_literalToNodeMap.find(literal);
+  Assert(find != d_literalToNodeMap.end());
+  Assert(d_nodeToLiteralMap.find((*find).second) != d_nodeToLiteralMap.end());
+  Debug("cnf") << "getNode(" << literal << ") => " << (*find).second << endl;
+  return (*find).second;
 }
 
 void CnfStream::getBooleanVariables(std::vector<TNode>& outputVariables) const {
@@ -239,7 +214,7 @@ void CnfStream::getBooleanVariables(std::vector<TNode>& outputVariables) const {
 SatLiteral CnfStream::convertAtom(TNode node) {
   Debug("cnf") << "convertAtom(" << node << ")" << endl;
 
-  Assert(!isTranslated(node), "atom already mapped!");
+  Assert(!hasLiteral(node), "atom already mapped!");
 
   // Is this a variable add it to the list
   if (node.isVar()) {
@@ -249,27 +224,24 @@ SatLiteral CnfStream::convertAtom(TNode node) {
   // Make a new literal (variables are not considered theory literals)
   SatLiteral lit = newLiteral(node, !node.isVar());
 
-  // We have a literal, so it has to be recorded.  The definitional clauses
-  // go away on user-pop, so this literal will have to be re-vivified if it's
-  // used subsequently.
-  recordTranslation(node, true);
-
+  // Return the resulting literal
   return lit;
 }
 
 SatLiteral CnfStream::getLiteral(TNode node) {
-  TranslationCache::iterator find = d_translationCache.find(node);
+  NodeToLiteralMap::iterator find = d_nodeToLiteralMap.find(node);
   Assert(!node.isNull(), "CnfStream: can't getLiteral() of null node");
-  Assert(find != d_translationCache.end(), "Literal not in the CNF Cache: %s\n", node.toString().c_str());
-  SatLiteral literal = find->second.literal;
+  Assert(find != d_nodeToLiteralMap.end(), "Literal not in the CNF Cache: %s\n", node.toString().c_str());
+  SatLiteral literal = (*find).second;
   Debug("cnf") << "CnfStream::getLiteral(" << node << ") => " << literal << std::endl;
   return literal;
 }
 
 SatLiteral TseitinCnfStream::handleXor(TNode xorNode) {
-  Assert(!isTranslated(xorNode), "Atom already mapped!");
+  Assert(!hasLiteral(xorNode), "Atom already mapped!");
   Assert(xorNode.getKind() == XOR, "Expecting an XOR expression!");
   Assert(xorNode.getNumChildren() == 2, "Expecting exactly 2 children!");
+  Assert(!d_removable, "Removable clauses can not contain Boolean structure");
 
   SatLiteral a = toCNF(xorNode[0]);
   SatLiteral b = toCNF(xorNode[1]);
@@ -281,18 +253,14 @@ SatLiteral TseitinCnfStream::handleXor(TNode xorNode) {
   assertClause(xorNode, a, ~b, xorLit);
   assertClause(xorNode, ~a, b, xorLit);
 
-  // We have a literal, so it has to be recorded.  The definitional clauses
-  // go away on user-pop, so this literal will have to be re-vivified if it's
-  // used subsequently.
-  recordTranslation(xorNode, true);
-
   return xorLit;
 }
 
 SatLiteral TseitinCnfStream::handleOr(TNode orNode) {
-  Assert(!isTranslated(orNode), "Atom already mapped!");
+  Assert(!hasLiteral(orNode), "Atom already mapped!");
   Assert(orNode.getKind() == OR, "Expecting an OR expression!");
   Assert(orNode.getNumChildren() > 1, "Expecting more then 1 child!");
+  Assert(!d_removable, "Removable clauses can not contain Boolean structure");
 
   // Number of children
   unsigned n_children = orNode.getNumChildren();
@@ -321,19 +289,15 @@ SatLiteral TseitinCnfStream::handleOr(TNode orNode) {
   // This needs to go last, as the clause might get modified by the SAT solver
   assertClause(orNode, clause);
 
-  // We have a literal, so it has to be recorded.  The definitional clauses
-  // go away on user-pop, so this literal will have to be re-vivified if it's
-  // used subsequently.
-  recordTranslation(orNode, true);
-
   // Return the literal
   return orLit;
 }
 
 SatLiteral TseitinCnfStream::handleAnd(TNode andNode) {
-  Assert(!isTranslated(andNode), "Atom already mapped!");
+  Assert(!hasLiteral(andNode), "Atom already mapped!");
   Assert(andNode.getKind() == AND, "Expecting an AND expression!");
   Assert(andNode.getNumChildren() > 1, "Expecting more than 1 child!");
+  Assert(!d_removable, "Removable clauses can not contain Boolean structure");
 
   // Number of children
   unsigned n_children = andNode.getNumChildren();
@@ -363,18 +327,14 @@ SatLiteral TseitinCnfStream::handleAnd(TNode andNode) {
   // This needs to go last, as the clause might get modified by the SAT solver
   assertClause(andNode, clause);
 
-  // We have a literal, so it has to be recorded.  The definitional clauses
-  // go away on user-pop, so this literal will have to be re-vivified if it's
-  // used subsequently.
-  recordTranslation(andNode, true);
-
   return andLit;
 }
 
 SatLiteral TseitinCnfStream::handleImplies(TNode impliesNode) {
-  Assert(!isTranslated(impliesNode), "Atom already mapped!");
+  Assert(!hasLiteral(impliesNode), "Atom already mapped!");
   Assert(impliesNode.getKind() == IMPLIES, "Expecting an IMPLIES expression!");
   Assert(impliesNode.getNumChildren() == 2, "Expecting exactly 2 children!");
+  Assert(!d_removable, "Removable clauses can not contain Boolean structure");
 
   // Convert the children to cnf
   SatLiteral a = toCNF(impliesNode[0]);
@@ -392,17 +352,12 @@ SatLiteral TseitinCnfStream::handleImplies(TNode impliesNode) {
   assertClause(impliesNode, a, impliesLit);
   assertClause(impliesNode, ~b, impliesLit);
 
-  // We have a literal, so it has to be recorded.  The definitional clauses
-  // go away on user-pop, so this literal will have to be re-vivified if it's
-  // used subsequently.
-  recordTranslation(impliesNode, true);
-
   return impliesLit;
 }
 
 
 SatLiteral TseitinCnfStream::handleIff(TNode iffNode) {
-  Assert(!isTranslated(iffNode), "Atom already mapped!");
+  Assert(!hasLiteral(iffNode), "Atom already mapped!");
   Assert(iffNode.getKind() == IFF, "Expecting an IFF expression!");
   Assert(iffNode.getNumChildren() == 2, "Expecting exactly 2 children!");
 
@@ -429,17 +384,12 @@ SatLiteral TseitinCnfStream::handleIff(TNode iffNode) {
   assertClause(iffNode, ~a, ~b, iffLit);
   assertClause(iffNode, a, b, iffLit);
 
-  // We have a literal, so it has to be recorded.  The definitional clauses
-  // go away on user-pop, so this literal will have to be re-vivified if it's
-  // used subsequently.
-  recordTranslation(iffNode, true);
-
   return iffLit;
 }
 
 
 SatLiteral TseitinCnfStream::handleNot(TNode notNode) {
-  Assert(!isTranslated(notNode), "Atom already mapped!");
+  Assert(!hasLiteral(notNode), "Atom already mapped!");
   Assert(notNode.getKind() == NOT, "Expecting a NOT expression!");
   Assert(notNode.getNumChildren() == 1, "Expecting exactly 1 child!");
 
@@ -451,6 +401,7 @@ SatLiteral TseitinCnfStream::handleNot(TNode notNode) {
 SatLiteral TseitinCnfStream::handleIte(TNode iteNode) {
   Assert(iteNode.getKind() == ITE);
   Assert(iteNode.getNumChildren() == 3);
+  Assert(!d_removable, "Removable clauses can not contain Boolean structure");
 
   Debug("cnf") << "handleIte(" << iteNode[0] << " " << iteNode[1] << " " << iteNode[2] << ")" << endl;
 
@@ -480,11 +431,6 @@ SatLiteral TseitinCnfStream::handleIte(TNode iteNode) {
   assertClause(iteNode, iteLit, ~condLit, ~thenLit);
   assertClause(iteNode, iteLit, condLit, ~elseLit);
 
-  // We have a literal, so it has to be recorded.  The definitional clauses
-  // go away on user-pop, so this literal will have to be re-vivified if it's
-  // used subsequently.
-  recordTranslation(iteNode, true);
-
   return iteLit;
 }
 
@@ -496,7 +442,7 @@ SatLiteral TseitinCnfStream::toCNF(TNode node, bool negated) {
   Node negatedNode = node.notNode();
 
   // If the non-negated node has already been translated, get the translation
-  if(isTranslated(node)) {
+  if(hasLiteral(node)) {
     Debug("cnf") << "toCNF(): already translated" << endl;
     nodeLit = getLiteral(node);
   } else {
@@ -564,7 +510,6 @@ void TseitinCnfStream::convertAndAssertAnd(TNode node, bool negated) {
     for(int i = 0; i < nChildren; ++ disjunct, ++ i) {
       Assert( disjunct != node.end() );
       clause[i] = toCNF(*disjunct, true);
-      recordTranslation(*disjunct);
     }
     Assert(disjunct == node.end());
     assertClause(node, clause);
@@ -581,7 +526,6 @@ void TseitinCnfStream::convertAndAssertOr(TNode node, bool negated) {
     for(int i = 0; i < nChildren; ++ disjunct, ++ i) {
       Assert( disjunct != node.end() );
       clause[i] = toCNF(*disjunct, false);
-      recordTranslation(*disjunct);
     }
     Assert(disjunct == node.end());
     assertClause(node, clause);
@@ -622,8 +566,6 @@ void TseitinCnfStream::convertAndAssertXor(TNode node, bool negated) {
     clause2[1] = ~q;
     assertClause(node, clause2);
   }
-  recordTranslation(node[0]);
-  recordTranslation(node[1]);
 }
 
 void TseitinCnfStream::convertAndAssertIff(TNode node, bool negated) {
@@ -654,8 +596,6 @@ void TseitinCnfStream::convertAndAssertIff(TNode node, bool negated) {
     clause2[1] = q;
     assertClause(node, clause2);
   }
-  recordTranslation(node[0]);
-  recordTranslation(node[1]);
 }
 
 void TseitinCnfStream::convertAndAssertImplies(TNode node, bool negated) {
@@ -668,8 +608,6 @@ void TseitinCnfStream::convertAndAssertImplies(TNode node, bool negated) {
     clause[0] = ~p;
     clause[1] = q;
     assertClause(node, clause);
-    recordTranslation(node[0]);
-    recordTranslation(node[1]);
   } else {// Construct the
     // !(p => q) is the same as (p && ~q)
     convertAndAssert(node[0], false);
@@ -692,10 +630,6 @@ void TseitinCnfStream::convertAndAssertIte(TNode node, bool negated) {
   clause2[0] = p;
   clause2[1] = r;
   assertClause(node, clause2);
-
-  recordTranslation(node[0]);
-  recordTranslation(node[1]);
-  recordTranslation(node[2]);
 }
 
 // At the top level we must ensure that all clauses that are asserted are
@@ -710,17 +644,6 @@ void TseitinCnfStream::convertAndAssert(TNode node, bool removable, bool negated
 void TseitinCnfStream::convertAndAssert(TNode node, bool negated) {
   Debug("cnf") << "convertAndAssert(" << node << ", negated = " << (negated ? "true" : "false") << ")" << endl;
 
-  /*
-  if(isTranslated(node)) {
-    Debug("cnf") << "==> fortunate literal detected!" << endl;
-    ++d_fortunateLiterals;
-    SatLiteral lit = getLiteral(node);
-    //d_satSolver->renewVar(lit);
-    assertClause(node, negated ? ~lit : lit);
-    return;
-  }
-  */
-
   switch(node.getKind()) {
   case AND:
     convertAndAssertAnd(node, negated);
@@ -746,112 +669,9 @@ void TseitinCnfStream::convertAndAssert(TNode node, bool negated) {
   default:
     // Atoms
     assertClause(node, toCNF(node, negated));
-    recordTranslation(node);
     break;
   }
 }
 
-void CnfStream::removeClausesAboveLevel(int level) {
-  while (d_translationTrail.size() > 0) {
-    Debug("cnf") << "Considering translation trail position " << d_translationTrail.size() << std::endl;
-    TNode node = d_translationTrail.back();
-    // Get the translation information
-    TranslationInfo& infoPos = d_translationCache.find(node)->second;
-    // If the level of the node is less or equal to given we are done
-    if (infoPos.level >= 0 && infoPos.level <= level) {
-      Debug("cnf") << "Node is " << node << " level " << infoPos.level << ", we're done." << std::endl;
-      break;
-    }
-    Debug("cnf") << "Removing node " << node << " from CNF translation" << endl;
-    d_translationTrail.pop_back();
-    // If already untranslated, we're done
-    if (infoPos.level == -1) continue;
-    // Otherwise we have to undo the translation
-    undoTranslate(node, level);
-  }
-}
-
-void CnfStream::undoTranslate(TNode node, int level) {
-  Debug("cnf") << "undoTranslate(): " << node << " (level " << level << ")" << endl;
-
-  TranslationCache::iterator it = d_translationCache.find(node);
-
-  // If not in translation cache, done (the parent was an atom)
-  if (it == d_translationCache.end()) {
-    Debug("cnf") << "                 ==> not in cache, ignore" << endl;
-    return;
-  }
-
-  // Get the translation information
-  TranslationInfo& infoPos = (*it).second;
-
-  // If already untranslated, we are done
-  if (infoPos.level == -1) {
-    Debug("cnf") << "                 ==> already untranslated, ignore" << endl;
-    return;
-  }
-
-  // If under the given level we're also done
-  if (infoPos.level <= level) {
-    Debug("cnf") << "                 ==> level too low, ignore" << endl;
-    return;
-  }
-
-  Debug("cnf") << "                 ==> untranslating" << endl;
-
-  // Untranslate
-  infoPos.level = -1;
-  infoPos.recorded = false;
-
-  // Untranslate the negation node
-  // If not a not node, unregister it from sat and untranslate the negation
-  if (node.getKind() != kind::NOT) {
-    // Unregister the literal from SAT
-    SatLiteral lit = getLiteral(node);
-    d_satSolver->unregisterVar(lit);
-    Debug("cnf") << "                 ==> untranslating negation, too" << endl;
-    // Untranslate the negation
-    it = d_translationCache.find(node.notNode());
-    Assert(it != d_translationCache.end());
-    TranslationInfo& infoNeg = (*it).second;
-    infoNeg.level = -1;
-    infoNeg.recorded = false;
-  }
-
-  // undoTranslate the children
-  TNode::iterator child = node.begin();
-  TNode::iterator child_end = node.end();
-  while (child != child_end) {
-    undoTranslate(*child, level);
-    ++ child;
-  }
-
-  Debug("cnf") << "undoTranslate(): finished untranslating " << node << " (level " << level << ")" << endl;
-}
-
-void CnfStream::moveToBaseLevel(TNode node) {
-  TNode posNode = stripNot(node);
-  TranslationInfo& infoPos = d_translationCache.find(posNode)->second;
-
-  Assert(infoPos.level >= 0);
-  if (infoPos.level == 0) return;
-
-  TNode negNode = node.notNode();
-  TranslationInfo& infoNeg = d_translationCache.find(negNode)->second;
-
-  infoPos.level = 0;
-  infoNeg.level = 0;
-
-  d_satSolver->renewVar(infoPos.literal, 0);
-
-  // undoTranslate the children
-  TNode::iterator child = posNode.begin();
-  TNode::iterator child_end = posNode.end();
-  while (child != child_end) {
-    moveToBaseLevel(*child);
-    ++ child;
-  }
-}
-
 }/* CVC4::prop namespace */
 }/* CVC4 namespace */
index c085fd3840fa70df18c14ec6891ca4c74f77c9d1..6ab639712de2ac49b3ecfebc7b1160eaf5562c04 100644 (file)
@@ -47,19 +47,10 @@ class CnfStream {
 public:
 
   /** Cache of what nodes have been registered to a literal. */
-  typedef __gnu_cxx::hash_map<SatLiteral, TNode, SatLiteralHashFunction> NodeCache;
-
-  /** Per node translation information */
-  struct TranslationInfo {
-    bool recorded;
-    /** The level at which this node was translated (negative if not translated) */
-    int level;
-    /** The literal of this node */
-    SatLiteral literal;
-  };
+  typedef context::CDHashMap<SatLiteral, TNode, SatLiteralHashFunction> LiteralToNodeMap;
 
   /** Cache of what literals have been registered to a node. */
-  typedef __gnu_cxx::hash_map<Node, TranslationInfo, NodeHashFunction> TranslationCache;
+  typedef context::CDHashMap<Node, SatLiteral, NodeHashFunction> NodeToLiteralMap;
 
 protected:
 
@@ -69,8 +60,11 @@ protected:
   /** Boolean variables that we translated */
   context::CDList<TNode> d_booleanVariables;
 
-  TranslationCache d_translationCache;
-  NodeCache d_nodeCache;
+  /** Map from nodes to literals */
+  NodeToLiteralMap d_nodeToLiteralMap;
+
+  /** Map from literals to nodes */
+  LiteralToNodeMap d_literalToNodeMap;
 
   /**
    * True if the lit-to-Node map should be kept for all lits, not just
@@ -82,9 +76,6 @@ protected:
   /** The "registrar" for pre-registration of terms */
   Registrar* d_registrar;
 
-  /** Top level nodes that we translated */
-  std::vector<TNode> d_translationTrail;
-
   /**
    * How many literals were already mapped at the top-level when we
    * tried to convertAndAssert() something.  This
@@ -111,23 +102,11 @@ protected:
     return node;
   }
 
-  /** Record this translation */
-  void recordTranslation(TNode node, bool alwaysRecord = false);
-
-  /**
-   * Moves the node and all of it's parents to level 0.
-   */
-  void moveToBaseLevel(TNode node);
-
-  /**
-   * Mark the node, and all parent at levels above level as untranslated.
-   */
-  void undoTranslate(TNode node, int level);
-
   /**
    * Are we asserting a removable clause (true) or a permanent clause (false).
-   * This is set at the begining of convertAndAssert so that it doesn't
-   * need to be passed on over the stack.
+   * This is set at the beginning of convertAndAssert so that it doesn't
+   * need to be passed on over the stack. Only pure clauses  can be asserted as
+   * removable.
    */
   bool d_removable;
 
@@ -218,13 +197,6 @@ public:
    */
   TNode getNode(const SatLiteral& literal);
 
-  /**
-   * Returns true if the node has been cached in the translation cache.
-   * @param node the node
-   * @return true if the node has been cached
-   */
-  bool isTranslated(TNode node) const;
-
   /**
    * Returns true iff the node has an assigned literal (it might not be translated).
    * @param node the node
@@ -253,19 +225,14 @@ public:
    */
   void getBooleanVariables(std::vector<TNode>& outputVariables) const;
 
-  const TranslationCache& getTranslationCache() const {
-    return d_translationCache;
+  const NodeToLiteralMap& getTranslationCache() const {
+    return d_nodeToLiteralMap;
   }
 
-  const NodeCache& getNodeCache() const {
-    return d_nodeCache;
+  const LiteralToNodeMap& getNodeCache() const {
+    return d_literalToNodeMap;
   }
 
-  /**
-   * Removes all the translation information of clauses that have the given associated assert level.
-   */
-  void removeClausesAboveLevel(int level);
-
 };/* class CnfStream */
 
 
index ba36ac8797605c2abb7a893226bc570ee3c57e2d..f7d67d445ed6f5db1bc22d826fbbef771793de2e 100644 (file)
@@ -157,7 +157,7 @@ Var Solver::newVar(bool sign, bool dvar, bool theoryAtom)
     watches  .init(mkLit(v, false));
     watches  .init(mkLit(v, true ));
     assigns  .push(l_Undef);
-    vardata  .push(mkVarData(CRef_Undef, 0, assertionLevel, -1));
+    vardata  .push(VarData(CRef_Undef, -1, -1, assertionLevel, -1));
     activity .push(rnd_init_act ? drand(random_seed) * 0.00001 : 0);
     seen     .push(0);
     polarity .push(sign);
@@ -177,6 +177,33 @@ Var Solver::newVar(bool sign, bool dvar, bool theoryAtom)
     return v;
 }
 
+void Solver::resizeVars(int newSize) {
+  assert(enable_incremental);
+  assert(decisionLevel() == 0);
+  Assert(newSize >= 2, "always keep true/false");
+  if (newSize < nVars()) {
+    int shrinkSize = nVars() - newSize;
+
+    // Resize watches up to the negated last literal
+    watches.resizeTo(mkLit(newSize-1, true));
+
+    // Resize all info arrays
+    assigns.shrink(shrinkSize);
+    vardata.shrink(shrinkSize);
+    activity.shrink(shrinkSize);
+    seen.shrink(shrinkSize);
+    polarity.shrink(shrinkSize);
+    decision.shrink(shrinkSize);
+    theory.shrink(shrinkSize);
+
+  }
+
+  if (Debug.isOn("minisat::pop")) {
+    for (int i = 0; i < trail.size(); ++ i) {
+      assert(var(trail[i]) < nVars());
+    }
+  }
+}
 
 CRef Solver::reason(Var x) {
 
@@ -202,18 +229,31 @@ CRef Solver::reason(Var x) {
     int i, j;
     Lit prev = lit_Undef;
     for (i = 0, j = 0; i < explanation.size(); ++ i) {
-      int varLevel = intro_level(var(explanation[i]));
-      if (varLevel > explLevel) {
-        explLevel = varLevel;
-      }
+      // This clause is valid theory propagation, so it's level is the level of the top literal
+      explLevel = std::max(explLevel, intro_level(var(explanation[i])));
+
       Assert(value(explanation[i]) != l_Undef);
       Assert(i == 0 || trail_index(var(explanation[0])) > trail_index(var(explanation[i])));
-      // ignore zero level literals
-      if (i == 0 || (level(var(explanation[i])) > 0 && explanation[i] != prev)) {
+
+      // Always keep the first literal
+      if (i == 0) {
         prev = explanation[j++] = explanation[i];
+        continue;
+      }
+      // Ignore duplicate literals
+      if (explanation[i] == prev) {
+        continue;
+      }
+      // Ignore zero level literals
+      if (level(var(explanation[i])) == 0 && user_level(var(explanation[i]) == 0)) {
+        continue;
       }
+      // Keep this literal
+      prev = explanation[j++] = explanation[i];
     }
     explanation.shrink(i - j);
+
+    // We need an explanation clause so we add a fake literal
     if (j == 1) {
       // Add not TRUE to the clause
       explanation.push(mkLit(varTrue, true));
@@ -221,9 +261,10 @@ CRef Solver::reason(Var x) {
 
     // Construct the reason
     CRef real_reason = ca.alloc(explLevel, explanation, true);
-    vardata[x] = mkVarData(real_reason, level(x), intro_level(x), trail_index(x));
+    vardata[x] = VarData(real_reason, level(x), user_level(x), intro_level(x), trail_index(x));
     clauses_removable.push(real_reason);
     attachClause(real_reason);
+
     return real_reason;
 }
 
@@ -235,16 +276,38 @@ bool Solver::addClause_(vec<Lit>& ps, bool removable)
     sort(ps);
     Lit p; int i, j;
 
+    // Which user-level to assert this clause at
+    int clauseLevel = removable ? 0 : assertionLevel;
+
     // Check the clause for tautologies and similar
+    int falseLiteralsCount = 0;
     for (i = j = 0, p = lit_Undef; i < ps.size(); i++) {
-      if ((ps[i] == ~p) || (value(ps[i]) == l_True && level(var(ps[i])) == 0)) {
+      // Update the level
+      clauseLevel = std::max(clauseLevel, intro_level(var(ps[i])));
+      // Tautologies are ignored
+      if (ps[i] == ~p) {
         // Clause can be ignored
         return true;
       }
-      if ((ps[i] != p) && (value(ps[i]) != l_False || level(var(ps[i])) > 0)) {
-        // This literal is a keeper
-        ps[j++] = p = ps[i];
+      // Clauses with 0-level true literals are also ignored
+      if (value(ps[i]) == l_True && level(var(ps[i])) == 0 && user_level(var(ps[i])) == 0) {
+        return true;
       }
+      // Ignore repeated literals
+      if (ps[i] == p) {
+        continue;
+      }
+      // If a literals is false at 0 level (both sat and user level) we also ignore it
+      if (value(ps[i]) == l_False) {
+        if (level(var(ps[i])) == 0 && user_level(var(ps[i])) == 0) {
+          continue;
+        } else {
+          // If we decide to keep it, we count it into the false literals
+          falseLiteralsCount ++;
+        }
+      }
+      // This literal is a keeper
+      ps[j++] = p = ps[i];
     }
 
     // Fit to size
@@ -256,24 +319,35 @@ bool Solver::addClause_(vec<Lit>& ps, bool removable)
       ps.copyTo(lemmas.last());
       lemmas_removable.push(removable);
     } else {
-      // Add the clause and attach if not a lemma
-      if (ps.size() == 0) {
+      // If all false, we're in conflict
+      if (ps.size() == falseLiteralsCount) {
           return ok = false;
-      } else if (ps.size() == 1) {
-        if(assigns[var(ps[0])] == l_Undef) {
-          uncheckedEnqueue(ps[0]);
-          
-          PROOF( ProofManager::getSatProof()->registerUnitClause(ps[0], true); )
+      }
 
-          return ok = (propagate(CHECK_WITHOUTH_THEORY) == CRef_Undef);
-        } else return ok;
-      } else {
-        CRef cr = ca.alloc(assertionLevel, ps, false);
+      CRef cr = CRef_Undef;
+
+      // If not unit, add the clause
+      if (ps.size() > 1) {
+
+        lemma_lt lt(*this);
+        sort(ps, lt);
+
+        cr = ca.alloc(clauseLevel, ps, false);
         clauses_persistent.push(cr);
        attachClause(cr);
-        
+
         PROOF( ProofManager::getSatProof()->registerClause(cr, true); )
       }
+
+      // Check if it propagates
+      if (ps.size() == falseLiteralsCount + 1) {
+        if(assigns[var(ps[0])] == l_Undef) {
+          assert(assigns[var(ps[0])] != l_False);
+          uncheckedEnqueue(ps[0], cr);
+          PROOF( if (ps.size() == 1) { ProofManager::getSatProof()->registerUnitClause(ps[0], true); } )
+          return ok = (propagate(CHECK_WITHOUTH_THEORY) == CRef_Undef);
+        } else return ok;
+      }
     }
 
     return true;
@@ -313,7 +387,7 @@ void Solver::detachClause(CRef cr, bool strict) {
 
 void Solver::removeClause(CRef cr) {
     Clause& c = ca[cr];
-    Debug("minisat") << "Solver::removeClause(" << c << ")" << std::endl;
+    Debug("minisat::remove-clause") << "Solver::removeClause(" << c << ")" << std::endl;
     detachClause(cr);
     // Don't leave pointers to free'd memory!
     if (locked(c)) vardata[var(c[0])].reason = CRef_Undef;
@@ -348,9 +422,7 @@ void Solver::cancelUntil(int level) {
             vardata[x].trail_index = -1;
             if ((phase_saving > 1 || (phase_saving == 1) && c > trail_lim.last()) && (polarity[x] & 0x2) == 0)
               polarity[x] = sign(trail[c]);
-            if(intro_level(x) != -1) {// might be unregistered
-              insertVarOrder(x);
-            }
+            insertVarOrder(x);
         }
         qhead = trail_lim[level];
         trail.shrink(trail.size() - trail_lim[level]);
@@ -413,7 +485,7 @@ Lit Solver::pickBranchLit()
             rnd_decisions++; }
 
     // Activity based decision:
-    while (next == var_Undef || value(next) != l_Undef || !decision[next]) {
+    while (next >= nVars() || next == var_Undef || value(next) != l_Undef || !decision[next]) {
         if (order_heap.empty()){
             next = var_Undef;
             break;
@@ -473,15 +545,13 @@ int Solver::analyze(CRef confl, vec<Lit>& out_learnt, int& out_btlevel)
     out_learnt.push();      // (leave room for the asserting literal)
     int index   = trail.size() - 1;
 
-    int max_level = 0; // Maximal level of the resolved clauses
+    int max_resolution_level = 0; // Maximal level of the resolved clauses
 
     PROOF( ProofManager::getSatProof()->startResChain(confl); )
     do{
         assert(confl != CRef_Undef); // (otherwise should be UIP)
         Clause& c = ca[confl];
-        if (c.level() > max_level) {
-          max_level = c.level();
-        }
+        max_resolution_level = std::max(max_resolution_level, c.level());
 
         if (c.removable())
             claBumpActivity(c);
@@ -497,6 +567,12 @@ int Solver::analyze(CRef confl, vec<Lit>& out_learnt, int& out_btlevel)
                 else
                     out_learnt.push(q);
             } else {
+              // We could be resolving a literal propagated by a clause/theory using
+              // information from a higher level
+              if (!seen[var(q)] && level(var(q)) == 0) {
+                max_resolution_level = std::max(max_resolution_level, user_level(var(q)));
+              }
+
               // FIXME: can we do it lazily if we actually need the proof?
               if (level(var(q)) == 0) {
                 PROOF( ProofManager::getSatProof()->resolveOutUnit(q); )
@@ -531,22 +607,20 @@ int Solver::analyze(CRef confl, vec<Lit>& out_learnt, int& out_btlevel)
                 out_learnt[j++] = out_learnt[i];
             } else {
               // Check if the literal is redundant
-              int red_level = litRedundant(out_learnt[i], abstract_level);
-              if (red_level < 0) {
+              if (!litRedundant(out_learnt[i], abstract_level)) {
                 // Literal is not redundant
                 out_learnt[j++] = out_learnt[i];
               } else {
-                //
                 PROOF( ProofManager::getSatProof()->storeLitRedundant(out_learnt[i]); )
-                // Literal is redundant, mark the level of the redundancy derivation
-                if (max_level < red_level) {
-                  max_level = red_level;
-                }
+                // Literal is redundant, to be safe, mark the level as current assertion level 
+                // TODO: maybe optimize
+                max_resolution_level = std::max(max_resolution_level, user_level(var(out_learnt[i])));
               }
             }
         }
         
     }else if (ccmin_mode == 1){
+        Unreachable();
         for (i = j = 1; i < out_learnt.size(); i++){
             Var x = var(out_learnt[i]);
 
@@ -587,26 +661,22 @@ int Solver::analyze(CRef confl, vec<Lit>& out_learnt, int& out_btlevel)
     for (int j = 0; j < analyze_toclear.size(); j++) seen[var(analyze_toclear[j])] = 0;    // ('seen[]' is now cleared)
 
     // Return the maximal resolution level
-    return max_level;
+    return max_resolution_level;
 }
 
 
 // Check if 'p' can be removed. 'abstract_levels' is used to abort early if the algorithm is
 // visiting literals at levels that cannot be removed later.
-int Solver::litRedundant(Lit p, uint32_t abstract_levels)
+bool Solver::litRedundant(Lit p, uint32_t abstract_levels)
 {
     analyze_stack.clear(); analyze_stack.push(p);
     int top = analyze_toclear.size();
-    int max_level = 0;
     while (analyze_stack.size() > 0){
         CRef c_reason = reason(var(analyze_stack.last()));
         assert(c_reason != CRef_Undef);
         Clause& c = ca[c_reason];
         int c_size = c.size();
         analyze_stack.pop();
-        if (c.level() > max_level) {
-            max_level = c.level();
-        }
 
         // Since calling reason might relocate to resize, c is not necesserily the right reference, we must
         // use the allocator each time
@@ -621,13 +691,13 @@ int Solver::litRedundant(Lit p, uint32_t abstract_levels)
                     for (int j = top; j < analyze_toclear.size(); j++)
                         seen[var(analyze_toclear[j])] = 0;
                     analyze_toclear.shrink(analyze_toclear.size() - top);
-                    return -1;
+                    return false;
                 }
             }
         }
     }
 
-    return max_level;
+    return true;
 }
 
 
@@ -674,18 +744,14 @@ void Solver::uncheckedEnqueue(Lit p, CRef from)
 {
     Debug("minisat") << "unchecked enqueue of " << p << " (" << trail_index(var(p)) << ") trail size is " << trail.size() << " cap is " << trail.capacity() << std::endl;
     assert(value(p) == l_Undef);
+    assert(var(p) < nVars());
     assigns[var(p)] = lbool(!sign(p));
-    vardata[var(p)] = mkVarData(from, decisionLevel(), intro_level(var(p)), trail.size());
+    vardata[var(p)] = VarData(from, decisionLevel(), assertionLevel, intro_level(var(p)), trail.size());
     trail.push_(p);
     if (theory[var(p)]) {
       // Enqueue to the theory
       proxy->enqueueTheoryLiteral(MinisatSatSolver::toSatLiteral(p));
     }
-    if (from == CRef_Undef) {
-      if (assertionLevel > 0) {
-        trail_user.push(p);
-      }
-    }
 }
 
 
@@ -943,26 +1009,12 @@ void Solver::removeClausesAboveLevel(vec<CRef>& cs, int level)
     for (i = j = 0; i < cs.size(); i++){
         Clause& c = ca[cs[i]];
         if (c.level() > level) {
-            if(Debug.isOn("minisat")) {
-              Debug("minisat") << "removeClausesAboveLevel(" << level << "): removing level-" << c.level() << " clause: " << c << ":";
-              for(int i = 0; i < c.size(); ++i) {
-                Debug("minisat") << " " << c[i];
-              }
-              Debug("minisat") << std::endl;
-            }
-            removeClause(cs[i]);
+          assert(!locked(c));
+          removeClause(cs[i]);
         } else {
-            if(Debug.isOn("minisat")) {
-              Debug("minisat") << "removeClausesAboveLevel(" << level << "): leaving level-" << c.level() << " clause: " << c << ":";
-              for(int i = 0; i < c.size(); ++i) {
-                Debug("minisat") << " " << c[i];
-              }
-              Debug("minisat") << std::endl;
-            }
             cs[j++] = cs[i];
         }
     }
-    Debug("minisat") << "removeClausesAboveLevel(" << level << "): removed " << i - j << " clauses in all, left " << j << std::endl;
     cs.shrink(i - j);
 }
 
@@ -1408,10 +1460,8 @@ void Solver::push()
   popTrail();
   ++assertionLevel;
   Debug("minisat") << "in user push, increasing assertion level to " << assertionLevel << std::endl;
-  trail_user.push(lit_Undef);
   trail_ok.push(ok);
-  trail_user_lim.push(trail.size());
-  assert(trail_user_lim.size() == assertionLevel);
+  assigns_lim.push(assigns.size());
 
   context->push(); // SAT context for CVC4
 
@@ -1422,83 +1472,44 @@ void Solver::pop()
 {
   assert(enable_incremental);
 
-  Debug("minisat") << "MINISAT POP at level " << decisionLevel() << " (context " << context->getLevel() << "), popping trail..." << std::endl;
+  // Pop the trail to 0 level
   popTrail();
-  Debug("minisat") << "MINISAT POP now at   " << decisionLevel() << " (context " << context->getLevel() << ")" << std::endl;
   assert(decisionLevel() == 0);
-  assert(trail_user_lim.size() == assertionLevel);
 
+  // Pop the trail below the user level
   --assertionLevel;
-
-  Debug("minisat") << "MINISAT POP assertionLevel is now down to " << assertionLevel << ", trail.size is " << trail.size() << ", need to get down to " << trail_user_lim.last() << std::endl;
-  Debug("minisat") << "in user pop, reducing assertion level to " << assertionLevel << " and removing clauses above this from db" << std::endl;
-
-  // Remove all the clauses asserted (and implied) above the new base level
-  removeClausesAboveLevel(clauses_removable, assertionLevel);
-  removeClausesAboveLevel(clauses_persistent, assertionLevel);
-
-  Debug("minisat") << "in user pop, at " << trail_lim.size() << " : " << assertionLevel << std::endl;
-
-  int downto = trail_user_lim.last();
-  while(downto < trail.size()) {
+  while (true) {
     Debug("minisat") << "== unassigning " << trail.last() << std::endl;
     Var      x  = var(trail.last());
-    assigns [x] = l_Undef;
-    vardata[x].trail_index = -1;
-    if(phase_saving >= 1 && (polarity[x] & 0x2) == 0)
-      polarity[x] = sign(trail.last());
-    if(intro_level(x) != -1) {// might be unregistered
+    if (user_level(x) > assertionLevel) {
+      assigns [x] = l_Undef;
+      vardata[x] = VarData(CRef_Undef, -1, -1, intro_level(x), -1);
+      if(phase_saving >= 1 && (polarity[x] & 0x2) == 0)
+        polarity[x] = sign(trail.last());
       insertVarOrder(x);
+      trail.pop();
+    } else {
+      break;
     }
-    trail.pop();
   }
+  // The head should be at the trail top
   qhead = trail.size();
-  Debug("minisat") << "MINISAT POP assertionLevel is now down to " << assertionLevel << ", trail.size is " << trail.size() << ", should be at " << trail_user_lim.last() << std::endl;
-  assert(trail_user_lim.last() == qhead);
-  trail_user_lim.pop();
-
-  // Unset any units learned or added at this level
-  Debug("minisat") << "in user pop, unsetting level units for level " << assertionLevel << std::endl;
-  while(trail_user.last() != lit_Undef) {
-    Lit l = trail_user.last();
-    Debug("minisat") << "== unassigning " << l << std::endl;
-    Var      x  = var(l);
-    assigns [x] = l_Undef;
-    vardata[x].trail_index = -1;
-    if (phase_saving >= 1 && (polarity[x] & 0x2) == 0)
-      polarity[x] = sign(l);
-    if(intro_level(x) != -1) {// might be unregistered
-      insertVarOrder(x);
-    }
-    trail_user.pop();
-  }
-  trail_user.pop();
-  ok = trail_ok.last();
-  trail_ok.pop();
-  Debug("minisat") << "in user pop, done unsetting level units" << std::endl;
 
-  Debug("minisat") << "about to removeClausesAboveLevel(" << assertionLevel << ") in CNF" << std::endl;
+  // Remove the clause
+  removeClausesAboveLevel(clauses_persistent, assertionLevel);
+  removeClausesAboveLevel(clauses_removable, assertionLevel);
 
+  // Pop the SAT context to notify everyone
   context->pop(); // SAT context for CVC4
 
-  // Notify the cnf
-  proxy->removeClausesAboveLevel(assertionLevel);
-}
-
-void Solver::unregisterVar(Lit lit) {
-  Debug("minisat") << "unregisterVar " << lit << std::endl;
-  Var v = var(lit);
-  vardata[v].intro_level = -1;
-  setDecisionVar(v, false);
-}
+  // Pop the created variables
+  resizeVars(assigns_lim.last());
+  assigns_lim.pop();
+  variables_to_register.clear();
 
-void Solver::renewVar(Lit lit, int level) {
-  Debug("minisat") << "renewVar " << lit << " " << level << std::endl;
-  Var v = var(lit);
-  vardata[v].intro_level = (level == -1 ? getAssertionLevel() : level);
-  setDecisionVar(v, true);
-  // explicitly not resetting polarity phase-locking here
+  // Pop the OK
+  ok = trail_ok.last();
+  trail_ok.pop();
 }
 
 bool Solver::flipDecision() {
@@ -1599,7 +1610,16 @@ CRef Solver::updateLemmas() {
     // Attach it if non-unit
     CRef lemma_ref = CRef_Undef;
     if (lemma.size() > 1) {
-      lemma_ref = ca.alloc(assertionLevel, lemma, removable);
+      // If the lemmas is removable, we can compute its level by the level
+      int clauseLevel = assertionLevel;
+      if (removable) {
+        clauseLevel = 0;
+        for (int i = 0; i < lemma.size(); ++ i) {
+          clauseLevel = std::max(clauseLevel, intro_level(var(lemma[i])));
+        }
+      }
+
+      lemma_ref = ca.alloc(clauseLevel, lemma, removable);
       if (removable) {
         clauses_removable.push(lemma_ref);
       } else {
index fdc9a98b74cb7d94cdc30f1b84acd208d65aa827..0dad68a0891afc860b08e28da1d13d08b30562d1 100644 (file)
@@ -105,6 +105,9 @@ protected:
   /** Variables to re-register with theory solvers on backtracks */
   vec<VarIntroInfo> variables_to_register;
 
+  /** Keep only newSize variables */
+  void resizeVars(int newSize);
+
 public:
 
     // Constructor/Destructor:
@@ -151,9 +154,6 @@ public:
     void          push                     ();
     void          pop                      ();
 
-    void unregisterVar(Lit lit); // Unregister the literal (set assertion level to -1)
-    void renewVar(Lit lit, int level = -1); // Register the literal (set assertion level to the given level, or current level if -1)
-
     bool    addClause (const vec<Lit>& ps, bool removable);                     // Add a clause to the solver.
     bool    addEmptyClause(bool removable);                                     // Add the empty clause, making the solver contradictory.
     bool    addClause (Lit p, bool removable);                                  // Add a unit clause to the solver.
@@ -258,8 +258,26 @@ protected:
 
     // Helper structures:
     //
-    struct VarData { CRef reason; int level; int intro_level; int trail_index; };
-    static inline VarData mkVarData(CRef cr, int l, int intro_l, int trail_i){ VarData d = {cr, l, intro_l, trail_i}; return d; }
+    struct VarData {
+      // Reason for the literal being in the trail
+      CRef reason;
+      // Sat level when the literal was added to the trail
+      int level;
+      // User level when the literal was added to the trail
+      int user_level;
+      // Use level at which this literal was introduced
+      int intro_level;
+      // The index in the trail
+      int trail_index;
+
+      VarData(CRef reason, int level, int user_level, int intro_level, int trail_index)
+      : reason(reason)
+      , level(level)
+      , user_level(user_level)
+      , intro_level(intro_level)
+      , trail_index(trail_index)
+      {}
+    };
 
     struct Watcher {
         CRef cref;
@@ -293,13 +311,12 @@ protected:
     OccLists<Lit, vec<Watcher>, WatcherDeleted>
                         watches;            // 'watches[lit]' is a list of constraints watching 'lit' (will go there if literal becomes true).
     vec<lbool>          assigns;            // The current assignments.
+    vec<int>            assigns_lim;        // The size by levels of the current assignment
     vec<char>           polarity;           // The preferred polarity of each variable (bit 0) and whether it's locked (bit 1).
     vec<char>           decision;           // Declares if a variable is eligible for selection in the decision heuristic.
     vec<int>            flipped;            // Which trail_lim decisions have been flipped in this context.
     vec<Lit>            trail;              // Assignment stack; stores all assigments made in the order they were made.
     vec<int>            trail_lim;          // Separator indices for different decision levels in 'trail'.
-    vec<Lit>            trail_user;         // Stack of assignments to UNdo on user pop.
-    vec<int>            trail_user_lim;     // Separator indices for different user levels in 'trail'.
     vec<bool>           trail_ok;           // Stack of "whether we're in conflict" flags.
     vec<VarData>        vardata;            // Stores reason and level for each variable.
     int                 qhead;              // Head of queue (as index into the trail -- no more explicit propagation queue in MiniSat).
@@ -361,7 +378,7 @@ protected:
     void     popTrail         ();                                                      // Backtrack the trail to the previous push position
     int      analyze          (CRef confl, vec<Lit>& out_learnt, int& out_btlevel);    // (bt = backtrack)
     void     analyzeFinal     (Lit p, vec<Lit>& out_conflict);                         // COULD THIS BE IMPLEMENTED BY THE ORDINARIY "analyze" BY SOME REASONABLE GENERALIZATION?
-    int      litRedundant     (Lit p, uint32_t abstract_levels);                       // (helper method for 'analyze()') - returns the maximal level of the clauses proving redundancy of p
+    bool     litRedundant     (Lit p, uint32_t abstract_levels);                       // (helper method for 'analyze()') - true if p is redundant
     lbool    search           (int nof_conflicts);                                     // Search for a given number of conflicts.
     lbool    solve_           ();                                                      // Main solve method (assumptions given in 'assumptions').
     void     reduceDB         ();                                                      // Reduce the set of learnt clauses.
@@ -396,7 +413,8 @@ protected:
     bool     isPropagatedBy   (Var x, const Clause& c) const; // Is the value of the variable propagated by the clause Clause C
 
     int      level            (Var x) const;
-    int      intro_level      (Var x) const; // Level at which this variable was introduced
+    int      user_level       (Var x) const; // User level at which this variable was asserted
+    int      intro_level      (Var x) const; // User level at which this variable was created
     int      trail_index      (Var x) const; // Index in the trail
     double   progressEstimate ()      const; // DELETE THIS ?? IT'S NOT VERY USEFUL ...
     bool     withinBudget     ()      const;
@@ -429,13 +447,16 @@ inline bool Solver::isPropagatedBy(Var x, const Clause& c) const { return vardat
 
 inline bool Solver::isDecision(Var x) const { Debug("minisat") << "var " << x << " is a decision iff " << (vardata[x].reason == CRef_Undef) << " && " << level(x) << " > 0" << std::endl; return vardata[x].reason == CRef_Undef && level(x) > 0; }
 
-inline int  Solver::level (Var x) const { return vardata[x].level; }
+inline int  Solver::level (Var x) const { assert(x < vardata.size()); return vardata[x].level; }
+
+inline int  Solver::user_level(Var x) const { assert(x < vardata.size()); return vardata[x].user_level; }
 
-inline int  Solver::intro_level(Var x) const { return vardata[x].intro_level; }
+inline int  Solver::intro_level(Var x) const { assert(x < vardata.size()); return vardata[x].intro_level; }
 
-inline int  Solver::trail_index(Var x) const { return vardata[x].trail_index; }
+inline int  Solver::trail_index(Var x) const { assert(x < vardata.size()); return vardata[x].trail_index; }
 
 inline void Solver::insertVarOrder(Var x) {
+    assert(x < vardata.size());
     if (!order_heap.inHeap(x) && decision[x]) order_heap.insert(x); }
 
 inline void Solver::varDecayActivity() { var_inc *= (1 / var_decay); }
@@ -476,8 +497,8 @@ inline void     Solver::newDecisionLevel()                      { trail_lim.push
 
 inline int      Solver::decisionLevel ()      const   { return trail_lim.size(); }
 inline uint32_t Solver::abstractLevel (Var x) const   { return 1 << (level(x) & 31); }
-inline lbool    Solver::value         (Var x) const   { return assigns[x]; }
-inline lbool    Solver::value         (Lit p) const   { return assigns[var(p)] ^ sign(p); }
+inline lbool    Solver::value         (Var x) const   { assert(x < nVars()); return assigns[x]; }
+inline lbool    Solver::value         (Lit p) const   { assert(var(p) < nVars()); return assigns[var(p)] ^ sign(p); }
 inline lbool    Solver::modelValue    (Var x) const   { return model[x]; }
 inline lbool    Solver::modelValue    (Lit p) const   { return model[var(p)] ^ sign(p); }
 inline int      Solver::nAssigns      ()      const   { return trail.size(); }
index 9cd0d884856ae6a9ccbcc800f29b68afa081c8fd..fac4c92c1a56526f0522911dd22b02da2a3da4dd 100644 (file)
@@ -340,6 +340,7 @@ class OccLists
     OccLists(const Deleted& d) : deleted(d) {}
     
     void  init      (const Idx& idx){ occs.growTo(toInt(idx)+1); dirty.growTo(toInt(idx)+1, 0); }
+    void  resizeTo  (const Idx& idx){ int shrinkSize = occs.size() - (toInt(idx) + 1); occs.shrink(shrinkSize); }
     // Vec&  operator[](const Idx& idx){ return occs[toInt(idx)]; }
     Vec&  operator[](const Idx& idx){ return occs[toInt(idx)]; }
     Vec&  lookup    (const Idx& idx){ if (dirty[toInt(idx)]) clean(idx); return occs[toInt(idx)]; }
index e550d5ef263d1a91d778831c5300abae6cd7f95c..886dc0f721674c257d8b4d9ae8045d3ff0c9573c 100644 (file)
@@ -212,14 +212,6 @@ void MinisatSatSolver::pop(){
   d_minisat->pop();
 }
 
-void MinisatSatSolver::unregisterVar(SatLiteral lit) {
-  d_minisat->unregisterVar(toMinisatLit(lit));
-}
-
-void MinisatSatSolver::renewVar(SatLiteral lit, int level) {
-  d_minisat->renewVar(toMinisatLit(lit), level);
-}
-
 /// Statistics for MinisatSatSolver
 
 MinisatSatSolver::Statistics::Statistics() :
index f87e4ae53d8601f0e05355f2ddc60a0ac79efa30..723f257f7f8c51afe7a98758473bbcceaf36e773 100644 (file)
@@ -80,10 +80,6 @@ public:
 
   void pop();
 
-  void unregisterVar(SatLiteral lit);
-
-  void renewVar(SatLiteral lit, int level = -1);
-
   void requirePhase(SatLiteral lit);
 
   bool flipDecision();
index bf04cec8d7a119a08423eee4e857568020e2b176..ed2dc04b9b9bfd3bc406f61c3a945c15b7795740 100644 (file)
@@ -98,10 +98,9 @@ SimpSolver::~SimpSolver()
 Var SimpSolver::newVar(bool sign, bool dvar, bool theoryAtom) {
     Var v = Solver::newVar(sign, dvar,theoryAtom);
 
-    frozen    .push((char)theoryAtom);
-    eliminated.push((char)false);
-
     if (use_simplification){
+        frozen    .push((char)theoryAtom);
+        eliminated.push((char)false);
         n_occ     .push(0);
         n_occ     .push(0);
         occurs    .init(v);
@@ -159,8 +158,10 @@ lbool SimpSolver::solve_(bool do_simp, bool turn_off_simp)
 bool SimpSolver::addClause_(vec<Lit>& ps, bool removable)
 {
 #ifndef NDEBUG
-    for (int i = 0; i < ps.size(); i++)
+    if (use_simplification) {
+      for (int i = 0; i < ps.size(); i++)
         assert(!isEliminated(var(ps[i])));
+    }
 #endif
 
     int nclauses = clauses_persistent.size();
index 6e51b55f31ee2d93e98b3b96e6179d00f41d73f6..1bd5dc8b726318e5b287c5001e2f7d1855ed7d21 100644 (file)
@@ -130,22 +130,22 @@ bool PropEngine::flipDecision() {
 }
 
 bool PropEngine::isDecision(Node lit) const {
-  Assert(isTranslatedSatLiteral(lit));
+  Assert(isSatLiteral(lit));
   return d_satSolver->isDecision(d_cnfStream->getLiteral(lit).getSatVariable());
 }
 
 void PropEngine::printSatisfyingAssignment(){
-  const CnfStream::TranslationCache& transCache =
+  const CnfStream::NodeToLiteralMap& transCache =
     d_cnfStream->getTranslationCache();
   Debug("prop-value") << "Literal | Value | Expr" << endl
                       << "----------------------------------------"
                       << "-----------------" << endl;
-  for(CnfStream::TranslationCache::const_iterator i = transCache.begin(),
+  for(CnfStream::NodeToLiteralMap::const_iterator i = transCache.begin(),
       end = transCache.end();
       i != end;
       ++i) {
-    pair<Node, CnfStream::TranslationInfo> curr = *i;
-    SatLiteral l = curr.second.literal;
+    pair<Node, SatLiteral> curr = *i;
+    SatLiteral l = curr.second;
     if(!l.isNegated()) {
       Node n = curr.first;
       SatValue value = d_satSolver->modelValue(l);
@@ -220,10 +220,6 @@ bool PropEngine::isSatLiteral(TNode node) const {
   return d_cnfStream->hasLiteral(node);
 }
 
-bool PropEngine::isTranslatedSatLiteral(TNode node) const {
-  return d_cnfStream->isTranslated(node);
-}
-
 bool PropEngine::hasValue(TNode node, bool& value) const {
   Assert(node.getType().isBoolean());
   Assert(d_cnfStream->hasLiteral(node));
index f52118ac422d132c891205daa2421ca3fc13ad2f..9540d39214082dae8a18c2a006f7d35fa003532e 100644 (file)
@@ -245,13 +245,6 @@ public:
    */
   bool isSatLiteral(TNode node) const;
 
-  /**
-   * Return true if node has an associated SAT literal that is
-   * currently translated (i.e., it's relevant to the current
-   * user push/pop level).
-   */
-  bool isTranslatedSatLiteral(TNode node) const;
-
   /**
    * Check if the node has a value and return it if yes.
    */
index 4dadcbf38518c06ad0361ec75c891242d264a774..e5d876b487f27ef24b00c44e80462584a1ee10ae 100644 (file)
@@ -64,10 +64,7 @@ public:
   /** Call modelValue() when the search is done.*/
   virtual SatValue modelValue(SatLiteral l) = 0;
 
-  virtual void unregisterVar(SatLiteral lit) = 0;
-
-  virtual void renewVar(SatLiteral lit, int level = -1) = 0;
-
+  /** Get the current assertion level */
   virtual unsigned getAssertionLevel() const = 0;
 
 };/* class SatSolver */
index 5d9ce2206e60a44ad617d27e84fdb9622bd4d718..6246ef7e5e8c714dc365c15de26612a080c6ac1c 100644 (file)
@@ -101,10 +101,6 @@ bool TheoryProxy::theoryNeedCheck() const {
   return d_theoryEngine->needCheck();
 }
 
-void TheoryProxy::removeClausesAboveLevel(int level) {
-  d_cnfStream->removeClausesAboveLevel(level);
-}
-
 TNode TheoryProxy::getNode(SatLiteral lit) {
   return d_cnfStream->getNode(lit);
 }
index a227db5b439dde69e5085504f57246b0ae0c6701..74ee790d8e3ab34374365624ebf5f16cafb29d76 100644 (file)
@@ -97,17 +97,11 @@ public:
 
   bool theoryNeedCheck() const;
 
-  void removeClausesAboveLevel(int level);
-
   /**
    * Notifies of a new variable at a decision level.
    */
   void variableNotify(SatVariable var);
 
-  void unregisterVar(SatLiteral lit);
-
-  void renewVar(SatLiteral lit, int level = -1);
-
   TNode getNode(SatLiteral lit);
 
   void notifyRestart();
index aca81e1763eeb7fd7d3fa46f680bf2ec9b1cd722..91482526a0ec98d115661526b669d4d6619f5b36 100644 (file)
@@ -100,7 +100,7 @@ void Bitblaster::bbAtom(TNode node) {
   Node atom_definition = mkNode(kind::IFF, node, atom_bb);
 
   if (!options::bitvectorEagerBitblast()) {
-    d_cnfStream->convertAndAssert(atom_definition, true, false);
+    d_cnfStream->convertAndAssert(atom_definition, false, false);
     d_bitblastedAtoms.insert(node);
   } else {
     d_bvOutput->lemma(atom_definition, false);
index e76e2ace91ae41b52b07720adbdf829435fe3410..f90bee19dbc7c01bbf16b02c779e291d16d17b66 100644 (file)
@@ -31,7 +31,7 @@ namespace CVC4 {
 
 LogicInfo::LogicInfo() :
   d_logicString(""),
-  d_theories(),
+  d_theories(THEORY_LAST, false),
   d_sharingTheories(0),
   d_integers(true),
   d_reals(true),
@@ -40,14 +40,13 @@ LogicInfo::LogicInfo() :
   d_locked(false) {
 
   for(TheoryId id = THEORY_FIRST; id < THEORY_LAST; ++id) {
-    d_theories[id] = false;// ensure it's cleared
     enableTheory(id);
   }
 }
 
 LogicInfo::LogicInfo(std::string logicString) throw(IllegalArgumentException) :
   d_logicString(""),
-  d_theories(),
+  d_theories(THEORY_LAST, false),
   d_sharingTheories(0),
   d_integers(false),
   d_reals(false),
@@ -61,7 +60,7 @@ LogicInfo::LogicInfo(std::string logicString) throw(IllegalArgumentException) :
 
 LogicInfo::LogicInfo(const char* logicString) throw(IllegalArgumentException) :
   d_logicString(""),
-  d_theories(),
+  d_theories(THEORY_LAST, false),
   d_sharingTheories(0),
   d_integers(false),
   d_reals(false),
index e2d8f3da6b2a7b2f2d74cbe7f5bd15c196396e54..fd81ea629f7fb33135868957420ecbb84b013bac 100644 (file)
@@ -22,6 +22,7 @@
 #define __CVC4__LOGIC_INFO_H
 
 #include <string>
+#include <vector>
 #include "expr/kind.h"
 
 namespace CVC4 {
@@ -43,7 +44,7 @@ namespace CVC4 {
  */
 class CVC4_PUBLIC LogicInfo {
   mutable std::string d_logicString; /**< an SMT-LIB-like logic string */
-  bool d_theories[theory::THEORY_LAST]; /**< set of active theories */
+  std::vector<bool> d_theories; /**< set of active theories */
   size_t d_sharingTheories; /**< count of theories that need sharing */
 
   // for arithmetic
index cd3b34879a7f15329f05d8678e9810516d516763..60d79e90e380b177a6f6eddeda9cfc35944979dd 100644 (file)
@@ -341,7 +341,7 @@ void TheoryEngine::check(Theory::Effort effort) {
     Debug("theory") << "TheoryEngine::check(" << effort << "): done, we are " << (d_inConflict ? "unsat" : "sat") << (d_lemmasAdded ? " with new lemmas" : " with no new lemmas") << std::endl;
 
   } catch(const theory::Interrupted&) {
-    Trace("theory") << "TheoryEngine::check() => conflict" << endl;
+    Trace("theory") << "TheoryEngine::check() => interrupted" << endl;
   }
 
   // If fulleffort, check all theories
@@ -519,7 +519,7 @@ bool TheoryEngine::properConflict(TNode conflict) const {
 }
 
 bool TheoryEngine::properPropagation(TNode lit) const {
-  if(!getPropEngine()->isTranslatedSatLiteral(lit)) {
+  if(!getPropEngine()->isSatLiteral(lit)) {
     return false;
   }
   bool b;
index d1028aec06c024412c8395ea5ba8a5a1ed1d4958..5123eca449c393a5edf043b155ab936127a1a0f5 100644 (file)
@@ -1,4 +1,4 @@
-SUBDIRS = . 
+SUBDIRS = boolean arith 
 
 BINARY = cvc4
 LOG_COMPILER = @srcdir@/../../run_regression
diff --git a/test/regress/regress0/push-pop/arith/Makefile b/test/regress/regress0/push-pop/arith/Makefile
new file mode 100644 (file)
index 0000000..d0abd99
--- /dev/null
@@ -0,0 +1,8 @@
+topdir = ../../../../..
+srcdir = test/regress/regress0/push-pop/arith
+
+include $(topdir)/Makefile.subdir
+
+# synonyms for "check"
+.PHONY: test
+test: check
diff --git a/test/regress/regress0/push-pop/arith/Makefile.am b/test/regress/regress0/push-pop/arith/Makefile.am
new file mode 100644 (file)
index 0000000..37a6e6c
--- /dev/null
@@ -0,0 +1,58 @@
+SUBDIRS = . 
+
+BINARY = cvc4
+LOG_COMPILER = @srcdir@/../../../run_regression
+AM_LOG_FLAGS = $(RUN_REGRESSION_ARGS) @top_builddir@/src/main/$(BINARY)
+
+if AUTOMAKE_1_11
+# old-style (pre-automake 1.12) test harness
+TESTS_ENVIRONMENT = \
+       $(TESTS_ENVIRONMENT) $(LOG_COMPILER) \
+       $(AM_LOG_FLAGS) $(LOG_FLAGS)
+endif
+
+MAKEFLAGS = -k
+
+# These are run for all build profiles.
+# If a test shouldn't be run in e.g. competition mode,
+# put it below in "TESTS +="
+
+# Regression tests for SMT inputs
+CVC_TESTS =
+
+SMT2_TESTS = \
+       fuzz_3_10.smt2 \
+       fuzz_3_11.smt2 \
+       fuzz_3_12.smt2 \
+       fuzz_3_13.smt2 \
+       fuzz_3_14.smt2 \
+       fuzz_3_15.smt2 \
+       fuzz_3_1.smt2 \
+       fuzz_3_2.smt2 \
+       fuzz_3_3.smt2 \
+       fuzz_3_4.smt2 \
+       fuzz_3_5.smt2 \
+       fuzz_3_6.smt2 \
+       fuzz_3_7.smt2 \
+       fuzz_3_8.smt2 \
+       fuzz_3_9.smt2 \
+       fuzz_5_1.smt2 \
+       fuzz_5_2.smt2 \
+       fuzz_5_3.smt2 \
+       fuzz_5_4.smt2 \
+       fuzz_5_5.smt2 \
+       fuzz_5_6.smt2
+
+BUG_TESTS = 
+
+TESTS =        $(SMT_TESTS) $(SMT2_TESTS) $(CVC_TESTS) $(BUG_TESTS)
+
+EXTRA_DIST = $(TESTS) 
+
+# synonyms for "check" in this directory
+.PHONY: regress regress0 test
+regress regress0 test: check
+
+# do nothing in this subdir
+.PHONY: regress1 regress2 regress3
+regress1 regress2 regress3:
diff --git a/test/regress/regress0/push-pop/arith/fuzz_3_1.smt2 b/test/regress/regress0/push-pop/arith/fuzz_3_1.smt2
new file mode 100644 (file)
index 0000000..7339935
--- /dev/null
@@ -0,0 +1,32 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LRA)
+(declare-fun x0 () Real)
+(declare-fun x1 () Real)
+(declare-fun x2 () Real)
+(assert (or (not (<= (+ (* (- 24) x0 ) (* (- 15) x2 ) (* (- 18) x2 ) ) 2)) (not (< (+ (* (- 21) x2 ) (* 6 x2 ) ) (- 11))) (> (+ (* (- 3) x0 ) (* 8 x1 ) ) 11) ))
+(assert (not (> (+ (* (- 4) x2 ) (* (- 23) x2 ) ) (- 26))) )
+(assert (or (not (< (+ (* 35 x2 ) (* 40 x0 ) (* 38 x0 ) ) (- 4))) (not (<= (+ (* 46 x0 ) (* (- 16) x1 ) ) (- 44))) (> (+ (* 33 x2 ) (* (- 47) x2 ) (* (- 38) x0 ) ) 32) ))
+(assert (or (<= (+ (* 49 x2 ) (* 42 x0 ) (* 36 x0 ) (* (- 15) x0 ) ) 41) (not (= (+ (* 5 x2 ) (* (- 2) x0 ) ) (- 23))) ))
+(assert (or (< (+ (* 9 x1 ) (* (- 16) x1 ) (* 47 x2 ) (* 2 x0 ) ) (- 18)) (not (>= (+ (* 43 x0 ) (* (- 24) x1 ) ) (- 22))) (not (< (+ (* (- 37) x1 ) (* (- 27) x2 ) (* (- 40) x0 ) (* (- 34) x0 ) ) (- 42))) ))
+(assert (or (not (<= (+ (* (- 26) x1 ) (* (- 20) x0 ) ) 26)) (<= (+ (* 24 x0 ) (* (- 40) x2 ) ) (- 50)) ))
+(check-sat)
+(push 1)
+(assert (or (< (+ (* (- 23) x0 ) (* 25 x2 ) ) 47) (not (>= (+ (* (- 3) x0 ) (* 20 x1 ) (* (- 22) x0 ) ) 4)) (<= (+ (* (- 14) x0 ) (* 32 x2 ) (* 2 x0 ) (* 13 x1 ) ) (- 3)) ))
+(assert (or (>= (+ (* (- 6) x0 ) (* (- 22) x2 ) ) (- 41)) (not (< (+ (* 26 x0 ) (* 15 x1 ) ) 6)) ))
+(assert (<= (+ (* (- 14) x2 ) (* (- 39) x0 ) (* (- 31) x1 ) ) 24) )
+(assert (or (> (+ (* (- 27) x2 ) (* (- 35) x1 ) ) (- 46)) (< (+ (* (- 41) x0 ) (* 46 x1 ) (* 16 x2 ) (* (- 31) x2 ) ) 29) (not (<= (+ (* (- 44) x2 ) (* 46 x0 ) (* (- 33) x1 ) ) (- 14))) ))
+(check-sat)
+(assert (not (>= (+ (* 23 x2 ) (* 5 x1 ) ) (- 16))) )
+(assert (or (>= (+ (* (- 3) x0 ) (* 3 x1 ) (* 44 x0 ) ) (- 39)) (> (+ (* 28 x1 ) (* 26 x1 ) (* (- 22) x2 ) (* (- 36) x2 ) ) 27) (not (= (+ (* 16 x0 ) (* 41 x2 ) (* 16 x2 ) ) (- 47))) ))
+(check-sat)
+(pop 1)
+(assert (not (<= (+ (* (- 28) x1 ) (* (- 11) x0 ) (* 9 x0 ) (* (- 4) x0 ) ) 23)) )
+(assert (not (< (+ (* 16 x1 ) (* (- 18) x2 ) ) 34)) )
+(assert (or (> (+ (* (- 41) x0 ) (* (- 12) x2 ) ) 11) (>= (+ (* 11 x1 ) (* 26 x0 ) (* 11 x1 ) (* 43 x1 ) ) 8) ))
+(assert (or (> (+ (* 17 x2 ) (* (- 35) x2 ) ) 49) (not (= (+ (* 2 x0 ) (* 32 x1 ) (* 40 x1 ) (* 1 x0 ) ) (- 6))) (> (+ (* (- 18) x1 ) (* (- 40) x0 ) (* (- 40) x0 ) ) (- 36)) ))
+(check-sat)
diff --git a/test/regress/regress0/push-pop/arith/fuzz_3_10.smt2 b/test/regress/regress0/push-pop/arith/fuzz_3_10.smt2
new file mode 100644 (file)
index 0000000..cdd6a6b
--- /dev/null
@@ -0,0 +1,23 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LRA)
+(declare-fun x0 () Real)
+(declare-fun x1 () Real)
+(declare-fun x2 () Real)
+(assert (or (not (<= (+ (* 30 x2 ) (* 34 x2 ) (* 16 x2 ) ) 30)) (not (>= (+ (* (- 7) x1 ) (* 5 x1 ) ) (- 36))) ))
+(assert (= (+ (* (- 33) x2 ) (* (- 46) x0 ) (* (- 32) x1 ) ) (- 30)) )
+(assert (or (>= (+ (* (- 35) x1 ) (* (- 29) x1 ) (* 30 x1 ) (* 20 x1 ) ) 27) (> (+ (* 30 x1 ) (* 33 x0 ) ) 16) (= (+ (* (- 28) x2 ) (* 7 x1 ) (* 8 x0 ) ) 37) ))
+(assert (or (< (+ (* 6 x2 ) (* (- 12) x1 ) ) (- 14)) (not (<= (+ (* (- 23) x1 ) (* 44 x1 ) ) 9)) (not (<= (+ (* (- 18) x2 ) (* 16 x0 ) (* 47 x0 ) ) 25)) ))
+(assert (or (< (+ (* (- 8) x1 ) (* 12 x2 ) (* 23 x1 ) ) (- 50)) (not (> (+ (* 37 x1 ) (* (- 30) x2 ) (* 1 x0 ) (* 13 x1 ) ) (- 22))) ))
+(check-sat)
+(push 1)
+(assert (or (not (= (+ (* (- 3) x0 ) (* (- 49) x1 ) ) 25)) (<= (+ (* 47 x2 ) (* 9 x0 ) ) (- 5)) ))
+(assert (or (not (< (+ (* 34 x0 ) (* 28 x0 ) (* 36 x0 ) (* 1 x0 ) ) (- 9))) (>= (+ (* (- 4) x2 ) (* 15 x1 ) (* (- 35) x0 ) (* (- 2) x1 ) ) (- 20)) ))
+(assert (not (<= (+ (* (- 4) x1 ) (* 22 x1 ) (* 22 x2 ) (* (- 33) x0 ) ) 12)) )
+(check-sat)
+(pop 1)
+(assert (<= (+ (* 36 x0 ) (* (- 25) x2 ) (* 48 x2 ) (* (- 14) x1 ) ) (- 9)) )
+(check-sat)
diff --git a/test/regress/regress0/push-pop/arith/fuzz_3_11.smt2 b/test/regress/regress0/push-pop/arith/fuzz_3_11.smt2
new file mode 100644 (file)
index 0000000..9078acf
--- /dev/null
@@ -0,0 +1,41 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LRA)
+(declare-fun x0 () Real)
+(declare-fun x1 () Real)
+(declare-fun x2 () Real)
+(assert (or (= (+ (* 25 x1 ) (* (- 35) x1 ) ) 3) (> (+ (* 31 x1 ) (* (- 25) x2 ) (* 24 x1 ) (* (- 37) x2 ) ) 37) ))
+(assert (or (= (+ (* (- 18) x1 ) (* (- 42) x0 ) (* (- 41) x2 ) ) 18) (= (+ (* (- 34) x2 ) (* 14 x0 ) (* 33 x0 ) (* (- 40) x2 ) ) (- 34)) ))
+(assert (or (>= (+ (* (- 45) x1 ) (* (- 21) x1 ) ) 30) (>= (+ (* 6 x2 ) (* (- 32) x0 ) (* (- 38) x0 ) ) 4) ))
+(assert (or (not (< (+ (* (- 39) x2 ) (* (- 47) x2 ) ) 23)) (>= (+ (* 12 x2 ) (* 32 x1 ) (* (- 46) x2 ) ) 13) (not (= (+ (* 48 x2 ) (* 26 x1 ) (* 45 x2 ) ) (- 10))) ))
+(check-sat)
+(push 1)
+(assert (or (not (<= (+ (* (- 34) x2 ) (* (- 24) x1 ) ) 39)) (<= (+ (* 34 x1 ) (* (- 35) x0 ) (* (- 13) x1 ) (* 2 x2 ) ) (- 2)) ))
+(check-sat)
+(push 1)
+(assert (or (not (<= (+ (* (- 12) x0 ) (* 37 x1 ) (* (- 30) x0 ) ) (- 43))) (> (+ (* 28 x0 ) (* (- 49) x1 ) ) (- 22)) ))
+(check-sat)
+(pop 1)
+(assert (or (not (>= (+ (* 49 x1 ) (* (- 19) x2 ) ) (- 4))) (not (< (+ (* (- 50) x2 ) (* (- 18) x1 ) ) (- 11))) (not (< (+ (* 43 x0 ) (* 11 x1 ) (* 26 x0 ) (* (- 46) x2 ) ) (- 11))) ))
+(assert (or (< (+ (* 38 x0 ) (* (- 19) x1 ) ) (- 31)) (= (+ (* (- 15) x0 ) (* 28 x2 ) (* 9 x2 ) ) (- 43)) ))
+(assert (or (>= (+ (* (- 4) x0 ) (* 20 x1 ) (* (- 30) x1 ) (* 17 x0 ) ) (- 13)) (< (+ (* 6 x0 ) (* (- 22) x2 ) (* (- 37) x1 ) (* (- 1) x2 ) ) (- 50)) ))
+(assert (or (not (< (+ (* 33 x1 ) (* (- 30) x2 ) (* (- 18) x1 ) ) (- 32))) (> (+ (* 26 x0 ) (* (- 21) x1 ) ) 46) ))
+(assert (or (not (<= (+ (* 3 x0 ) (* (- 19) x2 ) (* (- 50) x1 ) (* 31 x2 ) ) 23)) (= (+ (* 46 x0 ) (* 47 x1 ) (* (- 38) x2 ) (* 32 x0 ) ) 30) (<= (+ (* (- 44) x1 ) (* 32 x0 ) (* 29 x1 ) ) 19) ))
+(assert (not (= (+ (* (- 21) x1 ) (* (- 4) x0 ) (* 38 x1 ) (* 17 x1 ) ) 35)) )
+(assert (or (<= (+ (* (- 42) x1 ) (* 8 x0 ) (* 37 x1 ) ) (- 33)) (not (> (+ (* 40 x0 ) (* 41 x0 ) (* 4 x1 ) (* (- 17) x2 ) ) 33)) ))
+(assert (or (not (<= (+ (* (- 26) x2 ) (* 25 x0 ) (* 42 x0 ) (* 40 x2 ) ) 2)) (> (+ (* (- 33) x2 ) (* 18 x2 ) ) 47) ))
+(check-sat)
+(push 1)
+(assert (or (not (>= (+ (* 13 x2 ) (* (- 16) x2 ) (* (- 18) x0 ) ) (- 15))) (not (< (+ (* 1 x0 ) (* 0 x2 ) (* (- 3) x2 ) (* 43 x0 ) ) 30)) (not (> (+ (* 10 x2 ) (* 36 x1 ) ) (- 17))) ))
+(assert (or (not (< (+ (* (- 34) x0 ) (* (- 19) x1 ) (* 31 x0 ) (* 11 x1 ) ) 34)) (= (+ (* (- 45) x2 ) (* 48 x2 ) (* (- 43) x1 ) ) (- 44)) (>= (+ (* 16 x2 ) (* 10 x2 ) (* (- 21) x1 ) ) 23) ))
+(check-sat)
+(pop 1)
+(assert (or (< (+ (* 27 x1 ) (* 6 x2 ) ) 13) (not (<= (+ (* 11 x1 ) (* 19 x0 ) (* (- 41) x0 ) (* (- 29) x1 ) ) (- 6))) (not (= (+ (* (- 16) x2 ) (* (- 8) x1 ) ) 2)) ))
+(assert (or (= (+ (* (- 48) x1 ) (* (- 26) x1 ) (* (- 30) x0 ) ) 39) (>= (+ (* 21 x1 ) (* 25 x2 ) (* (- 35) x1 ) ) (- 2)) (= (+ (* (- 4) x1 ) (* 46 x0 ) (* 23 x2 ) ) 38) ))
+(check-sat)
diff --git a/test/regress/regress0/push-pop/arith/fuzz_3_12.smt2 b/test/regress/regress0/push-pop/arith/fuzz_3_12.smt2
new file mode 100644 (file)
index 0000000..f3d6d95
--- /dev/null
@@ -0,0 +1,50 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LRA)
+(declare-fun x0 () Real)
+(declare-fun x1 () Real)
+(declare-fun x2 () Real)
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(assert (or (not (> (+ (* (- 45) x0 ) (* 2 x2 ) (* (- 18) x1 ) (* 12 x2 ) ) (- 39))) (not (< (+ (* 12 x1 ) (* (- 34) x2 ) (* (- 6) x2 ) (* (- 11) x1 ) ) 14)) ))
+(assert (or (<= (+ (* (- 4) x0 ) (* (- 42) x2 ) (* (- 22) x0 ) ) 15) (not (= (+ (* (- 24) x0 ) (* (- 4) x2 ) ) (- 18))) (>= (+ (* 43 x2 ) (* (- 47) x1 ) (* 22 x0 ) (* 4 x1 ) ) (- 33)) ))
+(assert (or (not (<= (+ (* (- 10) x0 ) (* (- 4) x0 ) (* 40 x0 ) ) 47)) (not (= (+ (* 8 x0 ) (* (- 35) x0 ) ) 6)) (not (< (+ (* 13 x1 ) (* (- 1) x2 ) (* 16 x2 ) (* 6 x1 ) ) (- 43))) ))
+(assert (or (<= (+ (* 35 x2 ) (* 39 x0 ) (* 25 x1 ) (* 46 x0 ) ) 9) (= (+ (* (- 40) x2 ) (* (- 2) x2 ) (* 17 x2 ) (* (- 48) x1 ) ) 18) ))
+(assert (or (> (+ (* (- 47) x2 ) (* (- 24) x2 ) (* (- 25) x0 ) ) 13) (= (+ (* (- 41) x2 ) (* (- 3) x0 ) (* (- 6) x2 ) ) (- 13)) ))
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(assert (= (+ (* (- 7) x2 ) (* 6 x0 ) ) (- 1)) )
+(assert (or (> (+ (* 21 x0 ) (* (- 48) x0 ) (* (- 39) x0 ) (* (- 3) x2 ) ) (- 48)) (< (+ (* 12 x2 ) (* 26 x1 ) (* 40 x2 ) ) (- 10)) ))
+(check-sat)
+(push 1)
+(assert (or (= (+ (* (- 23) x2 ) (* 31 x2 ) ) 23) (< (+ (* 26 x0 ) (* 45 x0 ) (* (- 17) x1 ) (* (- 38) x2 ) ) (- 31)) (not (>= (+ (* 21 x1 ) (* (- 12) x2 ) ) (- 38))) ))
+(check-sat)
+(push 1)
+(assert (not (<= (+ (* 26 x1 ) (* (- 40) x1 ) (* 22 x0 ) ) 8)) )
+(assert (or (not (>= (+ (* 20 x0 ) (* 0 x0 ) (* 29 x1 ) ) (- 14))) (< (+ (* 12 x1 ) (* (- 25) x2 ) ) (- 50)) ))
+(check-sat)
+(pop 1)
+(assert (or (= (+ (* 37 x1 ) (* (- 10) x1 ) (* (- 50) x1 ) (* (- 15) x1 ) ) 21) (not (< (+ (* (- 27) x0 ) (* 4 x0 ) ) (- 8))) ))
+(assert (or (= (+ (* 0 x1 ) (* (- 43) x0 ) (* 32 x1 ) (* 16 x0 ) ) 11) (not (> (+ (* 20 x2 ) (* (- 11) x2 ) (* (- 14) x0 ) ) (- 43))) (= (+ (* 30 x1 ) (* (- 18) x2 ) (* 0 x1 ) (* (- 32) x0 ) ) (- 5)) ))
+(assert (> (+ (* 43 x2 ) (* (- 3) x0 ) ) 4) )
+(assert (> (+ (* 44 x0 ) (* 4 x2 ) ) (- 41)) )
+(check-sat)
+(pop 1)
+(assert (or (< (+ (* 17 x0 ) (* 11 x0 ) (* 45 x1 ) ) (- 38)) (> (+ (* 49 x1 ) (* (- 9) x2 ) (* 7 x2 ) (* 3 x2 ) ) (- 20)) (not (< (+ (* 10 x2 ) (* 31 x0 ) ) (- 38))) ))
+(assert (not (>= (+ (* (- 43) x2 ) (* (- 8) x1 ) (* (- 8) x0 ) ) 34)) )
+(assert (not (>= (+ (* (- 42) x1 ) (* (- 40) x0 ) (* (- 22) x0 ) (* (- 37) x2 ) ) 21)) )
+(check-sat)
+(push 1)
diff --git a/test/regress/regress0/push-pop/arith/fuzz_3_13.smt2 b/test/regress/regress0/push-pop/arith/fuzz_3_13.smt2
new file mode 100644 (file)
index 0000000..ff78a7d
--- /dev/null
@@ -0,0 +1,49 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LRA)
+(declare-fun x0 () Real)
+(declare-fun x1 () Real)
+(declare-fun x2 () Real)
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(assert (or (<= (+ (* 49 x2 ) (* 24 x0 ) (* (- 41) x0 ) ) 40) (not (>= (+ (* 9 x2 ) (* 2 x1 ) (* 48 x1 ) (* 6 x2 ) ) 48)) ))
+(assert (or (not (= (+ (* (- 2) x0 ) (* 22 x0 ) (* (- 37) x0 ) ) 29)) (not (= (+ (* (- 27) x1 ) (* (- 47) x0 ) ) 39)) ))
+(assert (or (not (>= (+ (* (- 5) x2 ) (* (- 39) x0 ) (* (- 28) x2 ) ) 47)) (not (= (+ (* (- 25) x2 ) (* (- 1) x0 ) (* (- 26) x2 ) ) (- 35))) (not (<= (+ (* (- 26) x1 ) (* (- 31) x0 ) ) (- 22))) ))
+(assert (or (> (+ (* 27 x1 ) (* (- 38) x0 ) (* 43 x2 ) (* (- 13) x0 ) ) 41) (>= (+ (* 34 x2 ) (* 1 x2 ) (* (- 20) x1 ) (* 21 x1 ) ) (- 40)) ))
+(assert (> (+ (* (- 28) x1 ) (* 48 x1 ) (* (- 24) x1 ) (* 7 x1 ) ) 41) )
+(check-sat)
+(push 1)
+(assert (<= (+ (* (- 42) x1 ) (* 25 x0 ) (* (- 47) x2 ) (* 4 x0 ) ) (- 15)) )
+(check-sat)
+(push 1)
+(assert (or (not (= (+ (* (- 15) x0 ) (* (- 4) x1 ) (* (- 4) x1 ) ) 24)) (not (< (+ (* (- 35) x0 ) (* (- 45) x1 ) (* (- 8) x2 ) (* 19 x2 ) ) 19)) ))
+(assert (or (not (< (+ (* (- 39) x1 ) (* 15 x0 ) (* 37 x0 ) ) (- 7))) (<= (+ (* 24 x0 ) (* 20 x0 ) (* 43 x1 ) ) 13) ))
+(assert (or (< (+ (* 19 x1 ) (* (- 25) x1 ) ) 8) (> (+ (* 44 x0 ) (* (- 41) x0 ) ) 9) (>= (+ (* 20 x0 ) (* 10 x2 ) (* 23 x0 ) ) 32) ))
+(assert (or (>= (+ (* (- 12) x0 ) (* 17 x2 ) ) (- 43)) (not (> (+ (* 25 x1 ) (* (- 38) x2 ) (* (- 10) x0 ) ) 24)) ))
+(assert (or (not (< (+ (* (- 50) x2 ) (* 43 x0 ) (* (- 37) x2 ) (* (- 5) x0 ) ) (- 40))) (= (+ (* (- 16) x2 ) (* 6 x2 ) ) (- 11)) (> (+ (* 48 x0 ) (* 29 x1 ) ) 40) ))
+(check-sat)
+(push 1)
+(assert (or (< (+ (* 1 x1 ) (* (- 24) x0 ) (* (- 2) x1 ) ) 21) (not (> (+ (* (- 42) x0 ) (* 40 x0 ) ) (- 33))) ))
+(assert (or (not (> (+ (* 23 x0 ) (* (- 14) x2 ) (* (- 23) x0 ) (* (- 37) x0 ) ) 25)) (not (<= (+ (* 12 x2 ) (* 24 x1 ) (* (- 25) x0 ) ) 3)) ))
+(check-sat)
+(pop 1)
+(assert (<= (+ (* 19 x0 ) (* 23 x0 ) (* (- 9) x1 ) (* (- 31) x1 ) ) 27) )
+(assert (or (> (+ (* 33 x1 ) (* (- 24) x1 ) (* (- 48) x2 ) (* (- 42) x1 ) ) 30) (not (<= (+ (* (- 36) x1 ) (* 5 x1 ) ) (- 36))) ))
+(assert (or (not (>= (+ (* 20 x1 ) (* 29 x1 ) (* 48 x2 ) ) 40)) (not (> (+ (* (- 26) x2 ) (* 23 x1 ) (* (- 14) x0 ) ) 32)) ))
+(assert (>= (+ (* 31 x2 ) (* 43 x1 ) ) 28) )
+(assert (or (= (+ (* 21 x2 ) (* (- 30) x1 ) (* 28 x1 ) (* 43 x0 ) ) 39) (not (<= (+ (* (- 3) x0 ) (* (- 49) x0 ) (* 9 x0 ) (* 24 x2 ) ) 14)) (not (> (+ (* 35 x1 ) (* (- 6) x2 ) (* 37 x0 ) ) 3)) ))
+(assert (or (not (<= (+ (* 46 x0 ) (* 11 x1 ) ) 40)) (not (= (+ (* 3 x1 ) (* 49 x1 ) ) (- 38))) ))
+(assert (not (<= (+ (* (- 39) x2 ) (* 23 x1 ) ) 5)) )
+(assert (or (not (< (+ (* 44 x1 ) (* (- 23) x1 ) (* 26 x1 ) ) 39)) (> (+ (* 14 x2 ) (* 2 x2 ) (* (- 5) x2 ) ) (- 22)) ))
+(assert (not (<= (+ (* (- 15) x2 ) (* 17 x2 ) (* 19 x1 ) ) 30)) )
+(check-sat)
+(push 1)
diff --git a/test/regress/regress0/push-pop/arith/fuzz_3_14.smt2 b/test/regress/regress0/push-pop/arith/fuzz_3_14.smt2
new file mode 100644 (file)
index 0000000..01191c4
--- /dev/null
@@ -0,0 +1,35 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LRA)
+(declare-fun x0 () Real)
+(declare-fun x1 () Real)
+(declare-fun x2 () Real)
+(assert (or (> (+ (* (- 34) x2 ) (* 33 x1 ) (* (- 6) x1 ) (* (- 44) x1 ) ) (- 40)) (not (= (+ (* 7 x0 ) (* (- 27) x2 ) (* 10 x0 ) (* (- 42) x1 ) ) 7)) ))
+(assert (or (< (+ (* (- 39) x1 ) (* 32 x1 ) (* 42 x1 ) (* 18 x1 ) ) 26) (not (= (+ (* (- 23) x2 ) (* 17 x1 ) ) (- 39))) ))
+(assert (or (>= (+ (* (- 45) x0 ) (* (- 40) x1 ) (* (- 29) x0 ) (* (- 2) x0 ) ) 22) (not (>= (+ (* 11 x1 ) (* (- 42) x1 ) (* (- 21) x0 ) ) 41)) (not (= (+ (* 30 x2 ) (* (- 13) x2 ) (* 21 x1 ) (* (- 16) x2 ) ) 36)) ))
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(assert (or (= (+ (* 20 x2 ) (* 13 x2 ) (* (- 10) x0 ) ) (- 34)) (> (+ (* 23 x1 ) (* 10 x1 ) ) 49) (not (< (+ (* 28 x0 ) (* 22 x2 ) (* 6 x2 ) ) 13)) ))
+(assert (or (not (< (+ (* (- 37) x2 ) (* (- 22) x1 ) (* 6 x1 ) ) 18)) (= (+ (* (- 20) x1 ) (* 32 x2 ) (* 16 x1 ) ) (- 49)) ))
+(assert (or (>= (+ (* (- 2) x2 ) (* (- 23) x1 ) (* 39 x2 ) (* 35 x2 ) ) (- 8)) (not (<= (+ (* (- 19) x2 ) (* (- 43) x2 ) (* 22 x1 ) (* (- 27) x1 ) ) (- 48))) (not (= (+ (* (- 44) x1 ) (* 39 x1 ) (* 28 x2 ) ) (- 35))) ))
+(assert (or (not (<= (+ (* (- 47) x1 ) (* (- 22) x2 ) (* 43 x2 ) ) (- 5))) (not (>= (+ (* (- 45) x2 ) (* (- 35) x2 ) (* 44 x0 ) ) (- 14))) ))
+(assert (or (not (>= (+ (* (- 7) x1 ) (* (- 24) x2 ) (* 49 x1 ) ) (- 27))) (< (+ (* 48 x1 ) (* 19 x0 ) ) (- 6)) (not (< (+ (* 39 x0 ) (* 48 x1 ) ) 7)) ))
+(assert (or (<= (+ (* (- 11) x2 ) (* 29 x0 ) ) (- 16)) (not (< (+ (* 31 x1 ) (* 5 x2 ) ) 44)) (>= (+ (* 0 x1 ) (* 42 x2 ) (* 27 x1 ) ) (- 17)) ))
+(assert (not (< (+ (* 49 x1 ) (* 1 x0 ) ) 40)) )
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(assert (or (not (<= (+ (* 40 x2 ) (* (- 42) x1 ) (* 1 x0 ) (* 0 x0 ) ) 24)) (not (> (+ (* (- 27) x0 ) (* 46 x1 ) (* (- 48) x0 ) (* 29 x0 ) ) 11)) ))
+(check-sat)
+(pop 1)
+(assert (not (< (+ (* 16 x1 ) (* (- 26) x0 ) (* (- 6) x0 ) ) 34)) )
+(check-sat)
diff --git a/test/regress/regress0/push-pop/arith/fuzz_3_15.smt2 b/test/regress/regress0/push-pop/arith/fuzz_3_15.smt2
new file mode 100644 (file)
index 0000000..e4b824d
--- /dev/null
@@ -0,0 +1,36 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LRA)
+(declare-fun x0 () Real)
+(declare-fun x1 () Real)
+(declare-fun x2 () Real)
+(assert (not (<= (+ (* (- 3) x0 ) (* 38 x0 ) (* 34 x1 ) ) (- 5))) )
+(assert (or (not (> (+ (* (- 27) x0 ) (* 26 x1 ) ) (- 50))) (not (>= (+ (* 32 x0 ) (* 10 x0 ) (* (- 43) x1 ) (* (- 39) x0 ) ) (- 36))) ))
+(check-sat)
+(push 1)
+(assert (> (+ (* (- 23) x2 ) (* 49 x2 ) ) 14) )
+(assert (not (= (+ (* 20 x1 ) (* (- 38) x2 ) ) 33)) )
+(assert (not (<= (+ (* 30 x0 ) (* (- 13) x1 ) (* 21 x1 ) ) 20)) )
+(assert (or (<= (+ (* 48 x0 ) (* (- 42) x0 ) (* 34 x1 ) (* 47 x1 ) ) 12) (not (>= (+ (* 0 x1 ) (* (- 1) x1 ) (* (- 19) x1 ) ) 40)) (not (>= (+ (* (- 40) x2 ) (* 3 x2 ) (* 4 x0 ) (* 19 x2 ) ) 34)) ))
+(assert (or (= (+ (* (- 7) x1 ) (* 15 x0 ) (* (- 12) x0 ) ) 6) (not (<= (+ (* (- 41) x2 ) (* 10 x0 ) (* 12 x2 ) ) 49)) ))
+(assert (or (<= (+ (* 12 x2 ) (* (- 50) x1 ) ) (- 25)) (= (+ (* (- 29) x2 ) (* (- 11) x2 ) (* (- 8) x2 ) (* (- 3) x2 ) ) (- 39)) ))
+(assert (or (= (+ (* 33 x2 ) (* 44 x0 ) (* (- 4) x1 ) ) 5) (not (< (+ (* 27 x2 ) (* (- 45) x0 ) (* 43 x2 ) (* 40 x0 ) ) 17)) (not (<= (+ (* (- 40) x2 ) (* 3 x0 ) (* 16 x2 ) (* (- 37) x1 ) ) 29)) ))
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(assert (or (= (+ (* (- 21) x0 ) (* 5 x2 ) ) (- 27)) (not (<= (+ (* (- 20) x0 ) (* 19 x0 ) (* (- 50) x1 ) (* (- 24) x0 ) ) (- 32))) ))
+(check-sat)
+(pop 1)
+(assert (not (<= (+ (* 9 x2 ) (* 0 x0 ) (* (- 40) x0 ) (* 49 x2 ) ) (- 11))) )
+(assert (or (not (< (+ (* (- 2) x0 ) (* 2 x2 ) ) 19)) (= (+ (* (- 28) x1 ) (* (- 1) x2 ) (* (- 4) x1 ) ) 38) ))
+(check-sat)
+(push 1)
diff --git a/test/regress/regress0/push-pop/arith/fuzz_3_2.smt2 b/test/regress/regress0/push-pop/arith/fuzz_3_2.smt2
new file mode 100644 (file)
index 0000000..3003fa5
--- /dev/null
@@ -0,0 +1,35 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LRA)
+(declare-fun x0 () Real)
+(declare-fun x1 () Real)
+(declare-fun x2 () Real)
+(assert (or (not (>= (+ (* 47 x0 ) (* (- 1) x2 ) (* 13 x2 ) ) (- 9))) (not (< (+ (* 23 x1 ) (* (- 50) x0 ) (* 35 x1 ) (* 12 x2 ) ) 14)) ))
+(assert (or (not (<= (+ (* 3 x0 ) (* (- 15) x2 ) (* 34 x0 ) ) (- 39))) (not (> (+ (* (- 35) x0 ) (* 36 x2 ) (* (- 3) x1 ) ) 22)) (not (> (+ (* 46 x2 ) (* 2 x2 ) (* (- 33) x1 ) (* (- 24) x0 ) ) (- 39))) ))
+(assert (or (<= (+ (* 27 x1 ) (* 18 x2 ) (* (- 3) x2 ) ) (- 2)) (= (+ (* 27 x0 ) (* (- 26) x2 ) (* 15 x2 ) (* 23 x0 ) ) 11) ))
+(assert (or (= (+ (* 23 x1 ) (* (- 1) x1 ) (* (- 3) x2 ) (* 49 x1 ) ) (- 26)) (not (> (+ (* (- 30) x0 ) (* (- 1) x0 ) (* 15 x1 ) ) (- 23))) ))
+(check-sat)
+(push 1)
+(assert (or (not (= (+ (* 24 x1 ) (* 5 x2 ) (* (- 18) x1 ) (* (- 40) x2 ) ) (- 6))) (not (< (+ (* 6 x0 ) (* (- 29) x0 ) (* 16 x2 ) ) (- 42))) ))
+(assert (or (= (+ (* (- 33) x0 ) (* 40 x0 ) (* (- 28) x1 ) (* (- 29) x0 ) ) (- 1)) (<= (+ (* (- 17) x1 ) (* 0 x0 ) (* 2 x1 ) ) (- 8)) (not (= (+ (* 39 x2 ) (* 4 x0 ) (* 12 x1 ) (* (- 1) x2 ) ) (- 40))) ))
+(check-sat)
+(push 1)
+(assert (not (<= (+ (* 24 x2 ) (* 9 x2 ) (* 38 x0 ) (* 9 x2 ) ) (- 12))) )
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(assert (not (> (+ (* (- 33) x1 ) (* 1 x0 ) (* (- 27) x1 ) (* (- 39) x1 ) ) 30)) )
+(check-sat)
+(pop 1)
+(assert (not (>= (+ (* (- 36) x1 ) (* 34 x0 ) (* 39 x0 ) (* 2 x2 ) ) 16)) )
+(check-sat)
diff --git a/test/regress/regress0/push-pop/arith/fuzz_3_3.smt2 b/test/regress/regress0/push-pop/arith/fuzz_3_3.smt2
new file mode 100644 (file)
index 0000000..c437a5f
--- /dev/null
@@ -0,0 +1,28 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LRA)
+(declare-fun x0 () Real)
+(declare-fun x1 () Real)
+(declare-fun x2 () Real)
+(assert (or (= (+ (* (- 47) x1 ) (* 42 x2 ) ) (- 13)) (< (+ (* 5 x2 ) (* 8 x2 ) ) 41) (not (= (+ (* (- 20) x2 ) (* (- 3) x2 ) (* 38 x1 ) (* (- 38) x0 ) ) (- 30))) ))
+(assert (or (= (+ (* (- 23) x2 ) (* 29 x2 ) ) (- 30)) (not (>= (+ (* 46 x1 ) (* (- 49) x0 ) (* (- 17) x0 ) (* 17 x0 ) ) 2)) (not (<= (+ (* (- 32) x0 ) (* 23 x0 ) (* (- 5) x1 ) (* (- 50) x2 ) ) (- 46))) ))
+(check-sat)
+(push 1)
+(assert (or (not (<= (+ (* 36 x2 ) (* 21 x2 ) ) (- 31))) (not (= (+ (* 48 x2 ) (* (- 2) x1 ) (* 32 x0 ) ) 48)) (> (+ (* (- 43) x0 ) (* 7 x2 ) (* 1 x1 ) (* 2 x1 ) ) 15) ))
+(assert (or (not (<= (+ (* (- 27) x1 ) (* 4 x0 ) (* 43 x2 ) ) (- 23))) (not (> (+ (* (- 4) x1 ) (* 31 x2 ) (* 22 x2 ) ) 0)) ))
+(assert (or (not (<= (+ (* 19 x0 ) (* (- 29) x0 ) (* 18 x2 ) (* 6 x0 ) ) 24)) (>= (+ (* 32 x2 ) (* 36 x1 ) (* 41 x1 ) ) 44) ))
+(assert (> (+ (* 30 x0 ) (* (- 9) x2 ) (* (- 22) x0 ) ) 38) )
+(assert (or (>= (+ (* (- 19) x0 ) (* 32 x2 ) (* (- 48) x2 ) ) (- 14)) (>= (+ (* (- 49) x2 ) (* 29 x2 ) (* 15 x1 ) ) (- 34)) ))
+(assert (or (not (< (+ (* (- 6) x0 ) (* (- 43) x1 ) ) 35)) (= (+ (* (- 48) x2 ) (* (- 31) x0 ) ) 34) (not (< (+ (* (- 41) x0 ) (* 45 x2 ) (* (- 17) x1 ) (* (- 38) x2 ) ) 1)) ))
+(assert (or (not (<= (+ (* (- 10) x2 ) (* 45 x1 ) ) 49)) (not (<= (+ (* 38 x2 ) (* 17 x2 ) (* (- 18) x1 ) (* (- 17) x1 ) ) 3)) ))
+(assert (not (= (+ (* 20 x1 ) (* (- 3) x2 ) (* 15 x1 ) ) (- 11))) )
+(check-sat)
+(push 1)
+(assert (not (<= (+ (* (- 24) x1 ) (* 47 x2 ) (* (- 32) x2 ) ) (- 34))) )
+(check-sat)
+(pop 1)
+(check-sat)
diff --git a/test/regress/regress0/push-pop/arith/fuzz_3_4.smt2 b/test/regress/regress0/push-pop/arith/fuzz_3_4.smt2
new file mode 100644 (file)
index 0000000..4d42615
--- /dev/null
@@ -0,0 +1,36 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LRA)
+(declare-fun x0 () Real)
+(declare-fun x1 () Real)
+(declare-fun x2 () Real)
+(assert (or (< (+ (* (- 15) x0 ) (* (- 4) x0 ) (* (- 33) x2 ) ) (- 21)) (<= (+ (* (- 2) x1 ) (* 12 x1 ) (* 48 x1 ) ) (- 21)) (> (+ (* 43 x2 ) (* (- 6) x2 ) ) (- 26)) ))
+(assert (not (<= (+ (* (- 9) x2 ) (* 28 x0 ) (* (- 26) x0 ) ) (- 2))) )
+(assert (or (= (+ (* (- 43) x0 ) (* 49 x1 ) (* (- 49) x0 ) ) 25) (not (= (+ (* 39 x0 ) (* (- 23) x2 ) ) (- 12))) ))
+(assert (or (not (<= (+ (* 13 x1 ) (* (- 17) x1 ) (* (- 27) x0 ) (* (- 24) x0 ) ) (- 47))) (not (<= (+ (* 5 x1 ) (* (- 31) x1 ) (* (- 40) x2 ) ) 28)) ))
+(assert (or (not (< (+ (* (- 7) x2 ) (* (- 24) x0 ) (* 42 x0 ) ) (- 27))) (not (< (+ (* (- 4) x2 ) (* (- 16) x0 ) (* (- 20) x2 ) ) (- 14))) (not (<= (+ (* 2 x2 ) (* 26 x1 ) ) 12)) ))
+(assert (< (+ (* (- 9) x0 ) (* 45 x1 ) (* (- 12) x2 ) ) 37) )
+(assert (or (= (+ (* 23 x2 ) (* 15 x1 ) (* 32 x1 ) (* (- 30) x2 ) ) 30) (>= (+ (* 36 x1 ) (* (- 36) x0 ) (* (- 22) x2 ) (* 36 x1 ) ) 20) ))
+(assert (or (not (< (+ (* (- 22) x2 ) (* 34 x0 ) ) (- 10))) (not (>= (+ (* (- 38) x2 ) (* (- 46) x2 ) ) 34)) (not (>= (+ (* 24 x0 ) (* (- 48) x1 ) (* 7 x0 ) ) (- 19))) ))
+(assert (<= (+ (* (- 49) x2 ) (* (- 18) x0 ) (* 17 x0 ) ) 18) )
+(assert (or (not (<= (+ (* (- 16) x2 ) (* 24 x1 ) (* (- 38) x2 ) ) 33)) (<= (+ (* 29 x2 ) (* (- 22) x1 ) ) (- 19)) ))
+(assert (or (< (+ (* 19 x1 ) (* (- 30) x0 ) ) 39) (= (+ (* (- 47) x0 ) (* 46 x1 ) (* 37 x0 ) ) (- 28)) (not (= (+ (* (- 12) x0 ) (* 19 x0 ) ) 19)) ))
+(assert (or (not (> (+ (* 35 x1 ) (* 35 x0 ) (* 17 x1 ) (* 46 x2 ) ) 46)) (not (>= (+ (* (- 8) x0 ) (* 43 x1 ) (* (- 26) x2 ) ) 21)) (not (< (+ (* (- 29) x1 ) (* (- 10) x2 ) (* (- 35) x1 ) ) 42)) ))
+(check-sat)
+(push 1)
+(assert (or (>= (+ (* 21 x2 ) (* (- 38) x1 ) (* (- 21) x2 ) ) 28) (= (+ (* 28 x1 ) (* 2 x1 ) (* (- 16) x2 ) (* 47 x0 ) ) (- 45)) ))
+(assert (not (= (+ (* 33 x0 ) (* 26 x0 ) (* 33 x1 ) (* (- 41) x2 ) ) 4)) )
+(assert (or (= (+ (* 40 x1 ) (* (- 23) x1 ) (* 27 x0 ) ) (- 19)) (>= (+ (* (- 29) x0 ) (* (- 12) x0 ) (* 42 x0 ) ) (- 30)) ))
+(assert (or (not (<= (+ (* 35 x0 ) (* 40 x2 ) (* (- 46) x0 ) ) (- 35))) (>= (+ (* 34 x0 ) (* 33 x0 ) (* 27 x0 ) (* (- 21) x1 ) ) (- 4)) ))
+(assert (not (<= (+ (* 42 x1 ) (* (- 4) x1 ) (* (- 30) x0 ) (* (- 23) x0 ) ) (- 44))) )
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(assert (not (>= (+ (* 3 x1 ) (* 41 x2 ) (* (- 28) x1 ) ) (- 49))) )
+(assert (or (not (<= (+ (* (- 29) x1 ) (* (- 5) x2 ) (* 15 x2 ) (* (- 26) x1 ) ) (- 14))) (>= (+ (* (- 47) x1 ) (* (- 31) x1 ) ) 46) ))
+(check-sat)
diff --git a/test/regress/regress0/push-pop/arith/fuzz_3_5.smt2 b/test/regress/regress0/push-pop/arith/fuzz_3_5.smt2
new file mode 100644 (file)
index 0000000..a566eb1
--- /dev/null
@@ -0,0 +1,38 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LRA)
+(declare-fun x0 () Real)
+(declare-fun x1 () Real)
+(declare-fun x2 () Real)
+(assert (< (+ (* 23 x1 ) (* (- 27) x1 ) (* 22 x0 ) ) (- 22)) )
+(assert (>= (+ (* (- 4) x0 ) (* (- 9) x1 ) (* (- 40) x0 ) (* 40 x2 ) ) (- 27)) )
+(assert (or (not (>= (+ (* (- 34) x0 ) (* (- 36) x1 ) ) (- 26))) (not (>= (+ (* 6 x2 ) (* (- 6) x1 ) ) (- 43))) ))
+(assert (or (>= (+ (* 20 x2 ) (* 12 x0 ) (* (- 50) x1 ) ) (- 46)) (not (> (+ (* 11 x1 ) (* (- 30) x0 ) ) (- 21))) ))
+(check-sat)
+(push 1)
+(assert (or (not (>= (+ (* (- 17) x2 ) (* 25 x1 ) (* 43 x0 ) (* (- 9) x0 ) ) (- 19))) (> (+ (* 4 x1 ) (* (- 22) x1 ) ) 8) (> (+ (* 19 x1 ) (* (- 1) x1 ) (* (- 22) x1 ) (* (- 47) x2 ) ) 46) ))
+(assert (or (> (+ (* (- 12) x1 ) (* 25 x1 ) ) (- 18)) (not (= (+ (* (- 47) x0 ) (* (- 13) x2 ) (* (- 13) x1 ) (* (- 10) x0 ) ) (- 27))) ))
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(assert (or (not (>= (+ (* 9 x2 ) (* (- 18) x1 ) (* (- 7) x0 ) (* (- 2) x2 ) ) (- 40))) (< (+ (* 2 x1 ) (* (- 4) x1 ) (* (- 48) x2 ) ) 32) ))
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(assert (not (<= (+ (* (- 10) x2 ) (* (- 20) x1 ) (* 9 x2 ) ) 23)) )
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
diff --git a/test/regress/regress0/push-pop/arith/fuzz_3_6.smt2 b/test/regress/regress0/push-pop/arith/fuzz_3_6.smt2
new file mode 100644 (file)
index 0000000..7fcd677
--- /dev/null
@@ -0,0 +1,37 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: unsat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LRA)
+(declare-fun x0 () Real)
+(declare-fun x1 () Real)
+(declare-fun x2 () Real)
+(assert (or (= (+ (* 40 x1 ) (* (- 35) x0 ) (* 10 x1 ) ) 4) (not (= (+ (* 38 x1 ) (* 40 x1 ) (* (- 28) x2 ) ) 44)) (< (+ (* (- 46) x1 ) (* (- 18) x0 ) ) 37) ))
+(assert (or (<= (+ (* (- 4) x2 ) (* (- 29) x1 ) ) (- 37)) (not (> (+ (* (- 10) x2 ) (* 13 x0 ) ) (- 21))) ))
+(check-sat)
+(push 1)
+(assert (or (> (+ (* 21 x0 ) (* 13 x2 ) ) 49) (>= (+ (* 19 x2 ) (* 45 x2 ) (* 9 x1 ) ) (- 45)) ))
+(assert (or (= (+ (* (- 17) x0 ) (* 22 x0 ) ) 12) (<= (+ (* 28 x1 ) (* 27 x0 ) (* 39 x0 ) (* (- 49) x2 ) ) (- 9)) ))
+(assert (or (not (<= (+ (* (- 49) x2 ) (* (- 28) x1 ) (* 24 x2 ) ) 47)) (>= (+ (* 13 x2 ) (* 49 x0 ) (* (- 45) x0 ) (* (- 44) x1 ) ) (- 14)) ))
+(assert (or (> (+ (* 9 x1 ) (* 18 x2 ) ) 31) (not (<= (+ (* 10 x2 ) (* 49 x1 ) (* (- 29) x2 ) (* (- 45) x2 ) ) (- 22))) ))
+(assert (not (<= (+ (* 49 x0 ) (* (- 50) x0 ) (* 0 x1 ) ) 40)) )
+(assert (or (> (+ (* 37 x1 ) (* (- 37) x2 ) ) (- 13)) (not (< (+ (* (- 38) x2 ) (* (- 15) x2 ) (* (- 39) x2 ) (* (- 13) x1 ) ) 20)) (>= (+ (* 8 x2 ) (* 47 x1 ) (* (- 21) x2 ) (* 41 x0 ) ) 13) ))
+(assert (or (> (+ (* (- 26) x2 ) (* 9 x0 ) (* (- 47) x1 ) (* (- 30) x0 ) ) (- 12)) (not (>= (+ (* 3 x0 ) (* 24 x0 ) ) (- 10))) ))
+(check-sat)
+(push 1)
+(assert (or (= (+ (* (- 27) x1 ) (* 34 x2 ) (* (- 14) x2 ) (* (- 24) x1 ) ) (- 38)) (<= (+ (* (- 41) x2 ) (* 36 x1 ) (* (- 44) x2 ) (* (- 19) x2 ) ) 9) ))
+(assert (or (not (<= (+ (* (- 2) x1 ) (* (- 7) x1 ) ) 45)) (<= (+ (* (- 39) x0 ) (* (- 18) x2 ) ) (- 13)) ))
+(assert (or (= (+ (* (- 32) x2 ) (* 37 x2 ) ) (- 26)) (< (+ (* 26 x0 ) (* 4 x1 ) ) (- 32)) ))
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(assert (or (< (+ (* (- 23) x2 ) (* (- 14) x2 ) (* 3 x1 ) ) (- 39)) (not (> (+ (* 48 x1 ) (* 14 x0 ) ) (- 32))) (>= (+ (* (- 10) x0 ) (* (- 46) x0 ) ) 12) ))
+(check-sat)
+(pop 1)
+(assert (< (+ (* (- 41) x1 ) (* (- 42) x1 ) (* 41 x1 ) ) (- 36)) )
+(check-sat)
diff --git a/test/regress/regress0/push-pop/arith/fuzz_3_7.smt2 b/test/regress/regress0/push-pop/arith/fuzz_3_7.smt2
new file mode 100644 (file)
index 0000000..88fd866
--- /dev/null
@@ -0,0 +1,37 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LRA)
+(declare-fun x0 () Real)
+(declare-fun x1 () Real)
+(declare-fun x2 () Real)
+(check-sat)
+(push 1)
+(assert (or (not (>= (+ (* 25 x1 ) (* (- 37) x2 ) (* (- 48) x1 ) ) (- 37))) (not (<= (+ (* (- 6) x1 ) (* 0 x2 ) (* 22 x1 ) ) (- 25))) ))
+(assert (or (not (> (+ (* 25 x2 ) (* (- 14) x1 ) ) (- 40))) (not (> (+ (* (- 44) x1 ) (* (- 5) x0 ) ) (- 31))) ))
+(assert (or (< (+ (* (- 31) x2 ) (* (- 42) x1 ) (* (- 7) x0 ) (* (- 4) x2 ) ) 18) (<= (+ (* 8 x1 ) (* (- 46) x2 ) ) (- 4)) ))
+(check-sat)
+(push 1)
+(assert (or (> (+ (* (- 45) x1 ) (* 45 x0 ) (* (- 12) x0 ) (* (- 24) x2 ) ) (- 41)) (< (+ (* 17 x2 ) (* 38 x0 ) (* 16 x2 ) ) 40) ))
+(assert (or (< (+ (* 14 x2 ) (* 45 x0 ) (* (- 13) x0 ) (* (- 40) x0 ) ) 44) (= (+ (* (- 28) x1 ) (* (- 34) x1 ) (* (- 1) x0 ) ) 49) ))
+(assert (or (>= (+ (* 2 x0 ) (* 21 x2 ) ) 21) (< (+ (* (- 5) x2 ) (* 41 x1 ) (* (- 16) x1 ) ) 3) ))
+(assert (= (+ (* (- 17) x2 ) (* 34 x1 ) (* (- 20) x0 ) (* (- 47) x2 ) ) (- 39)) )
+(check-sat)
+(push 1)
+(assert (or (< (+ (* 26 x2 ) (* (- 29) x2 ) (* 3 x2 ) (* (- 42) x0 ) ) (- 10)) (not (<= (+ (* 9 x0 ) (* (- 31) x1 ) ) (- 6))) ))
+(assert (or (not (< (+ (* (- 15) x0 ) (* (- 44) x1 ) (* (- 5) x2 ) (* 25 x2 ) ) 38)) (= (+ (* (- 24) x1 ) (* 20 x0 ) (* 8 x0 ) ) (- 10)) (not (> (+ (* (- 35) x1 ) (* (- 14) x2 ) ) 6)) ))
+(assert (or (> (+ (* (- 13) x0 ) (* 10 x2 ) ) (- 16)) (= (+ (* 38 x0 ) (* 38 x2 ) (* 3 x0 ) ) 8) (not (<= (+ (* 18 x1 ) (* (- 26) x0 ) ) (- 14))) ))
+(check-sat)
+(push 1)
+(assert (or (< (+ (* (- 11) x1 ) (* 42 x1 ) ) (- 50)) (not (> (+ (* (- 24) x0 ) (* 8 x1 ) (* 44 x2 ) (* 27 x0 ) ) 48)) (< (+ (* 2 x0 ) (* 32 x2 ) ) (- 30)) ))
+(assert (>= (+ (* 28 x2 ) (* 29 x1 ) (* (- 7) x2 ) (* 16 x0 ) ) (- 19)) )
+(check-sat)
+(pop 1)
+(assert (or (not (> (+ (* 1 x1 ) (* (- 33) x1 ) (* (- 2) x1 ) ) (- 29))) (>= (+ (* 7 x2 ) (* 4 x0 ) (* 49 x2 ) ) (- 17)) ))
+(check-sat)
+(push 1)
diff --git a/test/regress/regress0/push-pop/arith/fuzz_3_8.smt2 b/test/regress/regress0/push-pop/arith/fuzz_3_8.smt2
new file mode 100644 (file)
index 0000000..329be03
--- /dev/null
@@ -0,0 +1,48 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LRA)
+(declare-fun x0 () Real)
+(declare-fun x1 () Real)
+(declare-fun x2 () Real)
+(assert (or (not (> (+ (* (- 25) x0 ) (* 16 x2 ) ) 21)) (>= (+ (* 18 x1 ) (* (- 35) x0 ) (* 18 x0 ) (* 24 x0 ) ) (- 50)) ))
+(assert (> (+ (* (- 40) x0 ) (* 29 x2 ) ) 9) )
+(check-sat)
+(push 1)
+(assert (or (not (> (+ (* 32 x1 ) (* (- 23) x0 ) (* 46 x2 ) ) 11)) (not (< (+ (* (- 12) x0 ) (* (- 40) x0 ) (* 43 x2 ) (* (- 13) x1 ) ) 49)) ))
+(assert (not (>= (+ (* (- 47) x0 ) (* 24 x1 ) ) 32)) )
+(check-sat)
+(pop 1)
+(assert (or (= (+ (* 8 x0 ) (* 31 x1 ) (* 38 x1 ) ) (- 31)) (<= (+ (* (- 16) x1 ) (* (- 22) x2 ) (* 27 x2 ) (* (- 23) x0 ) ) (- 12)) ))
+(assert (or (not (>= (+ (* 43 x1 ) (* (- 29) x1 ) (* 32 x0 ) (* (- 29) x1 ) ) (- 10))) (>= (+ (* 24 x0 ) (* (- 31) x1 ) ) 34) ))
+(assert (or (not (>= (+ (* (- 39) x2 ) (* (- 48) x2 ) (* (- 46) x0 ) (* 2 x1 ) ) 19)) (not (<= (+ (* (- 44) x0 ) (* (- 36) x2 ) ) (- 23))) ))
+(check-sat)
+(push 1)
+(assert (not (<= (+ (* 37 x1 ) (* 19 x2 ) (* 24 x1 ) (* (- 15) x0 ) ) (- 12))) )
+(assert (or (>= (+ (* (- 24) x0 ) (* (- 29) x0 ) (* 40 x2 ) ) (- 39)) (not (<= (+ (* (- 41) x0 ) (* 40 x2 ) (* 41 x1 ) (* (- 3) x0 ) ) 28)) ))
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(assert (or (not (> (+ (* 38 x0 ) (* (- 47) x0 ) (* 19 x0 ) (* 40 x2 ) ) (- 39))) (not (< (+ (* 30 x2 ) (* 39 x1 ) ) (- 28))) ))
+(assert (or (>= (+ (* (- 12) x0 ) (* (- 26) x1 ) (* (- 13) x1 ) ) 28) (> (+ (* (- 10) x0 ) (* (- 32) x1 ) ) 12) ))
+(check-sat)
+(push 1)
+(assert (< (+ (* (- 33) x2 ) (* (- 13) x0 ) ) 42) )
+(assert (or (not (= (+ (* 17 x2 ) (* 4 x2 ) ) 7)) (<= (+ (* 19 x1 ) (* 22 x1 ) (* 19 x1 ) ) 26) (not (<= (+ (* 9 x2 ) (* 0 x0 ) (* 24 x2 ) ) (- 10))) ))
+(assert (< (+ (* 45 x1 ) (* (- 38) x0 ) (* 19 x2 ) (* 17 x1 ) ) (- 14)) )
+(check-sat)
+(pop 1)
+(assert (not (< (+ (* 10 x0 ) (* (- 31) x2 ) (* (- 21) x0 ) ) (- 29))) )
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
diff --git a/test/regress/regress0/push-pop/arith/fuzz_3_9.smt2 b/test/regress/regress0/push-pop/arith/fuzz_3_9.smt2
new file mode 100644 (file)
index 0000000..db180f3
--- /dev/null
@@ -0,0 +1,53 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LRA)
+(declare-fun x0 () Real)
+(declare-fun x1 () Real)
+(declare-fun x2 () Real)
+(assert (or (not (>= (+ (* (- 32) x2 ) (* (- 10) x0 ) (* (- 33) x0 ) (* 16 x1 ) ) (- 35))) (< (+ (* (- 46) x1 ) (* 44 x1 ) (* (- 15) x1 ) (* (- 22) x2 ) ) (- 20)) ))
+(check-sat)
+(push 1)
+(assert (or (not (< (+ (* (- 1) x2 ) (* (- 26) x0 ) ) 32)) (> (+ (* 39 x1 ) (* 31 x1 ) (* (- 16) x0 ) ) 27) ))
+(check-sat)
+(pop 1)
+(assert (or (> (+ (* 46 x1 ) (* 48 x1 ) (* 26 x0 ) ) 12) (= (+ (* 30 x1 ) (* 1 x0 ) (* 8 x2 ) (* 11 x2 ) ) (- 3)) ))
+(assert (<= (+ (* (- 11) x1 ) (* (- 27) x2 ) (* (- 29) x2 ) (* 23 x1 ) ) 19) )
+(assert (not (> (+ (* 15 x0 ) (* 25 x1 ) ) 47)) )
+(assert (<= (+ (* (- 3) x2 ) (* 1 x1 ) (* 36 x1 ) ) (- 27)) )
+(check-sat)
+(push 1)
+(assert (not (<= (+ (* (- 3) x0 ) (* (- 33) x2 ) (* 7 x2 ) (* (- 37) x0 ) ) 13)) )
+(check-sat)
+(pop 1)
+(assert (or (not (> (+ (* 24 x2 ) (* (- 48) x0 ) (* 18 x1 ) ) (- 46))) (not (< (+ (* (- 31) x1 ) (* 18 x0 ) (* (- 32) x0 ) (* (- 9) x0 ) ) 37)) ))
+(assert (or (not (< (+ (* (- 30) x2 ) (* (- 32) x0 ) (* 27 x0 ) ) 28)) (not (= (+ (* (- 20) x2 ) (* (- 10) x2 ) ) (- 3))) (<= (+ (* 42 x0 ) (* 49 x0 ) (* 28 x0 ) (* 0 x2 ) ) (- 30)) ))
+(assert (or (not (<= (+ (* 15 x2 ) (* 22 x2 ) ) (- 7))) (< (+ (* (- 7) x1 ) (* (- 42) x0 ) (* (- 27) x2 ) (* 19 x2 ) ) 15) (< (+ (* (- 25) x1 ) (* 39 x2 ) (* (- 24) x1 ) (* 17 x1 ) ) (- 48)) ))
+(assert (or (= (+ (* (- 49) x0 ) (* 27 x1 ) (* 16 x0 ) (* (- 26) x2 ) ) (- 24)) (<= (+ (* (- 33) x0 ) (* (- 7) x1 ) (* (- 7) x2 ) (* 1 x0 ) ) 34) ))
+(assert (not (<= (+ (* 30 x0 ) (* 17 x0 ) (* (- 48) x0 ) ) 19)) )
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(assert (or (not (= (+ (* 24 x2 ) (* 13 x2 ) (* (- 13) x0 ) (* 14 x2 ) ) 8)) (> (+ (* (- 30) x2 ) (* (- 32) x1 ) (* (- 45) x0 ) (* (- 2) x2 ) ) 15) ))
+(assert (or (> (+ (* (- 9) x0 ) (* (- 21) x1 ) ) 3) (not (= (+ (* (- 26) x2 ) (* 3 x0 ) ) (- 10))) ))
+(assert (or (not (> (+ (* (- 20) x0 ) (* 43 x0 ) ) (- 14))) (> (+ (* 13 x1 ) (* (- 38) x1 ) (* 4 x1 ) (* (- 12) x2 ) ) (- 15)) (not (< (+ (* (- 38) x2 ) (* (- 3) x0 ) ) 15)) ))
+(assert (or (>= (+ (* (- 33) x0 ) (* 8 x1 ) (* 16 x0 ) ) 32) (not (<= (+ (* 23 x0 ) (* (- 28) x0 ) (* 30 x1 ) (* 17 x2 ) ) 41)) (>= (+ (* 28 x1 ) (* (- 42) x0 ) ) (- 12)) ))
+(assert (or (not (<= (+ (* 23 x1 ) (* 20 x2 ) (* (- 34) x0 ) (* (- 40) x2 ) ) 28)) (not (= (+ (* 17 x2 ) (* 30 x2 ) ) (- 15))) (<= (+ (* (- 47) x1 ) (* (- 24) x0 ) (* (- 37) x0 ) ) 19) ))
+(assert (or (= (+ (* 14 x0 ) (* (- 22) x1 ) ) 30) (<= (+ (* 28 x1 ) (* 33 x2 ) (* 49 x2 ) ) (- 35)) (<= (+ (* (- 47) x0 ) (* (- 45) x2 ) (* (- 7) x1 ) (* (- 47) x1 ) ) 47) ))
+(check-sat)
+(push 1)
+(assert (or (not (> (+ (* 35 x2 ) (* (- 46) x0 ) ) 26)) (>= (+ (* 3 x1 ) (* 1 x2 ) (* (- 14) x0 ) ) 27) (> (+ (* (- 27) x2 ) (* 20 x2 ) (* 19 x1 ) (* 23 x2 ) ) 39) ))
+(assert (or (not (> (+ (* 20 x0 ) (* 9 x2 ) ) 6)) (not (< (+ (* 19 x1 ) (* (- 45) x1 ) ) (- 45))) ))
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
diff --git a/test/regress/regress0/push-pop/arith/fuzz_5_1.smt2 b/test/regress/regress0/push-pop/arith/fuzz_5_1.smt2
new file mode 100644 (file)
index 0000000..9e61f7c
--- /dev/null
@@ -0,0 +1,84 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LRA)
+(declare-fun x0 () Real)
+(declare-fun x1 () Real)
+(declare-fun x2 () Real)
+(declare-fun x3 () Real)
+(declare-fun x4 () Real)
+(assert (<= (+ (* 27 x2 ) (* 30 x4 ) ) (- 46)) )
+(assert (or (not (>= (+ (* (- 16) x0 ) (* (- 10) x4 ) (* 21 x3 ) (* (- 46) x0 ) (* 29 x0 ) (* 41 x4 ) (* 32 x0 ) (* 33 x2 ) (* (- 37) x1 ) (* 36 x3 ) (* 18 x3 ) ) (- 34))) (<= (+ (* (- 40) x2 ) (* (- 3) x1 ) (* (- 44) x4 ) (* (- 45) x1 ) (* 20 x1 ) (* 48 x1 ) (* 28 x1 ) (* (- 27) x3 ) (* 35 x4 ) ) (- 45)) ))
+(assert (or (not (= (+ (* (- 41) x2 ) (* 28 x2 ) (* (- 8) x3 ) (* 27 x0 ) (* (- 19) x2 ) (* (- 7) x4 ) ) (- 13))) (< (+ (* (- 26) x3 ) (* (- 44) x4 ) (* 14 x2 ) (* (- 27) x4 ) (* 37 x0 ) (* (- 32) x3 ) (* (- 46) x1 ) (* 23 x2 ) ) 15) ))
+(assert (not (>= (+ (* 31 x1 ) (* (- 15) x1 ) (* 25 x2 ) (* 27 x3 ) (* 23 x1 ) ) (- 48))) )
+(assert (or (< (+ (* (- 38) x2 ) (* 15 x3 ) (* 9 x3 ) (* 25 x0 ) (* 37 x0 ) (* 39 x2 ) (* 41 x1 ) (* (- 18) x3 ) ) (- 26)) (not (> (+ (* 15 x2 ) (* 18 x1 ) (* 35 x3 ) (* 20 x1 ) (* 31 x1 ) (* (- 25) x2 ) (* 30 x3 ) (* 26 x1 ) (* (- 37) x2 ) (* 27 x4 ) (* (- 32) x0 ) ) 16)) ))
+(assert (or (not (= (+ (* 27 x3 ) (* (- 50) x1 ) (* (- 28) x2 ) ) (- 30))) (not (>= (+ (* (- 50) x3 ) (* (- 15) x0 ) (* 15 x3 ) (* 19 x2 ) ) (- 8))) ))
+(assert (or (>= (+ (* 4 x1 ) (* 27 x3 ) (* 15 x3 ) (* (- 39) x4 ) (* (- 45) x4 ) (* 38 x3 ) (* 33 x4 ) (* 40 x1 ) (* (- 26) x2 ) (* 44 x1 ) ) (- 39)) (> (+ (* 4 x0 ) (* (- 26) x3 ) (* (- 24) x2 ) ) (- 40)) ))
+(assert (not (> (+ (* (- 39) x1 ) (* 32 x4 ) ) 19)) )
+(assert (or (= (+ (* (- 13) x1 ) (* (- 16) x3 ) ) 33) (not (> (+ (* 47 x4 ) (* (- 3) x4 ) (* (- 49) x3 ) (* (- 15) x1 ) (* (- 39) x1 ) (* 20 x1 ) (* 44 x4 ) (* 30 x4 ) (* 5 x1 ) (* 49 x4 ) (* 23 x0 ) ) 41)) ))
+(assert (or (< (+ (* 41 x0 ) (* (- 50) x1 ) (* 41 x3 ) (* (- 37) x4 ) (* 27 x4 ) (* (- 32) x4 ) (* (- 43) x3 ) (* (- 46) x3 ) (* (- 28) x3 ) (* 31 x4 ) (* 45 x2 ) ) 31) (not (= (+ (* (- 19) x0 ) (* (- 30) x4 ) (* (- 24) x4 ) (* (- 27) x1 ) (* 2 x1 ) (* 28 x4 ) (* (- 40) x2 ) ) 5)) (>= (+ (* 19 x2 ) (* (- 20) x0 ) (* 35 x1 ) (* (- 29) x2 ) (* (- 5) x0 ) (* (- 49) x1 ) (* (- 9) x4 ) (* 3 x0 ) (* (- 36) x3 ) (* 27 x0 ) ) (- 13)) ))
+(assert (or (> (+ (* 42 x4 ) (* 44 x4 ) (* (- 4) x3 ) (* 38 x3 ) (* (- 43) x2 ) ) (- 25)) (> (+ (* (- 16) x1 ) (* 5 x4 ) (* (- 6) x2 ) ) 11) ))
+(assert (or (> (+ (* 1 x3 ) (* (- 10) x4 ) (* 20 x1 ) (* 20 x4 ) (* (- 26) x4 ) ) (- 33)) (< (+ (* 40 x2 ) (* (- 35) x2 ) ) (- 2)) ))
+(assert (or (<= (+ (* (- 5) x4 ) (* (- 35) x3 ) (* 45 x3 ) (* 44 x0 ) (* (- 31) x1 ) (* (- 50) x4 ) (* 20 x1 ) (* 8 x0 ) (* (- 11) x1 ) (* (- 40) x3 ) (* 27 x0 ) ) 2) (= (+ (* (- 5) x1 ) (* (- 16) x2 ) (* (- 34) x2 ) (* (- 47) x4 ) (* 20 x3 ) (* 48 x3 ) ) 14) ))
+(assert (or (not (< (+ (* 17 x2 ) (* (- 32) x4 ) ) (- 43))) (= (+ (* (- 17) x1 ) (* 30 x4 ) (* 20 x2 ) (* (- 1) x2 ) (* 5 x1 ) (* (- 14) x2 ) (* 2 x3 ) (* 6 x3 ) (* 24 x1 ) (* 23 x3 ) (* 0 x4 ) ) (- 14)) (< (+ (* 27 x1 ) (* 48 x2 ) (* 4 x1 ) (* 40 x3 ) (* (- 29) x4 ) (* 14 x3 ) (* 19 x2 ) (* (- 10) x4 ) (* (- 21) x0 ) (* (- 35) x4 ) ) (- 13)) ))
+(assert (or (<= (+ (* 7 x3 ) (* 13 x3 ) (* (- 19) x0 ) ) (- 10)) (= (+ (* (- 37) x3 ) (* (- 25) x2 ) (* (- 33) x1 ) (* (- 41) x4 ) (* 10 x2 ) (* (- 6) x1 ) ) (- 9)) (> (+ (* (- 1) x3 ) (* 15 x1 ) (* (- 35) x2 ) (* 30 x4 ) (* (- 9) x3 ) (* 21 x2 ) (* 44 x1 ) ) (- 17)) ))
+(check-sat)
+(push 1)
+(assert (<= (+ (* 5 x2 ) (* 44 x2 ) (* 36 x3 ) (* 3 x0 ) (* 16 x3 ) ) 48) )
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(assert (not (<= (+ (* (- 39) x4 ) (* (- 40) x1 ) ) (- 45))) )
+(assert (= (+ (* 35 x3 ) (* 20 x1 ) (* (- 49) x4 ) (* (- 32) x3 ) (* 33 x3 ) (* 4 x1 ) (* (- 34) x4 ) (* 0 x4 ) (* (- 50) x3 ) ) 42) )
+(assert (or (> (+ (* 2 x3 ) (* (- 33) x4 ) (* 15 x1 ) (* 34 x4 ) (* (- 3) x2 ) (* (- 16) x1 ) (* (- 14) x3 ) (* 39 x2 ) ) 21) (not (<= (+ (* 39 x2 ) (* 22 x2 ) (* (- 50) x0 ) (* (- 23) x0 ) (* (- 48) x3 ) (* (- 31) x3 ) (* 9 x1 ) (* (- 23) x1 ) (* 27 x1 ) (* 29 x3 ) ) (- 26))) (not (<= (+ (* 15 x0 ) (* 26 x1 ) (* 11 x0 ) (* 24 x4 ) (* (- 9) x3 ) (* (- 5) x2 ) (* 4 x3 ) (* 24 x2 ) (* (- 5) x3 ) (* 16 x3 ) (* 31 x2 ) ) 43)) ))
+(assert (or (>= (+ (* 27 x4 ) (* 36 x1 ) (* 27 x4 ) (* (- 18) x0 ) (* (- 1) x4 ) (* 44 x1 ) (* (- 45) x2 ) (* 38 x4 ) (* (- 39) x2 ) (* (- 30) x2 ) ) (- 41)) (not (< (+ (* (- 18) x3 ) (* 48 x1 ) (* 14 x3 ) (* (- 28) x2 ) (* 46 x1 ) (* 38 x4 ) (* (- 26) x0 ) ) (- 30))) ))
+(assert (or (= (+ (* (- 1) x4 ) (* 46 x0 ) (* 19 x3 ) (* 24 x3 ) (* (- 43) x1 ) (* 14 x2 ) (* (- 7) x2 ) (* 35 x2 ) ) 9) (not (< (+ (* (- 34) x3 ) (* 18 x1 ) (* 11 x2 ) (* (- 33) x0 ) (* 45 x4 ) (* (- 27) x0 ) (* 42 x2 ) (* (- 40) x1 ) (* (- 10) x2 ) ) 34)) ))
+(assert (or (not (>= (+ (* 15 x1 ) (* (- 19) x1 ) (* 34 x4 ) (* 9 x4 ) (* (- 25) x2 ) (* (- 5) x3 ) (* 15 x1 ) (* 27 x4 ) (* 49 x2 ) (* (- 41) x1 ) ) 42)) (not (< (+ (* (- 43) x4 ) (* (- 38) x4 ) (* (- 3) x0 ) (* (- 43) x3 ) ) 15)) ))
+(assert (or (>= (+ (* 18 x4 ) (* 19 x4 ) (* (- 13) x0 ) (* 30 x1 ) (* 48 x4 ) (* 17 x1 ) (* 25 x0 ) (* 33 x2 ) (* 6 x1 ) (* (- 24) x1 ) (* (- 24) x0 ) ) (- 25)) (not (<= (+ (* 25 x1 ) (* (- 26) x2 ) (* (- 37) x1 ) (* 2 x4 ) (* (- 40) x2 ) (* (- 30) x1 ) (* 6 x2 ) (* (- 25) x0 ) ) 25)) ))
+(assert (or (>= (+ (* 7 x1 ) (* 46 x2 ) (* 40 x0 ) (* (- 29) x2 ) (* 30 x0 ) (* (- 46) x3 ) (* 0 x4 ) (* (- 1) x2 ) (* 1 x4 ) ) (- 39)) (not (<= (+ (* (- 8) x2 ) (* 29 x0 ) (* (- 15) x4 ) (* 40 x4 ) (* 25 x0 ) (* (- 16) x2 ) (* (- 15) x3 ) (* (- 2) x4 ) ) (- 42))) ))
+(assert (or (not (<= (+ (* (- 19) x3 ) (* (- 37) x4 ) (* 47 x4 ) (* 8 x4 ) (* (- 37) x2 ) (* 34 x0 ) (* 26 x4 ) (* (- 7) x0 ) ) (- 31))) (> (+ (* 44 x3 ) (* (- 45) x3 ) (* 11 x2 ) (* (- 28) x2 ) ) 20) (not (> (+ (* 43 x3 ) (* (- 5) x3 ) (* 4 x0 ) (* (- 6) x3 ) (* 5 x2 ) (* 14 x1 ) (* (- 49) x3 ) ) (- 43))) ))
+(check-sat)
+(pop 1)
+(assert (or (>= (+ (* 16 x3 ) (* (- 8) x1 ) (* 8 x3 ) (* (- 2) x0 ) (* 30 x3 ) ) (- 9)) (not (>= (+ (* 30 x1 ) (* (- 44) x0 ) (* 11 x2 ) (* 21 x0 ) ) (- 36))) (not (< (+ (* 44 x2 ) (* 33 x2 ) (* 15 x1 ) (* (- 41) x4 ) (* 40 x0 ) (* 32 x2 ) (* (- 45) x3 ) (* (- 19) x2 ) (* (- 10) x2 ) (* 26 x2 ) (* (- 2) x0 ) ) (- 16))) ))
+(assert (or (not (< (+ (* 6 x0 ) (* (- 5) x2 ) (* 24 x1 ) (* (- 26) x3 ) (* 28 x2 ) (* 2 x3 ) ) (- 30))) (<= (+ (* (- 2) x2 ) (* (- 3) x1 ) ) (- 10)) (not (> (+ (* (- 41) x4 ) (* 20 x3 ) (* (- 46) x0 ) ) (- 4))) ))
+(assert (not (> (+ (* (- 26) x0 ) (* 4 x2 ) (* 22 x4 ) (* (- 24) x3 ) (* (- 6) x4 ) (* 32 x1 ) (* (- 21) x0 ) (* 35 x4 ) ) 40)) )
+(check-sat)
+(push 1)
+(assert (or (not (= (+ (* (- 23) x0 ) (* 30 x0 ) (* 6 x0 ) (* (- 47) x3 ) (* (- 46) x4 ) (* 23 x3 ) (* 17 x0 ) ) (- 18))) (< (+ (* 24 x4 ) (* (- 45) x1 ) (* 9 x0 ) (* (- 39) x3 ) (* 49 x2 ) (* (- 21) x1 ) (* 8 x3 ) (* 44 x3 ) (* (- 2) x0 ) (* (- 32) x2 ) ) (- 46)) ))
+(assert (or (not (< (+ (* 29 x1 ) (* 8 x4 ) (* (- 50) x2 ) (* 31 x4 ) (* (- 11) x1 ) (* (- 44) x0 ) (* 47 x2 ) (* 28 x0 ) (* (- 19) x3 ) ) (- 14))) (not (>= (+ (* (- 23) x2 ) (* 41 x2 ) (* (- 26) x1 ) (* (- 2) x0 ) (* 7 x0 ) (* (- 13) x2 ) (* 36 x0 ) (* (- 50) x2 ) (* 45 x2 ) ) 41)) ))
+(check-sat)
+(pop 1)
+(assert (or (= (+ (* (- 37) x0 ) (* 17 x4 ) (* 12 x2 ) (* (- 9) x4 ) (* (- 3) x0 ) (* 46 x0 ) (* 28 x0 ) (* 24 x0 ) (* (- 30) x0 ) (* (- 46) x1 ) (* (- 22) x2 ) ) (- 50)) (> (+ (* 47 x0 ) (* (- 16) x2 ) (* 4 x4 ) (* (- 39) x2 ) (* (- 11) x1 ) (* 18 x0 ) ) 31) (not (> (+ (* (- 39) x3 ) (* 33 x3 ) ) 35)) ))
+(assert (or (> (+ (* (- 50) x2 ) (* 17 x2 ) (* (- 48) x0 ) (* (- 32) x4 ) (* (- 2) x2 ) (* (- 14) x2 ) (* 44 x4 ) (* 34 x1 ) ) 12) (not (>= (+ (* (- 5) x4 ) (* 38 x0 ) (* (- 24) x4 ) (* 35 x3 ) (* 33 x4 ) (* (- 47) x3 ) (* 8 x0 ) (* (- 9) x0 ) (* (- 16) x2 ) (* (- 1) x1 ) (* (- 15) x0 ) ) (- 12))) (not (< (+ (* 45 x1 ) (* 0 x0 ) (* 36 x0 ) (* 15 x0 ) (* 26 x4 ) (* (- 40) x3 ) ) 11)) ))
+(assert (not (> (+ (* (- 4) x0 ) (* 47 x1 ) (* (- 13) x0 ) (* 17 x4 ) (* (- 13) x4 ) (* (- 44) x4 ) (* (- 5) x3 ) (* (- 20) x3 ) (* 28 x2 ) ) 18)) )
+(assert (or (not (< (+ (* (- 18) x0 ) (* (- 48) x1 ) (* 37 x4 ) (* 46 x0 ) (* 11 x0 ) (* (- 33) x4 ) (* (- 5) x0 ) ) 35)) (>= (+ (* (- 13) x3 ) (* 36 x1 ) (* (- 7) x4 ) (* 37 x0 ) (* (- 37) x2 ) (* (- 42) x2 ) (* (- 11) x4 ) ) (- 9)) (= (+ (* 27 x2 ) (* 42 x1 ) (* (- 3) x1 ) (* (- 9) x4 ) (* 44 x2 ) (* (- 24) x3 ) (* (- 49) x3 ) (* 39 x0 ) (* 36 x0 ) (* 7 x4 ) ) (- 25)) ))
+(assert (or (< (+ (* (- 27) x4 ) (* 43 x4 ) ) (- 22)) (not (>= (+ (* (- 36) x3 ) (* (- 47) x1 ) (* (- 30) x2 ) ) (- 1))) (> (+ (* (- 37) x1 ) (* (- 29) x4 ) (* 19 x1 ) (* 26 x3 ) (* (- 50) x3 ) (* 23 x1 ) (* 38 x2 ) (* 23 x4 ) (* 27 x3 ) (* 6 x0 ) ) 8) ))
+(assert (or (not (<= (+ (* (- 25) x1 ) (* (- 46) x3 ) (* (- 11) x0 ) (* 6 x4 ) (* (- 30) x3 ) (* (- 7) x2 ) (* (- 30) x1 ) (* 35 x4 ) ) (- 4))) (not (<= (+ (* 8 x1 ) (* (- 27) x2 ) (* 32 x2 ) (* 39 x1 ) (* 21 x3 ) ) 21)) (< (+ (* (- 30) x0 ) (* 1 x3 ) (* (- 12) x2 ) (* 4 x1 ) (* (- 31) x1 ) (* 27 x2 ) (* 23 x1 ) (* 31 x2 ) ) 18) ))
+(assert (or (< (+ (* (- 30) x1 ) (* 44 x2 ) (* (- 26) x2 ) (* 42 x0 ) ) 7) (not (= (+ (* (- 8) x3 ) (* (- 26) x0 ) (* 4 x1 ) (* 25 x0 ) ) 33)) ))
+(assert (not (> (+ (* 27 x2 ) (* 11 x2 ) (* (- 12) x3 ) (* (- 9) x4 ) (* 28 x4 ) (* (- 46) x2 ) (* (- 24) x0 ) (* (- 15) x3 ) ) (- 41))) )
+(check-sat)
+(push 1)
+(assert (or (= (+ (* (- 49) x3 ) (* (- 15) x1 ) (* (- 43) x0 ) (* 20 x0 ) (* 48 x1 ) (* (- 41) x3 ) (* 23 x3 ) (* 29 x3 ) (* (- 29) x3 ) ) 46) (> (+ (* 29 x3 ) (* 34 x4 ) (* (- 33) x2 ) (* 33 x4 ) (* 9 x0 ) (* 26 x4 ) ) (- 4)) ))
+(assert (not (< (+ (* (- 6) x1 ) (* 5 x2 ) (* (- 14) x2 ) (* (- 23) x1 ) (* (- 15) x4 ) (* 3 x2 ) (* (- 35) x0 ) (* 44 x0 ) ) 1)) )
+(assert (or (not (> (+ (* (- 37) x1 ) (* (- 18) x4 ) (* (- 19) x2 ) (* (- 37) x1 ) (* 17 x4 ) (* (- 43) x2 ) (* (- 24) x4 ) ) (- 7))) (>= (+ (* 46 x3 ) (* 8 x0 ) (* 45 x3 ) ) (- 46)) (not (<= (+ (* (- 32) x4 ) (* 30 x4 ) (* 30 x3 ) (* (- 15) x3 ) (* 14 x2 ) (* 28 x0 ) (* 7 x3 ) (* 8 x0 ) ) (- 14))) ))
+(assert (or (not (>= (+ (* 45 x3 ) (* 3 x4 ) ) (- 8))) (not (< (+ (* (- 37) x0 ) (* (- 14) x1 ) (* 34 x4 ) (* 9 x4 ) (* (- 17) x2 ) ) (- 27))) ))
+(assert (or (>= (+ (* (- 32) x1 ) (* (- 11) x4 ) (* 16 x0 ) (* 0 x0 ) (* 41 x1 ) (* 5 x3 ) (* (- 28) x4 ) (* 27 x3 ) (* (- 11) x3 ) (* (- 16) x3 ) ) (- 26)) (not (> (+ (* 18 x2 ) (* (- 19) x0 ) (* 4 x1 ) (* 45 x0 ) (* (- 41) x2 ) (* (- 18) x4 ) ) 26)) (>= (+ (* (- 13) x3 ) (* 15 x0 ) (* 33 x2 ) (* (- 50) x2 ) (* (- 43) x0 ) (* 1 x1 ) (* 29 x2 ) (* 11 x4 ) (* 21 x4 ) ) 42) ))
+(assert (<= (+ (* 9 x4 ) (* (- 40) x3 ) (* (- 33) x1 ) (* 46 x1 ) ) (- 43)) )
+(assert (or (<= (+ (* 9 x1 ) (* 7 x3 ) (* 7 x0 ) (* 11 x3 ) (* 37 x0 ) (* 13 x4 ) (* (- 40) x4 ) (* (- 13) x2 ) (* (- 29) x3 ) (* 46 x1 ) (* 2 x1 ) ) 15) (= (+ (* 12 x3 ) (* 17 x1 ) (* (- 36) x4 ) (* (- 18) x1 ) (* 38 x1 ) (* 9 x1 ) (* (- 38) x1 ) ) (- 4)) (not (< (+ (* (- 36) x3 ) (* 11 x0 ) (* 46 x1 ) (* (- 31) x4 ) (* 25 x0 ) (* (- 50) x4 ) (* 40 x4 ) (* 41 x4 ) ) 7)) ))
+(assert (>= (+ (* 12 x4 ) (* (- 24) x0 ) (* (- 11) x4 ) (* 3 x2 ) (* (- 38) x2 ) (* (- 48) x2 ) (* 5 x4 ) (* 33 x3 ) ) (- 23)) )
+(assert (> (+ (* 15 x3 ) (* 31 x1 ) (* 8 x1 ) ) (- 33)) )
+(assert (not (<= (+ (* (- 41) x4 ) (* 33 x4 ) (* (- 29) x2 ) (* (- 20) x1 ) (* (- 28) x0 ) ) (- 13))) )
+(assert (or (not (< (+ (* 23 x3 ) (* (- 29) x1 ) (* (- 23) x0 ) (* (- 7) x4 ) (* 21 x2 ) (* (- 21) x0 ) ) (- 33))) (not (< (+ (* 30 x3 ) (* (- 30) x2 ) (* (- 30) x3 ) (* 30 x2 ) (* (- 10) x2 ) (* (- 3) x3 ) (* (- 22) x4 ) (* (- 48) x0 ) (* (- 9) x3 ) (* (- 6) x4 ) ) (- 30))) (not (<= (+ (* 2 x2 ) (* (- 31) x4 ) ) 3)) ))
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
diff --git a/test/regress/regress0/push-pop/arith/fuzz_5_2.smt2 b/test/regress/regress0/push-pop/arith/fuzz_5_2.smt2
new file mode 100644 (file)
index 0000000..cfcd80a
--- /dev/null
@@ -0,0 +1,92 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: unsat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LRA)
+(declare-fun x0 () Real)
+(declare-fun x1 () Real)
+(declare-fun x2 () Real)
+(declare-fun x3 () Real)
+(declare-fun x4 () Real)
+(assert (> (+ (* (- 32) x4 ) (* 46 x3 ) ) 21) )
+(assert (< (+ (* 12 x3 ) (* (- 7) x2 ) (* (- 7) x0 ) (* (- 49) x1 ) (* (- 32) x3 ) ) (- 17)) )
+(assert (or (not (>= (+ (* (- 10) x2 ) (* 37 x1 ) (* 33 x0 ) (* 33 x0 ) ) 29)) (not (<= (+ (* 25 x3 ) (* 32 x4 ) (* (- 27) x3 ) (* 13 x2 ) (* (- 22) x1 ) (* (- 8) x4 ) (* (- 1) x4 ) (* 9 x4 ) (* 1 x1 ) (* 40 x1 ) ) 41)) ))
+(assert (not (= (+ (* (- 12) x1 ) (* 5 x3 ) (* 36 x4 ) (* (- 35) x0 ) (* 18 x0 ) ) (- 12))) )
+(assert (>= (+ (* (- 25) x4 ) (* (- 20) x4 ) (* 12 x2 ) (* 3 x1 ) (* (- 26) x3 ) (* (- 20) x2 ) (* (- 13) x2 ) (* 35 x0 ) (* 30 x0 ) ) (- 10)) )
+(assert (or (not (= (+ (* (- 48) x1 ) (* 25 x0 ) (* 13 x4 ) ) 24)) (not (> (+ (* (- 24) x0 ) (* 24 x1 ) ) (- 19))) ))
+(assert (not (< (+ (* (- 12) x2 ) (* (- 25) x3 ) ) (- 32))) )
+(assert (not (<= (+ (* 28 x4 ) (* 11 x4 ) (* 0 x3 ) (* (- 22) x4 ) (* (- 37) x0 ) (* 2 x3 ) (* 39 x1 ) ) (- 24))) )
+(assert (or (not (>= (+ (* 34 x3 ) (* 36 x2 ) (* (- 39) x4 ) (* 33 x2 ) (* 39 x1 ) (* 22 x3 ) (* 9 x3 ) ) (- 17))) (not (= (+ (* 19 x1 ) (* (- 45) x3 ) (* 16 x1 ) (* (- 50) x1 ) (* (- 23) x1 ) ) (- 25))) ))
+(assert (or (<= (+ (* 24 x3 ) (* (- 17) x1 ) ) 7) (= (+ (* (- 8) x1 ) (* 39 x1 ) (* (- 5) x1 ) (* 19 x4 ) (* (- 28) x1 ) (* (- 11) x4 ) ) 38) ))
+(assert (< (+ (* 35 x4 ) (* (- 28) x3 ) (* (- 11) x0 ) (* 49 x3 ) (* 7 x2 ) (* 44 x3 ) (* (- 10) x4 ) (* (- 28) x4 ) (* (- 45) x1 ) (* 30 x4 ) (* (- 13) x1 ) ) (- 48)) )
+(assert (or (> (+ (* 28 x4 ) (* (- 16) x1 ) (* 47 x0 ) (* (- 25) x3 ) (* 6 x1 ) ) 26) (not (<= (+ (* 49 x4 ) (* (- 7) x2 ) (* (- 17) x3 ) (* 42 x0 ) (* (- 23) x1 ) (* (- 30) x4 ) (* 7 x0 ) (* (- 44) x3 ) (* 38 x2 ) (* (- 36) x1 ) ) (- 28))) ))
+(assert (or (>= (+ (* (- 45) x3 ) (* (- 47) x2 ) (* (- 37) x2 ) (* 19 x2 ) ) 7) (= (+ (* (- 30) x4 ) (* (- 2) x1 ) (* (- 34) x1 ) (* 6 x2 ) (* (- 15) x2 ) (* (- 40) x4 ) (* (- 32) x1 ) ) (- 37)) ))
+(assert (not (<= (+ (* 24 x1 ) (* 18 x0 ) (* (- 3) x2 ) (* 46 x2 ) (* (- 7) x4 ) (* (- 5) x4 ) ) 14)) )
+(assert (or (not (> (+ (* (- 17) x3 ) (* (- 40) x0 ) (* 41 x4 ) (* (- 41) x0 ) (* (- 17) x2 ) (* (- 28) x3 ) (* 4 x3 ) (* 19 x3 ) (* (- 15) x2 ) ) 18)) (<= (+ (* (- 12) x0 ) (* 21 x0 ) (* (- 12) x0 ) ) (- 22)) ))
+(assert (or (not (> (+ (* (- 29) x3 ) (* (- 14) x4 ) (* (- 17) x0 ) (* 36 x4 ) (* 42 x2 ) ) (- 10))) (not (<= (+ (* (- 16) x2 ) (* (- 24) x1 ) (* (- 17) x1 ) (* (- 29) x4 ) (* 47 x1 ) (* 34 x4 ) (* 2 x3 ) ) (- 20))) ))
+(assert (or (< (+ (* 19 x1 ) (* 40 x1 ) (* 3 x0 ) (* (- 3) x0 ) (* (- 50) x0 ) (* 5 x2 ) (* (- 9) x4 ) ) 31) (> (+ (* 33 x4 ) (* (- 50) x2 ) (* (- 15) x4 ) (* (- 1) x3 ) (* (- 10) x3 ) (* 41 x0 ) (* (- 42) x4 ) ) (- 38)) ))
+(check-sat)
+(push 1)
+(assert (or (= (+ (* 36 x1 ) (* 23 x1 ) (* 24 x1 ) (* 38 x0 ) (* 3 x1 ) (* (- 14) x2 ) (* 28 x0 ) (* 37 x0 ) ) 33) (<= (+ (* 34 x4 ) (* 2 x4 ) (* (- 20) x1 ) (* 18 x3 ) (* 39 x3 ) (* (- 44) x0 ) (* 18 x1 ) (* (- 1) x0 ) (* (- 15) x3 ) ) (- 13)) (<= (+ (* (- 10) x2 ) (* (- 11) x0 ) (* 30 x4 ) (* 22 x3 ) (* (- 6) x0 ) (* 35 x3 ) (* 6 x4 ) (* 2 x2 ) ) (- 26)) ))
+(assert (or (not (<= (+ (* (- 9) x0 ) (* (- 27) x4 ) (* 6 x3 ) ) 21)) (not (> (+ (* 18 x0 ) (* 42 x4 ) (* (- 7) x0 ) (* 6 x1 ) (* 26 x4 ) (* 38 x3 ) (* 10 x2 ) (* (- 41) x3 ) (* 37 x2 ) (* 30 x0 ) ) (- 41))) ))
+(assert (or (not (= (+ (* 48 x1 ) (* (- 38) x3 ) (* (- 15) x3 ) (* (- 2) x2 ) (* (- 17) x2 ) (* 45 x3 ) (* 32 x4 ) (* 32 x1 ) (* (- 46) x3 ) (* (- 34) x4 ) ) 15)) (not (<= (+ (* 14 x1 ) (* 17 x0 ) (* (- 33) x2 ) ) 20)) (<= (+ (* 19 x2 ) (* (- 25) x0 ) ) 19) ))
+(assert (or (not (>= (+ (* 29 x4 ) (* (- 28) x1 ) (* (- 23) x3 ) (* (- 50) x3 ) (* 43 x3 ) (* 31 x0 ) ) 7)) (not (< (+ (* 21 x0 ) (* 11 x3 ) (* (- 24) x1 ) (* (- 2) x2 ) (* 2 x3 ) (* (- 37) x3 ) (* (- 34) x3 ) ) (- 38))) ))
+(assert (not (<= (+ (* 29 x2 ) (* (- 38) x0 ) (* 17 x4 ) (* 31 x0 ) (* 44 x0 ) (* (- 10) x4 ) (* 18 x0 ) ) (- 49))) )
+(assert (< (+ (* 44 x4 ) (* (- 42) x4 ) (* 28 x0 ) (* 7 x0 ) (* (- 33) x0 ) (* 49 x4 ) (* 19 x1 ) ) (- 39)) )
+(assert (or (>= (+ (* 39 x3 ) (* (- 30) x4 ) (* 27 x4 ) (* 5 x4 ) (* (- 10) x2 ) (* 2 x1 ) (* (- 28) x4 ) (* (- 5) x2 ) ) 2) (= (+ (* 44 x1 ) (* (- 45) x1 ) (* 39 x3 ) (* (- 46) x1 ) (* (- 18) x0 ) (* (- 50) x3 ) (* (- 38) x3 ) (* 32 x1 ) (* (- 23) x1 ) (* 4 x4 ) (* 47 x2 ) ) 8) (not (= (+ (* (- 27) x3 ) (* 3 x1 ) (* (- 32) x2 ) ) (- 3))) ))
+(assert (or (not (> (+ (* 17 x2 ) (* (- 43) x0 ) (* (- 39) x2 ) (* 38 x0 ) ) 43)) (not (<= (+ (* (- 16) x4 ) (* (- 21) x4 ) (* (- 42) x3 ) (* 36 x1 ) (* (- 37) x1 ) ) 41)) ))
+(assert (or (> (+ (* 34 x3 ) (* 22 x1 ) ) 1) (not (<= (+ (* 1 x4 ) (* (- 45) x1 ) (* 28 x0 ) (* 34 x2 ) (* 26 x0 ) (* 3 x1 ) (* (- 33) x4 ) (* 18 x1 ) (* 33 x2 ) (* 15 x4 ) ) (- 25))) ))
+(assert (or (> (+ (* (- 43) x2 ) (* (- 16) x4 ) (* 48 x0 ) (* (- 9) x0 ) (* (- 48) x0 ) (* (- 3) x1 ) (* (- 14) x4 ) (* (- 45) x1 ) (* (- 38) x1 ) (* 35 x2 ) ) (- 18)) (< (+ (* (- 5) x2 ) (* 0 x2 ) (* 13 x1 ) (* 28 x0 ) (* 29 x3 ) (* (- 45) x2 ) (* 0 x0 ) (* 35 x1 ) (* (- 33) x2 ) ) 35) (< (+ (* (- 3) x0 ) (* (- 27) x0 ) (* 8 x2 ) (* 2 x0 ) (* 4 x4 ) ) 48) ))
+(check-sat)
+(push 1)
+(assert (= (+ (* (- 33) x3 ) (* 8 x2 ) (* (- 5) x4 ) (* (- 27) x1 ) (* 31 x4 ) (* (- 30) x2 ) (* 17 x2 ) (* (- 31) x3 ) (* 2 x2 ) ) 27) )
+(assert (not (= (+ (* 39 x2 ) (* 46 x3 ) (* (- 13) x1 ) (* 17 x0 ) (* 39 x1 ) (* (- 25) x0 ) ) 36)) )
+(assert (or (> (+ (* (- 2) x1 ) (* (- 9) x2 ) (* (- 20) x3 ) ) (- 4)) (> (+ (* (- 13) x4 ) (* (- 1) x2 ) (* 45 x2 ) (* 15 x2 ) (* (- 10) x4 ) (* 41 x2 ) (* (- 40) x1 ) ) 18) ))
+(assert (or (not (<= (+ (* (- 8) x4 ) (* (- 21) x3 ) (* (- 44) x1 ) ) 9)) (= (+ (* (- 27) x2 ) (* 49 x2 ) (* (- 14) x4 ) (* (- 28) x1 ) ) (- 49)) (< (+ (* (- 7) x3 ) (* 44 x3 ) ) 13) ))
+(assert (or (not (<= (+ (* (- 38) x2 ) (* 13 x1 ) (* (- 5) x0 ) (* 24 x2 ) (* (- 16) x4 ) (* (- 29) x0 ) ) 35)) (not (< (+ (* (- 39) x1 ) (* (- 40) x1 ) (* 37 x4 ) (* 47 x1 ) (* 19 x1 ) (* 46 x2 ) ) (- 44))) ))
+(check-sat)
+(pop 1)
+(assert (<= (+ (* 47 x1 ) (* (- 49) x2 ) (* (- 33) x3 ) (* 18 x4 ) (* (- 18) x1 ) (* (- 10) x4 ) (* (- 38) x0 ) (* (- 6) x2 ) (* 10 x4 ) (* (- 18) x3 ) (* (- 25) x0 ) ) (- 21)) )
+(assert (or (not (<= (+ (* (- 29) x1 ) (* 12 x3 ) (* 15 x3 ) (* (- 49) x0 ) (* 40 x2 ) (* (- 25) x4 ) ) 24)) (not (>= (+ (* 18 x4 ) (* (- 14) x0 ) ) (- 22))) (<= (+ (* (- 1) x0 ) (* (- 31) x3 ) (* 21 x1 ) (* 12 x4 ) (* (- 28) x2 ) (* 12 x1 ) (* 42 x4 ) (* (- 29) x3 ) (* 34 x4 ) (* 10 x2 ) ) 6) ))
+(assert (>= (+ (* 15 x1 ) (* (- 1) x4 ) (* (- 11) x0 ) (* (- 24) x1 ) (* 37 x3 ) ) (- 1)) )
+(assert (or (not (= (+ (* (- 1) x1 ) (* 22 x4 ) (* 5 x2 ) (* (- 29) x1 ) (* 15 x0 ) (* 46 x1 ) ) (- 40))) (< (+ (* (- 4) x0 ) (* 13 x2 ) ) 36) ))
+(assert (or (<= (+ (* 33 x3 ) (* 43 x4 ) (* (- 9) x1 ) (* 32 x4 ) (* 18 x3 ) (* (- 29) x3 ) (* (- 45) x0 ) (* 26 x3 ) ) (- 48)) (>= (+ (* 36 x4 ) (* (- 18) x1 ) (* 27 x4 ) (* (- 8) x2 ) (* 12 x0 ) (* (- 41) x2 ) (* 19 x0 ) (* 8 x4 ) (* (- 2) x0 ) (* 25 x3 ) ) (- 34)) ))
+(assert (or (>= (+ (* 40 x1 ) (* 35 x4 ) (* 29 x0 ) (* 28 x1 ) (* 22 x3 ) (* (- 8) x0 ) (* (- 18) x4 ) (* 48 x4 ) (* (- 48) x1 ) (* 45 x2 ) ) 10) (not (<= (+ (* 14 x1 ) (* (- 45) x3 ) (* 27 x2 ) (* (- 41) x1 ) (* (- 15) x4 ) (* 4 x1 ) (* (- 33) x1 ) (* 31 x2 ) (* (- 11) x1 ) (* 5 x4 ) (* (- 22) x2 ) ) (- 45))) (> (+ (* (- 7) x3 ) (* (- 42) x2 ) (* 9 x3 ) (* 39 x4 ) (* (- 3) x1 ) (* (- 38) x1 ) (* 35 x3 ) ) 49) ))
+(assert (or (not (< (+ (* 14 x2 ) (* 21 x1 ) (* (- 10) x1 ) (* 26 x2 ) (* (- 16) x0 ) (* 20 x1 ) (* (- 46) x4 ) (* (- 20) x4 ) ) (- 35))) (not (> (+ (* 35 x2 ) (* (- 40) x2 ) (* (- 4) x2 ) (* (- 36) x1 ) (* (- 11) x2 ) ) 41)) ))
+(check-sat)
+(pop 1)
+(assert (or (not (= (+ (* (- 42) x2 ) (* (- 42) x4 ) (* 5 x4 ) (* (- 40) x4 ) (* (- 19) x0 ) (* (- 46) x3 ) (* 18 x4 ) (* 11 x1 ) (* (- 34) x3 ) (* (- 3) x0 ) ) (- 20))) (> (+ (* 44 x1 ) (* 22 x4 ) (* (- 15) x4 ) (* 33 x1 ) (* (- 13) x4 ) (* 25 x2 ) ) 43) (not (> (+ (* 48 x2 ) (* (- 44) x0 ) (* 26 x3 ) (* (- 1) x0 ) (* (- 18) x2 ) (* 25 x1 ) (* (- 16) x1 ) (* 43 x0 ) (* 35 x0 ) (* 7 x2 ) ) 22)) ))
+(assert (or (>= (+ (* (- 39) x3 ) (* (- 22) x0 ) (* (- 13) x4 ) (* (- 26) x4 ) (* 47 x0 ) (* (- 35) x3 ) (* 47 x1 ) (* 44 x2 ) (* 6 x2 ) (* (- 25) x4 ) ) (- 49)) (> (+ (* (- 16) x3 ) (* 9 x3 ) (* (- 34) x3 ) ) 45) ))
+(assert (or (not (>= (+ (* (- 44) x2 ) (* 23 x3 ) ) (- 47))) (= (+ (* (- 10) x1 ) (* (- 30) x1 ) (* 27 x1 ) (* 47 x0 ) (* (- 43) x1 ) (* (- 41) x2 ) (* 15 x2 ) (* 47 x0 ) (* (- 34) x4 ) (* 11 x3 ) ) (- 42)) ))
+(assert (or (< (+ (* (- 18) x1 ) (* 1 x4 ) (* 20 x1 ) (* (- 16) x3 ) (* (- 11) x3 ) (* 38 x2 ) (* (- 47) x3 ) (* 5 x3 ) ) 14) (not (= (+ (* (- 43) x2 ) (* 32 x0 ) ) (- 30))) (not (> (+ (* (- 17) x4 ) (* (- 40) x4 ) (* (- 45) x2 ) (* (- 47) x4 ) (* 7 x3 ) ) 40)) ))
+(assert (not (= (+ (* 9 x2 ) (* 23 x0 ) (* (- 32) x4 ) (* 38 x0 ) ) 27)) )
+(check-sat)
+(push 1)
+(assert (or (= (+ (* 11 x0 ) (* (- 7) x3 ) (* 39 x4 ) ) 7) (not (< (+ (* 38 x4 ) (* 28 x0 ) (* (- 45) x4 ) (* 9 x2 ) (* 11 x0 ) (* (- 30) x0 ) ) (- 27))) (not (< (+ (* 48 x4 ) (* 2 x2 ) (* (- 46) x3 ) ) (- 37))) ))
+(assert (not (< (+ (* (- 6) x4 ) (* (- 47) x0 ) (* 40 x4 ) (* (- 14) x4 ) (* (- 29) x0 ) (* 47 x2 ) ) (- 16))) )
+(check-sat)
+(pop 1)
+(assert (not (>= (+ (* 23 x2 ) (* (- 30) x1 ) (* (- 48) x4 ) (* 27 x1 ) (* (- 16) x1 ) (* 27 x0 ) (* 10 x3 ) (* 13 x3 ) ) (- 47))) )
+(assert (or (< (+ (* 25 x3 ) (* 15 x0 ) ) (- 17)) (< (+ (* 3 x0 ) (* (- 11) x1 ) (* (- 10) x3 ) (* (- 19) x3 ) (* (- 11) x4 ) (* 5 x0 ) (* 46 x2 ) (* (- 48) x2 ) ) (- 39)) ))
+(assert (or (not (>= (+ (* 19 x3 ) (* 15 x4 ) (* 19 x1 ) (* (- 28) x3 ) ) 5)) (not (< (+ (* 2 x0 ) (* (- 32) x4 ) (* (- 22) x4 ) (* (- 49) x4 ) (* 28 x3 ) (* (- 47) x4 ) ) 30)) ))
+(assert (or (< (+ (* 32 x4 ) (* 45 x2 ) (* (- 44) x3 ) (* (- 19) x0 ) (* (- 30) x0 ) (* (- 42) x2 ) (* 44 x4 ) (* 48 x0 ) (* 46 x2 ) (* 24 x1 ) (* 12 x0 ) ) 2) (not (> (+ (* (- 8) x0 ) (* (- 16) x4 ) (* (- 5) x1 ) (* (- 42) x2 ) (* (- 33) x1 ) (* (- 44) x1 ) (* 49 x0 ) (* (- 32) x3 ) (* (- 33) x4 ) (* (- 31) x4 ) (* 27 x2 ) ) 18)) (not (> (+ (* 5 x0 ) (* 27 x2 ) (* (- 21) x0 ) (* 25 x4 ) (* 10 x1 ) (* (- 17) x2 ) (* (- 37) x1 ) (* (- 11) x2 ) ) 21)) ))
+(check-sat)
+(push 1)
+(assert (not (>= (+ (* 19 x2 ) (* 16 x2 ) (* (- 17) x4 ) (* (- 43) x4 ) ) 43)) )
+(assert (not (> (+ (* (- 6) x1 ) (* 4 x4 ) (* 9 x1 ) (* 32 x0 ) ) 11)) )
+(assert (or (not (> (+ (* 4 x1 ) (* (- 25) x3 ) (* 12 x0 ) (* 14 x1 ) (* 10 x2 ) ) (- 27))) (<= (+ (* 3 x4 ) (* (- 43) x0 ) (* 34 x4 ) (* 16 x1 ) ) (- 7)) ))
+(assert (not (> (+ (* (- 38) x1 ) (* (- 43) x2 ) (* (- 18) x3 ) (* (- 4) x2 ) (* 25 x1 ) (* 43 x0 ) (* (- 16) x0 ) (* 22 x2 ) ) 36)) )
+(assert (= (+ (* 22 x2 ) (* (- 23) x0 ) (* 47 x2 ) (* (- 31) x3 ) (* 4 x0 ) (* 9 x3 ) (* (- 48) x4 ) (* 48 x1 ) ) (- 2)) )
+(assert (or (>= (+ (* (- 31) x1 ) (* (- 16) x3 ) ) (- 28)) (<= (+ (* (- 36) x2 ) (* (- 11) x4 ) (* (- 29) x1 ) (* 26 x1 ) (* 36 x1 ) ) (- 19)) (<= (+ (* 39 x3 ) (* 28 x0 ) (* 19 x4 ) (* (- 37) x1 ) (* 39 x1 ) (* 14 x3 ) (* (- 43) x4 ) (* 8 x4 ) ) 42) ))
+(assert (< (+ (* 46 x0 ) (* 18 x3 ) (* (- 24) x3 ) (* 31 x4 ) (* 25 x3 ) ) 20) )
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
diff --git a/test/regress/regress0/push-pop/arith/fuzz_5_3.smt2 b/test/regress/regress0/push-pop/arith/fuzz_5_3.smt2
new file mode 100644 (file)
index 0000000..f79d3ee
--- /dev/null
@@ -0,0 +1,67 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LRA)
+(declare-fun x0 () Real)
+(declare-fun x1 () Real)
+(declare-fun x2 () Real)
+(declare-fun x3 () Real)
+(declare-fun x4 () Real)
+(assert (or (<= (+ (* 30 x0 ) (* 33 x1 ) (* 40 x1 ) (* 27 x3 ) (* 17 x3 ) (* (- 18) x0 ) (* (- 30) x0 ) ) (- 46)) (> (+ (* 48 x3 ) (* 16 x1 ) (* (- 20) x4 ) (* (- 22) x1 ) (* (- 11) x3 ) (* (- 27) x0 ) (* 8 x2 ) (* (- 17) x1 ) (* (- 21) x1 ) (* 19 x0 ) ) 8) (not (> (+ (* 24 x4 ) (* (- 7) x0 ) (* 11 x4 ) (* (- 17) x1 ) (* 3 x1 ) (* 36 x1 ) (* (- 16) x0 ) ) 16)) ))
+(assert (or (> (+ (* (- 30) x1 ) (* (- 6) x3 ) (* 33 x4 ) (* 9 x4 ) (* (- 47) x0 ) ) 30) (not (<= (+ (* 44 x3 ) (* (- 34) x1 ) (* (- 5) x2 ) (* (- 20) x1 ) (* 6 x1 ) (* (- 1) x4 ) (* 40 x2 ) (* 11 x4 ) (* 48 x3 ) (* 23 x3 ) (* (- 16) x2 ) ) 6)) ))
+(assert (or (not (> (+ (* (- 9) x3 ) (* (- 49) x4 ) (* (- 23) x2 ) (* (- 36) x2 ) (* (- 11) x2 ) (* 5 x1 ) (* 10 x2 ) (* (- 6) x1 ) (* 1 x1 ) (* (- 34) x0 ) ) (- 1))) (> (+ (* 48 x4 ) (* 20 x0 ) ) 47) (not (<= (+ (* 39 x1 ) (* (- 7) x3 ) (* (- 3) x4 ) (* 43 x4 ) (* (- 45) x1 ) ) (- 49))) ))
+(assert (>= (+ (* 38 x0 ) (* 11 x0 ) (* (- 23) x3 ) (* 5 x0 ) (* 7 x1 ) (* 25 x0 ) (* (- 30) x0 ) (* (- 21) x2 ) (* (- 20) x0 ) ) (- 26)) )
+(assert (or (> (+ (* (- 25) x1 ) (* (- 41) x4 ) (* 34 x3 ) (* 45 x3 ) (* (- 34) x2 ) (* (- 47) x2 ) ) (- 7)) (< (+ (* 33 x1 ) (* (- 7) x1 ) (* (- 50) x3 ) (* 15 x2 ) ) 32) (= (+ (* 23 x3 ) (* 24 x0 ) (* (- 16) x3 ) (* (- 17) x4 ) (* 12 x0 ) (* (- 7) x4 ) (* (- 12) x0 ) (* 24 x3 ) (* 6 x2 ) ) (- 3)) ))
+(assert (< (+ (* (- 11) x1 ) (* 29 x2 ) (* 10 x3 ) (* 21 x3 ) (* (- 27) x3 ) (* (- 18) x2 ) (* 31 x4 ) (* 29 x2 ) ) 46) )
+(assert (= (+ (* 38 x2 ) (* 2 x0 ) (* 21 x1 ) (* (- 20) x3 ) (* 46 x3 ) (* (- 20) x1 ) (* (- 41) x2 ) (* 20 x2 ) ) (- 18)) )
+(assert (or (= (+ (* 27 x3 ) (* 9 x4 ) (* (- 42) x4 ) (* (- 38) x2 ) (* (- 8) x3 ) (* (- 37) x1 ) (* 14 x4 ) (* 44 x0 ) (* 5 x4 ) (* (- 35) x0 ) (* (- 32) x2 ) ) 26) (> (+ (* (- 16) x0 ) (* (- 35) x0 ) (* 3 x3 ) (* (- 28) x3 ) (* 19 x4 ) (* (- 49) x3 ) (* (- 34) x1 ) (* (- 16) x0 ) (* 39 x4 ) (* 16 x4 ) (* 43 x3 ) ) (- 29)) (not (<= (+ (* (- 13) x4 ) (* 34 x0 ) (* (- 5) x1 ) (* 38 x3 ) (* 9 x3 ) (* 8 x1 ) (* (- 45) x1 ) (* (- 34) x4 ) ) 8)) ))
+(check-sat)
+(push 1)
+(assert (or (<= (+ (* (- 18) x3 ) (* 41 x1 ) (* 7 x1 ) (* (- 34) x2 ) (* (- 8) x3 ) (* (- 13) x3 ) (* 6 x0 ) (* (- 22) x1 ) (* 17 x4 ) ) 19) (< (+ (* (- 33) x3 ) (* 20 x1 ) (* (- 8) x1 ) (* 17 x4 ) (* 17 x0 ) (* 23 x2 ) (* (- 40) x1 ) (* (- 35) x2 ) (* (- 15) x3 ) (* (- 13) x2 ) (* 47 x2 ) ) 43) ))
+(assert (or (not (< (+ (* (- 2) x3 ) (* 1 x2 ) (* 11 x0 ) (* (- 32) x3 ) (* (- 7) x3 ) (* (- 5) x3 ) ) (- 40))) (< (+ (* (- 50) x2 ) (* (- 20) x2 ) ) 37) ))
+(assert (or (= (+ (* 19 x2 ) (* (- 10) x1 ) ) (- 34)) (<= (+ (* 7 x0 ) (* 46 x1 ) (* 7 x0 ) (* (- 37) x4 ) (* (- 1) x2 ) (* 23 x0 ) (* 9 x3 ) (* 10 x0 ) (* (- 37) x0 ) (* (- 41) x1 ) (* 0 x0 ) ) 24) ))
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(assert (= (+ (* (- 20) x1 ) (* 32 x3 ) (* (- 21) x2 ) (* (- 9) x2 ) (* 5 x1 ) (* 4 x4 ) (* 42 x4 ) (* 6 x4 ) (* 22 x2 ) (* 32 x3 ) (* 42 x3 ) ) 1) )
+(assert (or (not (>= (+ (* (- 39) x0 ) (* 19 x4 ) (* (- 1) x3 ) ) (- 47))) (not (<= (+ (* (- 40) x4 ) (* (- 10) x2 ) (* 22 x4 ) (* (- 20) x4 ) ) 30)) ))
+(assert (not (= (+ (* (- 23) x0 ) (* 33 x4 ) (* (- 43) x0 ) (* (- 48) x4 ) (* 8 x1 ) (* (- 34) x1 ) (* 24 x3 ) (* 37 x4 ) (* (- 27) x2 ) (* (- 16) x4 ) ) (- 35))) )
+(assert (not (>= (+ (* (- 1) x3 ) (* 19 x4 ) ) 29)) )
+(assert (or (not (> (+ (* (- 36) x3 ) (* (- 16) x0 ) (* 12 x3 ) (* (- 17) x2 ) (* 1 x3 ) ) 22)) (< (+ (* (- 8) x2 ) (* (- 40) x1 ) (* (- 17) x4 ) (* 37 x1 ) (* 41 x2 ) (* (- 37) x1 ) (* (- 46) x3 ) ) (- 33)) ))
+(assert (<= (+ (* 27 x1 ) (* 18 x4 ) ) 12) )
+(assert (or (not (> (+ (* (- 43) x0 ) (* 43 x0 ) (* 36 x2 ) (* 21 x1 ) (* 11 x1 ) (* 32 x4 ) ) 24)) (not (< (+ (* 33 x0 ) (* 29 x3 ) (* 39 x3 ) (* 17 x4 ) (* 21 x0 ) (* 32 x2 ) (* (- 38) x1 ) (* (- 37) x0 ) (* 23 x4 ) ) (- 43))) (not (<= (+ (* 35 x4 ) (* 23 x1 ) (* 23 x0 ) (* (- 39) x0 ) (* (- 13) x4 ) (* (- 10) x1 ) (* (- 33) x2 ) (* 28 x1 ) (* 41 x4 ) (* 43 x4 ) ) 23)) ))
+(check-sat)
+(pop 1)
+(assert (or (not (= (+ (* (- 12) x0 ) (* (- 26) x2 ) (* (- 34) x1 ) (* 46 x0 ) (* (- 38) x4 ) (* (- 45) x4 ) ) 0)) (not (>= (+ (* (- 23) x2 ) (* 9 x2 ) (* 48 x0 ) (* (- 6) x2 ) (* (- 40) x1 ) (* (- 19) x0 ) (* (- 21) x4 ) ) 13)) (not (<= (+ (* 45 x1 ) (* 28 x3 ) (* (- 13) x1 ) ) 40)) ))
+(check-sat)
+(push 1)
+(assert (or (>= (+ (* (- 31) x0 ) (* 39 x3 ) (* (- 43) x2 ) (* (- 12) x4 ) (* (- 46) x0 ) (* 46 x3 ) (* 19 x0 ) (* (- 8) x4 ) (* 41 x3 ) (* 34 x0 ) ) (- 10)) (not (>= (+ (* (- 20) x3 ) (* (- 19) x4 ) (* (- 33) x3 ) (* 18 x2 ) (* (- 47) x1 ) (* 28 x0 ) (* 6 x0 ) (* (- 23) x1 ) (* 6 x0 ) (* 0 x0 ) ) (- 25))) ))
+(assert (or (not (>= (+ (* 19 x0 ) (* 27 x4 ) (* (- 45) x4 ) (* (- 27) x2 ) (* (- 5) x3 ) (* (- 20) x0 ) ) 16)) (not (> (+ (* 45 x4 ) (* (- 22) x4 ) (* 46 x4 ) (* (- 1) x1 ) (* 12 x3 ) (* (- 7) x0 ) (* 15 x3 ) (* 28 x4 ) (* 26 x4 ) (* 35 x2 ) (* (- 35) x1 ) ) 11)) ))
+(assert (or (not (<= (+ (* 35 x2 ) (* 44 x3 ) (* 44 x2 ) ) (- 28))) (> (+ (* 39 x3 ) (* (- 6) x2 ) (* 2 x4 ) (* (- 5) x4 ) (* 45 x2 ) (* 40 x1 ) (* 4 x1 ) (* (- 8) x0 ) (* (- 33) x3 ) ) 45) ))
+(assert (or (> (+ (* 46 x4 ) (* (- 4) x0 ) ) 5) (>= (+ (* (- 21) x1 ) (* 22 x0 ) (* 19 x3 ) (* (- 34) x3 ) (* 41 x1 ) (* (- 1) x1 ) (* (- 39) x1 ) ) 41) ))
+(assert (<= (+ (* (- 38) x4 ) (* 43 x1 ) (* 46 x4 ) (* 14 x1 ) (* 49 x3 ) (* (- 18) x3 ) (* 38 x0 ) (* (- 36) x4 ) (* 24 x4 ) (* 28 x0 ) (* (- 14) x3 ) ) (- 23)) )
+(assert (not (< (+ (* 36 x0 ) (* (- 19) x4 ) (* 5 x3 ) ) 26)) )
+(assert (or (> (+ (* (- 46) x3 ) (* 1 x0 ) (* 37 x0 ) (* (- 44) x0 ) (* 45 x3 ) (* (- 19) x1 ) (* 14 x3 ) (* (- 16) x2 ) (* 35 x2 ) (* 47 x0 ) (* (- 21) x3 ) ) 30) (< (+ (* (- 11) x3 ) (* 7 x2 ) (* (- 5) x3 ) ) (- 37)) ))
+(assert (not (> (+ (* 23 x4 ) (* (- 45) x0 ) ) 6)) )
+(assert (or (not (> (+ (* 45 x4 ) (* (- 38) x2 ) (* (- 13) x4 ) (* 11 x0 ) (* (- 32) x0 ) (* 22 x2 ) ) (- 23))) (> (+ (* (- 32) x0 ) (* 24 x3 ) (* (- 26) x4 ) (* (- 6) x2 ) ) (- 20)) ))
+(check-sat)
+(push 1)
+(assert (or (>= (+ (* 19 x4 ) (* 39 x3 ) (* 0 x2 ) (* (- 46) x2 ) (* (- 44) x4 ) (* (- 2) x4 ) (* 1 x4 ) (* 14 x1 ) (* 47 x4 ) (* 3 x3 ) (* (- 12) x1 ) ) 0) (<= (+ (* 4 x0 ) (* 17 x4 ) (* (- 26) x0 ) (* (- 30) x1 ) (* 45 x0 ) ) 20) ))
+(assert (or (not (< (+ (* 24 x2 ) (* (- 17) x2 ) (* 3 x0 ) ) 32)) (not (< (+ (* (- 41) x4 ) (* 15 x4 ) (* 16 x4 ) ) (- 31))) (not (< (+ (* 24 x4 ) (* 1 x1 ) ) 19)) ))
+(assert (or (< (+ (* 2 x1 ) (* (- 12) x0 ) (* (- 37) x2 ) (* 22 x4 ) (* (- 47) x4 ) ) (- 22)) (>= (+ (* 13 x0 ) (* (- 49) x1 ) (* 41 x3 ) (* 10 x4 ) (* (- 25) x0 ) (* 37 x1 ) (* 32 x3 ) ) 10) (= (+ (* (- 50) x4 ) (* 49 x2 ) (* (- 49) x3 ) (* 9 x1 ) (* 1 x1 ) (* (- 30) x4 ) (* (- 44) x0 ) ) 33) ))
+(assert (or (< (+ (* (- 45) x1 ) (* 34 x3 ) (* (- 41) x4 ) (* 7 x3 ) (* (- 2) x1 ) (* 26 x4 ) (* (- 17) x1 ) (* (- 36) x2 ) (* 48 x2 ) (* (- 7) x1 ) (* 0 x4 ) ) (- 34)) (not (< (+ (* (- 34) x3 ) (* (- 22) x0 ) (* (- 17) x0 ) ) 35)) ))
+(assert (or (not (> (+ (* 48 x2 ) (* 13 x2 ) ) (- 24))) (> (+ (* (- 15) x4 ) (* 32 x3 ) ) (- 19)) (not (= (+ (* (- 8) x0 ) (* (- 15) x3 ) (* (- 39) x3 ) (* 15 x0 ) (* (- 49) x1 ) (* 16 x1 ) ) 33)) ))
+(assert (not (>= (+ (* 41 x2 ) (* 35 x4 ) (* 40 x4 ) (* 49 x3 ) ) 23)) )
+(assert (or (not (>= (+ (* (- 45) x0 ) (* (- 40) x4 ) (* 0 x1 ) (* 15 x1 ) (* (- 38) x3 ) (* 36 x1 ) (* (- 12) x1 ) (* 47 x0 ) (* 47 x2 ) (* (- 34) x3 ) ) (- 16))) (not (>= (+ (* (- 18) x4 ) (* (- 10) x0 ) (* 20 x2 ) (* (- 8) x4 ) (* (- 25) x1 ) (* (- 6) x2 ) (* 30 x2 ) ) (- 41))) (> (+ (* 26 x3 ) (* (- 22) x1 ) ) 23) ))
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
diff --git a/test/regress/regress0/push-pop/arith/fuzz_5_4.smt2 b/test/regress/regress0/push-pop/arith/fuzz_5_4.smt2
new file mode 100644 (file)
index 0000000..95a64c5
--- /dev/null
@@ -0,0 +1,55 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LRA)
+(declare-fun x0 () Real)
+(declare-fun x1 () Real)
+(declare-fun x2 () Real)
+(declare-fun x3 () Real)
+(declare-fun x4 () Real)
+(check-sat)
+(push 1)
+(assert (or (not (< (+ (* 22 x2 ) (* (- 45) x4 ) (* (- 27) x4 ) (* (- 23) x1 ) (* (- 38) x4 ) (* 12 x0 ) (* 11 x2 ) (* 6 x4 ) (* (- 34) x3 ) (* (- 28) x3 ) ) (- 7))) (> (+ (* 49 x3 ) (* (- 9) x3 ) (* (- 6) x2 ) (* (- 39) x2 ) (* 49 x3 ) (* (- 6) x4 ) (* 35 x4 ) (* (- 5) x1 ) ) 47) (not (= (+ (* (- 37) x0 ) (* 23 x0 ) (* 8 x0 ) (* (- 25) x3 ) (* (- 10) x4 ) (* (- 31) x3 ) (* (- 7) x1 ) (* (- 9) x2 ) (* 42 x4 ) (* 9 x2 ) (* (- 29) x1 ) ) (- 47))) ))
+(assert (or (> (+ (* 20 x0 ) (* 28 x0 ) (* 40 x0 ) (* (- 33) x1 ) (* 1 x3 ) (* 24 x2 ) (* (- 40) x1 ) (* 33 x1 ) ) (- 45)) (>= (+ (* 26 x0 ) (* 43 x3 ) (* 8 x3 ) (* (- 41) x0 ) (* 23 x0 ) (* (- 18) x2 ) (* 13 x0 ) (* 32 x0 ) (* (- 36) x0 ) (* (- 44) x0 ) ) 15) ))
+(assert (or (not (> (+ (* (- 40) x0 ) (* (- 34) x4 ) (* 41 x2 ) (* (- 40) x4 ) (* 44 x2 ) (* (- 3) x1 ) (* (- 44) x3 ) (* (- 29) x2 ) (* (- 31) x3 ) ) (- 14))) (< (+ (* (- 48) x0 ) (* 30 x4 ) (* (- 18) x4 ) ) 39) (>= (+ (* 1 x2 ) (* (- 31) x2 ) (* (- 8) x0 ) ) 31) ))
+(assert (or (not (= (+ (* (- 46) x0 ) (* 1 x3 ) (* (- 1) x3 ) (* 27 x2 ) ) (- 8))) (not (= (+ (* 26 x4 ) (* 39 x4 ) (* (- 14) x4 ) (* (- 9) x0 ) (* 18 x0 ) (* (- 15) x2 ) (* (- 4) x2 ) (* 0 x2 ) (* 48 x3 ) ) (- 8))) (<= (+ (* (- 20) x2 ) (* (- 34) x1 ) (* 49 x4 ) ) 33) ))
+(assert (or (not (>= (+ (* (- 2) x3 ) (* (- 4) x0 ) (* (- 3) x0 ) (* 4 x1 ) (* 30 x4 ) (* (- 49) x0 ) ) (- 20))) (> (+ (* 8 x0 ) (* 24 x0 ) (* 39 x3 ) (* (- 2) x0 ) (* (- 25) x0 ) (* (- 17) x1 ) (* (- 40) x1 ) (* (- 15) x2 ) (* 9 x3 ) (* (- 2) x3 ) (* 49 x4 ) ) (- 47)) (not (<= (+ (* 11 x0 ) (* 49 x4 ) (* 16 x4 ) (* 17 x4 ) (* 0 x2 ) ) 6)) ))
+(assert (or (not (< (+ (* 21 x1 ) (* 35 x1 ) (* (- 41) x3 ) (* 41 x1 ) (* 5 x3 ) (* (- 37) x2 ) (* 23 x4 ) (* (- 6) x3 ) (* (- 25) x4 ) (* (- 29) x0 ) ) (- 7))) (< (+ (* (- 2) x4 ) (* (- 46) x0 ) (* (- 20) x1 ) (* 27 x0 ) (* (- 2) x3 ) (* (- 39) x4 ) ) 8) ))
+(check-sat)
+(push 1)
+(assert (or (not (<= (+ (* (- 49) x1 ) (* 5 x1 ) (* 8 x3 ) (* (- 28) x1 ) (* 18 x2 ) (* 19 x0 ) (* (- 18) x1 ) (* (- 38) x0 ) ) 12)) (not (= (+ (* 5 x1 ) (* (- 21) x3 ) (* 34 x3 ) (* 34 x4 ) (* 32 x2 ) ) 49)) (= (+ (* (- 36) x1 ) (* 39 x0 ) (* (- 16) x3 ) (* 0 x3 ) (* 24 x3 ) ) 33) ))
+(assert (or (<= (+ (* (- 23) x0 ) (* 45 x1 ) (* 4 x4 ) (* 8 x0 ) (* 14 x0 ) (* (- 9) x1 ) (* 27 x3 ) (* 29 x3 ) (* (- 27) x3 ) ) 18) (not (< (+ (* (- 37) x4 ) (* (- 33) x3 ) (* 42 x1 ) (* (- 48) x0 ) (* 30 x2 ) (* 10 x4 ) ) (- 23))) (= (+ (* 6 x4 ) (* (- 8) x2 ) ) 47) ))
+(assert (not (< (+ (* 43 x2 ) (* (- 13) x0 ) (* 35 x2 ) (* (- 25) x2 ) ) (- 48))) )
+(assert (or (>= (+ (* (- 19) x4 ) (* 27 x0 ) (* (- 34) x2 ) (* (- 27) x1 ) (* 10 x0 ) (* 24 x2 ) (* (- 10) x4 ) (* (- 23) x2 ) (* (- 44) x1 ) (* 7 x1 ) (* 43 x3 ) ) 44) (> (+ (* 37 x0 ) (* (- 3) x3 ) (* (- 31) x3 ) (* 28 x4 ) (* 3 x1 ) (* 35 x2 ) (* (- 26) x3 ) (* (- 5) x2 ) (* 2 x3 ) ) 35) ))
+(assert (= (+ (* (- 23) x0 ) (* 44 x0 ) (* (- 35) x0 ) ) 45) )
+(assert (or (< (+ (* 3 x2 ) (* 31 x1 ) (* 10 x1 ) (* (- 16) x1 ) (* 13 x4 ) ) (- 19)) (not (< (+ (* (- 3) x2 ) (* 46 x4 ) (* 10 x4 ) (* 47 x1 ) (* 3 x1 ) (* (- 49) x2 ) (* (- 35) x2 ) ) 16)) (>= (+ (* (- 39) x2 ) (* (- 42) x0 ) (* 48 x2 ) (* (- 42) x4 ) (* (- 25) x3 ) (* 31 x3 ) (* 6 x3 ) (* 3 x0 ) (* 29 x4 ) (* 30 x0 ) (* (- 27) x1 ) ) 35) ))
+(assert (or (> (+ (* (- 44) x2 ) (* (- 33) x2 ) (* 24 x4 ) (* (- 9) x2 ) (* 22 x4 ) ) 0) (not (<= (+ (* (- 7) x1 ) (* 1 x1 ) (* 8 x3 ) (* (- 37) x2 ) (* (- 39) x3 ) (* 26 x1 ) (* (- 37) x2 ) (* (- 38) x4 ) (* (- 47) x2 ) (* 1 x0 ) ) (- 30))) ))
+(assert (or (not (= (+ (* 33 x2 ) (* (- 27) x2 ) (* 13 x0 ) (* (- 16) x3 ) (* 16 x1 ) (* (- 1) x2 ) (* (- 20) x1 ) (* (- 30) x2 ) (* 14 x3 ) (* (- 3) x0 ) ) (- 22))) (not (> (+ (* (- 27) x1 ) (* (- 26) x2 ) (* 20 x3 ) (* (- 3) x3 ) (* 21 x0 ) (* 36 x1 ) ) (- 16))) (< (+ (* (- 38) x0 ) (* 41 x2 ) (* (- 36) x4 ) ) 13) ))
+(assert (or (> (+ (* 5 x3 ) (* (- 9) x3 ) (* (- 5) x1 ) (* 6 x2 ) (* 46 x3 ) (* (- 25) x1 ) (* 29 x2 ) (* 3 x3 ) (* (- 15) x0 ) (* 30 x1 ) (* 10 x4 ) ) (- 26)) (= (+ (* 6 x4 ) (* (- 47) x3 ) (* (- 18) x1 ) (* 24 x1 ) (* 44 x0 ) (* (- 7) x2 ) ) (- 48)) ))
+(assert (or (not (> (+ (* 31 x2 ) (* 8 x1 ) (* (- 32) x1 ) (* (- 34) x3 ) (* (- 36) x3 ) (* (- 45) x2 ) (* (- 37) x2 ) (* 40 x3 ) (* 30 x3 ) (* 29 x4 ) ) (- 44))) (not (<= (+ (* (- 22) x0 ) (* (- 16) x2 ) ) 36)) (>= (+ (* 5 x3 ) (* (- 9) x4 ) ) (- 25)) ))
+(assert (or (not (> (+ (* 43 x3 ) (* (- 24) x3 ) (* 7 x3 ) (* (- 40) x3 ) (* (- 33) x3 ) (* (- 36) x2 ) (* 7 x2 ) (* 20 x2 ) ) (- 7))) (= (+ (* 37 x4 ) (* 40 x4 ) ) 30) ))
+(assert (or (>= (+ (* 43 x0 ) (* 4 x4 ) ) 21) (not (= (+ (* 1 x4 ) (* (- 44) x4 ) (* 48 x0 ) (* 9 x0 ) ) 18)) ))
+(check-sat)
+(push 1)
+(assert (or (not (>= (+ (* (- 48) x2 ) (* 4 x1 ) (* (- 2) x4 ) (* (- 41) x0 ) (* 9 x1 ) (* 14 x0 ) (* 28 x3 ) (* (- 12) x3 ) ) (- 20))) (= (+ (* (- 38) x1 ) (* (- 34) x4 ) (* 1 x4 ) (* (- 26) x4 ) (* (- 30) x2 ) (* 36 x3 ) (* (- 14) x2 ) (* (- 32) x2 ) (* 2 x4 ) ) (- 22)) ))
+(assert (or (not (<= (+ (* 42 x4 ) (* (- 46) x0 ) (* 41 x4 ) (* (- 13) x3 ) (* (- 36) x0 ) ) (- 44))) (not (= (+ (* 15 x4 ) (* 24 x2 ) ) 1)) (< (+ (* (- 4) x0 ) (* 0 x3 ) (* 10 x3 ) (* 18 x1 ) ) (- 33)) ))
+(assert (or (= (+ (* (- 19) x3 ) (* (- 39) x4 ) (* (- 5) x1 ) (* (- 39) x3 ) ) (- 48)) (= (+ (* 30 x3 ) (* (- 15) x1 ) (* 8 x1 ) (* (- 26) x1 ) (* 6 x4 ) (* 5 x1 ) (* 3 x4 ) (* (- 13) x2 ) (* (- 47) x2 ) (* 23 x4 ) (* 28 x4 ) ) 34) (= (+ (* (- 20) x4 ) (* (- 30) x3 ) ) (- 36)) ))
+(check-sat)
+(push 1)
+(assert (or (not (>= (+ (* 20 x0 ) (* 43 x2 ) (* (- 49) x2 ) (* (- 46) x2 ) (* 14 x3 ) (* 27 x4 ) (* 43 x2 ) (* 23 x3 ) (* (- 14) x1 ) (* 20 x2 ) ) 16)) (< (+ (* 45 x1 ) (* (- 31) x3 ) ) 25) (<= (+ (* 15 x4 ) (* 41 x4 ) (* 23 x4 ) (* (- 41) x2 ) ) 39) ))
+(check-sat)
+(pop 1)
+(assert (or (> (+ (* (- 43) x0 ) (* (- 49) x0 ) (* (- 8) x2 ) (* (- 29) x4 ) (* (- 32) x2 ) (* (- 37) x0 ) (* 31 x2 ) (* 27 x0 ) (* 21 x3 ) ) (- 30)) (> (+ (* (- 16) x4 ) (* 20 x1 ) (* 28 x3 ) (* 15 x4 ) (* (- 46) x3 ) (* 10 x2 ) (* 12 x2 ) (* 42 x3 ) (* 42 x3 ) (* 25 x0 ) (* (- 26) x2 ) ) (- 42)) (not (>= (+ (* 24 x4 ) (* 21 x3 ) (* 9 x4 ) (* (- 30) x0 ) (* (- 32) x4 ) ) 1)) ))
+(assert (or (<= (+ (* 10 x2 ) (* (- 23) x4 ) (* (- 41) x4 ) ) (- 31)) (>= (+ (* (- 5) x0 ) (* (- 6) x2 ) (* 8 x4 ) (* 34 x3 ) (* 14 x4 ) (* 36 x4 ) (* 23 x1 ) (* (- 11) x1 ) ) (- 26)) (not (< (+ (* 25 x1 ) (* (- 20) x3 ) (* (- 8) x2 ) (* 23 x4 ) (* 25 x3 ) (* 1 x2 ) ) 22)) ))
+(assert (or (not (<= (+ (* 28 x3 ) (* (- 41) x4 ) (* (- 33) x0 ) (* (- 29) x4 ) (* 8 x2 ) (* (- 42) x2 ) (* 23 x2 ) (* 25 x0 ) (* (- 13) x3 ) (* 44 x0 ) ) (- 40))) (<= (+ (* (- 8) x1 ) (* (- 22) x1 ) ) (- 27)) (not (< (+ (* 24 x2 ) (* (- 6) x0 ) (* 29 x2 ) (* (- 1) x2 ) (* (- 15) x0 ) (* (- 23) x4 ) (* 46 x3 ) (* 14 x4 ) (* 26 x3 ) (* 45 x3 ) ) (- 43))) ))
+(assert (or (not (>= (+ (* 48 x2 ) (* 12 x4 ) (* 41 x4 ) (* (- 19) x2 ) (* 31 x2 ) (* (- 45) x2 ) (* 2 x2 ) (* (- 7) x0 ) (* (- 50) x4 ) (* (- 16) x4 ) ) 14)) (> (+ (* 19 x4 ) (* (- 18) x0 ) (* (- 20) x0 ) (* 29 x3 ) ) (- 22)) ))
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
diff --git a/test/regress/regress0/push-pop/arith/fuzz_5_5.smt2 b/test/regress/regress0/push-pop/arith/fuzz_5_5.smt2
new file mode 100644 (file)
index 0000000..8b41d05
--- /dev/null
@@ -0,0 +1,79 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LRA)
+(declare-fun x0 () Real)
+(declare-fun x1 () Real)
+(declare-fun x2 () Real)
+(declare-fun x3 () Real)
+(declare-fun x4 () Real)
+(assert (or (not (= (+ (* 23 x2 ) (* (- 43) x4 ) (* (- 39) x3 ) (* 4 x2 ) ) (- 2))) (>= (+ (* (- 1) x2 ) (* 0 x0 ) (* 31 x1 ) (* 20 x1 ) (* (- 27) x2 ) ) 22) (<= (+ (* 42 x1 ) (* (- 4) x4 ) (* 12 x2 ) (* 36 x1 ) (* (- 36) x4 ) (* 18 x4 ) (* 47 x0 ) ) (- 19)) ))
+(assert (or (>= (+ (* 4 x1 ) (* (- 32) x2 ) (* 47 x1 ) ) 43) (< (+ (* 31 x4 ) (* 33 x0 ) (* 27 x2 ) (* 0 x0 ) (* (- 35) x0 ) (* 14 x4 ) (* 35 x0 ) (* 17 x4 ) (* 7 x3 ) (* (- 19) x3 ) ) (- 42)) ))
+(assert (not (>= (+ (* (- 36) x0 ) (* (- 28) x2 ) (* (- 49) x2 ) (* (- 17) x0 ) (* (- 16) x2 ) ) (- 40))) )
+(assert (or (not (>= (+ (* 35 x4 ) (* (- 42) x1 ) (* (- 31) x4 ) (* (- 36) x3 ) (* 28 x3 ) (* (- 10) x0 ) (* 37 x1 ) (* 11 x1 ) (* (- 29) x3 ) (* 31 x1 ) ) (- 28))) (>= (+ (* 26 x1 ) (* 12 x4 ) (* (- 7) x1 ) ) (- 39)) ))
+(check-sat)
+(push 1)
+(assert (or (< (+ (* 48 x4 ) (* 8 x4 ) (* (- 34) x4 ) (* (- 47) x4 ) (* (- 7) x3 ) (* 46 x1 ) (* (- 13) x1 ) (* (- 28) x3 ) (* (- 20) x3 ) (* 30 x0 ) (* (- 35) x1 ) ) 36) (>= (+ (* (- 22) x0 ) (* (- 14) x4 ) (* (- 22) x4 ) (* (- 25) x2 ) (* 1 x3 ) (* 18 x1 ) (* (- 34) x4 ) (* 12 x1 ) (* (- 8) x2 ) (* 33 x0 ) (* (- 47) x1 ) ) 15) ))
+(assert (>= (+ (* 12 x2 ) (* 14 x3 ) (* (- 36) x2 ) ) (- 49)) )
+(assert (or (> (+ (* (- 40) x1 ) (* 47 x1 ) (* 14 x1 ) (* 41 x4 ) (* (- 39) x3 ) (* (- 23) x4 ) (* 41 x2 ) (* (- 48) x1 ) (* (- 18) x2 ) (* 46 x1 ) ) (- 4)) (not (< (+ (* (- 36) x3 ) (* (- 47) x4 ) (* 3 x4 ) (* (- 5) x4 ) ) 13)) (< (+ (* (- 45) x2 ) (* (- 33) x2 ) (* 8 x2 ) (* 34 x4 ) ) (- 1)) ))
+(assert (or (<= (+ (* 25 x0 ) (* 41 x4 ) (* (- 33) x1 ) (* (- 50) x2 ) (* (- 39) x3 ) ) 3) (> (+ (* (- 48) x4 ) (* 13 x0 ) (* 44 x2 ) (* (- 26) x3 ) ) 3) (= (+ (* (- 3) x2 ) (* 48 x1 ) (* 16 x4 ) (* (- 27) x0 ) (* 43 x4 ) (* 16 x2 ) (* 15 x4 ) (* 49 x2 ) (* 35 x4 ) ) (- 30)) ))
+(assert (not (>= (+ (* (- 18) x4 ) (* 27 x4 ) ) 12)) )
+(assert (> (+ (* 42 x4 ) (* 10 x1 ) (* (- 3) x2 ) (* (- 38) x0 ) (* 49 x3 ) (* (- 8) x4 ) ) 1) )
+(check-sat)
+(pop 1)
+(assert (or (not (< (+ (* 27 x0 ) (* (- 19) x4 ) (* (- 7) x2 ) (* 41 x1 ) (* (- 9) x4 ) (* (- 37) x1 ) (* 47 x4 ) (* 3 x0 ) ) 46)) (not (>= (+ (* 45 x2 ) (* 35 x3 ) (* (- 20) x1 ) ) 6)) ))
+(check-sat)
+(push 1)
+(assert (>= (+ (* (- 10) x3 ) (* (- 29) x3 ) (* 39 x3 ) (* (- 6) x0 ) (* 16 x0 ) (* (- 1) x0 ) (* 34 x3 ) (* 24 x0 ) (* (- 44) x1 ) ) (- 41)) )
+(assert (< (+ (* (- 45) x3 ) (* 14 x2 ) (* (- 3) x0 ) (* (- 17) x3 ) (* 3 x2 ) (* (- 8) x2 ) ) (- 8)) )
+(check-sat)
+(pop 1)
+(assert (or (not (>= (+ (* (- 10) x0 ) (* (- 43) x3 ) (* (- 46) x1 ) (* (- 43) x2 ) (* (- 38) x4 ) (* (- 48) x3 ) (* (- 13) x2 ) (* (- 26) x1 ) (* (- 28) x0 ) (* 22 x3 ) (* 15 x0 ) ) (- 35))) (>= (+ (* 0 x1 ) (* (- 38) x0 ) ) 21) ))
+(assert (or (> (+ (* (- 3) x1 ) (* 20 x0 ) (* (- 41) x4 ) (* (- 21) x4 ) (* 40 x1 ) (* 33 x3 ) ) 14) (<= (+ (* (- 27) x0 ) (* (- 45) x2 ) (* (- 20) x4 ) (* (- 46) x2 ) (* 28 x2 ) ) (- 13)) ))
+(assert (or (<= (+ (* 14 x2 ) (* (- 14) x2 ) (* 11 x0 ) (* (- 26) x2 ) (* (- 27) x4 ) (* 18 x2 ) (* (- 35) x1 ) (* 17 x0 ) (* (- 28) x3 ) ) (- 26)) (not (> (+ (* (- 3) x1 ) (* (- 37) x3 ) (* (- 41) x3 ) (* (- 50) x3 ) (* (- 30) x2 ) (* (- 36) x0 ) (* (- 8) x3 ) (* 28 x1 ) (* 30 x1 ) (* 24 x1 ) (* (- 11) x3 ) ) 39)) (<= (+ (* 32 x3 ) (* 38 x1 ) (* (- 23) x2 ) (* 32 x3 ) (* 36 x3 ) (* 38 x2 ) (* 19 x2 ) (* (- 46) x0 ) (* (- 30) x0 ) (* (- 39) x1 ) (* 15 x3 ) ) (- 7)) ))
+(assert (or (not (<= (+ (* 47 x0 ) (* (- 10) x0 ) (* 14 x2 ) (* (- 49) x4 ) (* 19 x1 ) (* (- 14) x4 ) ) 5)) (>= (+ (* (- 14) x2 ) (* 34 x0 ) (* (- 1) x4 ) (* (- 43) x3 ) (* 41 x4 ) (* 3 x4 ) (* 0 x2 ) (* (- 6) x3 ) (* (- 4) x4 ) (* 33 x0 ) ) (- 40)) (not (> (+ (* (- 29) x0 ) (* 40 x2 ) (* (- 32) x4 ) (* 48 x2 ) (* 37 x2 ) (* (- 34) x2 ) (* (- 20) x1 ) (* 0 x0 ) ) 24)) ))
+(assert (or (< (+ (* (- 14) x3 ) (* (- 7) x4 ) (* (- 1) x4 ) ) (- 41)) (< (+ (* (- 2) x0 ) (* 24 x3 ) (* 25 x2 ) (* (- 24) x4 ) (* (- 43) x3 ) (* 49 x4 ) ) 39) ))
+(assert (or (= (+ (* 42 x2 ) (* (- 15) x0 ) (* 39 x3 ) (* (- 2) x0 ) (* 41 x0 ) ) (- 46)) (not (<= (+ (* (- 25) x0 ) (* (- 38) x1 ) (* (- 17) x1 ) (* (- 34) x0 ) (* 34 x0 ) (* 31 x2 ) (* 19 x1 ) ) (- 5))) ))
+(assert (or (< (+ (* (- 15) x1 ) (* 41 x1 ) (* (- 37) x0 ) (* (- 11) x4 ) (* (- 29) x0 ) (* 6 x1 ) ) 48) (< (+ (* (- 39) x3 ) (* 5 x2 ) ) (- 3)) ))
+(assert (or (< (+ (* 37 x4 ) (* (- 24) x2 ) (* 18 x1 ) (* (- 6) x1 ) (* 46 x1 ) (* (- 5) x2 ) (* 18 x0 ) ) (- 32)) (= (+ (* 46 x4 ) (* (- 48) x0 ) (* 38 x4 ) (* 9 x2 ) (* 43 x0 ) (* 33 x4 ) (* 34 x2 ) (* 36 x3 ) (* (- 6) x0 ) (* (- 27) x2 ) (* (- 32) x0 ) ) (- 31)) ))
+(assert (or (not (< (+ (* 43 x0 ) (* 4 x0 ) (* 26 x0 ) (* (- 1) x3 ) (* 15 x1 ) (* (- 7) x3 ) (* (- 25) x1 ) (* (- 12) x1 ) ) (- 41))) (< (+ (* 33 x2 ) (* (- 13) x4 ) (* 15 x2 ) ) 37) (not (>= (+ (* 41 x1 ) (* 14 x3 ) ) 47)) ))
+(assert (or (not (< (+ (* 0 x3 ) (* (- 16) x4 ) (* 27 x0 ) (* 34 x4 ) (* (- 49) x1 ) (* 30 x2 ) (* 3 x4 ) (* (- 12) x3 ) ) 20)) (> (+ (* 19 x1 ) (* 9 x1 ) (* (- 16) x3 ) (* 23 x4 ) (* (- 9) x2 ) (* (- 35) x1 ) (* (- 18) x1 ) (* 16 x2 ) (* 28 x1 ) ) (- 48)) (not (>= (+ (* 18 x3 ) (* (- 7) x4 ) (* 34 x1 ) (* (- 31) x0 ) ) (- 21))) ))
+(check-sat)
+(push 1)
+(assert (or (not (<= (+ (* 44 x4 ) (* 15 x2 ) (* 9 x2 ) (* 9 x1 ) (* 24 x1 ) ) (- 30))) (<= (+ (* (- 13) x1 ) (* 41 x3 ) ) 1) (= (+ (* 19 x0 ) (* 48 x2 ) (* 33 x2 ) (* 28 x1 ) (* (- 2) x3 ) ) (- 26)) ))
+(assert (or (= (+ (* (- 2) x0 ) (* 32 x3 ) (* (- 25) x0 ) ) (- 3)) (= (+ (* 16 x0 ) (* (- 45) x0 ) (* (- 43) x3 ) (* 20 x4 ) (* (- 19) x1 ) ) (- 45)) (not (> (+ (* 35 x2 ) (* (- 7) x2 ) (* 4 x3 ) (* 48 x2 ) (* 15 x4 ) (* (- 4) x2 ) (* 30 x2 ) (* 7 x4 ) (* (- 34) x4 ) (* 42 x0 ) (* 30 x3 ) ) 49)) ))
+(assert (> (+ (* (- 7) x0 ) (* 14 x4 ) (* (- 34) x0 ) (* 18 x4 ) (* (- 22) x0 ) (* 26 x3 ) (* 1 x4 ) ) (- 28)) )
+(assert (or (not (= (+ (* 22 x2 ) (* (- 24) x1 ) (* 46 x0 ) (* (- 42) x0 ) (* (- 42) x3 ) (* (- 10) x3 ) ) (- 47))) (not (>= (+ (* (- 34) x4 ) (* 6 x2 ) (* 21 x0 ) (* 41 x3 ) (* (- 43) x4 ) (* 7 x4 ) (* (- 21) x1 ) (* (- 6) x1 ) (* 8 x1 ) ) (- 28))) ))
+(assert (>= (+ (* (- 15) x2 ) (* (- 39) x0 ) (* (- 45) x4 ) (* 40 x2 ) (* 49 x3 ) (* (- 32) x2 ) (* (- 18) x2 ) (* (- 2) x4 ) (* (- 9) x4 ) ) (- 45)) )
+(assert (or (not (> (+ (* (- 1) x2 ) (* 33 x2 ) (* (- 50) x3 ) (* 6 x2 ) (* (- 8) x2 ) (* (- 6) x4 ) (* 16 x4 ) (* 23 x4 ) (* 31 x2 ) (* 42 x3 ) (* (- 45) x0 ) ) (- 10))) (> (+ (* 18 x0 ) (* (- 31) x2 ) (* (- 4) x3 ) (* 27 x0 ) (* 18 x4 ) (* (- 27) x0 ) (* 19 x1 ) (* (- 3) x3 ) (* 19 x3 ) ) 15) (> (+ (* (- 12) x1 ) (* (- 3) x2 ) (* (- 31) x0 ) (* 43 x1 ) (* 46 x2 ) (* 36 x3 ) (* 6 x0 ) (* (- 15) x4 ) (* 15 x1 ) (* 18 x0 ) ) 39) ))
+(assert (not (< (+ (* 47 x3 ) (* (- 27) x1 ) (* (- 18) x2 ) (* 9 x3 ) (* (- 42) x1 ) (* 37 x3 ) (* (- 2) x1 ) (* (- 36) x0 ) (* 0 x1 ) (* 21 x2 ) (* 10 x2 ) ) (- 14))) )
+(assert (or (not (< (+ (* 10 x1 ) (* 15 x4 ) (* (- 30) x2 ) (* 39 x0 ) (* (- 45) x4 ) (* (- 14) x3 ) (* 29 x3 ) (* 16 x0 ) (* (- 39) x4 ) ) (- 18))) (not (>= (+ (* 1 x3 ) (* (- 25) x2 ) (* 45 x1 ) (* (- 25) x2 ) (* 41 x3 ) (* (- 16) x0 ) (* (- 7) x3 ) ) 4)) (< (+ (* 35 x3 ) (* (- 32) x4 ) (* 24 x4 ) (* 45 x4 ) (* (- 34) x2 ) (* 1 x0 ) (* (- 49) x2 ) (* 39 x4 ) (* (- 48) x1 ) (* 30 x2 ) ) (- 23)) ))
+(check-sat)
+(pop 1)
+(assert (or (not (> (+ (* (- 6) x4 ) (* 34 x4 ) (* (- 45) x4 ) (* (- 5) x2 ) (* 36 x0 ) (* (- 33) x0 ) (* 2 x4 ) (* (- 21) x0 ) (* 24 x3 ) (* (- 19) x3 ) (* (- 43) x1 ) ) (- 38))) (<= (+ (* 49 x0 ) (* (- 19) x2 ) (* (- 4) x4 ) (* (- 49) x2 ) (* 6 x1 ) (* 35 x1 ) (* 36 x3 ) ) (- 26)) ))
+(assert (< (+ (* (- 47) x2 ) (* 28 x1 ) (* 29 x0 ) (* 49 x2 ) (* 49 x0 ) (* (- 43) x4 ) (* 3 x0 ) (* (- 5) x3 ) (* 16 x0 ) (* 33 x1 ) ) 24) )
+(check-sat)
+(push 1)
+(assert (or (> (+ (* (- 27) x4 ) (* (- 23) x3 ) (* (- 23) x2 ) (* 10 x0 ) (* (- 40) x2 ) ) 48) (not (= (+ (* 6 x2 ) (* (- 49) x3 ) (* (- 5) x1 ) ) 3)) (not (> (+ (* (- 3) x4 ) (* (- 31) x3 ) (* 3 x0 ) (* (- 9) x4 ) (* 18 x1 ) (* 8 x1 ) ) 45)) ))
+(assert (or (not (< (+ (* (- 40) x2 ) (* (- 29) x3 ) (* (- 32) x3 ) (* 15 x4 ) (* (- 23) x0 ) (* 8 x4 ) (* (- 30) x2 ) (* 26 x3 ) (* (- 2) x1 ) (* (- 14) x1 ) (* 7 x2 ) ) 6)) (not (> (+ (* (- 12) x4 ) (* 30 x4 ) (* 36 x1 ) (* (- 20) x2 ) (* 11 x2 ) ) (- 50))) ))
+(assert (or (not (= (+ (* 31 x1 ) (* 34 x3 ) (* (- 31) x2 ) (* (- 12) x0 ) (* 29 x2 ) (* 13 x2 ) (* 16 x2 ) (* (- 42) x3 ) (* 32 x2 ) (* 18 x3 ) ) 18)) (> (+ (* (- 47) x4 ) (* 20 x2 ) (* (- 27) x1 ) ) (- 21)) ))
+(assert (> (+ (* 21 x4 ) (* (- 14) x3 ) (* (- 48) x0 ) (* (- 6) x2 ) (* 20 x4 ) (* 28 x4 ) (* 43 x3 ) (* 23 x1 ) (* 47 x1 ) ) (- 49)) )
+(assert (> (+ (* 21 x4 ) (* 45 x2 ) (* 8 x1 ) (* (- 40) x1 ) (* (- 34) x1 ) (* (- 19) x1 ) (* 0 x1 ) ) (- 23)) )
+(assert (< (+ (* (- 34) x2 ) (* (- 45) x4 ) (* 3 x0 ) (* (- 33) x2 ) ) 18) )
+(assert (or (<= (+ (* 25 x2 ) (* (- 30) x0 ) (* 7 x0 ) (* 34 x1 ) (* (- 43) x0 ) (* 18 x4 ) (* (- 43) x4 ) (* 19 x2 ) (* (- 21) x3 ) (* 35 x3 ) (* 5 x4 ) ) (- 12)) (not (> (+ (* (- 33) x2 ) (* 26 x3 ) (* (- 25) x4 ) ) (- 46))) ))
+(check-sat)
+(pop 1)
+(assert (or (not (>= (+ (* (- 38) x3 ) (* (- 6) x4 ) (* (- 19) x4 ) (* (- 45) x1 ) (* (- 46) x2 ) ) 40)) (not (<= (+ (* (- 14) x1 ) (* 45 x3 ) (* (- 42) x4 ) (* 38 x2 ) (* 26 x0 ) (* 32 x0 ) (* 19 x2 ) (* 45 x1 ) (* 11 x1 ) (* (- 38) x2 ) ) (- 45))) ))
+(assert (not (> (+ (* 27 x2 ) (* (- 11) x4 ) (* (- 30) x2 ) ) (- 23))) )
+(assert (or (<= (+ (* 44 x2 ) (* (- 26) x3 ) (* (- 13) x1 ) ) 44) (= (+ (* 41 x0 ) (* 13 x4 ) (* (- 15) x2 ) (* (- 41) x4 ) (* (- 36) x4 ) (* 5 x2 ) ) (- 45)) (not (= (+ (* 41 x1 ) (* (- 45) x1 ) (* 38 x3 ) (* 1 x4 ) (* 25 x2 ) (* 8 x4 ) (* 23 x0 ) (* 27 x2 ) ) 15)) ))
+(assert (or (= (+ (* (- 42) x3 ) (* 37 x1 ) (* 48 x3 ) (* 41 x4 ) (* (- 18) x0 ) (* (- 2) x2 ) (* (- 32) x2 ) (* (- 14) x1 ) (* (- 49) x4 ) (* 8 x4 ) (* 34 x1 ) ) 34) (not (< (+ (* 4 x3 ) (* (- 8) x0 ) (* (- 10) x1 ) (* 24 x3 ) (* (- 32) x3 ) (* 14 x2 ) (* 4 x4 ) (* (- 6) x1 ) (* (- 16) x3 ) (* 41 x2 ) (* (- 19) x2 ) ) 42)) (< (+ (* (- 24) x2 ) (* (- 14) x2 ) (* (- 15) x2 ) (* (- 31) x0 ) (* 21 x2 ) (* (- 18) x4 ) (* (- 11) x0 ) (* 19 x1 ) ) (- 47)) ))
+(check-sat)
+(push 1)
diff --git a/test/regress/regress0/push-pop/arith/fuzz_5_6.smt2 b/test/regress/regress0/push-pop/arith/fuzz_5_6.smt2
new file mode 100644 (file)
index 0000000..8da0aeb
--- /dev/null
@@ -0,0 +1,50 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LRA)
+(declare-fun x0 () Real)
+(declare-fun x1 () Real)
+(declare-fun x2 () Real)
+(declare-fun x3 () Real)
+(declare-fun x4 () Real)
+(assert (or (= (+ (* 24 x2 ) (* (- 12) x4 ) (* (- 11) x2 ) (* 21 x1 ) ) (- 25)) (not (< (+ (* (- 42) x2 ) (* 19 x2 ) (* (- 48) x1 ) (* 37 x0 ) ) 38)) ))
+(assert (< (+ (* (- 40) x2 ) (* 1 x3 ) (* (- 30) x4 ) (* (- 45) x2 ) (* 39 x3 ) ) (- 6)) )
+(assert (or (not (> (+ (* 26 x0 ) (* (- 42) x1 ) (* (- 40) x2 ) (* (- 33) x0 ) (* 1 x2 ) (* (- 5) x4 ) (* 46 x4 ) (* 13 x1 ) (* (- 49) x4 ) (* (- 22) x4 ) (* (- 6) x1 ) ) (- 16))) (not (<= (+ (* 48 x3 ) (* 27 x0 ) (* (- 23) x2 ) (* (- 35) x3 ) ) 37)) (not (<= (+ (* 25 x0 ) (* 16 x1 ) (* 47 x2 ) (* (- 22) x0 ) ) 10)) ))
+(assert (>= (+ (* 38 x0 ) (* 6 x1 ) (* (- 48) x1 ) (* (- 27) x4 ) (* 33 x1 ) (* (- 14) x2 ) (* 40 x4 ) (* 26 x3 ) ) 42) )
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(assert (or (<= (+ (* (- 32) x2 ) (* 30 x1 ) (* 41 x2 ) (* (- 37) x1 ) ) (- 21)) (< (+ (* 9 x0 ) (* (- 1) x2 ) (* 48 x1 ) (* (- 47) x0 ) (* (- 22) x4 ) (* 49 x0 ) (* (- 10) x4 ) (* 9 x1 ) (* (- 30) x4 ) (* 38 x2 ) (* 5 x0 ) ) 19) ))
+(check-sat)
+(push 1)
+(assert (or (< (+ (* 9 x4 ) (* 25 x1 ) (* 47 x4 ) (* (- 26) x1 ) (* (- 10) x2 ) (* 28 x3 ) (* (- 37) x2 ) (* (- 22) x2 ) (* 23 x1 ) (* (- 36) x2 ) ) (- 10)) (< (+ (* (- 31) x2 ) (* (- 6) x4 ) (* (- 28) x4 ) (* 13 x0 ) (* 21 x4 ) ) 40) ))
+(check-sat)
+(pop 1)
+(assert (not (> (+ (* (- 44) x3 ) (* (- 40) x3 ) (* (- 46) x4 ) (* (- 1) x4 ) (* 26 x3 ) (* (- 27) x4 ) (* 26 x4 ) (* 21 x4 ) (* 44 x0 ) (* (- 3) x3 ) ) (- 41))) )
+(assert (or (not (< (+ (* 22 x2 ) (* (- 4) x0 ) ) (- 28))) (<= (+ (* 41 x1 ) (* 7 x4 ) ) (- 10)) ))
+(assert (not (<= (+ (* (- 21) x2 ) (* (- 6) x3 ) (* (- 24) x3 ) (* (- 17) x1 ) (* 11 x1 ) (* (- 5) x0 ) ) (- 45))) )
+(assert (or (< (+ (* 16 x2 ) (* 48 x3 ) (* 20 x2 ) (* (- 1) x2 ) (* 43 x0 ) (* 15 x0 ) (* (- 33) x0 ) ) 44) (not (<= (+ (* (- 46) x4 ) (* 22 x0 ) (* (- 10) x3 ) (* (- 27) x0 ) (* (- 11) x4 ) (* (- 32) x0 ) (* 17 x3 ) (* (- 39) x4 ) (* (- 8) x3 ) (* (- 25) x1 ) ) (- 7))) ))
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(assert (or (not (< (+ (* (- 5) x2 ) (* (- 22) x3 ) (* 2 x0 ) (* 42 x1 ) (* (- 29) x2 ) (* 12 x3 ) (* 16 x3 ) (* (- 19) x0 ) (* (- 42) x0 ) (* (- 6) x1 ) ) 40)) (> (+ (* 27 x2 ) (* (- 28) x2 ) (* 7 x0 ) (* 9 x1 ) (* 14 x2 ) (* 4 x3 ) (* (- 16) x3 ) (* 41 x1 ) ) (- 42)) ))
+(assert (or (= (+ (* (- 36) x4 ) (* 5 x0 ) (* 2 x4 ) ) (- 16)) (< (+ (* (- 10) x1 ) (* 13 x3 ) (* 39 x4 ) (* (- 47) x3 ) (* (- 39) x0 ) (* 24 x2 ) (* 5 x2 ) (* (- 45) x2 ) (* 24 x1 ) ) (- 21)) ))
+(check-sat)
+(push 1)
+(assert (or (< (+ (* (- 7) x3 ) (* 35 x2 ) (* (- 42) x1 ) (* 43 x3 ) (* 27 x3 ) (* (- 47) x2 ) (* (- 5) x2 ) (* 13 x0 ) (* 36 x4 ) ) (- 38)) (not (<= (+ (* 27 x0 ) (* 25 x1 ) (* 36 x0 ) (* 46 x2 ) (* (- 9) x2 ) (* 4 x1 ) (* (- 6) x3 ) (* (- 6) x4 ) (* (- 22) x2 ) (* (- 19) x3 ) (* (- 25) x3 ) ) (- 22))) ))
+(assert (or (= (+ (* (- 13) x3 ) (* 3 x4 ) (* (- 25) x2 ) (* (- 26) x0 ) ) (- 38)) (< (+ (* 13 x2 ) (* (- 44) x3 ) (* 12 x2 ) (* (- 6) x2 ) (* 25 x2 ) (* 27 x2 ) ) (- 50)) ))
+(assert (or (not (= (+ (* (- 18) x4 ) (* (- 31) x1 ) ) (- 13))) (= (+ (* (- 42) x3 ) (* 10 x2 ) (* 29 x0 ) (* 0 x4 ) (* (- 19) x2 ) ) (- 38)) (= (+ (* (- 47) x4 ) (* (- 36) x1 ) (* 11 x1 ) (* (- 50) x1 ) (* 1 x0 ) (* (- 33) x3 ) (* 20 x2 ) (* (- 32) x2 ) (* (- 30) x0 ) (* 42 x2 ) (* (- 21) x1 ) ) 21) ))
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
diff --git a/test/regress/regress0/push-pop/boolean/Makefile b/test/regress/regress0/push-pop/boolean/Makefile
new file mode 100644 (file)
index 0000000..45ab9cd
--- /dev/null
@@ -0,0 +1,8 @@
+topdir = ../../../../..
+srcdir = test/regress/regress0/push-pop/boolean
+
+include $(topdir)/Makefile.subdir
+
+# synonyms for "check"
+.PHONY: test
+test: check
diff --git a/test/regress/regress0/push-pop/boolean/Makefile.am b/test/regress/regress0/push-pop/boolean/Makefile.am
new file mode 100644 (file)
index 0000000..c04939b
--- /dev/null
@@ -0,0 +1,88 @@
+SUBDIRS = . 
+
+BINARY = cvc4
+LOG_COMPILER = @srcdir@/../../../run_regression
+AM_LOG_FLAGS = $(RUN_REGRESSION_ARGS) @top_builddir@/src/main/$(BINARY)
+
+if AUTOMAKE_1_11
+# old-style (pre-automake 1.12) test harness
+TESTS_ENVIRONMENT = \
+       $(TESTS_ENVIRONMENT) $(LOG_COMPILER) \
+       $(AM_LOG_FLAGS) $(LOG_FLAGS)
+endif
+
+MAKEFLAGS = -k
+
+# These are run for all build profiles.
+# If a test shouldn't be run in e.g. competition mode,
+# put it below in "TESTS +="
+
+# Regression tests for SMT inputs
+CVC_TESTS =
+
+SMT2_TESTS = \
+       fuzz_1.smt2 \
+       fuzz_2.smt2 \
+       fuzz_3.smt2 \
+       fuzz_4.smt2 \
+       fuzz_5.smt2 \
+       fuzz_6.smt2 \
+       fuzz_7.smt2 \
+       fuzz_8.smt2 \
+       fuzz_9.smt2 \
+       fuzz_10.smt2 \
+       fuzz_11.smt2 \
+       fuzz_12.smt2 \
+       fuzz_13.smt2 \
+       fuzz_14.smt2 \
+       fuzz_15.smt2 \
+       fuzz_16.smt2 \
+       fuzz_18.smt2 \
+       fuzz_19.smt2 \
+       fuzz_20.smt2 \
+       fuzz_21.smt2 \
+       fuzz_22.smt2 \
+       fuzz_23.smt2 \
+       fuzz_24.smt2 \
+       fuzz_25.smt2 \
+       fuzz_26.smt2 \
+       fuzz_27.smt2 \
+       fuzz_28.smt2 \
+       fuzz_29.smt2 \
+       fuzz_30.smt2 \
+       fuzz_31.smt2 \
+       fuzz_32.smt2 \
+       fuzz_33.smt2 \
+       fuzz_34.smt2 \
+       fuzz_35.smt2 \
+       fuzz_36.smt2 \
+       fuzz_37.smt2 \
+       fuzz_38.smt2 \
+       fuzz_39.smt2 \
+       fuzz_40.smt2 \
+       fuzz_41.smt2 \
+       fuzz_42.smt2 \
+       fuzz_43.smt2 \
+       fuzz_44.smt2 \
+       fuzz_45.smt2 \
+       fuzz_46.smt2 \
+       fuzz_47.smt2 \
+       fuzz_48.smt2 \
+       fuzz_49.smt2 \
+       fuzz_50.smt2 \
+       fuzz_51.smt2 \
+       fuzz_52.smt2 
+
+BUG_TESTS = 
+
+TESTS =        $(SMT_TESTS) $(SMT2_TESTS) $(CVC_TESTS) $(BUG_TESTS)
+
+EXTRA_DIST = $(TESTS) 
+
+# synonyms for "check" in this directory
+.PHONY: regress regress0 test
+regress regress0 test: check
+
+# do nothing in this subdir
+.PHONY: regress1 regress2 regress3
+regress1 regress2 regress3:
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_1.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_1.smt2
new file mode 100644 (file)
index 0000000..a3440c7
--- /dev/null
@@ -0,0 +1,63 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(declare-fun x4 () Bool)
+(declare-fun x5 () Bool)
+(declare-fun x6 () Bool)
+(declare-fun x7 () Bool)
+(declare-fun x8 () Bool)
+(declare-fun x9 () Bool)
+(assert (or (and (or (and (and (or (and (and (and x6 x1) (not x7)) (not (and x5 x9))) (or (or (and x8 x7) (or x5 x4)) (and (and x3 x2) (and x2 x9)))) (and (or (not (or x8 x3)) (and (or x1 x0) (not x9))) (or (or (and x7 x1) (not x5)) (not (and x1 x8))))) (not (and (and (or (and x4 x2) (or x5 x5)) (and (and x4 x6) (not x8))) (and (or (or x7 x4) (and x3 x1)) (or (and x8 x7) (or x9 x8)))))) (or (or (or (and (not (not x6)) (or (and x1 x5) (or x5 x2))) (or (not (or x3 x1)) (and (not x3) (or x0 x9)))) (and (or (not (or x0 x7)) (or (or x8 x3) (or x5 x9))) (or (or (not x3) (and x0 x5)) (and (or x7 x8) (or x6 x7))))) (not (not (not (and (and x0 x3) (and x1 x0))))))) (and (and (or (and (and (not (not x0)) (or (or x3 x4) (and x0 x9))) (not (not (and x1 x5)))) (not (not (or (and x7 x5) (not x0))))) (or (not (and (or (or x0 x9) (not x8)) (not (and x4 x5)))) (not (or (and (and x9 x3) (not x8)) (or (or x4 x9) (and x9 x7)))))) (and (or (not (and (not (not x8)) (or (not x8) (or x2 x1)))) (or (or (not (not x6)) (and (and x5 x2) (or x3 x8))) (not (and (or x7 x7) (or x5 x2))))) (or (or (and (not (not x2)) (and (or x2 x9) (or x8 x5))) (or (or (and x3 x4) (and x7 x5)) (and (not x1) (not x6)))) (or (or (and (not x4) (and x3 x3)) (and (not x5) (or x7 x9))) (not (and (not x8) (and x5 x0)))))))) (or (not (or (or (not (and (or (not x5) (and x0 x6)) (not (not x0)))) (and (not (or (or x5 x1) (or x4 x0))) (and (not (or x4 x9)) (or (or x4 x1) (or x7 x8))))) (or (or (not (or (and x2 x3) (and x1 x4))) (not (and (and x2 x3) (or x5 x7)))) (not (not (or (or x7 x9) (and x3 x5))))))) (not (not (or (not (or (or (not x0) (not x9)) (or (or x3 x9) (or x9 x1)))) (or (and (not (not x1)) (and (and x9 x3) (or x0 x8))) (or (and (and x3 x7) (or x6 x8)) (not (or x9 x1))))))))))
+(check-sat)
+(push 1)
+(assert (and (not (or (not (or (not (not x3)) (and (and x2 x3) (and x9 x3)))) (or (or (or (and x5 x8) (and x4 x6)) (not (or x7 x3))) (not (and (or x8 x6) (and x4 x7)))))) (or (or (not (not (or (and x5 x1) (or x8 x3)))) (and (not (and (not x5) (not x1))) (or (not (not x0)) (not (not x6))))) (or (and (not (and (or x1 x2) (and x5 x4))) (and (not (and x3 x9)) (or (not x9) (not x7)))) (and (not (and (or x6 x2) (or x9 x9))) (or (and (not x9) (or x4 x4)) (not (and x4 x7))))))))
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(assert (not (not (not (and (not (and (or (not (not x7)) (or (and x6 x1) (not x6))) (or (and (or x4 x3) (not x3)) (or (or x4 x1) (not x4))))) (not (or (and (not (not x4)) (not (and x5 x6))) (not (and (or x2 x1) (or x3 x7))))))))))
+(check-sat)
+(push 1)
+(assert (not (and (not (not x1)) (or (or x8 x7) (and x1 x2)))))
+(check-sat)
+(pop 1)
+(check-sat)
+(pop 1)
+(assert (not (or x6 x2)))
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(assert (or (and (not (and (and x3 x6) (and x6 x9))) (not (or (and x1 x6) (and x5 x1)))) (and (not (or (and x2 x8) (not x4))) (or (not (not x3)) (or (not x3) (or x1 x7))))))
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(assert (not (not (or (not (and (not (not (and (not (not x5)) (or (not x3) (or x1 x7))))) (not (or (or (or (and x8 x9) (or x6 x8)) (or (not x6) (not x2))) (not (and (not x8) (or x3 x9))))))) (or (and (and (and (and (and (and x7 x9) (and x3 x2)) (not (and x1 x4))) (and (not (not x1)) (and (or x8 x3) (or x3 x4)))) (and (and (or (and x4 x6) (and x9 x2)) (not (or x9 x1))) (not (and (or x6 x8) (not x2))))) (and (and (or (and (or x1 x2) (and x4 x8)) (or (or x7 x4) (or x3 x1))) (and (not (not x2)) (or (and x3 x0) (not x9)))) (not (not (not (not x1)))))) (and (or (not (not (or (or x2 x9) (or x8 x8)))) (or (or (not (and x5 x2)) (not (or x4 x5))) (and (not (or x6 x9)) (not (not x7))))) (not (and (not (not (or x5 x4))) (and (or (and x1 x7) (or x2 x2)) (not (not x9)))))))))))
+(assert (not (or (and (or (or x6 x2) (and x9 x1)) (and (not x3) (and x8 x2))) (or (and (or x0 x0) (not x7)) (and (not x1) (and x7 x1))))))
+(check-sat)
+(pop 1)
+(assert (and (or (not (or (or (or (not (not (and x9 x8))) (and (not (and x6 x4)) (and (or x6 x2) (and x4 x2)))) (and (or (and (and x1 x4) (and x1 x8)) (and (or x6 x0) (or x8 x6))) (or (and (not x8) (and x7 x6)) (or (not x5) (not x7))))) (and (or (or (not (or x5 x5)) (and (and x3 x8) (not x9))) (and (or (or x6 x6) (or x0 x6)) (or (and x5 x1) (not x9)))) (or (and (or (and x5 x6) (not x9)) (not (not x6))) (or (not (and x9 x3)) (not (not x1))))))) (and (and (or (and (and (and (and x6 x3) (or x5 x5)) (or (and x7 x8) (and x3 x6))) (and (and (not x2) (not x7)) (not (and x2 x2)))) (or (not (and (not x5) (not x5))) (and (and (not x7) (and x8 x2)) (not (and x9 x1))))) (or (not (or (and (not x9) (not x0)) (and (not x8) (and x8 x5)))) (not (not (not (not x5)))))) (or (not (or (or (or (not x4) (and x1 x3)) (or (and x6 x1) (not x5))) (not (not (not x4))))) (and (and (or (not (or x9 x8)) (or (not x0) (and x9 x5))) (and (not (not x4)) (not (or x5 x8)))) (and (and (or (and x2 x1) (not x3)) (and (and x5 x6) (not x8))) (not (or (not x1) (not x8)))))))) (and (or (and (and (or (or (and (or x1 x5) (not x3)) (and (not x9) (not x3))) (and (and (or x1 x0) (or x2 x8)) (or (not x7) (and x0 x7)))) (or (or (and (and x1 x7) (or x4 x1)) (and (or x4 x9) (and x3 x9))) (not (and (not x8) (and x4 x2))))) (and (or (and (or (or x9 x5) (not x7)) (or (or x8 x9) (or x6 x4))) (and (not (not x1)) (or (and x7 x3) (or x0 x7)))) (or (or (and (not x6) (not x2)) (and (not x1) (and x8 x0))) (not (or (and x1 x8) (and x7 x3)))))) (and (and (or (and (or (or x6 x3) (not x5)) (not (not x9))) (and (or (or x5 x0) (and x8 x5)) (and (and x7 x0) (and x0 x9)))) (not (or (and (and x9 x1) (and x6 x7)) (and (or x4 x3) (or x7 x4))))) (and (or (not (and (or x5 x4) (or x1 x4))) (not (and (or x3 x1) (or x2 x7)))) (not (and (or (or x0 x6) (not x4)) (and (or x0 x0) (not x1))))))) (and (not (and (not (not (and (not x9) (and x2 x1)))) (and (not (or (or x0 x1) (not x4))) (not (or (not x1) (not x1)))))) (not (or (not (or (not (or x4 x6)) (not (not x4)))) (and (or (and (not x7) (not x3)) (or (not x4) (or x3 x6))) (and (and (and x9 x9) (and x2 x2)) (not (or x8 x4))))))))))
+(assert (and (and (or x9 x9) (or x2 x7)) (and (and x0 x3) (and x5 x2))))
+(assert (and (and (or (or x2 x2) (or x5 x2)) (and (or x6 x3) (or x1 x8))) (or (not (or x6 x4)) (or (or x2 x7) (or x4 x4)))))
+(check-sat)
+(push 1)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_10.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_10.smt2
new file mode 100644 (file)
index 0000000..74be627
--- /dev/null
@@ -0,0 +1,63 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(declare-fun x4 () Bool)
+(declare-fun x5 () Bool)
+(declare-fun x6 () Bool)
+(assert (or (not (and (or x4 x1) (and x5 x3))) (not (or (not x3) (not x3)))))
+(assert (and (or (not (and (or (or x1 x0) (not x0)) (and (not x1) (and x5 x2)))) (not (and (and (and x3 x4) (and x0 x6)) (or (not x1) (and x4 x5))))) (or (or (and (not (and x1 x5)) (not (not x5))) (and (and (and x0 x6) (and x0 x4)) (not (not x5)))) (not (and (and (not x6) (and x0 x0)) (and (not x2) (not x2)))))))
+(assert (or (not (or x6 x1)) (and (or x5 x1) (or x5 x6))))
+(assert (not (or (and (and (or (not (not (and x1 x0))) (not (and (or x1 x4) (or x6 x6)))) (not (not (not (or x4 x6))))) (and (or (or (or (and x2 x6) (and x1 x2)) (or (not x3) (not x3))) (or (or (and x4 x3) (and x2 x3)) (not (not x0)))) (and (not (and (and x4 x3) (not x2))) (or (and (or x0 x2) (not x2)) (or (not x3) (or x3 x3)))))) (and (not (not (or (or (or x5 x3) (or x4 x4)) (not (and x0 x6))))) (and (or (not (and (and x4 x5) (and x2 x6))) (or (and (and x2 x1) (and x3 x0)) (and (and x5 x4) (and x6 x2)))) (and (and (and (not x6) (not x4)) (and (and x0 x6) (not x4))) (not (and (or x4 x3) (not x6)))))))))
+(assert (and (or (not (not (not (and (not (and x3 x0)) (and (or x6 x1) (not x1)))))) (not (and (not (or (and (or x3 x5) (and x0 x6)) (or (not x1) (not x4)))) (not (and (and (not x6) (and x1 x2)) (and (and x3 x0) (and x6 x0))))))) (or (not (or (and (and (or (and x1 x4) (not x0)) (not (and x6 x3))) (or (and (or x2 x6) (and x3 x5)) (not (not x0)))) (or (or (not (and x1 x6)) (or (or x3 x3) (and x0 x2))) (or (not (not x0)) (and (or x2 x6) (and x1 x6)))))) (not (and (and (and (or (and x0 x4) (and x3 x4)) (and (or x2 x6) (or x4 x4))) (or (and (or x3 x0) (or x5 x6)) (not (or x4 x0)))) (and (and (or (or x5 x2) (not x5)) (or (and x6 x1) (or x0 x4))) (not (and (and x6 x6) (not x3)))))))))
+(assert (or (or x5 x5) (or x0 x3)))
+(check-sat)
+(push 1)
+(assert (not (and (not x6) (not x2))))
+(assert (not (or (and (not (not (or (and (not (and x3 x0)) (not (or x6 x3))) (and (or (or x5 x0) (or x1 x1)) (or (or x4 x4) (or x5 x1)))))) (or (or (or (not (or (or x6 x2) (or x3 x5))) (and (not (not x4)) (not (and x6 x1)))) (and (or (and (and x6 x6) (and x2 x3)) (not (or x3 x3))) (or (or (not x0) (or x3 x2)) (and (not x5) (and x5 x4))))) (and (not (and (or (or x0 x0) (not x6)) (and (not x3) (not x3)))) (not (not (and (and x0 x0) (not x0))))))) (not (or (and (not (not (not (or x1 x1)))) (not (not (and (not x2) (or x6 x2))))) (or (or (and (or (or x2 x6) (or x6 x1)) (and (not x0) (and x4 x0))) (not (not (and x5 x2)))) (and (not (not (or x4 x1))) (or (and (not x4) (or x0 x5)) (or (and x1 x5) (not x5))))))))))
+(assert (and (or (and (and (or (not (and (not (and (and x1 x4) (and x1 x6))) (not (and (not x2) (and x1 x2))))) (not (or (or (or (or x3 x1) (or x5 x4)) (or (or x2 x4) (or x5 x2))) (not (and (or x3 x6) (not x0)))))) (or (or (and (not (or (not x5) (not x5))) (or (or (and x2 x2) (not x5)) (not (or x0 x5)))) (not (and (and (and x1 x3) (not x2)) (and (and x2 x1) (not x0))))) (and (not (or (and (not x2) (or x3 x2)) (and (not x3) (and x2 x5)))) (not (or (and (or x2 x2) (not x4)) (or (not x4) (not x1))))))) (and (and (or (and (not (and (not x0) (and x0 x4))) (and (and (not x6) (or x6 x2)) (or (and x5 x3) (and x5 x1)))) (and (or (and (not x0) (and x1 x4)) (not (or x2 x4))) (not (and (or x2 x5) (and x2 x2))))) (or (and (not (or (and x5 x5) (or x3 x1))) (not (not (not x3)))) (or (not (not (not x1))) (and (or (and x1 x4) (not x0)) (or (and x1 x0) (not x6)))))) (or (and (or (and (or (not x2) (and x4 x0)) (not (or x3 x1))) (or (or (or x0 x6) (or x2 x5)) (or (and x4 x4) (and x3 x2)))) (and (and (and (and x6 x1) (and x2 x3)) (or (not x1) (or x1 x4))) (or (and (or x6 x4) (not x3)) (or (or x1 x1) (and x5 x2))))) (or (or (or (not (not x4)) (and (not x0) (and x6 x6))) (or (and (not x4) (and x5 x2)) (not (not x4)))) (not (and (or (or x0 x3) (and x3 x5)) (not (not x2)))))))) (not (and (and (not (or (and (or (or x4 x3) (not x4)) (or (and x2 x5) (and x0 x3))) (and (and (or x2 x5) (or x1 x0)) (or (or x6 x4) (and x3 x2))))) (or (not (or (or (or x1 x5) (or x5 x3)) (not (not x1)))) (and (and (not (not x4)) (or (not x1) (and x1 x6))) (not (and (not x0) (not x6)))))) (not (or (and (or (and (not x1) (or x2 x4)) (not (or x5 x3))) (not (or (not x1) (not x0)))) (not (or (not (or x5 x1)) (and (or x1 x0) (and x1 x0))))))))) (or (or (and (and (not (not (not (or (or x3 x1) (or x6 x4))))) (or (not (not (and (and x2 x4) (and x0 x5)))) (and (and (and (and x4 x4) (or x5 x5)) (not (not x3))) (or (not (not x5)) (not (and x4 x1)))))) (and (or (and (or (not (and x6 x6)) (or (or x5 x1) (and x1 x2))) (not (not (and x1 x2)))) (and (and (or (and x3 x6) (not x4)) (and (not x5) (or x6 x5))) (not (and (not x5) (or x4 x3))))) (or (not (not (and (not x6) (and x3 x0)))) (or (and (and (and x3 x1) (and x6 x5)) (and (or x2 x5) (not x0))) (and (and (not x1) (not x6)) (not (not x3))))))) (not (and (not (not (not (and (or x6 x3) (not x6))))) (and (not (and (and (and x0 x0) (not x4)) (not (or x6 x1)))) (or (not (or (not x3) (not x5))) (or (or (not x6) (not x5)) (and (or x2 x6) (not x2)))))))) (and (and (not (or (and (not (not (or x5 x3))) (not (not (not x1)))) (not (not (not (and x2 x3)))))) (not (and (or (or (or (not x2) (or x2 x2)) (and (not x3) (or x4 x4))) (not (not (not x0)))) (and (and (and (and x5 x6) (or x1 x5)) (or (or x6 x1) (and x6 x1))) (and (not (or x0 x1)) (and (not x4) (and x5 x0))))))) (not (and (or (not (or (not (and x4 x6)) (or (not x5) (or x5 x0)))) (and (or (and (or x6 x1) (or x6 x1)) (and (not x2) (and x2 x0))) (or (not (and x5 x5)) (not (or x0 x5))))) (not (and (and (and (and x5 x1) (or x5 x2)) (and (and x3 x3) (or x2 x5))) (or (not (not x5)) (not (not x5)))))))))))
+(check-sat)
+(push 1)
+(assert (not (or (and (and (not (or (and (or x4 x2) (or x0 x4)) (and (or x5 x2) (or x0 x5)))) (and (not (or (not x4) (and x4 x5))) (or (or (or x4 x5) (not x5)) (and (not x4) (or x0 x6))))) (or (and (not (not (not x6))) (or (and (not x1) (or x4 x3)) (or (or x5 x2) (or x6 x6)))) (and (not (and (or x4 x6) (not x1))) (or (or (and x2 x4) (and x3 x3)) (and (or x5 x0) (and x4 x2)))))) (not (not (and (not (not (and x1 x3))) (or (and (or x6 x5) (not x5)) (not (or x6 x5)))))))))
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(assert (and (not (or x6 x3)) (or (and x5 x4) (and x1 x0))))
+(assert (not (not (not x1))))
+(assert (and (not (not (or (and x3 x5) (and x6 x3)))) (and (and (not (not x4)) (or (or x5 x5) (or x4 x4))) (or (not (not x0)) (and (and x1 x3) (or x4 x6))))))
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(assert (and (or x2 x3) (or x1 x5)))
+(check-sat)
+(pop 1)
+(assert (and (or (or (or (or (and (or x1 x3) (and x2 x6)) (or (not x1) (not x1))) (or (not (and x6 x2)) (and (not x1) (or x1 x3)))) (and (and (or (and x3 x4) (not x5)) (and (or x6 x4) (and x6 x3))) (and (not (not x2)) (and (not x2) (or x2 x2))))) (and (and (not (not (and x0 x3))) (or (or (or x4 x4) (or x0 x1)) (or (not x3) (and x3 x5)))) (or (and (and (not x0) (and x4 x2)) (not (not x2))) (and (not (or x4 x1)) (not (and x1 x5)))))) (and (not (or (not (or (or x6 x6) (and x0 x4))) (and (and (not x6) (not x0)) (and (or x0 x0) (and x2 x2))))) (and (or (and (or (not x1) (or x3 x0)) (or (and x3 x2) (or x2 x3))) (and (not (not x1)) (and (and x1 x4) (or x2 x2)))) (not (not (and (or x5 x2) (and x3 x5))))))))
+(check-sat)
+(pop 1)
+(assert (not (and (not (and (and (or (and (not (not (and x0 x2))) (or (or (not x1) (and x6 x5)) (and (and x6 x0) (and x6 x4)))) (and (or (or (and x0 x0) (or x1 x5)) (not (or x5 x2))) (not (or (not x5) (or x1 x3))))) (not (not (not (or (or x4 x1) (or x0 x1)))))) (not (and (and (not (not (or x3 x3))) (or (and (not x3) (or x5 x6)) (and (not x5) (not x4)))) (and (not (not (and x1 x0))) (or (or (not x2) (and x3 x6)) (not (or x1 x0)))))))) (not (and (not (and (or (or (and (or x1 x3) (not x6)) (not (not x0))) (not (and (not x1) (not x5)))) (or (and (not (and x0 x6)) (and (and x6 x6) (and x2 x4))) (or (or (or x5 x5) (or x1 x0)) (or (and x6 x4) (and x0 x3)))))) (not (not (or (not (and (not x3) (not x5))) (not (and (and x6 x4) (and x2 x0)))))))))))
+(check-sat)
+(pop 1)
+(assert (and (and (or (and (or (or (or (not (and (or x1 x0) (or x5 x0))) (and (not (not x2)) (not (or x4 x6)))) (or (not (or (or x4 x2) (not x0))) (not (or (not x1) (and x1 x3))))) (and (and (not (not (or x0 x6))) (or (and (and x5 x4) (not x3)) (not (and x3 x5)))) (not (and (or (or x0 x5) (or x3 x6)) (not (not x5)))))) (not (or (or (and (and (or x0 x5) (and x2 x3)) (not (not x1))) (not (not (and x0 x6)))) (or (and (and (and x4 x4) (not x0)) (not (not x3))) (or (and (not x0) (and x5 x0)) (or (and x6 x3) (not x2))))))) (not (not (not (or (and (or (and x2 x5) (and x2 x2)) (not (and x1 x1))) (and (or (and x5 x1) (or x5 x5)) (and (or x4 x5) (not x0)))))))) (or (not (not (or (or (and (not (or x4 x4)) (and (not x4) (and x0 x3))) (and (and (and x3 x4) (and x6 x1)) (or (not x5) (or x3 x3)))) (or (not (and (or x2 x5) (not x1))) (not (or (and x5 x4) (not x6))))))) (or (or (not (not (or (or (and x4 x4) (not x0)) (not (or x0 x2))))) (and (not (not (and (or x5 x6) (not x4)))) (or (or (not (and x3 x5)) (and (not x0) (and x2 x4))) (and (or (and x0 x4) (or x1 x2)) (or (and x4 x1) (and x5 x3)))))) (not (not (and (and (not (not x5)) (and (and x3 x2) (and x2 x2))) (or (or (and x0 x6) (or x4 x0)) (and (or x2 x3) (and x4 x2))))))))) (or (or (and (or (not (not (or (not (and x1 x6)) (or (or x5 x6) (not x3))))) (and (and (and (and (not x5) (and x5 x3)) (or (or x4 x1) (not x2))) (not (or (and x4 x3) (or x6 x1)))) (not (or (not (not x4)) (or (not x0) (and x2 x2)))))) (not (or (or (and (or (and x3 x4) (not x2)) (and (or x6 x0) (not x4))) (and (not (not x2)) (or (not x0) (or x4 x5)))) (or (not (or (and x5 x3) (not x5))) (not (not (not x4))))))) (not (and (and (not (not (or (not x0) (not x3)))) (not (not (or (not x5) (and x1 x3))))) (and (or (not (and (not x2) (not x0))) (not (and (and x5 x5) (and x4 x3)))) (or (not (and (not x1) (and x5 x0))) (and (and (or x4 x5) (or x5 x3)) (not (not x1)))))))) (and (not (not (or (and (or (not (or x6 x0)) (or (or x3 x2) (not x5))) (not (and (and x1 x4) (not x1)))) (and (or (and (and x2 x3) (or x2 x1)) (not (or x4 x0))) (not (or (not x3) (and x3 x5))))))) (or (or (or (or (not (and (and x5 x1) (or x4 x1))) (not (or (and x3 x1) (or x5 x0)))) (or (not (or (not x2) (and x3 x5))) (or (or (and x3 x5) (and x3 x3)) (not (not x1))))) (not (and (not (not (and x2 x2))) (or (and (not x3) (and x1 x1)) (not (or x3 x4)))))) (or (not (not (or (and (or x2 x2) (not x5)) (or (not x5) (not x2))))) (or (not (and (or (not x3) (and x6 x6)) (not (not x5)))) (or (and (or (and x5 x0) (and x2 x0)) (and (and x0 x2) (not x1))) (and (or (or x5 x6) (and x2 x1)) (or (and x4 x1) (and x1 x0)))))))))))
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_11.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_11.smt2
new file mode 100644 (file)
index 0000000..9cd4a51
--- /dev/null
@@ -0,0 +1,78 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: unsat
+; EXPECT: unsat
+; EXPECT: unsat
+; EXPECT: unsat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(declare-fun x4 () Bool)
+(declare-fun x5 () Bool)
+(assert (not (not (or (or (not (or (not (or (or (not x3) (or x3 x3)) (not (not x3)))) (and (not (and (and x2 x1) (not x3))) (and (or (or x3 x1) (not x5)) (or (not x3) (or x4 x0)))))) (and (not (or (not (and (and x3 x0) (and x4 x5))) (or (not (and x0 x0)) (and (and x5 x4) (not x3))))) (and (and (or (not (and x3 x0)) (or (not x2) (or x5 x1))) (not (and (and x2 x0) (or x5 x4)))) (not (or (not (and x2 x1)) (or (not x4) (and x3 x5))))))) (or (or (and (and (or (not (or x5 x0)) (or (not x2) (not x3))) (not (not (and x1 x1)))) (and (or (or (or x2 x5) (not x1)) (or (or x2 x0) (and x0 x4))) (or (and (and x3 x5) (and x1 x4)) (and (or x5 x0) (and x1 x2))))) (not (or (not (or (and x2 x2) (or x4 x3))) (not (or (or x3 x4) (and x0 x0)))))) (or (not (not (not (and (and x1 x2) (or x5 x0))))) (or (and (or (and (and x0 x5) (and x0 x3)) (or (or x2 x0) (or x3 x3))) (or (and (or x4 x4) (or x0 x5)) (not (not x5)))) (or (not (or (or x4 x1) (and x4 x2))) (and (not (not x5)) (or (or x5 x4) (and x2 x1)))))))))))
+(check-sat)
+(push 1)
+(assert (not (not (not x1))))
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(assert (or (or (or (or (and (or (and (and (not (and x1 x4)) (and (not x1) (not x1))) (or (not (or x2 x4)) (or (not x5) (and x2 x4)))) (or (not (and (and x0 x2) (and x2 x3))) (or (and (not x1) (or x4 x3)) (or (not x4) (and x2 x0))))) (not (not (and (or (not x3) (and x5 x0)) (not (and x1 x4)))))) (not (and (not (not (and (or x1 x4) (not x5)))) (not (and (not (and x2 x5)) (not (or x1 x4))))))) (and (and (or (or (and (or (or x1 x4) (not x5)) (and (and x3 x1) (or x4 x2))) (not (or (or x4 x4) (not x4)))) (and (and (or (and x1 x4) (and x3 x0)) (not (not x0))) (not (and (or x2 x3) (not x3))))) (and (and (and (not (not x3)) (and (not x5) (or x1 x3))) (not (and (and x4 x0) (and x5 x3)))) (not (and (and (not x1) (not x3)) (and (or x1 x5) (not x5)))))) (or (and (and (and (not (or x5 x3)) (or (or x3 x2) (not x1))) (not (and (not x3) (or x3 x1)))) (or (or (and (and x5 x5) (not x4)) (and (not x3) (not x1))) (not (or (not x1) (and x3 x2))))) (not (not (not (or (not x0) (or x1 x0)))))))) (not (not (or (not (and (not (and (or x5 x5) (not x2))) (not (not (and x5 x0))))) (or (and (and (and (and x1 x4) (or x0 x4)) (and (or x3 x4) (not x5))) (or (and (and x5 x3) (not x5)) (and (and x5 x3) (not x0)))) (or (not (and (or x5 x2) (and x0 x5))) (or (or (and x4 x4) (and x3 x0)) (and (or x3 x3) (or x0 x3))))))))) (or (not (or (not (and (not (or (and (and x5 x2) (and x5 x4)) (not (and x4 x2)))) (not (not (and (or x3 x5) (not x1)))))) (or (or (not (and (or (not x4) (and x3 x5)) (or (or x4 x0) (not x1)))) (and (or (or (or x1 x1) (and x5 x1)) (not (or x5 x5))) (not (or (or x3 x3) (not x5))))) (and (and (or (and (or x2 x2) (not x2)) (or (and x1 x3) (and x3 x4))) (or (and (and x0 x1) (not x5)) (and (not x3) (and x3 x5)))) (and (or (or (not x0) (not x3)) (not (not x1))) (not (not (not x4)))))))) (not (not (and (not (not (or (or (not x1) (or x2 x0)) (or (and x5 x4) (or x3 x4))))) (and (and (and (and (and x5 x3) (or x1 x4)) (or (or x1 x5) (not x3))) (not (not (not x0)))) (not (or (or (not x3) (and x5 x1)) (not (and x5 x4)))))))))))
+(assert (not (and (and (and (not (or (not x3) (and x0 x2))) (and (not (not x5)) (not (not x1)))) (not (or (or (or x5 x1) (not x5)) (not (not x3))))) (and (not (and (or (or x2 x2) (and x5 x5)) (not (not x5)))) (not (not (not (and x4 x2))))))))
+(assert (not (or (not (not (and (and (not (and (and x3 x5) (or x4 x3))) (and (and (or x0 x1) (and x3 x1)) (and (not x0) (and x4 x3)))) (and (and (not (or x0 x4)) (or (not x3) (not x1))) (or (or (or x4 x5) (and x3 x4)) (or (and x5 x2) (and x4 x0))))))) (not (or (not (or (and (or (or x3 x4) (or x5 x2)) (not (or x1 x0))) (or (not (not x0)) (not (and x1 x4))))) (not (not (or (and (and x0 x2) (or x1 x1)) (not (not x5))))))))))
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(assert (not (and (or (or (or (not x0) (or x1 x4)) (not (not x4))) (and (and (or x0 x1) (not x1)) (or (and x4 x5) (and x4 x5)))) (or (and (and (or x3 x3) (or x4 x0)) (or (and x1 x2) (and x3 x2))) (or (not (or x0 x0)) (not (and x5 x0)))))))
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(assert (and (and (or (or x5 x1) (or x3 x0)) (and (and x2 x3) (or x3 x5))) (or (and (not x3) (or x0 x3)) (and (not x3) (or x4 x0)))))
+(assert (not (and (and (not x2) (or x0 x5)) (and (not x1) (or x3 x1)))))
+(assert (not (or (or x3 x4) (or x5 x5))))
+(assert (and (not (and (and (or (or (or (not (or x3 x3)) (and (not x4) (or x1 x0))) (and (or (not x4) (or x0 x5)) (and (not x2) (and x2 x3)))) (and (or (or (not x2) (and x4 x3)) (and (not x0) (not x0))) (or (and (and x1 x4) (not x1)) (and (and x2 x2) (or x4 x5))))) (and (not (and (and (and x5 x5) (and x5 x1)) (or (not x4) (not x0)))) (or (not (or (not x1) (not x1))) (or (and (not x0) (and x2 x4)) (or (and x5 x3) (and x2 x2)))))) (and (not (and (or (and (and x3 x5) (or x3 x3)) (or (and x5 x1) (and x4 x5))) (not (and (or x5 x1) (not x5))))) (or (and (or (not (or x5 x0)) (or (or x1 x2) (not x4))) (not (not (not x0)))) (not (and (or (and x2 x2) (and x2 x1)) (not (and x2 x1)))))))) (not (or (not (not (not (and (not (or x1 x3)) (and (and x5 x0) (or x4 x5)))))) (or (and (and (or (or (and x5 x4) (and x4 x3)) (or (and x2 x2) (and x3 x2))) (not (and (and x5 x0) (not x4)))) (and (and (not (and x3 x2)) (and (not x1) (not x5))) (or (or (and x1 x4) (not x2)) (not (or x5 x2))))) (or (and (not (and (and x5 x4) (or x1 x3))) (or (and (and x0 x0) (or x3 x5)) (not (not x2)))) (not (and (and (not x2) (and x1 x0)) (and (and x3 x0) (and x5 x5))))))))))
+(assert (or (not (and (and (or (or (and (and (or (not x4) (not x0)) (or (or x2 x0) (not x2))) (not (and (not x3) (and x3 x3)))) (not (or (and (or x1 x4) (and x3 x2)) (and (or x4 x3) (and x4 x5))))) (not (and (or (or (or x3 x5) (or x5 x4)) (or (or x5 x1) (not x0))) (and (or (or x1 x5) (and x4 x1)) (and (or x3 x5) (not x5)))))) (and (and (or (and (and (not x3) (and x3 x2)) (or (or x3 x3) (and x5 x3))) (and (or (not x2) (not x4)) (and (and x2 x2) (and x1 x5)))) (and (not (and (not x5) (and x4 x2))) (not (not (and x0 x0))))) (not (and (not (not (and x0 x2))) (and (or (not x3) (not x3)) (not (not x5))))))) (not (and (and (not (and (or (and x2 x3) (or x2 x0)) (or (or x0 x3) (and x4 x4)))) (or (and (and (not x5) (and x0 x2)) (not (or x1 x2))) (not (and (or x3 x5) (not x4))))) (not (or (or (and (or x4 x4) (not x5)) (or (or x3 x4) (not x0))) (and (not (and x1 x4)) (and (not x4) (and x5 x2))))))))) (and (not (not (and (and (and (not (not (not x0))) (or (not (or x4 x5)) (or (and x1 x5) (not x2)))) (not (and (and (and x3 x4) (not x1)) (and (not x3) (and x1 x5))))) (or (not (and (or (not x2) (and x1 x5)) (not (and x3 x2)))) (or (and (and (or x1 x3) (or x5 x0)) (not (or x1 x3))) (not (not (not x4)))))))) (not (not (and (not (or (and (and (not x3) (not x2)) (not (or x4 x2))) (and (and (or x5 x1) (or x3 x5)) (not (and x4 x3))))) (or (or (not (not (or x3 x1))) (not (or (or x4 x0) (and x0 x3)))) (or (not (not (or x0 x3))) (or (and (not x2) (not x1)) (and (or x5 x0) (and x4 x5)))))))))))
+(check-sat)
+(push 1)
+(assert (or (and (and (not (not (not (and (or (or x3 x0) (or x3 x1)) (not (not x2)))))) (not (not (or (and (or (and x4 x0) (not x4)) (not (or x4 x1))) (and (or (not x1) (or x3 x2)) (or (or x5 x1) (not x1))))))) (and (not (and (or (not (and (or x3 x1) (not x2))) (and (and (and x4 x5) (not x5)) (and (and x0 x0) (and x1 x2)))) (not (not (or (not x2) (and x3 x1)))))) (not (or (or (or (and (not x0) (and x4 x5)) (or (not x2) (and x2 x1))) (not (or (not x0) (not x0)))) (and (not (and (and x2 x0) (not x5))) (or (and (or x4 x0) (not x0)) (or (and x4 x3) (or x4 x5)))))))) (and (and (not (and (and (and (not (and x3 x0)) (and (not x1) (or x5 x1))) (or (not (not x1)) (not (or x0 x2)))) (and (or (not (not x0)) (or (and x4 x4) (and x2 x4))) (or (not (not x4)) (not (and x3 x4)))))) (not (or (not (not (and (or x0 x0) (or x4 x0)))) (not (and (not (not x4)) (or (and x0 x5) (or x3 x3))))))) (and (not (not (not (or (and (or x2 x3) (and x2 x2)) (not (or x0 x3)))))) (or (or (and (or (and (or x2 x4) (and x1 x4)) (and (and x5 x1) (not x0))) (not (not (or x0 x3)))) (not (and (and (not x4) (not x2)) (or (not x1) (or x3 x4))))) (not (and (not (or (or x4 x2) (and x2 x5))) (or (not (not x5)) (not (not x3))))))))))
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(assert (or (and (not x3) (not x3)) (and (and x2 x3) (or x4 x1))))
+(assert (not (and (or (or (and (or (or (or (or x4 x0) (and x3 x0)) (or (or x3 x4) (not x4))) (or (or (and x2 x4) (and x4 x2)) (not (or x4 x0)))) (or (and (or (and x2 x4) (or x1 x0)) (and (not x1) (and x0 x5))) (or (and (not x4) (not x3)) (not (not x1))))) (not (or (and (and (or x3 x1) (or x2 x3)) (or (not x5) (and x4 x5))) (not (and (or x5 x2) (not x5)))))) (or (or (or (or (or (and x0 x5) (or x1 x4)) (not (and x1 x2))) (or (or (not x1) (or x4 x5)) (and (and x5 x0) (not x4)))) (or (or (or (or x0 x5) (and x0 x0)) (and (or x1 x2) (not x3))) (not (or (or x3 x1) (or x4 x0))))) (not (and (not (or (or x0 x3) (not x0))) (or (or (and x0 x5) (or x4 x3)) (or (and x4 x0) (or x0 x2))))))) (and (and (or (or (not (and (and x4 x0) (and x2 x1))) (and (or (and x3 x3) (and x2 x1)) (not (not x5)))) (not (not (and (not x3) (not x0))))) (or (and (and (and (and x3 x0) (or x2 x1)) (not (not x0))) (and (not (not x4)) (or (and x0 x1) (or x3 x4)))) (and (or (or (and x4 x2) (and x2 x0)) (or (and x5 x1) (not x0))) (and (and (not x1) (and x5 x0)) (or (or x0 x3) (and x5 x3)))))) (not (or (and (not (and (or x5 x3) (and x5 x1))) (or (or (and x2 x3) (or x3 x2)) (or (and x0 x5) (not x5)))) (or (or (not (not x5)) (or (and x0 x3) (and x5 x0))) (or (not (or x2 x1)) (or (or x3 x5) (and x0 x0))))))))))
+(check-sat)
+(pop 1)
+(assert (or (and (and (and (not x1) (or x5 x5)) (and (or x2 x1) (not x0))) (and (not (or x1 x3)) (and (not x0) (or x3 x5)))) (or (or (and (or x0 x2) (not x1)) (and (and x3 x2) (or x0 x5))) (and (or (or x0 x0) (and x2 x5)) (or (or x0 x3) (not x1))))))
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(assert (and (not (and (or (not (not (or (not (not x5)) (and (not x5) (not x1))))) (and (not (or (or (or x0 x0) (not x5)) (not (or x5 x2)))) (or (or (not (or x3 x2)) (or (not x2) (or x5 x5))) (or (and (not x2) (and x0 x2)) (and (and x5 x5) (or x3 x4)))))) (not (not (or (not (not (and x2 x2))) (and (and (not x2) (or x5 x0)) (or (not x4) (and x5 x4)))))))) (or (and (and (not (not (or (and (or x0 x0) (or x4 x1)) (or (and x5 x4) (or x1 x2))))) (and (and (not (and (and x0 x0) (or x5 x3))) (or (or (and x4 x3) (not x2)) (and (not x0) (not x3)))) (and (or (and (not x3) (not x1)) (not (not x0))) (or (and (and x4 x1) (not x0)) (and (not x0) (not x5)))))) (not (not (and (not (and (and x3 x3) (or x5 x5))) (and (or (not x4) (and x4 x3)) (and (and x4 x3) (or x4 x5))))))) (and (or (not (not (not (and (not x3) (or x4 x4))))) (or (not (not (or (not x2) (and x5 x4)))) (or (and (or (and x3 x5) (or x0 x1)) (and (not x2) (not x1))) (not (or (or x2 x0) (and x0 x2)))))) (and (and (not (and (or (not x3) (or x4 x1)) (and (or x2 x1) (not x0)))) (and (and (not (or x2 x2)) (not (not x3))) (or (and (and x2 x2) (or x4 x0)) (or (or x1 x2) (and x1 x5))))) (or (not (not (not (or x2 x3)))) (not (not (or (not x4) (or x3 x0))))))))))
+(check-sat)
+(push 1)
+(assert (and (or (not (not (not (or (not x0) (and x3 x1))))) (or (not (not (or (not x2) (and x2 x3)))) (or (and (or (and x0 x3) (not x4)) (or (not x0) (not x1))) (or (and (or x4 x5) (and x0 x2)) (not (and x2 x5)))))) (not (not (not (and (and (not x1) (and x1 x0)) (not (and x2 x4))))))))
+(assert (not x0))
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_12.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_12.smt2
new file mode 100644 (file)
index 0000000..f0ca9c8
--- /dev/null
@@ -0,0 +1,39 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(assert (not (and (not (and (or (not (or (not x0) (or x2 x2))) (or (or (or x2 x1) (or x1 x3)) (not (or x3 x2)))) (or (not (not (and x1 x2))) (and (not (not x2)) (and (or x0 x2) (or x0 x1)))))) (not (not (or (or (and (or x0 x1) (not x3)) (and (or x3 x3) (and x3 x1))) (not (or (or x0 x2) (or x2 x3)))))))))
+(assert (and (not (and (and (not (not (not x2))) (and (or (or x3 x0) (not x1)) (and (or x0 x0) (and x1 x1)))) (and (and (and (and x0 x3) (and x2 x1)) (or (not x3) (not x0))) (not (and (and x2 x0) (and x2 x1)))))) (and (or (or (and (not (or x0 x1)) (not (and x2 x3))) (and (not (not x0)) (or (or x3 x1) (or x1 x2)))) (or (or (or (not x0) (and x0 x1)) (and (and x2 x2) (or x3 x3))) (or (not (or x1 x1)) (and (and x0 x3) (and x3 x2))))) (or (not (not (not (and x3 x1)))) (or (and (not (and x0 x2)) (not (or x0 x1))) (and (not (and x3 x3)) (not (not x1))))))))
+(assert (not (and x0 x3)))
+(check-sat)
+(push 1)
+(assert (or (or (or x0 x1) (and x0 x1)) (or (and x0 x2) (not x1))))
+(assert (or (or (or (or (not (not (or (or (or x3 x2) (not x1)) (or (and x3 x2) (not x3))))) (not (and (not (and (or x1 x0) (or x0 x1))) (or (and (or x1 x3) (or x1 x1)) (and (and x0 x3) (and x2 x0)))))) (and (and (not (not (and (and x3 x3) (not x3)))) (not (or (or (and x0 x0) (not x2)) (not (and x1 x1))))) (not (or (and (or (or x1 x0) (or x2 x2)) (and (and x2 x2) (not x1))) (not (not (not x0))))))) (or (not (and (not (and (or (and x0 x0) (not x1)) (or (not x3) (or x0 x1)))) (not (and (and (or x3 x1) (or x1 x2)) (not (not x3)))))) (and (not (not (and (or (not x2) (not x1)) (and (not x3) (or x0 x3))))) (or (or (and (not (or x1 x3)) (or (not x0) (and x1 x3))) (and (not (or x2 x2)) (or (and x1 x3) (or x1 x1)))) (not (not (not (or x1 x3)))))))) (and (not (not (not (or (not (or (or x1 x2) (not x2))) (or (or (or x3 x3) (or x1 x0)) (and (and x3 x3) (not x1))))))) (and (not (not (or (or (and (or x0 x3) (or x0 x0)) (and (and x2 x3) (not x3))) (or (or (not x3) (and x3 x3)) (not (not x2)))))) (and (not (and (not (or (or x1 x0) (not x2))) (and (and (or x0 x0) (and x2 x2)) (not (and x2 x0))))) (and (and (or (and (or x2 x1) (not x1)) (not (not x1))) (not (not (and x0 x0)))) (not (not (not (and x0 x1))))))))))
+(assert (or (not (or (not x1) (or x1 x1))) (and (not (or x0 x3)) (or (and x1 x3) (not x3)))))
+(assert (not (and (not (or (and (or x2 x1) (and x3 x0)) (and (not x1) (or x0 x3)))) (or (not (not (and x2 x3))) (and (and (and x0 x2) (not x0)) (or (and x0 x1) (not x0)))))))
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(assert (and (not (and x3 x2)) (or (and x2 x1) (not x0))))
+(assert (or (or (not (or (and (not x0) (not x0)) (not (and x0 x3)))) (not (or (and (and x3 x1) (or x0 x0)) (and (and x0 x3) (and x3 x3))))) (or (and (or (and (not x0) (or x1 x1)) (not (or x2 x0))) (not (or (and x0 x2) (and x0 x0)))) (not (and (or (or x2 x0) (and x2 x3)) (and (or x2 x0) (not x0)))))))
+(assert (not (not (or (or x0 x3) (or x1 x2)))))
+(assert (or (and (or (and x0 x0) (and x3 x0)) (not (and x0 x0))) (not (or (and x2 x2) (not x1)))))
+(check-sat)
+(pop 1)
+(assert (and (or (not (and x2 x2)) (and (and x2 x3) (not x3))) (and (not (or x0 x1)) (not (and x1 x2)))))
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_13.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_13.smt2
new file mode 100644 (file)
index 0000000..d5a6494
--- /dev/null
@@ -0,0 +1,25 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(assert (and (not (and (and (not (or (or (or x1 x2) (and x1 x2)) (and (and x2 x0) (not x2)))) (not (or (and (or x0 x2) (and x2 x1)) (not (or x1 x0))))) (not (and (not (not (and x1 x0))) (not (and (not x1) (or x1 x1))))))) (or (or (or (not (not (not (and x0 x0)))) (not (and (not (and x1 x2)) (not (not x2))))) (or (not (not (and (and x0 x2) (not x0)))) (and (and (not (not x2)) (not (and x0 x1))) (or (and (not x0) (and x1 x0)) (not (not x1)))))) (or (not (or (or (or (not x0) (and x0 x0)) (not (or x1 x1))) (or (not (or x0 x0)) (or (not x1) (or x1 x2))))) (and (or (not (not (and x0 x2))) (or (and (or x1 x1) (or x0 x0)) (and (or x1 x0) (not x1)))) (or (not (or (or x1 x2) (not x1))) (and (and (or x0 x1) (or x1 x2)) (or (not x1) (and x1 x0)))))))))
+(check-sat)
+(push 1)
+(assert (and (or (not (not x2)) (and (not x2) (and x0 x0))) (and (not (and x1 x0)) (or (not x2) (or x0 x1)))))
+(assert (or (or x2 x2) (not x2)))
+(check-sat)
+(pop 1)
+(assert (or (and (not (not (and (and (or (not (and (not x2) (or x0 x2))) (not (or (or x0 x2) (not x1)))) (or (not (and (not x2) (and x2 x0))) (and (or (and x0 x0) (and x2 x2)) (not (not x1))))) (not (and (and (or (and x1 x1) (and x2 x0)) (and (and x1 x0) (or x1 x0))) (and (not (and x0 x0)) (or (and x0 x2) (and x0 x2)))))))) (or (not (not (not (and (not (and (and x0 x0) (or x1 x2))) (not (or (or x2 x1) (not x2))))))) (and (or (not (and (and (and (and x1 x0) (or x1 x1)) (not (or x2 x0))) (or (or (and x1 x1) (or x2 x1)) (not (or x2 x0))))) (or (and (or (and (not x0) (or x1 x2)) (not (not x0))) (not (and (and x2 x1) (and x1 x2)))) (not (or (or (and x0 x1) (or x1 x2)) (or (not x2) (not x2)))))) (not (and (not (or (or (and x2 x0) (not x0)) (not (not x2)))) (and (or (or (and x0 x1) (and x2 x2)) (or (or x0 x0) (or x2 x0))) (not (not (not x1))))))))) (not (not (not (and (or (not (and (or (and x1 x2) (or x1 x1)) (not (or x0 x1)))) (not (not (not (or x1 x2))))) (or (and (not (or (and x0 x2) (or x2 x1))) (not (not (and x1 x2)))) (and (not (or (not x2) (not x1))) (not (not (not x1)))))))))))
+(assert (not x0))
+(check-sat)
+(push 1)
+(assert (not (or (or x2 x0) (and x1 x1))))
+(assert (or (or (not (and (or (not x0) (not x2)) (and (and x1 x1) (or x1 x0)))) (not (not (not (not x2))))) (and (not (or (and (not x1) (or x1 x1)) (not (not x1)))) (not (or (not (not x2)) (not (not x0)))))))
+(assert (not (and x0 x0)))
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_14.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_14.smt2
new file mode 100644 (file)
index 0000000..c8e3566
--- /dev/null
@@ -0,0 +1,36 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(declare-fun x4 () Bool)
+(declare-fun x5 () Bool)
+(declare-fun x6 () Bool)
+(declare-fun x7 () Bool)
+(check-sat)
+(push 1)
+(assert (not (not (or (and (not (and (or (not (or (not x4) (and x6 x0))) (or (and (and x4 x4) (not x1)) (not (not x0)))) (not (not (or (not x7) (or x1 x1)))))) (not (and (and (not (and (and x4 x3) (and x0 x4))) (and (not (and x5 x4)) (and (not x2) (or x5 x5)))) (not (not (not (not x3))))))) (not (not (and (or (not (not (and x7 x3))) (and (and (not x4) (or x3 x2)) (or (or x7 x0) (not x0)))) (not (not (or (and x7 x6) (or x1 x2)))))))))))
+(assert (not (or (or (and (or (or (not (and x2 x1)) (and (or x4 x1) (or x4 x0))) (and (and (not x3) (not x6)) (not (or x5 x6)))) (not (not (and (or x6 x5) (not x4))))) (and (not (not (or (and x7 x6) (not x3)))) (or (and (not (not x4)) (and (not x0) (or x7 x2))) (and (and (or x3 x3) (not x6)) (or (or x0 x6) (or x1 x4)))))) (and (or (and (or (or (and x5 x1) (and x5 x5)) (or (or x5 x3) (or x0 x3))) (not (or (and x5 x1) (and x7 x6)))) (not (and (and (and x1 x7) (and x5 x4)) (and (not x1) (or x4 x6))))) (not (and (or (and (not x2) (and x6 x4)) (not (and x1 x6))) (not (not (or x7 x5)))))))))
+(assert (or (not (or (and (and (and (and (not x2) (not x0)) (not (and x4 x5))) (and (or (not x7) (not x7)) (or (not x6) (or x4 x3)))) (or (or (not (not x1)) (or (not x5) (not x4))) (and (and (and x4 x4) (or x2 x1)) (and (not x7) (and x1 x2))))) (or (not (not (not (or x2 x7)))) (or (and (or (or x5 x2) (not x3)) (or (not x2) (and x6 x6))) (or (and (and x7 x3) (and x6 x2)) (not (not x0))))))) (and (and (or (and (or (or (or x5 x3) (or x3 x5)) (and (not x2) (or x0 x4))) (or (not (and x2 x7)) (or (not x2) (or x7 x6)))) (or (and (or (and x5 x0) (not x1)) (not (or x5 x6))) (not (not (or x6 x5))))) (or (and (and (and (and x3 x1) (or x4 x6)) (and (or x6 x4) (or x6 x5))) (or (and (not x1) (or x1 x6)) (or (and x6 x4) (and x4 x1)))) (not (and (not (and x7 x5)) (or (and x1 x3) (or x4 x1)))))) (or (and (or (or (and (not x6) (not x6)) (not (or x0 x6))) (or (not (not x5)) (or (and x7 x7) (or x6 x4)))) (or (or (and (or x1 x1) (not x5)) (and (not x6) (or x3 x4))) (or (not (not x1)) (or (or x1 x6) (or x6 x3))))) (and (not (or (not (and x6 x3)) (and (or x4 x6) (and x7 x3)))) (or (and (and (and x4 x6) (and x6 x2)) (or (and x4 x3) (and x0 x1))) (and (and (or x3 x7) (or x1 x2)) (and (not x7) (or x0 x6)))))))))
+(check-sat)
+(push 1)
+(assert (or (not (or (not (or (or x2 x0) (and x5 x6))) (and (not (and x5 x6)) (or (or x2 x3) (not x3))))) (and (not (or (not (or x7 x6)) (or (not x6) (or x7 x7)))) (or (or (and (or x5 x6) (or x7 x4)) (not (not x2))) (or (or (or x2 x0) (and x1 x6)) (and (and x2 x2) (not x4)))))))
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(assert (not (or (or (and x5 x3) (or x4 x4)) (and (not x4) (not x7)))))
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_15.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_15.smt2
new file mode 100644 (file)
index 0000000..56b2707
--- /dev/null
@@ -0,0 +1,31 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(declare-fun x4 () Bool)
+(declare-fun x5 () Bool)
+(declare-fun x6 () Bool)
+(declare-fun x7 () Bool)
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(assert (or (not (or (or (or (or (or (or (and (not x3) (or x0 x1)) (and (and x3 x2) (not x7))) (and (not (or x3 x2)) (and (not x5) (or x1 x6)))) (and (and (or (and x4 x2) (or x4 x1)) (not (not x3))) (and (and (and x6 x5) (or x7 x4)) (not (or x3 x7))))) (or (or (or (or (and x3 x2) (or x6 x6)) (and (or x0 x2) (or x1 x0))) (or (or (or x1 x5) (and x6 x7)) (and (not x3) (not x5)))) (and (or (not (not x5)) (and (and x0 x2) (and x6 x4))) (not (or (or x0 x7) (not x0)))))) (and (or (and (not (not (not x0))) (or (and (or x1 x6) (not x2)) (not (and x7 x3)))) (and (not (not (not x5))) (not (and (or x0 x1) (not x0))))) (not (or (and (and (and x1 x1) (not x0)) (not (and x1 x0))) (or (not (not x5)) (and (or x7 x2) (not x7))))))) (and (or (not (and (and (and (or x6 x3) (not x4)) (and (or x5 x7) (or x6 x2))) (and (or (and x0 x3) (and x6 x6)) (and (and x0 x3) (not x0))))) (or (not (and (not (or x2 x6)) (or (and x2 x1) (and x0 x0)))) (or (and (not (and x5 x5)) (not (and x4 x4))) (and (not (or x7 x5)) (or (not x6) (or x3 x6)))))) (and (and (not (and (not (not x7)) (not (and x0 x6)))) (or (and (and (and x7 x1) (or x3 x5)) (not (or x7 x0))) (not (or (or x2 x1) (not x0))))) (or (or (not (not (or x2 x3))) (not (and (or x3 x5) (and x7 x7)))) (not (and (and (or x6 x3) (and x5 x3)) (and (not x2) (and x4 x5))))))))) (and (or (not (or (or (or (not (and (or x3 x2) (or x1 x0))) (and (not (or x6 x2)) (or (and x5 x4) (or x0 x6)))) (and (and (or (and x0 x6) (and x7 x6)) (and (not x0) (or x0 x4))) (and (or (and x7 x5) (or x4 x4)) (not (and x0 x5))))) (and (and (and (or (or x1 x6) (and x1 x4)) (not (and x2 x4))) (or (not (and x6 x6)) (and (not x3) (or x3 x1)))) (and (and (not (or x7 x6)) (not (not x4))) (or (not (not x7)) (or (not x3) (or x7 x5))))))) (not (not (and (or (and (and (and x0 x1) (or x3 x2)) (and (not x3) (not x2))) (not (not (or x6 x6)))) (or (or (and (and x3 x0) (not x2)) (or (and x7 x4) (not x2))) (not (and (not x4) (and x6 x6)))))))) (or (and (not (or (not (and (not (or x2 x4)) (and (and x1 x2) (and x1 x7)))) (not (not (and (and x2 x5) (or x5 x1)))))) (or (or (and (and (and (and x0 x1) (and x3 x5)) (and (and x0 x5) (not x6))) (or (or (or x7 x4) (not x5)) (and (and x0 x7) (and x5 x0)))) (and (not (not (and x5 x4))) (and (and (or x2 x4) (not x4)) (not (or x7 x3))))) (or (not (and (and (not x7) (not x3)) (not (or x2 x4)))) (and (not (or (and x4 x0) (not x1))) (and (and (not x1) (not x2)) (or (or x1 x4) (and x7 x1))))))) (or (and (and (or (and (or (or x1 x0) (and x0 x2)) (or (or x7 x5) (or x0 x4))) (and (or (and x1 x3) (and x4 x5)) (and (or x4 x0) (or x0 x3)))) (and (and (or (not x7) (and x4 x0)) (not (and x6 x3))) (and (and (and x3 x2) (not x1)) (not (and x3 x0))))) (not (not (not (and (not x6) (not x6)))))) (or (not (and (or (or (not x0) (and x5 x1)) (not (and x0 x3))) (or (not (and x7 x5)) (and (and x0 x1) (and x3 x3))))) (and (and (and (and (or x3 x3) (and x6 x2)) (not (not x0))) (or (and (not x4) (and x0 x7)) (and (not x7) (not x7)))) (or (not (not (not x5))) (not (and (not x5) (or x7 x0)))))))))))
+(check-sat)
+(push 1)
+(assert (and (or (or (not (not (not x1))) (and (not (not x2)) (not (and x3 x2)))) (not (not (or (not x2) (and x5 x5))))) (and (not (and (or (or x1 x1) (not x3)) (and (or x0 x3) (not x2)))) (or (not (or (or x2 x3) (or x4 x1))) (or (and (not x6) (not x5)) (not (or x4 x1)))))))
+(assert (and (not (not (and (not (or x5 x6)) (or (and x7 x0) (not x2))))) (or (not (not (and (not x5) (not x7)))) (or (and (and (not x3) (or x0 x6)) (or (and x2 x7) (or x5 x0))) (and (and (or x4 x3) (or x7 x6)) (not (and x7 x4)))))))
+(assert (not x2))
+(assert (or (not (and (and (not (or (and (not (and (and x1 x6) (not x6))) (and (not (or x5 x5)) (not (and x2 x6)))) (and (and (not (not x0)) (and (and x5 x2) (or x5 x1))) (or (not (and x6 x3)) (not (or x1 x4)))))) (and (not (not (not (and (or x3 x4) (and x2 x7))))) (or (not (and (not (not x3)) (or (not x0) (not x2)))) (and (not (not (and x4 x1))) (and (or (not x2) (and x3 x3)) (not (or x7 x6))))))) (not (or (or (and (not (or (and x3 x6) (not x4))) (not (not (or x4 x2)))) (not (or (not (not x3)) (not (not x5))))) (or (not (not (not (or x7 x5)))) (or (or (or (and x5 x5) (and x0 x4)) (or (and x3 x2) (not x7))) (or (and (or x2 x6) (or x6 x0)) (and (and x6 x7) (and x3 x6))))))))) (and (and (or (and (or (and (not (and (or x2 x4) (not x5))) (and (and (and x3 x6) (and x6 x4)) (or (or x4 x2) (and x3 x1)))) (or (or (and (and x3 x7) (or x2 x3)) (or (or x7 x6) (or x1 x3))) (not (not (not x4))))) (or (and (or (or (and x6 x5) (and x5 x0)) (not (or x6 x1))) (not (and (or x0 x4) (or x4 x1)))) (not (not (or (or x5 x4) (not x4)))))) (and (or (or (not (or (not x2) (or x3 x7))) (or (or (not x3) (not x5)) (or (or x5 x1) (and x1 x2)))) (and (and (and (and x0 x2) (or x4 x3)) (or (and x7 x2) (or x1 x6))) (and (and (and x4 x3) (or x2 x1)) (or (not x6) (and x3 x0))))) (and (not (or (or (or x4 x7) (and x0 x2)) (or (and x1 x1) (and x2 x7)))) (not (and (or (not x6) (and x6 x7)) (not (not x5))))))) (or (or (not (or (or (or (or x3 x5) (or x0 x5)) (not (or x0 x5))) (or (or (and x7 x7) (or x2 x3)) (or (or x1 x7) (or x1 x5))))) (or (not (and (or (and x3 x6) (not x0)) (or (not x6) (not x0)))) (not (and (and (or x1 x0) (and x3 x2)) (not (and x4 x1)))))) (not (not (or (and (or (or x3 x3) (and x6 x1)) (and (or x1 x6) (and x4 x7))) (and (and (and x0 x6) (or x5 x2)) (not (and x6 x6)))))))) (or (or (not (or (not (not (and (or x4 x0) (and x5 x5)))) (and (and (and (or x3 x3) (and x0 x2)) (or (not x2) (not x1))) (or (or (not x1) (and x0 x2)) (not (not x2)))))) (and (or (or (not (not (not x4))) (and (or (not x5) (or x3 x7)) (and (or x2 x5) (and x2 x6)))) (not (not (not (or x1 x5))))) (and (not (not (not (and x7 x0)))) (and (not (not (not x0))) (or (or (and x4 x0) (not x2)) (or (and x7 x6) (not x5))))))) (not (and (or (not (not (not (and x4 x7)))) (or (not (not (or x5 x1))) (or (or (and x2 x6) (or x6 x7)) (or (not x5) (not x7))))) (not (not (not (and (not x6) (and x5 x5)))))))))))
+(check-sat)
+(pop 1)
+(assert (not (not (not x3))))
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_16.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_16.smt2
new file mode 100644 (file)
index 0000000..e686367
--- /dev/null
@@ -0,0 +1,48 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(declare-fun x4 () Bool)
+(assert (or (or (and (not (not (not x0))) (not (and (not x4) (not x1)))) (and (and (or (and x3 x1) (not x1)) (and (not x3) (and x3 x4))) (and (or (or x1 x4) (and x3 x2)) (and (and x2 x4) (or x1 x4))))) (not (or (or (and (and x4 x1) (or x4 x2)) (and (or x0 x3) (not x2))) (not (or (or x0 x0) (and x0 x2)))))))
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(assert (not (or (and (not (or (or (and (or (or x2 x0) (not x4)) (not (not x2))) (and (not (not x0)) (not (and x2 x1)))) (and (or (or (and x2 x2) (or x0 x4)) (or (and x0 x2) (or x3 x2))) (or (and (and x1 x3) (and x0 x4)) (or (or x0 x4) (and x4 x0)))))) (or (or (or (and (not (not x1)) (and (or x0 x3) (and x2 x4))) (and (not (and x2 x1)) (and (not x0) (and x1 x3)))) (and (not (and (or x3 x4) (and x4 x3))) (or (or (not x4) (not x2)) (and (not x1) (or x0 x3))))) (or (or (not (and (not x2) (and x4 x0))) (or (and (not x3) (and x2 x2)) (or (and x0 x2) (and x1 x3)))) (and (or (and (and x1 x4) (or x4 x4)) (not (not x0))) (not (not (not x0))))))) (and (not (and (or (not (and (not x2) (not x2))) (or (not (or x3 x4)) (not (or x4 x1)))) (not (and (not (not x4)) (and (and x4 x3) (and x0 x1)))))) (not (or (and (and (not (not x0)) (not (or x2 x1))) (not (and (or x1 x2) (or x0 x3)))) (or (or (or (not x1) (not x3)) (not (and x1 x2))) (and (or (and x2 x4) (or x3 x4)) (and (or x2 x0) (not x1))))))))))
+(assert (not (or (not (or (not (and (or (and (not (or x2 x1)) (and (and x3 x3) (and x0 x1))) (or (or (or x1 x4) (or x0 x0)) (not (and x4 x2)))) (and (not (or (and x0 x1) (not x4))) (and (and (not x2) (or x3 x1)) (and (or x3 x3) (and x0 x4)))))) (or (not (not (not (and (not x0) (not x4))))) (and (not (and (or (and x4 x0) (or x0 x2)) (or (not x0) (and x1 x2)))) (not (and (not (and x1 x1)) (not (and x1 x4)))))))) (not (and (and (not (and (not (or (not x0) (and x1 x2))) (not (not (and x1 x1))))) (or (and (not (not (and x3 x0))) (not (and (and x2 x2) (or x1 x0)))) (and (and (or (not x1) (or x2 x3)) (not (or x2 x1))) (or (not (and x0 x2)) (or (or x3 x1) (and x0 x4)))))) (or (and (or (and (not (or x2 x3)) (not (not x1))) (and (and (and x0 x1) (not x4)) (or (or x3 x1) (or x0 x1)))) (and (or (and (and x0 x0) (and x0 x4)) (or (or x4 x0) (and x2 x2))) (or (and (and x0 x3) (and x1 x3)) (not (and x1 x1))))) (not (and (not (not (not x1))) (or (not (not x4)) (or (and x3 x2) (and x0 x3)))))))))))
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(assert (or (or (or (and x1 x2) (and x1 x2)) (and (or x3 x4) (and x1 x3))) (and (and (not x1) (or x4 x1)) (or (or x2 x2) (not x4)))))
+(assert (or (or (or (or (not (and (not (and (not (or x2 x0)) (not (or x1 x3)))) (not (not (and (or x4 x0) (not x1)))))) (not (not (or (not (or (not x3) (not x2))) (and (not (or x2 x1)) (and (not x2) (or x2 x2))))))) (not (not (and (and (or (or (not x0) (not x1)) (or (or x4 x3) (or x4 x2))) (and (or (and x0 x2) (and x4 x3)) (or (or x2 x4) (and x1 x4)))) (and (or (not (not x4)) (and (and x4 x4) (not x0))) (and (and (or x0 x2) (and x1 x1)) (and (and x2 x3) (or x2 x3)))))))) (or (and (and (and (or (not (not (not x4))) (or (and (not x4) (and x4 x4)) (or (and x2 x3) (and x4 x4)))) (or (or (and (or x0 x2) (or x3 x4)) (or (not x0) (or x1 x1))) (not (and (and x0 x1) (not x3))))) (and (not (not (and (not x0) (or x3 x4)))) (and (or (or (and x1 x3) (not x1)) (and (or x0 x0) (or x3 x1))) (or (and (or x2 x1) (not x2)) (not (not x3)))))) (or (or (not (or (or (and x3 x1) (and x4 x4)) (not (and x1 x1)))) (and (or (and (and x1 x0) (not x3)) (not (not x4))) (or (or (not x3) (and x2 x1)) (and (not x2) (not x3))))) (not (or (not (or (or x2 x1) (and x4 x4))) (or (and (and x2 x3) (and x1 x4)) (not (or x0 x2))))))) (and (and (not (and (not (and (or x0 x0) (or x4 x0))) (or (or (not x1) (or x2 x2)) (or (and x0 x2) (or x0 x4))))) (not (not (not (and (not x4) (not x4)))))) (or (and (and (and (and (and x4 x0) (not x3)) (not (not x1))) (not (not (and x2 x4)))) (or (not (not (and x3 x0))) (not (and (not x3) (not x3))))) (and (or (and (not (not x4)) (or (or x1 x0) (and x0 x1))) (and (not (or x0 x1)) (and (and x2 x4) (or x1 x4)))) (or (and (not (not x1)) (not (or x1 x1))) (not (and (not x3) (or x0 x3))))))))) (not (and (not (or (or (or (not (and (or x2 x2) (and x2 x3))) (not (and (or x1 x4) (and x1 x1)))) (and (and (and (or x1 x2) (and x1 x2)) (or (and x4 x2) (or x4 x3))) (and (not (not x3)) (not (or x3 x0))))) (not (not (and (or (and x4 x4) (not x3)) (and (or x1 x1) (not x2))))))) (or (not (not (not (not (or (not x4) (and x0 x2)))))) (or (not (or (not (and (or x1 x0) (and x2 x0))) (and (and (not x3) (or x2 x4)) (not (not x0))))) (or (not (and (not (not x3)) (not (and x0 x4)))) (and (or (or (and x4 x1) (and x4 x2)) (or (or x0 x3) (or x3 x2))) (or (or (not x2) (or x2 x4)) (not (not x2)))))))))))
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(assert (and (or (and (or (and (or (not (or (and (or x1 x4) (and x4 x1)) (and (not x2) (not x3)))) (and (and (not (or x4 x1)) (or (not x3) (and x2 x3))) (and (or (and x3 x3) (and x0 x2)) (or (and x1 x0) (or x2 x4))))) (not (not (or (or (or x2 x2) (and x3 x3)) (not (not x2)))))) (and (and (or (or (not (not x3)) (or (and x0 x0) (and x1 x1))) (or (and (and x3 x2) (and x0 x1)) (and (and x1 x2) (or x1 x4)))) (not (or (or (and x2 x2) (and x3 x2)) (and (not x2) (not x1))))) (and (not (and (or (and x1 x2) (not x1)) (and (and x1 x1) (or x4 x3)))) (and (or (not (and x3 x3)) (not (not x3))) (or (and (and x0 x4) (not x1)) (or (and x1 x3) (not x0))))))) (not (and (and (or (not (not (or x2 x4))) (not (or (not x3) (and x4 x2)))) (or (or (and (or x2 x0) (and x0 x4)) (not (or x2 x4))) (or (or (or x3 x4) (not x4)) (and (or x3 x1) (or x1 x1))))) (and (and (or (not (or x0 x2)) (or (not x0) (and x3 x4))) (and (not (not x1)) (not (or x1 x0)))) (not (not (or (not x4) (not x0)))))))) (or (not (not (or (and (or (or (and x1 x4) (not x0)) (not (not x0))) (and (and (or x3 x1) (or x0 x4)) (or (and x0 x1) (and x2 x3)))) (not (not (and (not x3) (or x4 x3))))))) (not (and (or (not (and (not (and x0 x3)) (not (not x3)))) (and (or (and (or x0 x1) (and x1 x4)) (not (and x2 x4))) (or (and (not x4) (and x4 x2)) (or (or x2 x1) (not x2))))) (and (or (and (or (not x3) (and x4 x1)) (not (not x0))) (and (and (and x1 x4) (and x2 x1)) (and (not x3) (and x0 x2)))) (not (not (or (not x3) (and x4 x0))))))))) (and (or (or (not (not (and (and (not (or x3 x3)) (or (not x2) (not x0))) (and (or (and x4 x4) (and x3 x3)) (not (and x0 x1)))))) (or (not (or (and (and (and x4 x1) (not x2)) (or (and x2 x4) (not x4))) (and (and (not x1) (not x2)) (or (or x4 x0) (not x4))))) (or (and (or (or (not x4) (not x3)) (not (not x4))) (or (and (or x2 x3) (and x2 x4)) (or (not x1) (and x1 x3)))) (not (and (and (or x2 x3) (and x3 x1)) (not (and x0 x3))))))) (not (and (not (and (and (or (not x0) (or x0 x4)) (not (and x3 x0))) (not (or (and x2 x3) (not x3))))) (and (not (not (or (not x3) (and x2 x1)))) (or (not (not (not x2))) (or (and (and x2 x2) (or x1 x1)) (and (and x2 x4) (not x2)))))))) (or (not (and (not (and (or (or (and x1 x1) (not x4)) (and (not x4) (and x2 x3))) (not (or (not x4) (and x1 x2))))) (or (not (and (and (and x4 x2) (and x1 x0)) (or (and x3 x3) (not x0)))) (not (or (and (and x1 x2) (not x1)) (or (and x1 x1) (not x0))))))) (and (not (or (or (and (not (not x1)) (and (or x1 x1) (not x0))) (and (not (and x2 x2)) (or (or x1 x2) (not x2)))) (or (or (or (and x4 x3) (not x3)) (and (and x2 x3) (or x4 x2))) (not (not (or x2 x0)))))) (not (and (or (or (or (not x0) (not x0)) (or (or x4 x0) (and x4 x1))) (not (not (not x0)))) (or (and (or (and x3 x1) (or x4 x0)) (not (and x1 x1))) (not (and (and x2 x3) (and x4 x3)))))))))))
+(assert (or (not (not (and (not (not (or (and (or (and x3 x4) (not x4)) (or (and x2 x2) (not x0))) (or (not (or x3 x4)) (or (and x4 x1) (or x0 x2)))))) (and (not (and (or (not (not x0)) (not (or x3 x1))) (not (and (or x4 x2) (or x4 x2))))) (and (and (or (and (or x1 x2) (not x2)) (or (not x1) (and x1 x2))) (not (and (and x2 x1) (or x1 x4)))) (or (or (or (not x3) (or x4 x0)) (or (not x0) (and x3 x3))) (not (or (and x0 x1) (or x4 x0))))))))) (or (and (and (not (or (and (not (not (and x1 x2))) (and (not (not x3)) (and (and x4 x0) (or x4 x3)))) (or (and (or (or x3 x4) (and x2 x4)) (and (and x2 x2) (or x0 x2))) (not (and (and x0 x1) (and x2 x1)))))) (or (and (not (not (not (not x2)))) (and (and (or (not x2) (and x4 x2)) (and (and x2 x3) (or x0 x4))) (and (or (or x0 x2) (not x0)) (not (and x2 x2))))) (or (and (and (or (or x3 x0) (and x2 x3)) (or (not x2) (and x3 x1))) (or (not (and x2 x0)) (and (not x2) (not x1)))) (not (and (or (and x0 x0) (or x2 x1)) (and (not x4) (or x2 x4))))))) (or (or (or (not (not (and (not x4) (or x1 x1)))) (not (not (not (and x3 x3))))) (or (not (and (and (and x4 x1) (not x4)) (not (not x0)))) (or (or (not (and x4 x1)) (and (not x1) (or x0 x4))) (not (not (and x4 x2)))))) (or (not (not (or (or (or x2 x2) (and x2 x3)) (or (and x3 x4) (not x0))))) (or (not (and (and (not x0) (or x1 x4)) (not (not x3)))) (and (or (and (or x1 x0) (not x1)) (not (or x4 x2))) (or (not (and x0 x1)) (or (and x0 x0) (or x3 x1)))))))) (not (or (and (and (or (or (not (not x4)) (and (or x0 x1) (or x4 x3))) (and (or (not x4) (and x4 x4)) (not (and x2 x0)))) (not (or (not (or x4 x2)) (and (not x1) (or x0 x4))))) (or (or (and (or (not x1) (and x3 x0)) (or (not x1) (and x0 x1))) (or (not (not x4)) (and (and x4 x3) (and x1 x4)))) (or (not (not (or x2 x0))) (and (and (and x4 x2) (not x0)) (and (or x1 x1) (and x2 x4)))))) (or (or (not (not (not (or x2 x4)))) (not (not (or (or x3 x3) (and x1 x1))))) (or (or (and (and (and x2 x4) (and x3 x3)) (and (and x0 x4) (not x1))) (not (not (not x3)))) (and (or (or (and x1 x0) (and x1 x4)) (and (and x4 x0) (or x0 x3))) (or (and (or x1 x0) (and x1 x2)) (not (not x3)))))))))))
+(check-sat)
+(push 1)
+(assert (or (or (and (and (and (and (or (or (not (and x4 x4)) (and (and x4 x0) (not x3))) (and (not (or x4 x0)) (not (or x0 x0)))) (not (or (not (and x3 x0)) (or (and x4 x0) (and x1 x3))))) (or (not (not (not (or x4 x1)))) (not (not (not (not x3)))))) (not (not (not (or (and (not x3) (or x1 x3)) (and (and x2 x3) (or x2 x2))))))) (not (not (or (not (and (not (or x4 x1)) (and (and x1 x4) (and x2 x2)))) (and (not (not (or x3 x2))) (not (not (not x4)))))))) (or (or (and (or (not (not (not (or x1 x1)))) (not (not (not (or x0 x1))))) (not (not (and (not (not x3)) (and (not x2) (and x4 x3)))))) (and (not (or (and (not (and x1 x0)) (and (and x3 x1) (or x1 x0))) (or (not (and x3 x2)) (or (or x1 x4) (and x2 x1))))) (not (not (or (and (and x2 x0) (not x0)) (and (and x2 x0) (and x0 x4))))))) (and (and (not (and (and (or (or x2 x4) (and x0 x3)) (not (or x1 x2))) (not (and (and x1 x1) (or x4 x3))))) (and (not (or (not (or x2 x3)) (or (or x2 x0) (and x3 x4)))) (not (not (or (and x2 x0) (not x4)))))) (or (not (and (not (not (or x0 x0))) (not (not (or x1 x3))))) (and (not (and (and (and x3 x4) (or x1 x0)) (or (and x2 x4) (not x2)))) (not (not (and (and x0 x1) (and x2 x4))))))))) (not (and (or (not (and (and (and (not (or x4 x2)) (and (not x0) (not x0))) (not (or (or x0 x1) (not x2)))) (or (or (and (and x3 x1) (or x4 x3)) (not (and x0 x2))) (or (and (and x1 x0) (not x0)) (or (not x2) (and x3 x3)))))) (not (and (and (and (or (and x3 x4) (and x3 x3)) (not (or x3 x4))) (not (not (and x3 x0)))) (or (and (not (or x4 x4)) (not (not x3))) (and (not (and x4 x1)) (or (and x2 x3) (and x0 x1))))))) (or (and (and (not (or (or (not x3) (not x4)) (not (or x1 x0)))) (and (or (or (and x1 x3) (and x1 x4)) (not (or x3 x1))) (and (not (and x0 x3)) (not (or x1 x1))))) (not (or (not (and (or x0 x0) (and x2 x2))) (not (or (not x4) (not x4)))))) (or (or (and (and (and (and x1 x2) (or x1 x0)) (or (or x1 x2) (or x2 x2))) (not (and (not x0) (or x1 x3)))) (not (or (or (or x0 x1) (or x4 x1)) (not (not x1))))) (not (or (not (and (not x3) (not x3))) (and (or (and x0 x0) (or x0 x1)) (or (and x1 x1) (not x4)))))))))))
+(assert (or (and (not (not (or (not (and x1 x3)) (not (not x3))))) (not (not (or (and (or x4 x0) (not x0)) (and (and x0 x0) (and x4 x1)))))) (not (and (and (not (and (or x2 x0) (or x0 x2))) (or (not (not x3)) (and (and x2 x1) (and x1 x3)))) (not (and (not (or x4 x0)) (or (not x2) (not x1))))))))
+(assert (or (and (not (not (and (and (and (not x0) (and x2 x3)) (or (or x1 x0) (and x4 x2))) (or (and (or x1 x0) (and x2 x4)) (or (and x0 x3) (not x4)))))) (or (and (not (not (and (not x2) (not x4)))) (or (or (or (and x0 x2) (and x4 x4)) (not (or x2 x4))) (and (not (and x0 x4)) (or (or x0 x2) (or x0 x2))))) (or (and (not (or (or x1 x1) (and x2 x0))) (not (and (not x2) (or x2 x2)))) (or (or (not (and x4 x4)) (or (and x0 x3) (not x1))) (and (not (not x4)) (or (or x0 x3) (not x1))))))) (and (or (and (or (or (and (or x3 x4) (or x2 x2)) (not (and x3 x0))) (or (not (and x2 x2)) (or (or x2 x1) (or x1 x1)))) (or (and (and (not x4) (not x1)) (or (and x1 x3) (and x3 x2))) (and (or (not x3) (or x2 x1)) (not (and x3 x2))))) (not (and (or (or (or x2 x3) (not x2)) (and (not x1) (not x2))) (or (and (or x3 x1) (and x3 x2)) (and (or x4 x2) (or x0 x4)))))) (and (or (and (or (not (and x4 x2)) (or (and x1 x3) (and x2 x3))) (or (not (and x0 x1)) (not (or x1 x2)))) (and (not (or (not x2) (or x3 x2))) (and (and (and x3 x3) (not x2)) (not (and x3 x3))))) (not (and (not (or (not x4) (not x3))) (or (or (and x1 x1) (not x0)) (and (not x0) (and x4 x3)))))))))
+(assert (or (and (or (or (and x2 x2) (or x1 x2)) (or (or x2 x3) (not x0))) (not (not (not x3)))) (or (and (and (and x3 x4) (or x4 x4)) (and (or x0 x2) (and x2 x3))) (and (or (and x4 x4) (and x2 x1)) (or (not x3) (or x4 x4))))))
+(check-sat)
+(pop 1)
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_18.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_18.smt2
new file mode 100644 (file)
index 0000000..7952f0b
--- /dev/null
@@ -0,0 +1,39 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(declare-fun x4 () Bool)
+(declare-fun x5 () Bool)
+(declare-fun x6 () Bool)
+(declare-fun x7 () Bool)
+(declare-fun x8 () Bool)
+(assert (or (not (and (or (and (and (or (or (or (and x3 x6) (not x8)) (or (or x3 x0) (or x5 x8))) (and (and (or x0 x5) (not x0)) (not (not x4)))) (not (and (and (or x8 x3) (and x6 x0)) (or (and x7 x3) (and x5 x0))))) (not (not (and (and (and x2 x5) (not x0)) (not (not x1)))))) (not (not (or (not (or (and x3 x3) (not x8))) (and (not (or x0 x1)) (or (not x7) (and x4 x1))))))) (not (not (or (not (not (or (not x0) (or x3 x3)))) (not (not (or (not x6) (and x6 x0))))))))) (or (not (and (and (or (not (and (or (and x2 x1) (or x2 x7)) (and (and x7 x5) (or x5 x0)))) (and (or (not (and x7 x8)) (and (not x3) (or x6 x6))) (and (and (or x7 x5) (or x7 x5)) (not (not x7))))) (and (or (not (or (not x6) (or x0 x5))) (or (or (or x1 x3) (or x7 x4)) (or (and x1 x2) (not x8)))) (or (not (or (and x1 x6) (and x6 x7))) (and (not (and x2 x5)) (not (or x2 x6)))))) (or (or (not (or (or (or x2 x0) (and x3 x2)) (and (or x1 x3) (or x6 x4)))) (and (not (and (or x1 x7) (or x1 x2))) (not (not (not x0))))) (not (not (not (and (or x0 x0) (or x5 x2)))))))) (and (and (or (not (not (not (or (and x0 x2) (or x4 x2))))) (or (and (or (or (and x5 x8) (and x3 x1)) (not (not x2))) (or (or (and x6 x6) (not x8)) (and (not x5) (or x2 x4)))) (or (or (not (not x5)) (not (and x6 x5))) (or (and (and x2 x4) (and x5 x1)) (or (not x7) (not x6)))))) (not (and (not (or (and (not x1) (not x3)) (not (or x6 x2)))) (or (not (or (or x0 x4) (and x2 x5))) (or (or (and x4 x2) (and x1 x1)) (not (or x7 x8))))))) (and (or (not (or (not (not (not x2))) (not (and (or x3 x0) (and x3 x2))))) (or (not (and (and (and x0 x2) (and x8 x1)) (or (and x5 x7) (or x1 x2)))) (or (and (not (or x4 x3)) (or (or x6 x1) (and x1 x2))) (and (not (or x6 x1)) (and (or x1 x6) (or x3 x6)))))) (and (not (not (or (and (not x0) (or x5 x1)) (not (not x0))))) (or (or (and (not (not x4)) (and (not x1) (not x0))) (or (or (not x3) (and x5 x0)) (or (not x3) (and x1 x6)))) (not (not (or (and x7 x2) (not x5)))))))))))
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(assert (or (not (or x1 x2)) (and (or x3 x3) (or x1 x0))))
+(check-sat)
+(pop 1)
+(assert (or (not (and (and x1 x3) (not x4))) (or (not (or x0 x0)) (or (and x1 x8) (not x0)))))
+(assert (or (not x7) (and x1 x7)))
+(assert (and (or (not (or (not x4) (or x3 x6))) (and (and (and x1 x1) (not x2)) (not (and x8 x5)))) (and (and (or (not x7) (and x0 x8)) (and (or x2 x5) (or x5 x4))) (and (or (and x5 x7) (not x6)) (or (and x5 x2) (or x8 x2))))))
+(assert (or (and (or (or (or (not x4) (or x6 x7)) (not (or x3 x4))) (and (and (or x8 x3) (not x7)) (and (not x5) (or x8 x3)))) (or (and (or (or x3 x2) (and x0 x2)) (and (not x7) (and x8 x6))) (and (not (or x7 x7)) (or (or x8 x2) (not x6))))) (not (not (and (and (and x7 x7) (not x0)) (and (not x7) (not x2)))))))
+(check-sat)
+(push 1)
+(assert (and x0 x5))
+(check-sat)
+(pop 1)
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_19.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_19.smt2
new file mode 100644 (file)
index 0000000..f29a113
--- /dev/null
@@ -0,0 +1,45 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(declare-fun x4 () Bool)
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(assert (or (or (not (and (not (or (or (and (not (and x0 x3)) (not (not x1))) (or (not (and x4 x4)) (or (not x4) (not x4)))) (or (not (or (or x4 x0) (and x4 x2))) (not (or (and x4 x0) (or x1 x3)))))) (not (or (and (or (or (or x4 x2) (and x3 x2)) (or (not x3) (or x3 x4))) (or (not (or x2 x2)) (and (or x1 x1) (not x4)))) (or (and (not (or x0 x4)) (and (or x0 x3) (not x0))) (not (and (and x1 x2) (and x1 x4)))))))) (not (and (not (and (or (and (not (or x0 x4)) (or (and x1 x4) (and x3 x3))) (or (or (not x3) (or x1 x1)) (not (not x4)))) (not (and (and (and x2 x4) (and x2 x4)) (not (not x4)))))) (and (and (not (not (or (not x4) (and x4 x0)))) (not (and (not (and x0 x0)) (or (not x4) (or x3 x2))))) (not (not (and (and (not x2) (and x4 x4)) (not (and x1 x2))))))))) (and (or (and (not (and (not (or (or (and x1 x2) (not x0)) (or (not x4) (and x3 x0)))) (or (not (or (or x1 x3) (not x0))) (and (or (or x3 x0) (and x2 x0)) (not (not x0)))))) (or (and (and (and (and (not x0) (and x0 x1)) (and (not x1) (or x1 x3))) (not (not (or x1 x1)))) (or (not (or (or x2 x3) (or x2 x1))) (or (not (not x4)) (and (and x0 x4) (not x0))))) (or (and (or (not (not x1)) (or (not x2) (or x1 x4))) (or (or (not x3) (not x4)) (not (and x2 x2)))) (or (and (or (and x3 x1) (and x1 x1)) (not (and x4 x2))) (and (or (not x2) (and x4 x3)) (and (not x2) (or x0 x2))))))) (and (or (and (or (or (and (not x1) (or x0 x4)) (not (not x3))) (not (or (or x3 x1) (and x1 x0)))) (or (and (or (and x3 x3) (not x3)) (or (and x0 x2) (not x4))) (and (not (not x2)) (and (and x3 x2) (and x4 x3))))) (and (not (not (or (not x2) (and x0 x3)))) (not (and (and (not x3) (not x4)) (not (not x4)))))) (or (not (or (not (not (not x2))) (and (and (not x0) (and x3 x4)) (or (not x4) (and x0 x1))))) (not (or (and (or (and x2 x1) (or x3 x2)) (not (and x1 x4))) (and (not (or x0 x4)) (not (not x1)))))))) (or (and (and (not (or (or (and (and x3 x0) (not x2)) (and (or x0 x4) (and x3 x2))) (and (or (and x1 x3) (and x2 x0)) (or (not x0) (or x0 x3))))) (not (not (and (or (and x4 x3) (or x1 x0)) (not (and x2 x3)))))) (not (or (not (and (and (and x3 x4) (or x3 x4)) (or (or x1 x2) (and x1 x4)))) (not (not (or (and x2 x2) (and x4 x4))))))) (or (or (not (or (or (or (or x2 x0) (not x2)) (or (not x0) (or x4 x4))) (or (or (and x2 x0) (or x1 x1)) (and (or x3 x0) (not x0))))) (or (or (and (not (not x3)) (not (and x3 x4))) (not (and (not x0) (not x0)))) (and (or (or (or x2 x3) (and x3 x0)) (or (or x0 x3) (or x2 x2))) (not (not (and x3 x0)))))) (or (or (not (or (not (not x4)) (and (and x4 x0) (and x2 x2)))) (or (and (or (or x4 x2) (and x0 x3)) (and (and x0 x3) (not x0))) (not (and (or x3 x0) (and x0 x4))))) (and (or (and (or (and x2 x2) (and x0 x2)) (not (not x1))) (not (or (and x1 x1) (and x1 x2)))) (and (not (not (not x2))) (or (or (not x1) (and x0 x4)) (or (not x0) (not x0)))))))))))
+(assert (or (or (or (and x2 x1) (and x4 x4)) (or (or x1 x4) (and x2 x3))) (not (and (and x3 x4) (not x0)))))
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(assert (and (not (and (not (and (not (or (or x3 x0) (and x0 x2))) (not (and (and x2 x0) (not x3))))) (and (or (or (not (and x3 x1)) (not (and x4 x4))) (or (or (or x0 x3) (or x4 x4)) (not (not x3)))) (not (or (not (not x0)) (and (or x1 x0) (and x3 x2))))))) (not (and (and (and (or (or (or x2 x1) (and x0 x1)) (and (or x3 x0) (or x0 x0))) (or (and (and x3 x1) (or x3 x4)) (not (not x4)))) (not (and (or (and x2 x1) (and x4 x0)) (not (not x0))))) (and (and (or (or (and x3 x3) (or x1 x4)) (and (and x2 x3) (not x1))) (not (and (or x4 x2) (or x4 x4)))) (not (not (or (and x1 x1) (and x4 x3)))))))))
+(assert (not (not (not (not (and (or (not (or (and (not x4) (not x2)) (and (not x4) (not x1)))) (not (and (and (and x2 x2) (and x4 x3)) (not (and x1 x0))))) (not (or (and (not (and x3 x2)) (not (not x2))) (not (not (not x2)))))))))))
+(check-sat)
+(push 1)
+(assert (or (or (or (or (not x4) (not x1)) (not (not x1))) (and (and (and x4 x1) (and x4 x4)) (and (and x4 x0) (or x0 x2)))) (not (and (not (and x3 x0)) (and (not x2) (or x1 x0))))))
+(check-sat)
+(pop 1)
+(assert (not (or (not (not x3)) (or (not x2) (not x4)))))
+(assert (and (or x3 x4) (and x4 x0)))
+(assert (and (not (not (not (or (or (or (and (and (or x2 x3) (or x3 x1)) (and (or x0 x3) (and x4 x4))) (and (not (and x2 x4)) (or (and x4 x0) (or x4 x3)))) (not (or (and (and x0 x4) (not x4)) (not (or x3 x4))))) (and (and (or (not (and x1 x4)) (or (not x1) (and x4 x2))) (not (or (or x1 x2) (and x4 x3)))) (not (or (or (not x2) (not x4)) (and (or x1 x3) (not x3))))))))) (not (or (and (not (and (and (and (not (and x3 x3)) (not (and x1 x1))) (not (or (not x4) (or x2 x1)))) (and (not (or (not x4) (and x4 x2))) (or (or (and x1 x2) (not x4)) (and (or x3 x4) (not x0)))))) (and (or (or (or (or (or x3 x2) (or x1 x3)) (or (not x4) (or x1 x4))) (or (not (and x1 x0)) (and (and x4 x3) (and x0 x0)))) (and (or (not (not x0)) (or (or x0 x3) (or x4 x4))) (and (not (or x2 x2)) (not (and x2 x4))))) (or (not (and (or (and x1 x1) (or x1 x1)) (not (or x0 x0)))) (and (not (and (or x1 x3) (or x3 x3))) (or (and (or x0 x1) (not x2)) (or (or x3 x0) (or x3 x1))))))) (not (not (or (and (not (or (or x2 x2) (or x0 x3))) (or (and (and x4 x3) (not x4)) (or (or x0 x4) (and x3 x0)))) (and (or (and (or x1 x0) (or x0 x1)) (not (and x3 x4))) (and (or (or x2 x2) (or x1 x3)) (not (or x0 x1)))))))))))
+(assert (or (not (and (and (or (and x3 x4) (not x3)) (not (or x1 x0))) (and (and (or x3 x2) (or x2 x1)) (and (and x0 x1) (and x0 x2))))) (not (not (or (not (not x1)) (or (or x1 x3) (or x1 x4)))))))
+(check-sat)
+(pop 1)
+(assert (not (or x1 x2)))
+(assert (or (and (or (or x2 x0) (not x4)) (or (not x4) (or x2 x2))) (not (not (or x2 x3)))))
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_2.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_2.smt2
new file mode 100644 (file)
index 0000000..17dd073
--- /dev/null
@@ -0,0 +1,17 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(assert (or (not (or (and (or (and (or x1 x0) (not x1)) (and (not x0) (not x0))) (and (not (not x1)) (not (or x1 x1)))) (and (and (or (or x0 x0) (not x1)) (and (not x0) (not x1))) (not (or (and x1 x1) (and x0 x1)))))) (or (not (and (or (not (and x1 x1)) (not (and x1 x0))) (not (not (and x0 x1))))) (not (or (and (and (and x0 x1) (and x0 x0)) (and (or x0 x1) (and x0 x0))) (not (not (and x0 x0))))))))
+(check-sat)
+(push 1)
+(assert (and (or (and (or (or (not (or (and (and (not x1) (and x0 x0)) (or (or x0 x1) (and x1 x0))) (and (and (or x1 x1) (or x1 x0)) (not (or x0 x0))))) (and (and (or (not (and x1 x0)) (and (not x0) (or x1 x0))) (and (not (or x0 x1)) (not (and x0 x1)))) (not (not (and (and x0 x0) (not x0)))))) (and (and (not (not (or (and x0 x0) (not x1)))) (and (or (and (and x1 x1) (not x0)) (not (and x0 x1))) (or (and (or x1 x1) (and x0 x1)) (not (not x1))))) (and (not (or (or (not x1) (or x0 x1)) (and (or x0 x1) (and x1 x1)))) (not (and (not (and x1 x0)) (not (not x1))))))) (or (or (not (or (or (or (or x0 x0) (or x1 x1)) (and (or x1 x1) (and x1 x1))) (or (not (not x1)) (not (and x0 x1))))) (or (or (and (not (or x1 x1)) (and (not x1) (and x0 x1))) (and (not (not x1)) (and (and x0 x0) (and x1 x1)))) (and (or (or (or x0 x0) (not x1)) (and (not x0) (or x1 x0))) (and (and (not x0) (and x0 x1)) (and (or x0 x1) (not x1)))))) (not (and (or (not (not (and x0 x1))) (and (not (or x0 x1)) (not (not x1)))) (and (not (and (or x1 x0) (not x0))) (and (or (or x0 x0) (or x1 x0)) (and (or x1 x1) (not x1)))))))) (not (and (not (or (and (and (or (or x0 x1) (or x0 x0)) (not (not x0))) (not (and (not x1) (not x0)))) (and (not (or (or x0 x0) (not x0))) (not (not (not x1)))))) (not (or (or (or (and (and x1 x1) (not x1)) (not (not x1))) (and (and (or x1 x1) (or x1 x0)) (and (and x0 x1) (or x0 x0)))) (not (or (not (or x1 x0)) (or (not x1) (or x0 x1))))))))) (not (and (not (and (or (and (not (or (not x0) (and x1 x1))) (and (or (not x0) (and x1 x0)) (not (not x1)))) (or (not (or (and x0 x1) (and x0 x0))) (or (not (and x0 x0)) (and (and x1 x0) (and x1 x0))))) (not (not (and (and (not x1) (not x0)) (and (not x0) (and x0 x0))))))) (and (or (and (or (or (and (or x1 x1) (and x1 x1)) (not (not x1))) (and (and (not x1) (or x1 x1)) (not (and x0 x0)))) (or (or (not (not x0)) (and (or x0 x1) (or x1 x0))) (or (and (not x1) (not x0)) (or (and x1 x1) (and x1 x0))))) (or (and (or (and (and x0 x0) (not x1)) (not (not x0))) (not (and (or x1 x1) (and x1 x0)))) (and (or (not (not x0)) (not (or x0 x1))) (and (or (or x1 x0) (and x0 x0)) (and (or x1 x0) (and x1 x1)))))) (not (not (or (and (or (or x1 x0) (and x0 x1)) (not (or x1 x1))) (and (and (not x0) (and x1 x0)) (not (or x0 x0)))))))))))
+(assert (and (or (and (or (or (not (and x0 x1)) (not (or x0 x1))) (not (and (and x1 x1) (or x1 x1)))) (or (and (or (not x0) (or x0 x0)) (or (and x1 x1) (not x1))) (or (not (and x1 x0)) (and (and x0 x0) (or x0 x0))))) (not (or (or (not (and x1 x1)) (and (or x1 x0) (or x1 x0))) (not (or (or x0 x1) (and x1 x0)))))) (or (and (or (not (not (and x0 x0))) (and (and (or x0 x0) (and x1 x1)) (or (or x0 x0) (or x1 x0)))) (or (not (and (not x1) (or x1 x1))) (and (or (and x1 x0) (or x1 x0)) (not (or x0 x0))))) (or (or (and (and (or x1 x0) (and x1 x1)) (not (or x1 x0))) (and (or (not x1) (and x0 x0)) (or (or x0 x1) (or x0 x1)))) (and (and (and (and x1 x0) (or x0 x1)) (not (or x0 x1))) (and (or (not x1) (and x0 x0)) (and (or x1 x1) (and x0 x1))))))))
+(check-sat)
+(pop 1)
+(assert (not (not (not (or x0 x1)))))
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_20.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_20.smt2
new file mode 100644 (file)
index 0000000..0142fe4
--- /dev/null
@@ -0,0 +1,53 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(declare-fun x4 () Bool)
+(declare-fun x5 () Bool)
+(declare-fun x6 () Bool)
+(declare-fun x7 () Bool)
+(declare-fun x8 () Bool)
+(declare-fun x9 () Bool)
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(assert (not (and x7 x7)))
+(check-sat)
+(push 1)
+(assert (or (or x0 x1) (not x7)))
+(assert (not (and x6 x9)))
+(assert (and (and (not (or x7 x5)) (or (or x3 x8) (or x5 x8))) (or (or (or x1 x5) (and x3 x6)) (or (and x2 x5) (or x1 x1)))))
+(assert (or (not (or (not (not (not x9))) (and (or (and x2 x6) (and x2 x4)) (not (or x8 x2))))) (not (or (and (and (not x2) (not x3)) (and (or x0 x0) (and x7 x5))) (not (not (or x1 x9)))))))
+(assert (or (or (not (or (and (not (and (or (or x6 x6) (and x0 x2)) (or (not x5) (not x3)))) (not (and (or (and x1 x2) (not x1)) (not (not x3))))) (or (not (not (or (or x9 x0) (not x6)))) (and (or (and (and x2 x6) (not x4)) (not (not x9))) (not (or (not x7) (or x4 x9))))))) (and (not (and (and (or (or (and x1 x2) (and x1 x5)) (and (not x7) (or x5 x1))) (or (not (and x0 x1)) (or (not x6) (not x1)))) (and (or (not (not x3)) (or (not x1) (not x2))) (or (and (and x4 x6) (not x4)) (and (or x1 x6) (or x2 x3)))))) (and (and (and (or (not (or x9 x9)) (not (or x7 x3))) (or (not (and x5 x3)) (not (not x8)))) (not (or (or (not x1) (or x4 x9)) (not (and x4 x0))))) (or (or (and (or (or x0 x7) (or x4 x4)) (or (or x5 x4) (and x0 x4))) (or (not (and x7 x3)) (or (and x8 x0) (or x7 x8)))) (not (not (and (not x9) (and x1 x9)))))))) (not (and (or (not (not (and (and (and x4 x1) (or x5 x1)) (and (or x5 x4) (not x5))))) (not (not (and (or (and x3 x7) (or x2 x7)) (or (or x5 x0) (or x7 x4)))))) (not (not (not (not (or (or x3 x0) (or x7 x7))))))))))
+(check-sat)
+(pop 1)
+(assert (or (not (or (and (or (not (and (or x8 x0) (and x5 x2))) (not (not (or x6 x0)))) (not (and (or (or x6 x9) (and x5 x7)) (and (or x1 x7) (and x0 x0))))) (or (and (and (not (not x1)) (not (and x8 x5))) (and (and (and x5 x2) (and x7 x1)) (not (and x0 x0)))) (or (not (and (and x3 x5) (not x3))) (not (or (and x1 x0) (and x2 x4))))))) (not (and (and (and (not (or (not x4) (or x3 x7))) (not (not (not x3)))) (or (not (not (and x2 x1))) (and (or (not x6) (and x0 x8)) (not (not x3))))) (or (or (not (and (or x2 x5) (and x9 x8))) (or (or (and x2 x6) (not x3)) (not (and x7 x3)))) (or (or (not (or x6 x4)) (not (not x0))) (or (or (not x3) (or x6 x7)) (not (and x6 x7)))))))))
+(check-sat)
+(push 1)
+(assert (or (and (or (and (or (or (and (not x5) (not x9)) (or (and x3 x6) (and x3 x4))) (not (or (not x5) (or x6 x4)))) (and (and (and (not x4) (not x1)) (not (and x6 x2))) (and (or (not x4) (not x8)) (or (and x1 x3) (not x6))))) (not (not (and (or (not x8) (and x9 x1)) (and (not x3) (or x9 x4)))))) (not (and (or (not (or (or x1 x8) (or x9 x5))) (not (not (or x8 x8)))) (and (not (not (and x2 x5))) (or (or (not x6) (or x1 x2)) (or (not x0) (and x8 x4))))))) (and (or (or (and (and (not (and x7 x8)) (or (or x8 x3) (or x5 x2))) (not (or (and x3 x0) (and x8 x1)))) (or (and (and (not x2) (and x2 x2)) (or (not x1) (and x6 x6))) (or (and (not x2) (or x6 x9)) (not (and x8 x3))))) (not (and (or (or (or x7 x1) (not x6)) (and (and x6 x5) (not x8))) (not (not (not x4)))))) (and (not (not (or (or (or x6 x5) (not x6)) (or (or x7 x8) (or x2 x2))))) (not (or (and (or (and x1 x3) (not x7)) (and (and x4 x9) (or x2 x2))) (or (not (or x9 x7)) (not (and x5 x2)))))))))
+(assert (and (not (and (and (or x2 x3) (or x1 x6)) (and (and x3 x6) (or x0 x7)))) (not (or (or (or x4 x0) (and x3 x4)) (and (not x6) (or x5 x8))))))
+(check-sat)
+(push 1)
+(assert (not (and (and (and x4 x6) (or x9 x4)) (or (and x1 x9) (not x1)))))
+(check-sat)
+(push 1)
+(assert (or (not (and (or (and (not x2) (not x5)) (not (and x0 x5))) (not (and (and x2 x9) (and x2 x3))))) (not (not (and (not (or x7 x9)) (and (and x7 x4) (or x8 x3)))))))
+(check-sat)
+(pop 1)
+(assert (not (or x0 x0)))
+(assert (not (not (or (or (and (and (not (or (and (not x0) (not x1)) (and (and x4 x9) (and x3 x9)))) (not (or (not (or x9 x3)) (and (and x4 x2) (not x7))))) (and (not (and (or (not x1) (and x9 x5)) (not (or x9 x3)))) (and (or (and (or x6 x1) (or x6 x6)) (or (not x0) (not x0))) (or (and (not x3) (and x5 x7)) (not (and x9 x7)))))) (not (not (or (not (or (and x1 x0) (not x5))) (or (and (or x5 x5) (and x5 x7)) (and (and x1 x7) (and x4 x6))))))) (and (not (not (or (or (or (or x9 x0) (or x7 x3)) (or (not x0) (or x8 x0))) (and (or (and x3 x1) (or x4 x7)) (and (not x5) (and x0 x1)))))) (or (or (and (and (or (not x0) (not x2)) (not (and x3 x9))) (or (and (or x9 x6) (or x6 x0)) (or (not x6) (or x8 x0)))) (not (or (and (and x8 x6) (not x1)) (and (not x4) (or x5 x3))))) (or (or (or (or (and x2 x7) (and x5 x4)) (and (or x7 x5) (or x7 x8))) (and (not (and x7 x0)) (and (not x2) (not x0)))) (and (and (or (and x9 x6) (or x5 x9)) (not (or x8 x3))) (or (and (or x8 x4) (and x5 x2)) (or (or x5 x1) (and x5 x8)))))))))))
+(assert (and (or (and (or (and (not (and x3 x6)) (or (and x1 x3) (not x2))) (and (not (not x7)) (and (not x1) (not x5)))) (not (not (not (or x6 x5))))) (or (and (or (not (and x2 x0)) (and (or x6 x8) (and x9 x2))) (or (not (and x7 x3)) (and (not x3) (or x7 x0)))) (not (or (not (not x2)) (or (or x3 x7) (not x9)))))) (and (not (or (and (not (or x9 x3)) (or (not x6) (and x1 x2))) (and (or (or x2 x3) (and x6 x7)) (and (and x2 x8) (and x5 x7))))) (not (or (not (and (not x0) (and x8 x1))) (not (not (or x7 x2))))))))
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_21.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_21.smt2
new file mode 100644 (file)
index 0000000..fd13452
--- /dev/null
@@ -0,0 +1,30 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(assert (or (or (and (not (not (and (and x1 x3) (or x3 x1)))) (or (not (and (or x2 x0) (and x0 x1))) (or (not (or x2 x1)) (or (and x1 x3) (not x3))))) (not (not (or (or (and x3 x1) (not x0)) (and (and x1 x1) (or x0 x3)))))) (and (not (and (and (not (and x1 x3)) (or (or x0 x2) (not x2))) (or (or (or x0 x3) (and x3 x0)) (or (or x0 x3) (and x1 x0))))) (or (not (or (not (and x3 x1)) (and (and x0 x0) (and x1 x2)))) (not (or (or (not x0) (and x0 x2)) (and (or x0 x0) (and x3 x1))))))))
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(assert (not (not (and x2 x0))))
+(check-sat)
+(pop 1)
+(assert (not (not (not x1))))
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_22.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_22.smt2
new file mode 100644 (file)
index 0000000..f4f71dd
--- /dev/null
@@ -0,0 +1,41 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(check-sat)
+(push 1)
+(assert (or (not (or (and x1 x0) (or x1 x0))) (not (not (not x0)))))
+(check-sat)
+(push 1)
+(assert (or (not (or (and (or (or (and (or (not x0) (not x0)) (not (not x0))) (not (not (and x0 x0)))) (and (or (or (and x0 x0) (and x1 x0)) (not (or x1 x0))) (and (and (and x1 x0) (and x0 x0)) (and (not x0) (or x0 x1))))) (and (and (and (or (or x1 x0) (not x1)) (and (or x1 x0) (or x1 x1))) (and (and (not x1) (and x0 x0)) (and (or x0 x0) (not x1)))) (not (not (not (or x0 x1)))))) (and (not (and (and (or (and x0 x1) (not x0)) (or (and x1 x1) (or x0 x0))) (and (or (or x1 x1) (not x0)) (and (not x1) (or x1 x1))))) (or (and (or (or (or x0 x0) (not x0)) (or (and x0 x0) (or x1 x1))) (not (and (and x0 x0) (or x0 x1)))) (not (not (or (and x0 x1) (not x0)))))))) (or (or (and (and (or (or (and (not x1) (not x1)) (and (not x0) (not x1))) (and (and (or x1 x0) (and x0 x0)) (and (or x1 x0) (not x1)))) (and (not (or (or x1 x1) (and x0 x0))) (or (or (or x0 x0) (not x0)) (and (and x1 x0) (not x1))))) (and (and (or (or (not x0) (not x0)) (not (and x1 x0))) (not (and (not x1) (not x1)))) (and (or (and (and x1 x0) (and x0 x0)) (not (not x1))) (not (or (not x1) (or x0 x1)))))) (or (not (and (not (and (and x0 x0) (or x1 x0))) (or (or (or x1 x0) (not x1)) (or (not x1) (not x1))))) (and (not (or (and (not x0) (and x1 x0)) (or (and x1 x1) (or x0 x1)))) (not (or (and (or x0 x1) (not x1)) (not (or x1 x0))))))) (or (and (or (not (or (and (and x1 x0) (or x0 x1)) (and (and x0 x1) (and x0 x0)))) (and (not (or (and x0 x1) (not x1))) (or (not (not x0)) (not (or x1 x0))))) (or (or (or (and (or x1 x0) (not x0)) (and (and x1 x1) (not x0))) (not (not (or x0 x1)))) (and (not (and (and x1 x1) (not x1))) (and (and (and x0 x1) (or x1 x0)) (and (and x1 x1) (or x1 x1)))))) (and (not (not (or (and (or x1 x1) (and x0 x0)) (not (not x1))))) (not (not (or (and (not x1) (or x0 x0)) (or (and x0 x0) (and x1 x1))))))))))
+(check-sat)
+(push 1)
+(assert (and (not x0) (or x1 x0)))
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(assert (not (not (not (and x1 x1)))))
+(check-sat)
+(pop 1)
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_23.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_23.smt2
new file mode 100644 (file)
index 0000000..49fb1e4
--- /dev/null
@@ -0,0 +1,42 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(declare-fun x4 () Bool)
+(declare-fun x5 () Bool)
+(declare-fun x6 () Bool)
+(declare-fun x7 () Bool)
+(declare-fun x8 () Bool)
+(check-sat)
+(push 1)
+(assert (or x1 x3))
+(assert (or (or x5 x0) (not x0)))
+(check-sat)
+(push 1)
+(assert (and (not (or (or (not (or (or (or (and (not x2) (not x0)) (or (and x1 x0) (not x3))) (not (or (and x2 x8) (and x6 x6)))) (or (not (not (not x4))) (and (or (and x1 x1) (not x1)) (or (not x1) (not x6)))))) (not (or (and (or (and (not x4) (and x0 x6)) (and (not x1) (or x8 x1))) (not (not (not x0)))) (not (and (not (not x4)) (and (not x3) (and x2 x0))))))) (or (and (or (and (not (or (not x7) (and x1 x2))) (and (not (not x1)) (and (not x1) (or x3 x2)))) (or (or (and (and x2 x0) (or x3 x2)) (and (and x0 x1) (or x0 x5))) (not (and (and x3 x8) (not x4))))) (and (and (not (and (and x1 x5) (or x1 x6))) (and (or (or x4 x7) (and x4 x3)) (or (or x2 x0) (or x5 x1)))) (or (or (not (not x1)) (or (and x6 x1) (or x4 x2))) (not (and (and x0 x8) (and x7 x1)))))) (and (or (or (and (and (and x6 x8) (and x3 x7)) (and (and x7 x0) (or x5 x6))) (and (or (or x5 x6) (and x8 x7)) (and (and x0 x6) (and x1 x1)))) (and (not (or (not x1) (or x1 x2))) (and (and (or x2 x8) (not x5)) (not (or x0 x3))))) (or (and (and (not (not x3)) (not (or x1 x6))) (and (not (not x8)) (or (and x0 x6) (or x0 x8)))) (not (and (or (not x3) (or x4 x3)) (and (not x7) (not x7))))))))) (and (or (not (or (and (or (or (not (or x2 x2)) (not (and x0 x8))) (or (or (not x8) (not x8)) (and (not x0) (and x1 x4)))) (and (or (not (or x4 x0)) (not (or x1 x6))) (and (and (and x4 x7) (or x3 x5)) (and (or x6 x6) (and x0 x3))))) (or (or (or (and (not x6) (and x2 x6)) (and (not x6) (or x5 x5))) (and (or (or x2 x8) (not x1)) (or (or x8 x4) (or x3 x5)))) (and (or (or (and x7 x8) (not x2)) (or (and x8 x2) (and x3 x2))) (or (or (and x2 x5) (and x1 x8)) (or (not x8) (not x5))))))) (not (not (and (and (or (not (and x8 x0)) (or (not x0) (not x8))) (or (and (and x3 x7) (not x8)) (and (and x4 x7) (and x8 x0)))) (or (and (or (and x1 x5) (not x2)) (not (and x8 x5))) (and (and (and x1 x8) (not x2)) (and (not x7) (or x5 x6)))))))) (not (and (and (or (or (not (and (not x6) (not x7))) (or (or (and x3 x7) (and x7 x0)) (not (not x8)))) (not (and (not (or x4 x6)) (and (not x1) (and x4 x3))))) (not (not (and (or (not x8) (and x5 x8)) (and (or x0 x5) (and x7 x3)))))) (not (and (not (and (not (and x6 x8)) (or (not x7) (and x3 x0)))) (or (not (not (and x8 x0))) (or (or (not x0) (not x6)) (or (not x8) (or x0 x7)))))))))))
+(check-sat)
+(push 1)
+(assert (or (or x5 x6) (not x3)))
+(assert (or (and (not (and (not (or (not (or x1 x5)) (or (and x2 x4) (and x1 x1)))) (and (or (and (or x5 x1) (and x2 x6)) (not (or x7 x6))) (or (not (and x7 x3)) (or (and x3 x7) (or x8 x4)))))) (and (or (and (or (not (not x6)) (or (and x6 x0) (not x7))) (or (not (not x0)) (or (not x8) (or x5 x6)))) (and (or (not (or x5 x2)) (not (or x8 x6))) (and (not (or x5 x2)) (and (and x7 x1) (and x3 x1))))) (and (not (not (or (or x8 x4) (not x3)))) (not (not (or (or x8 x2) (and x0 x8))))))) (and (not (or (and (not (not (not x4))) (or (or (or x5 x3) (not x1)) (not (not x2)))) (not (or (and (not x7) (not x5)) (and (and x5 x5) (not x3)))))) (and (not (or (or (not (not x3)) (or (and x4 x7) (and x7 x1))) (not (and (and x2 x1) (not x1))))) (and (and (or (and (not x0) (and x6 x2)) (and (and x8 x2) (not x5))) (not (not (or x6 x2)))) (not (not (and (and x2 x7) (not x2)))))))))
+(check-sat)
+(push 1)
+(assert (or (or (not x6) (or x4 x3)) (or (or x8 x6) (not x4))))
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(assert (or (or (or (and (or (and (not (not (and (and x6 x0) (not x1)))) (not (or (and (and x4 x3) (and x1 x0)) (not (not x7))))) (and (not (not (and (and x3 x7) (or x5 x8)))) (and (not (and (or x4 x0) (or x1 x8))) (or (and (and x8 x6) (and x4 x7)) (not (or x1 x4)))))) (not (not (or (and (or (and x6 x0) (and x6 x3)) (or (not x3) (not x6))) (not (or (or x3 x5) (not x2))))))) (or (and (and (and (and (not (and x2 x4)) (or (not x3) (and x1 x8))) (or (or (not x6) (and x2 x7)) (and (and x0 x2) (not x1)))) (or (and (or (or x5 x6) (or x3 x3)) (not (or x7 x2))) (not (or (or x0 x8) (or x7 x2))))) (and (or (not (and (and x0 x8) (and x2 x1))) (not (and (not x7) (and x8 x1)))) (and (not (and (not x8) (or x2 x8))) (and (or (not x3) (not x7)) (not (not x7)))))) (or (and (not (or (or (not x7) (or x4 x7)) (and (not x7) (or x2 x7)))) (and (and (or (not x4) (or x6 x3)) (not (and x2 x4))) (and (not (or x1 x6)) (or (not x3) (or x1 x1))))) (not (or (not (not (not x5))) (not (or (or x4 x1) (not x0)))))))) (not (and (or (not (not (or (and (and x8 x7) (and x3 x5)) (or (and x1 x3) (or x0 x1))))) (not (not (or (or (not x0) (and x7 x8)) (not (not x2)))))) (or (or (not (or (or (or x8 x6) (or x4 x0)) (or (and x2 x7) (and x8 x8)))) (not (or (not (or x1 x2)) (not (not x7))))) (not (not (and (not (or x7 x4)) (and (not x0) (and x2 x1))))))))) (not (or (and (and (or (and (and (and (or x7 x1) (or x5 x2)) (or (not x8) (not x1))) (not (or (and x5 x4) (not x4)))) (and (or (or (and x7 x2) (not x4)) (not (or x8 x6))) (and (or (not x3) (and x7 x3)) (not (or x2 x4))))) (or (not (not (and (or x4 x7) (and x1 x5)))) (not (not (and (not x5) (not x2)))))) (not (not (not (and (not (not x7)) (not (and x1 x7))))))) (or (and (or (or (and (or (not x7) (not x6)) (or (or x2 x3) (or x2 x7))) (not (and (or x8 x8) (and x1 x8)))) (and (not (and (not x7) (not x6))) (or (and (and x5 x4) (or x1 x7)) (and (and x2 x1) (not x6))))) (or (or (or (or (and x3 x8) (not x4)) (and (or x2 x6) (and x0 x0))) (and (and (and x1 x3) (or x4 x2)) (not (or x4 x8)))) (or (and (not (or x8 x8)) (and (or x0 x3) (or x3 x0))) (and (not (and x5 x3)) (and (not x0) (and x3 x1)))))) (not (and (and (and (or (or x0 x3) (and x3 x7)) (and (or x3 x1) (and x4 x8))) (and (not (and x7 x6)) (or (not x0) (not x0)))) (and (or (and (or x0 x3) (not x0)) (or (or x1 x2) (or x8 x3))) (and (or (not x0) (or x2 x4)) (not (or x1 x1)))))))))))
+(check-sat)
+(pop 1)
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_24.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_24.smt2
new file mode 100644 (file)
index 0000000..4c1ce82
--- /dev/null
@@ -0,0 +1,43 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(declare-fun x4 () Bool)
+(declare-fun x5 () Bool)
+(declare-fun x6 () Bool)
+(assert (or (or x1 x1) (not x4)))
+(assert (not (and (or (not (or (and (and x2 x0) (and x1 x4)) (and (or x4 x1) (and x2 x6)))) (and (or (not (and x4 x2)) (or (and x4 x3) (not x3))) (or (or (not x0) (or x2 x2)) (not (or x5 x6))))) (not (not (not (or (or x5 x6) (or x0 x3))))))))
+(check-sat)
+(push 1)
+(assert (not (not (or (not x4) (not x6)))))
+(assert (not (and (not (or (and (and (or (not (or x3 x4)) (or (and x0 x3) (or x3 x3))) (and (or (and x2 x1) (or x2 x4)) (and (not x2) (or x6 x2)))) (not (not (and (or x0 x1) (and x6 x4))))) (and (or (and (and (not x3) (not x2)) (or (or x3 x0) (and x4 x0))) (and (and (and x5 x0) (not x6)) (not (not x0)))) (or (and (not (and x2 x4)) (not (or x0 x2))) (not (not (and x6 x3))))))) (and (or (or (or (or (not (or x4 x1)) (not (and x6 x4))) (and (and (or x3 x0) (and x3 x2)) (or (or x6 x6) (and x5 x5)))) (not (not (and (and x6 x3) (or x2 x2))))) (or (or (and (not (not x3)) (or (and x5 x4) (or x3 x1))) (and (or (not x6) (or x6 x2)) (or (not x4) (or x4 x6)))) (or (and (not (and x0 x2)) (not (not x0))) (not (or (or x5 x1) (and x0 x4)))))) (and (or (and (or (not (and x0 x6)) (not (and x1 x5))) (or (or (or x2 x4) (or x1 x6)) (or (not x4) (or x3 x4)))) (and (or (not (or x6 x0)) (and (and x2 x0) (or x0 x4))) (not (or (not x3) (or x4 x0))))) (or (not (not (or (and x6 x5) (and x6 x6)))) (and (not (or (or x4 x5) (or x3 x0))) (not (and (not x2) (not x5))))))))))
+(assert (or (not (not (and (not (and (and (not (or x1 x2)) (and (not x6) (or x3 x5))) (and (not (or x0 x2)) (not (or x4 x1))))) (or (or (not (not (and x4 x6))) (or (and (or x6 x4) (or x2 x3)) (or (and x6 x6) (not x3)))) (not (and (and (or x1 x3) (or x3 x0)) (or (not x2) (not x4)))))))) (not (or (not (and (not (or (or (not x6) (and x0 x1)) (and (or x5 x0) (and x0 x6)))) (not (not (and (and x5 x6) (and x4 x5)))))) (not (and (not (or (and (not x6) (or x1 x5)) (or (or x5 x6) (and x3 x6)))) (and (not (not (or x1 x4))) (and (or (or x4 x6) (or x2 x2)) (not (or x2 x6))))))))))
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(assert (and (or (not (or (or (and (not (not (or x4 x6))) (not (not (or x6 x1)))) (or (not (or (and x6 x5) (or x4 x1))) (or (or (or x3 x4) (not x4)) (not (not x3))))) (or (or (and (or (and x3 x0) (and x2 x1)) (or (not x4) (or x4 x1))) (and (and (or x1 x2) (and x6 x6)) (not (or x3 x5)))) (or (and (and (and x5 x5) (not x3)) (not (or x0 x0))) (or (or (or x4 x2) (or x5 x1)) (and (or x1 x2) (not x0))))))) (or (and (not (not (and (or (and x6 x2) (and x2 x4)) (or (and x2 x1) (and x1 x1))))) (and (or (or (and (or x3 x0) (or x4 x2)) (or (or x0 x2) (and x0 x0))) (and (not (and x4 x6)) (not (and x5 x6)))) (and (and (and (not x1) (not x6)) (and (not x0) (and x1 x0))) (and (not (or x4 x6)) (or (or x0 x5) (not x0)))))) (or (and (not (or (not (and x1 x5)) (not (not x5)))) (or (or (and (and x6 x3) (and x0 x1)) (not (or x5 x1))) (and (and (or x6 x1) (not x4)) (and (or x1 x5) (or x4 x6))))) (and (not (or (and (not x4) (and x4 x3)) (or (not x1) (not x1)))) (or (or (and (and x3 x1) (and x4 x5)) (not (and x5 x0))) (and (not (not x3)) (or (and x5 x6) (and x3 x5)))))))) (or (and (not (or (and (not (not (and x5 x6))) (or (and (not x1) (not x4)) (or (and x0 x5) (not x1)))) (not (or (and (and x1 x3) (or x2 x1)) (and (or x6 x2) (not x5)))))) (not (and (and (or (and (not x3) (not x5)) (or (or x1 x3) (or x1 x2))) (and (or (and x4 x4) (not x1)) (and (or x6 x0) (not x1)))) (and (and (or (or x1 x2) (and x2 x3)) (and (not x6) (and x2 x2))) (or (not (or x4 x6)) (not (or x1 x3))))))) (and (or (not (or (not (not (not x3))) (or (not (not x0)) (not (and x2 x1))))) (or (not (or (not (not x3)) (not (not x6)))) (or (and (not (and x5 x3)) (not (or x3 x2))) (or (and (or x0 x2) (and x1 x2)) (or (not x2) (not x6)))))) (not (not (not (and (and (and x0 x0) (not x3)) (and (and x6 x4) (and x1 x5))))))))))
+(check-sat)
+(push 1)
+(assert (not (not (and x3 x3))))
+(check-sat)
+(pop 1)
+(assert (not (or x4 x2)))
+(assert (and (not (and x3 x3)) (or (not x2) (or x4 x2))))
+(assert (and (or x0 x1) (or x2 x5)))
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_25.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_25.smt2
new file mode 100644 (file)
index 0000000..4678a4d
--- /dev/null
@@ -0,0 +1,80 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: unsat
+; EXPECT: unsat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(declare-fun x4 () Bool)
+(declare-fun x5 () Bool)
+(declare-fun x6 () Bool)
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(assert (or (not (and (and (and (and (not (or (or x2 x3) (and x5 x1))) (or (or (and x5 x2) (or x6 x0)) (not (and x3 x5)))) (and (and (and (and x2 x4) (and x4 x5)) (or (not x6) (and x6 x6))) (or (and (not x6) (and x0 x6)) (not (not x0))))) (or (or (and (and (not x3) (not x4)) (or (and x4 x6) (or x1 x5))) (and (or (not x2) (and x1 x3)) (or (and x2 x4) (or x6 x4)))) (and (or (not (not x0)) (or (and x1 x3) (or x3 x4))) (or (and (not x2) (not x3)) (or (and x6 x3) (or x0 x2)))))) (or (and (not (or (and (and x1 x5) (and x3 x3)) (not (and x4 x5)))) (or (and (or (or x3 x1) (or x2 x5)) (and (or x4 x6) (not x2))) (not (not (and x1 x1))))) (or (or (or (not (not x4)) (or (and x6 x5) (not x0))) (not (or (and x0 x0) (and x1 x3)))) (or (not (and (or x0 x0) (or x1 x1))) (or (not (and x5 x4)) (and (and x6 x6) (or x5 x5)))))))) (or (and (not (or (or (and (not (and x6 x2)) (or (not x1) (and x5 x6))) (and (or (and x5 x1) (and x2 x3)) (not (not x2)))) (not (or (or (and x1 x0) (and x6 x4)) (or (and x5 x5) (not x5)))))) (not (and (or (not (and (and x5 x3) (and x6 x3))) (or (not (not x2)) (and (and x6 x5) (and x0 x6)))) (not (and (not (or x3 x6)) (or (not x4) (or x0 x4))))))) (not (not (and (not (and (or (or x0 x1) (not x6)) (or (and x4 x0) (and x1 x6)))) (and (not (and (or x2 x0) (not x2))) (not (or (not x3) (or x0 x6))))))))))
+(assert (and (and (not (not x1)) (not (or x2 x0))) (and (and (not x4) (and x3 x3)) (or (not x4) (and x6 x4)))))
+(assert (or (or (or (or (and x6 x0) (not x6)) (and (or x5 x0) (or x0 x6))) (not (not (or x0 x0)))) (or (or (or (not x3) (not x1)) (and (not x2) (and x5 x4))) (not (and (not x5) (not x6))))))
+(assert (and (or (and (not (and x0 x2)) (or (not x0) (or x6 x2))) (or (not (and x2 x0)) (and (not x5) (not x4)))) (not (and (or (or x2 x5) (not x2)) (not (and x0 x1))))))
+(assert (and (or (and x4 x5) (and x4 x4)) (or (not x4) (or x4 x0))))
+(assert (and x2 x6))
+(assert (or (or (and (or x5 x6) (or x6 x4)) (or (not x2) (and x3 x0))) (not (or (and x1 x6) (not x2)))))
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(check-sat)
+(pop 1)
+(check-sat)
+(pop 1)
+(assert (or (and (not (and (and (not (or (or x2 x3) (and x1 x6))) (and (and (and x2 x1) (and x2 x4)) (not (or x2 x1)))) (or (not (not (or x4 x6))) (or (or (or x1 x6) (or x4 x4)) (or (or x5 x4) (and x4 x5)))))) (or (and (not (not (or (and x0 x2) (and x6 x6)))) (and (and (or (or x3 x2) (and x4 x2)) (or (not x6) (not x2))) (not (not (not x4))))) (and (or (and (not (or x1 x6)) (or (and x6 x0) (or x6 x1))) (and (and (and x0 x0) (not x3)) (or (not x2) (not x5)))) (or (not (not (or x6 x2))) (or (or (and x5 x6) (or x1 x3)) (or (and x4 x2) (and x1 x0))))))) (not (or (or (not (and (and (and x0 x6) (and x0 x1)) (and (or x0 x3) (or x3 x5)))) (not (or (not (not x3)) (not (or x0 x3))))) (and (and (and (and (and x0 x0) (not x0)) (not (and x4 x6))) (or (or (not x2) (not x2)) (or (not x5) (not x0)))) (or (or (or (and x5 x2) (or x5 x0)) (and (and x2 x0) (not x0))) (not (not (or x2 x4)))))))))
+(check-sat)
+(push 1)
+(assert (and (and (or (and (or (or (not x2) (or x6 x4)) (not (not x4))) (or (not (or x3 x0)) (or (and x5 x6) (or x3 x2)))) (and (not (and (or x1 x5) (and x5 x6))) (or (and (or x2 x4) (or x4 x2)) (or (or x6 x6) (and x2 x6))))) (not (not (or (or (not x4) (and x5 x3)) (and (not x2) (and x4 x0)))))) (not (and (not (and (and (not x6) (not x2)) (not (or x6 x5)))) (not (or (not (and x2 x5)) (not (not x0))))))))
+(assert (not x2))
+(assert (and (not (and (and (and (or (not (or (not x3) (not x0))) (and (or (and x4 x0) (not x0)) (not (not x3)))) (not (not (or (and x2 x4) (and x0 x0))))) (not (or (and (or (not x4) (and x5 x1)) (or (or x1 x2) (and x4 x0))) (and (not (and x1 x5)) (and (and x5 x4) (or x1 x6)))))) (and (or (or (or (and (not x3) (and x0 x3)) (and (not x4) (not x1))) (not (or (or x0 x0) (or x0 x1)))) (or (and (and (and x3 x0) (or x2 x6)) (and (or x4 x5) (not x0))) (not (or (or x6 x3) (not x0))))) (not (and (and (and (or x6 x5) (not x0)) (and (and x1 x6) (not x1))) (and (or (or x2 x5) (or x5 x6)) (not (not x0)))))))) (or (or (and (not (and (or (not (or x4 x2)) (and (and x5 x2) (or x6 x1))) (or (not (and x2 x5)) (not (not x2))))) (and (and (or (or (and x6 x0) (not x5)) (or (and x3 x3) (not x1))) (and (and (not x2) (not x2)) (and (or x0 x3) (not x0)))) (and (not (and (or x6 x2) (and x5 x1))) (not (not (and x1 x4)))))) (or (or (and (or (and (not x3) (or x4 x1)) (and (or x2 x6) (and x2 x6))) (or (and (or x0 x1) (not x6)) (or (and x2 x3) (or x3 x0)))) (or (and (or (and x2 x3) (not x6)) (not (and x3 x2))) (and (or (not x3) (and x1 x3)) (and (not x2) (and x1 x6))))) (or (and (not (and (and x2 x4) (not x1))) (or (or (and x2 x2) (and x1 x5)) (not (not x5)))) (and (or (and (not x5) (or x2 x0)) (and (and x0 x6) (or x2 x3))) (and (and (and x0 x4) (and x3 x1)) (not (and x3 x2))))))) (or (or (not (not (not (or (or x6 x2) (or x1 x0))))) (not (and (not (not (not x1))) (not (and (or x1 x6) (and x3 x2)))))) (and (or (and (not (or (and x6 x0) (and x4 x3))) (and (not (not x2)) (or (not x1) (not x2)))) (or (not (or (not x2) (and x3 x6))) (or (or (not x3) (and x4 x1)) (not (and x5 x3))))) (not (or (and (and (or x6 x6) (and x1 x0)) (and (and x0 x6) (not x0))) (not (and (and x5 x1) (not x4))))))))))
+(assert (and (and (and (or (and (and (or (not x6) (and x5 x4)) (or (and x5 x4) (or x0 x2))) (and (and (and x6 x3) (not x4)) (and (not x2) (or x3 x1)))) (and (not (or (or x4 x4) (or x2 x4))) (or (or (and x2 x2) (or x2 x1)) (or (not x1) (and x5 x4))))) (or (and (not (or (not x5) (not x2))) (not (and (not x2) (and x4 x6)))) (or (not (and (and x2 x1) (or x3 x1))) (and (not (not x2)) (and (and x4 x5) (not x3)))))) (or (not (not (not (not (not x5))))) (and (not (or (or (or x4 x3) (and x0 x6)) (and (or x2 x2) (and x6 x1)))) (or (not (not (not x3))) (not (or (or x0 x1) (not x3))))))) (or (or (or (not (and (not (or x4 x6)) (not (not x3)))) (or (not (and (not x3) (or x2 x2))) (or (not (and x4 x0)) (or (or x5 x6) (not x1))))) (and (or (or (and (not x2) (and x0 x2)) (or (not x5) (not x5))) (and (and (and x4 x5) (and x5 x3)) (or (not x3) (or x5 x1)))) (not (not (not (or x1 x6)))))) (and (or (or (or (or (and x2 x4) (or x4 x2)) (and (not x1) (or x5 x3))) (or (and (or x5 x2) (and x1 x1)) (and (not x1) (and x5 x6)))) (and (not (or (and x1 x3) (or x5 x3))) (and (and (not x2) (not x2)) (and (and x5 x5) (and x1 x6))))) (or (or (and (and (not x0) (or x3 x6)) (not (and x5 x4))) (and (or (not x3) (or x3 x6)) (not (and x4 x6)))) (not (and (not (or x5 x3)) (and (not x3) (or x2 x1)))))))))
+(check-sat)
+(pop 1)
+(assert (or (not (or (not (and (or (or (and x3 x5) (not x5)) (and (and x5 x2) (not x0))) (not (not (or x6 x5))))) (or (or (not (not (and x0 x6))) (and (not (not x6)) (or (and x6 x5) (or x0 x3)))) (or (and (not (not x4)) (and (and x2 x3) (and x4 x2))) (and (or (or x3 x5) (not x1)) (and (or x5 x2) (or x6 x4))))))) (and (not (and (or (or (and (and x6 x0) (and x1 x2)) (and (and x0 x3) (or x6 x4))) (and (not (or x4 x1)) (and (and x0 x4) (not x4)))) (or (or (and (not x0) (and x4 x1)) (not (or x0 x0))) (and (and (not x5) (and x1 x3)) (not (and x3 x2)))))) (not (not (not (and (not (and x0 x0)) (not (not x0)))))))))
+(assert (and (or (or (and x3 x2) (and x1 x6)) (or (or x6 x3) (not x0))) (or (not (and x5 x5)) (or (not x1) (or x3 x6)))))
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(assert (and (or (not (not (and (and (not (and x2 x5)) (and (or x1 x2) (not x1))) (not (or (or x0 x2) (not x6)))))) (not (or (or (and (or (not x1) (not x6)) (and (not x3) (or x6 x0))) (and (not (or x4 x1)) (or (or x1 x6) (or x1 x2)))) (and (not (not (not x0))) (or (not (and x2 x6)) (not (and x5 x3))))))) (not (and (and (or (not (and (or x5 x4) (and x1 x1))) (and (or (or x1 x1) (not x3)) (and (and x3 x6) (and x6 x1)))) (and (or (or (or x5 x4) (not x2)) (or (not x2) (or x2 x4))) (not (and (not x6) (not x5))))) (and (and (not (or (and x0 x3) (and x3 x2))) (or (not (not x6)) (not (not x4)))) (or (and (and (not x3) (not x1)) (and (and x2 x4) (not x3))) (not (and (and x1 x1) (or x0 x4)))))))))
+(assert (not (not (not (or (or (or (not x4) (or x1 x4)) (or (and x2 x3) (or x4 x5))) (and (not (not x5)) (and (and x0 x6) (and x5 x1))))))))
+(check-sat)
+(pop 1)
+(assert (and (and x2 x0) (not x4)))
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(assert (or (or (or (or (not (or (and (and x5 x5) (not x5)) (or (or x1 x2) (not x1)))) (not (and (and (and x6 x5) (or x6 x5)) (and (or x6 x0) (and x6 x4))))) (and (or (or (or (not x3) (or x0 x1)) (or (or x0 x4) (or x6 x4))) (and (and (and x3 x4) (and x0 x0)) (or (and x6 x3) (or x3 x0)))) (not (or (and (or x1 x1) (or x1 x0)) (and (or x0 x3) (and x0 x5)))))) (or (or (and (and (not (not x5)) (and (or x4 x0) (or x3 x2))) (and (and (or x1 x2) (and x0 x2)) (and (and x4 x6) (and x0 x4)))) (or (not (and (and x5 x2) (or x1 x5))) (not (not (not x2))))) (or (not (or (not (and x3 x5)) (and (not x3) (and x2 x3)))) (and (or (and (and x2 x0) (or x6 x4)) (or (or x0 x2) (or x3 x3))) (or (or (not x1) (and x2 x4)) (not (and x2 x6))))))) (and (not (or (or (and (and (and x4 x4) (not x2)) (or (or x3 x2) (not x5))) (and (not (or x5 x2)) (not (or x2 x5)))) (or (not (not (or x3 x0))) (and (not (not x5)) (and (or x0 x1) (or x2 x5)))))) (and (not (and (or (and (and x5 x6) (not x0)) (and (or x0 x1) (and x4 x5))) (not (and (and x4 x0) (or x0 x4))))) (or (not (and (not (or x2 x5)) (or (not x0) (not x0)))) (or (and (or (or x3 x6) (not x2)) (and (not x5) (and x0 x2))) (not (or (or x6 x3) (not x6)))))))))
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(assert (and (or (or x4 x3) (and x5 x3)) (and (and x3 x2) (not x1))))
+(check-sat)
+(push 1)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_26.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_26.smt2
new file mode 100644 (file)
index 0000000..9922102
--- /dev/null
@@ -0,0 +1,50 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(declare-fun x4 () Bool)
+(declare-fun x5 () Bool)
+(declare-fun x6 () Bool)
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(assert (or (or x4 x2) (or x4 x2)))
+(assert (not (not (or (not (or (and x3 x5) (not x6))) (or (or (or x1 x5) (or x0 x3)) (not (or x3 x6)))))))
+(assert (or (and (and (or (and x1 x6) (or x2 x4)) (and (and x1 x0) (or x1 x4))) (and (not (and x3 x6)) (not (not x0)))) (and (not (not (and x4 x0))) (not (or (not x6) (and x6 x5))))))
+(assert (or (and (and (and (or (not (and (or (or (not x4) (not x3)) (not (and x3 x3))) (and (not (not x3)) (not (and x0 x2))))) (and (and (not (and (and x1 x0) (or x2 x2))) (or (or (or x3 x4) (not x0)) (not (not x5)))) (or (not (and (not x3) (or x4 x4))) (or (not (and x0 x2)) (not (or x3 x0)))))) (or (or (or (not (and (and x0 x6) (not x3))) (or (not (not x3)) (and (not x3) (or x5 x0)))) (or (and (or (or x0 x5) (and x6 x3)) (and (and x3 x6) (not x3))) (and (or (not x1) (or x4 x5)) (and (or x1 x6) (not x4))))) (and (not (and (and (or x0 x4) (or x3 x6)) (or (and x2 x3) (not x6)))) (and (not (or (not x5) (not x2))) (not (not (not x2))))))) (not (or (or (or (and (or (and x3 x5) (or x0 x0)) (not (and x5 x5))) (and (and (and x0 x1) (or x6 x4)) (or (not x4) (and x6 x5)))) (and (and (not (not x0)) (or (not x4) (and x4 x2))) (or (or (and x6 x1) (not x6)) (not (or x4 x2))))) (and (or (or (not (not x1)) (or (and x4 x4) (not x5))) (and (not (not x5)) (not (and x0 x6)))) (and (or (not (or x3 x0)) (not (or x3 x5))) (or (not (and x2 x2)) (and (and x2 x4) (or x4 x1)))))))) (and (not (or (or (and (or (not (not x5)) (or (or x3 x1) (not x1))) (and (not (or x5 x3)) (not (or x3 x0)))) (not (and (not (or x2 x5)) (and (or x1 x0) (and x0 x5))))) (and (or (and (not (and x3 x1)) (or (and x1 x4) (not x5))) (or (or (not x2) (not x4)) (not (not x4)))) (and (not (or (and x5 x1) (or x4 x5))) (not (and (or x2 x1) (not x1))))))) (or (not (not (and (and (not (not x0)) (and (or x0 x3) (not x0))) (or (and (and x0 x6) (and x0 x4)) (not (and x6 x5)))))) (and (and (or (not (not (and x4 x3))) (or (or (and x1 x4) (or x3 x4)) (not (or x2 x2)))) (or (not (or (and x6 x0) (or x2 x3))) (not (or (and x3 x2) (and x6 x5))))) (or (and (not (and (and x6 x0) (not x0))) (or (and (not x5) (and x3 x3)) (not (or x0 x2)))) (and (not (or (and x5 x3) (not x0))) (or (and (and x6 x4) (or x2 x5)) (or (or x5 x1) (or x0 x2))))))))) (or (not (or (or (not (and (or (or (not x2) (or x3 x0)) (not (and x0 x2))) (or (not (and x3 x4)) (or (and x3 x4) (or x2 x6))))) (not (not (not (not (not x1)))))) (not (or (and (or (not (or x2 x3)) (or (or x4 x3) (or x3 x4))) (and (or (not x0) (and x3 x3)) (and (not x2) (and x0 x0)))) (and (or (and (and x1 x3) (and x0 x0)) (and (and x2 x2) (not x3))) (and (or (and x4 x0) (or x4 x4)) (not (or x5 x0)))))))) (and (or (not (not (and (or (and (not x2) (not x6)) (and (and x3 x4) (not x5))) (or (not (not x2)) (and (not x0) (not x3)))))) (and (and (or (or (or (not x0) (not x3)) (or (or x3 x1) (not x0))) (and (not (not x2)) (or (and x6 x2) (not x2)))) (and (and (not (or x4 x4)) (not (or x0 x0))) (and (not (and x5 x5)) (and (not x2) (and x0 x0))))) (not (or (or (or (and x4 x5) (and x2 x5)) (not (and x6 x3))) (not (not (or x5 x4))))))) (or (not (not (and (or (not (or x6 x3)) (not (not x1))) (not (or (or x6 x0) (or x4 x6)))))) (or (not (and (not (not (and x3 x4))) (not (not (not x5))))) (and (and (not (or (or x5 x4) (not x4))) (not (not (or x6 x1)))) (and (not (and (and x1 x0) (or x0 x1))) (and (and (and x5 x2) (and x2 x5)) (or (not x1) (or x6 x4)))))))))))
+(check-sat)
+(push 1)
+(assert (and (and (or (not (or (not x5) (and x3 x3))) (or (or (not x4) (or x5 x2)) (not (or x2 x0)))) (and (not (not (not x4))) (and (and (not x3) (or x5 x0)) (not (or x3 x5))))) (and (or (or (not (and x6 x4)) (or (and x2 x6) (and x2 x1))) (or (not (not x4)) (not (and x6 x3)))) (or (and (not (and x3 x3)) (not (or x0 x2))) (or (not (or x5 x4)) (or (and x2 x2) (and x1 x5)))))))
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(assert (not (not (or (or (or (and (or (not (or x1 x0)) (not (or x2 x0))) (not (and (and x4 x3) (or x0 x6)))) (and (and (and (or x4 x1) (or x1 x2)) (or (not x1) (not x6))) (not (and (not x4) (and x6 x1))))) (or (and (and (not (not x6)) (or (and x6 x3) (not x1))) (or (or (and x5 x6) (or x5 x5)) (or (or x4 x6) (or x5 x6)))) (and (not (or (or x5 x2) (not x3))) (or (or (and x6 x6) (or x0 x5)) (or (and x1 x2) (and x6 x5)))))) (and (and (and (or (or (and x6 x2) (or x3 x5)) (and (or x6 x1) (and x1 x1))) (not (not (not x5)))) (or (or (not (or x3 x1)) (not (not x0))) (or (or (and x0 x4) (or x6 x6)) (and (not x2) (or x6 x1))))) (and (and (not (not (or x0 x1))) (not (or (or x2 x1) (not x1)))) (or (and (not (or x5 x2)) (or (not x0) (not x6))) (and (and (or x2 x4) (not x5)) (or (and x6 x5) (and x0 x6))))))))))
+(assert (or (or (or (and x2 x5) (and x5 x3)) (not (not x5))) (not (not (or x6 x2)))))
+(assert (not x3))
+(check-sat)
+(pop 1)
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_27.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_27.smt2
new file mode 100644 (file)
index 0000000..b961ba7
--- /dev/null
@@ -0,0 +1,46 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(declare-fun x4 () Bool)
+(assert (not (and (or (and (and (and (or (not (and (not x4) (and x2 x4))) (not (or (or x2 x2) (or x0 x2)))) (not (and (or (or x2 x3) (or x0 x2)) (and (not x1) (not x1))))) (not (or (and (and (or x0 x4) (or x1 x1)) (and (and x3 x0) (not x1))) (or (not (and x3 x3)) (not (and x3 x1)))))) (or (not (not (not (not (and x3 x2))))) (not (or (or (not (or x0 x3)) (and (or x2 x2) (and x1 x0))) (not (and (and x2 x2) (or x0 x0))))))) (and (not (or (not (not (or (or x2 x3) (or x0 x4)))) (or (or (not (not x4)) (not (and x3 x3))) (and (not (not x0)) (and (not x2) (not x3)))))) (and (and (not (not (or (and x0 x1) (or x3 x4)))) (or (and (or (and x1 x2) (or x4 x1)) (or (or x4 x3) (not x4))) (not (and (not x1) (and x2 x1))))) (not (or (not (and (or x4 x0) (and x3 x2))) (not (and (and x0 x4) (not x0)))))))) (or (not (or (or (and (or (or (and x1 x1) (or x2 x1)) (and (not x3) (or x3 x1))) (and (and (and x3 x2) (and x0 x4)) (or (or x0 x4) (or x2 x4)))) (and (not (and (and x1 x2) (not x3))) (or (and (not x2) (or x3 x0)) (or (not x0) (not x2))))) (and (and (and (not (and x3 x3)) (not (not x0))) (or (or (and x0 x1) (not x2)) (not (or x3 x0)))) (or (and (or (and x0 x2) (and x0 x3)) (and (not x3) (or x0 x4))) (and (not (and x2 x1)) (not (not x1))))))) (and (not (not (and (not (or (not x4) (and x0 x0))) (or (not (not x0)) (or (and x1 x3) (and x2 x0)))))) (or (and (and (not (or (and x2 x1) (and x4 x1))) (and (not (and x0 x3)) (and (or x3 x2) (and x1 x4)))) (and (and (or (or x0 x1) (not x0)) (and (and x2 x3) (not x2))) (not (not (or x2 x3))))) (and (and (and (and (or x2 x1) (or x1 x4)) (and (and x2 x4) (or x1 x4))) (or (and (and x2 x0) (not x0)) (and (and x3 x1) (not x0)))) (or (not (or (not x4) (or x1 x2))) (and (or (not x2) (not x3)) (and (or x1 x2) (and x1 x1)))))))))))
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(assert (or (not (and (not (or (and (or x1 x0) (not x1)) (not (and x1 x3)))) (or (or (not (not x2)) (and (and x3 x3) (not x1))) (or (or (or x4 x3) (not x3)) (not (not x4)))))) (or (and (not (not (or (and x3 x3) (or x3 x0)))) (not (or (or (or x2 x4) (and x2 x1)) (or (not x2) (not x0))))) (and (not (or (and (not x1) (not x1)) (not (and x3 x0)))) (or (and (not (not x4)) (not (not x2))) (or (not (not x0)) (and (not x4) (or x2 x0))))))))
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(check-sat)
+(pop 1)
+(assert (and x4 x0))
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(assert (not x3))
+(assert (not (or x0 x2)))
+(check-sat)
+(pop 1)
+(assert (and (and (not x4) (not x2)) (not (or x1 x2))))
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_28.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_28.smt2
new file mode 100644 (file)
index 0000000..6318979
--- /dev/null
@@ -0,0 +1,46 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(declare-fun x4 () Bool)
+(declare-fun x5 () Bool)
+(declare-fun x6 () Bool)
+(declare-fun x7 () Bool)
+(declare-fun x8 () Bool)
+(declare-fun x9 () Bool)
+(assert (not (and (or (and (or (or (not (not (or (not x3) (or x9 x2)))) (and (not (or (and x8 x5) (and x0 x4))) (not (and (not x6) (not x1))))) (or (not (or (and (or x2 x9) (and x1 x9)) (not (not x2)))) (not (not (and (or x8 x0) (not x8)))))) (or (and (and (and (or (not x2) (not x5)) (not (or x1 x6))) (not (not (or x2 x4)))) (or (not (and (not x7) (or x1 x6))) (and (or (or x6 x7) (or x8 x7)) (not (and x0 x8))))) (and (not (and (and (and x2 x1) (and x0 x5)) (not (or x8 x8)))) (not (and (and (not x2) (or x5 x8)) (not (not x1))))))) (and (and (not (or (and (or (and x3 x3) (or x2 x5)) (and (or x8 x9) (not x2))) (and (or (not x5) (not x1)) (and (or x6 x7) (not x1))))) (not (and (and (and (or x1 x5) (and x4 x8)) (not (and x6 x4))) (and (or (or x0 x8) (and x3 x5)) (not (and x6 x1)))))) (not (and (and (not (or (or x0 x4) (or x9 x7))) (or (and (and x8 x4) (not x4)) (or (and x0 x5) (or x1 x9)))) (not (and (and (and x3 x5) (and x8 x6)) (and (or x9 x8) (or x2 x7)))))))) (or (or (or (or (or (not (or (or x8 x3) (or x3 x7))) (not (and (not x7) (or x1 x0)))) (and (or (and (or x5 x7) (or x3 x0)) (and (and x0 x6) (not x2))) (not (not (or x4 x3))))) (or (and (not (or (and x2 x4) (or x0 x6))) (not (and (and x6 x7) (not x3)))) (not (and (and (and x7 x5) (and x3 x0)) (and (not x8) (and x6 x1)))))) (and (not (not (not (or (not x2) (not x3))))) (or (or (not (and (not x8) (not x5))) (and (or (or x0 x1) (and x6 x1)) (not (not x1)))) (not (not (or (or x1 x5) (not x0))))))) (and (or (not (and (or (or (not x6) (not x7)) (and (not x3) (and x7 x3))) (and (not (not x0)) (and (not x1) (or x4 x6))))) (or (and (not (and (and x8 x7) (and x9 x7))) (not (or (not x2) (and x0 x6)))) (or (not (not (or x3 x3))) (not (not (or x9 x7)))))) (and (not (not (not (or (and x2 x2) (or x9 x7))))) (or (and (and (or (or x5 x7) (and x2 x0)) (and (or x8 x4) (not x7))) (not (not (and x6 x9)))) (and (not (not (not x0))) (or (and (not x9) (or x1 x7)) (not (or x9 x7)))))))))))
+(assert (not (and (not (not (or x9 x8))) (or (not (not x9)) (or (and x4 x6) (or x3 x8))))))
+(assert (or (or (not (or (and (and (and x9 x5) (or x3 x6)) (not (not x9))) (and (and (and x7 x6) (and x8 x3)) (or (and x1 x8) (and x0 x9))))) (not (not (or (and (and x8 x7) (or x9 x2)) (and (not x1) (not x1)))))) (and (or (and (and (not (or x7 x2)) (not (or x6 x5))) (and (or (and x8 x6) (and x8 x7)) (or (not x6) (not x7)))) (or (or (not (not x3)) (and (and x0 x5) (not x4))) (and (not (or x7 x2)) (not (and x1 x9))))) (or (not (and (or (and x5 x4) (or x1 x0)) (or (and x6 x2) (not x1)))) (and (or (not (not x1)) (and (or x2 x7) (or x6 x1))) (not (or (and x2 x0) (not x4))))))))
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(assert (or (or (or (not (not (not (or (and (or (not x2) (and x1 x3)) (not (not x3))) (or (not (not x8)) (or (or x9 x7) (and x3 x3))))))) (not (or (and (not (or (or (and x6 x6) (not x6)) (and (not x1) (not x4)))) (and (not (not (and x9 x7))) (and (and (and x6 x9) (and x1 x2)) (not (or x3 x1))))) (or (or (or (not (not x9)) (not (and x4 x4))) (or (not (and x4 x0)) (or (not x0) (or x2 x0)))) (and (and (and (or x1 x1) (not x9)) (or (or x7 x7) (not x2))) (and (or (and x1 x7) (or x2 x9)) (and (not x2) (not x2)))))))) (and (or (not (and (not (and (not (or x5 x6)) (not (or x3 x8)))) (or (not (not (or x6 x3))) (and (or (or x6 x1) (not x9)) (not (or x8 x2)))))) (not (and (not (or (or (or x7 x1) (not x3)) (or (or x6 x9) (and x8 x1)))) (not (not (not (and x6 x7))))))) (or (not (not (and (and (or (not x3) (not x0)) (or (or x3 x3) (or x4 x3))) (or (and (and x8 x6) (or x7 x7)) (not (or x4 x4)))))) (and (and (and (not (or (or x2 x7) (not x6))) (and (or (not x2) (or x3 x6)) (and (not x8) (not x9)))) (and (not (and (or x1 x5) (and x6 x1))) (or (not (or x6 x1)) (or (or x0 x8) (not x5))))) (and (or (not (not (and x5 x3))) (or (not (or x8 x1)) (not (or x7 x4)))) (and (and (and (or x3 x0) (or x1 x4)) (and (or x6 x7) (not x1))) (or (or (not x0) (and x6 x5)) (not (not x4))))))))) (and (or (and (and (and (not (not (not (and x3 x6)))) (and (or (not (not x6)) (not (not x3))) (or (not (not x6)) (and (or x4 x9) (not x0))))) (and (or (not (not (or x5 x6))) (or (and (and x8 x2) (and x5 x2)) (or (or x0 x4) (or x4 x6)))) (or (and (or (not x0) (or x6 x4)) (not (and x5 x6))) (and (or (and x8 x7) (not x7)) (or (and x2 x5) (and x7 x5)))))) (or (and (not (not (or (not x7) (or x7 x8)))) (not (not (or (and x0 x9) (or x4 x6))))) (and (and (or (not (and x1 x4)) (not (and x5 x4))) (or (or (or x9 x0) (and x9 x9)) (not (or x7 x7)))) (or (not (or (not x3) (or x8 x0))) (or (not (or x3 x4)) (not (not x1))))))) (or (not (and (not (or (not (or x0 x6)) (or (not x9) (not x9)))) (or (not (not (and x6 x9))) (not (and (not x9) (and x8 x2)))))) (not (or (or (and (and (not x6) (or x7 x2)) (and (and x8 x5) (and x0 x8))) (and (not (not x7)) (or (not x6) (or x8 x9)))) (or (and (and (and x5 x6) (and x4 x2)) (and (or x1 x2) (not x4))) (not (and (and x4 x8) (and x7 x7)))))))) (or (and (and (or (or (or (and (and x5 x5) (or x8 x2)) (not (not x8))) (and (not (not x3)) (or (or x9 x8) (not x2)))) (and (or (and (and x4 x8) (and x7 x7)) (and (not x3) (and x8 x0))) (and (not (and x2 x5)) (and (and x9 x4) (and x5 x3))))) (not (and (or (not (not x7)) (and (not x1) (or x5 x1))) (not (not (and x6 x5)))))) (or (not (not (or (and (not x1) (or x1 x0)) (and (and x6 x8) (and x1 x0))))) (or (or (and (not (or x9 x2)) (or (and x5 x6) (and x1 x2))) (not (not (and x7 x2)))) (or (not (not (and x0 x3))) (or (not (and x8 x0)) (and (not x5) (not x7))))))) (or (or (or (and (and (or (and x9 x0) (or x1 x9)) (not (and x4 x4))) (and (and (not x8) (not x1)) (and (or x0 x9) (not x2)))) (not (not (not (not x2))))) (not (and (not (not (or x5 x1))) (and (or (not x9) (not x6)) (not (or x1 x6)))))) (not (or (or (and (and (or x5 x1) (not x1)) (and (not x4) (not x2))) (or (and (and x6 x2) (or x4 x3)) (and (and x1 x7) (and x8 x0)))) (or (or (not (or x9 x4)) (or (and x7 x8) (or x1 x6))) (or (or (or x0 x7) (and x6 x2)) (or (not x5) (not x0)))))))))))
+(assert (not (and (and (and (and (or (and (or x7 x6) (and x4 x6)) (not (or x4 x2))) (and (and (or x7 x6) (or x9 x1)) (or (not x1) (and x1 x8)))) (not (not (and (or x7 x1) (not x7))))) (not (or (not (and (or x7 x2) (and x2 x2))) (or (and (or x5 x1) (and x8 x1)) (or (and x2 x8) (not x6)))))) (or (or (not (not (or (not x2) (or x2 x8)))) (not (and (not (not x9)) (not (and x9 x6))))) (and (or (or (not (and x1 x3)) (not (not x3))) (and (and (and x1 x4) (and x1 x9)) (not (or x1 x7)))) (not (not (or (not x2) (not x0)))))))))
+(check-sat)
+(push 1)
+(assert (and (not (and (and (or (and (and (or (not (or x0 x2)) (not (and x3 x8))) (or (and (not x3) (or x1 x7)) (and (or x0 x3) (or x0 x0)))) (and (not (and (not x6) (not x9))) (or (not (and x9 x4)) (and (or x1 x3) (not x7))))) (or (not (and (and (not x9) (not x4)) (not (not x1)))) (not (or (or (or x7 x9) (and x0 x1)) (not (and x6 x3)))))) (or (not (not (or (and (not x5) (not x0)) (and (and x1 x9) (and x7 x1))))) (or (and (or (and (not x3) (or x9 x8)) (not (and x0 x6))) (not (not (not x5)))) (and (and (and (and x7 x6) (and x7 x2)) (and (not x9) (and x8 x1))) (and (not (not x4)) (not (or x5 x7))))))) (not (not (or (and (and (or (and x5 x6) (not x1)) (or (not x7) (not x6))) (and (or (and x3 x6) (or x4 x3)) (or (and x7 x3) (not x5)))) (or (not (not (or x7 x4))) (and (or (not x6) (or x4 x6)) (or (or x1 x3) (not x2))))))))) (or (and (not (and (or (and (not (not (and x3 x8))) (and (not (and x4 x9)) (not (not x0)))) (or (and (or (or x7 x5) (not x1)) (or (and x8 x0) (not x1))) (and (and (and x8 x9) (or x3 x2)) (not (not x9))))) (or (or (or (and (or x2 x6) (not x1)) (or (not x6) (not x4))) (or (or (not x4) (or x6 x7)) (and (and x8 x0) (and x3 x5)))) (or (and (not (or x1 x6)) (not (not x0))) (not (not (not x0))))))) (or (not (not (and (or (or (and x6 x5) (and x5 x6)) (not (or x9 x2))) (not (not (and x8 x0)))))) (or (not (and (not (not (and x1 x4))) (and (and (not x9) (and x4 x1)) (or (not x9) (not x7))))) (and (or (and (not (or x4 x1)) (not (and x9 x1))) (and (not (and x0 x4)) (and (or x8 x0) (not x5)))) (or (not (and (or x7 x1) (not x9))) (not (not (not x0)))))))) (not (or (or (not (or (and (not (not x3)) (and (or x5 x0) (not x1))) (not (not (not x8))))) (and (and (or (and (and x3 x3) (or x2 x3)) (not (or x5 x3))) (and (and (and x3 x2) (or x6 x8)) (and (or x8 x1) (not x9)))) (or (and (and (and x7 x0) (and x7 x4)) (and (and x8 x3) (not x4))) (not (not (not x8)))))) (and (not (and (not (and (or x6 x4) (or x9 x9))) (or (and (or x8 x3) (or x0 x0)) (not (or x0 x7))))) (or (and (or (and (and x5 x9) (or x7 x2)) (and (not x2) (not x4))) (and (or (not x8) (or x4 x4)) (not (or x9 x4)))) (or (not (not (and x0 x5))) (or (and (not x9) (not x5)) (not (or x7 x7)))))))))))
+(assert (and (not (or x6 x8)) (or (or x4 x6) (or x4 x6))))
+(assert (or (or (not (not (and (or x3 x4) (or x4 x9)))) (or (not (and (not x2) (and x9 x7))) (and (and (and x4 x9) (not x2)) (not (and x8 x5))))) (or (or (and (not (not x3)) (or (and x9 x9) (and x1 x8))) (or (and (and x7 x3) (and x4 x8)) (not (not x4)))) (and (not (not (or x4 x5))) (and (or (or x7 x0) (and x2 x6)) (not (or x7 x7)))))))
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(assert (not (and (or (not (and (or (or (or (not (not x9)) (not (and x2 x7))) (not (or (or x3 x5) (not x6)))) (not (and (and (and x9 x5) (and x2 x4)) (and (or x0 x9) (not x7))))) (and (or (not (and (not x8) (or x6 x7))) (not (and (or x7 x6) (or x3 x5)))) (and (and (and (and x4 x9) (or x0 x8)) (not (not x9))) (not (not (and x6 x1))))))) (or (not (and (and (and (not (or x0 x7)) (not (or x1 x7))) (and (or (or x4 x1) (or x3 x3)) (or (not x7) (or x3 x0)))) (or (and (and (not x6) (and x5 x0)) (not (or x8 x2))) (and (and (or x7 x0) (and x9 x8)) (and (and x0 x2) (not x2)))))) (and (not (not (not (and (not x2) (or x6 x1))))) (and (and (and (and (and x9 x7) (or x2 x0)) (and (or x5 x5) (and x6 x8))) (or (and (and x6 x9) (or x4 x1)) (not (and x5 x5)))) (and (not (and (not x0) (or x9 x1))) (not (not (or x0 x3)))))))) (or (not (and (not (and (or (not (or x2 x6)) (and (or x2 x6) (not x8))) (or (or (and x0 x9) (and x0 x0)) (or (or x3 x0) (and x3 x3))))) (not (not (and (or (or x2 x1) (and x5 x9)) (or (or x1 x1) (and x2 x5))))))) (and (not (or (and (not (or (or x4 x0) (and x6 x9))) (or (not (and x5 x5)) (and (and x0 x7) (or x7 x7)))) (not (not (not (not x9)))))) (or (and (or (and (and (and x2 x6) (and x6 x9)) (or (not x8) (and x3 x0))) (and (not (not x6)) (and (not x1) (or x3 x1)))) (not (or (and (and x8 x7) (and x0 x4)) (or (not x1) (not x0))))) (or (not (or (or (and x7 x1) (and x8 x7)) (and (or x3 x1) (or x6 x2)))) (and (not (not (not x0))) (not (and (or x2 x3) (or x5 x3)))))))))))
+(check-sat)
+(pop 1)
+(assert (and x5 x7))
+(check-sat)
+(pop 1)
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_29.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_29.smt2
new file mode 100644 (file)
index 0000000..1c7586b
--- /dev/null
@@ -0,0 +1,47 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(declare-fun x4 () Bool)
+(declare-fun x5 () Bool)
+(declare-fun x6 () Bool)
+(check-sat)
+(push 1)
+(assert (and (or (or (not (and (not (or (or (not x5) (not x2)) (and (and x5 x2) (not x2)))) (or (or (and (not x2) (or x2 x1)) (or (or x3 x1) (and x3 x6))) (not (or (or x0 x4) (or x5 x0)))))) (not (and (not (or (not (and x1 x3)) (not (and x5 x4)))) (not (or (or (or x6 x0) (or x5 x3)) (and (or x4 x5) (or x4 x0))))))) (not (or (not (and (not (or (or x0 x6) (and x2 x2))) (or (and (or x3 x6) (or x1 x5)) (and (not x3) (not x3))))) (or (not (and (and (and x2 x3) (not x0)) (not (not x2)))) (not (or (not (and x1 x2)) (not (or x6 x6)))))))) (not (not (not (not (and (and (or (and x4 x2) (and x4 x4)) (or (and x5 x5) (and x0 x4))) (not (not (or x4 x0))))))))))
+(check-sat)
+(pop 1)
+(assert (and (and (not (and (or (not (or (or (or (not x1) (and x6 x5)) (and (and x2 x3) (and x5 x1))) (and (not (not x4)) (and (and x4 x5) (not x1))))) (and (and (not (not (not x5))) (or (or (and x6 x3) (and x3 x6)) (or (not x2) (not x0)))) (and (or (or (or x6 x4) (and x6 x1)) (or (and x1 x6) (or x1 x0))) (or (and (not x6) (and x2 x2)) (not (and x2 x0)))))) (and (and (or (or (not (and x1 x6)) (and (not x0) (not x4))) (or (and (not x4) (not x4)) (and (or x4 x1) (and x2 x1)))) (or (or (not (or x6 x0)) (and (and x6 x5) (not x0))) (and (and (and x2 x2) (and x0 x0)) (or (or x0 x0) (and x3 x4))))) (not (and (not (not (and x1 x5))) (and (and (and x1 x3) (and x4 x2)) (or (or x5 x2) (and x5 x1)))))))) (not (and (not (not (and (and (or (and x6 x2) (and x3 x0)) (or (or x3 x5) (and x4 x4))) (not (or (or x2 x3) (and x5 x6)))))) (or (not (not (or (and (not x2) (not x4)) (and (not x1) (and x1 x2))))) (and (or (and (not (or x5 x5)) (not (or x3 x1))) (and (and (and x4 x3) (or x1 x0)) (and (and x0 x3) (or x3 x3)))) (or (not (not (or x0 x0))) (not (not (and x0 x0))))))))) (or (not (and (or (not (or (not (not (or x5 x5))) (not (not (or x2 x6))))) (and (and (and (not (not x4)) (not (or x2 x4))) (not (or (and x0 x5) (or x4 x1)))) (or (or (or (not x6) (and x5 x2)) (or (not x1) (and x5 x1))) (or (or (and x5 x3) (or x3 x5)) (and (not x1) (or x0 x0)))))) (and (and (not (not (and (or x3 x0) (and x1 x2)))) (not (not (or (or x6 x0) (not x5))))) (not (or (or (not (not x4)) (and (not x6) (or x1 x4))) (and (or (or x6 x0) (and x3 x5)) (not (not x0)))))))) (not (not (not (or (and (or (or (or x0 x2) (and x0 x0)) (or (and x6 x6) (not x6))) (and (or (not x3) (not x2)) (and (and x0 x3) (or x6 x5)))) (and (or (not (not x3)) (or (or x1 x0) (and x2 x6))) (not (not (and x0 x2)))))))))))
+(assert (not x6))
+(assert (or (not (or (and (and (not (not (not x0))) (and (not (not x3)) (or (not x5) (not x6)))) (and (or (or (or x0 x4) (and x0 x6)) (or (not x3) (or x3 x3))) (and (and (not x6) (and x2 x6)) (or (or x5 x3) (and x4 x6))))) (or (and (not (and (or x1 x3) (not x5))) (or (or (and x1 x4) (not x2)) (or (not x5) (or x1 x3)))) (or (and (and (or x4 x3) (and x2 x2)) (or (and x4 x0) (not x5))) (or (or (and x4 x1) (and x3 x5)) (and (or x5 x1) (not x2))))))) (or (or (and (and (not (and (or x4 x0) (not x5))) (and (not (or x2 x1)) (and (and x0 x0) (or x2 x2)))) (or (or (not (or x2 x3)) (or (and x4 x2) (not x4))) (and (and (or x3 x2) (or x1 x4)) (not (not x6))))) (or (or (not (not (or x2 x0))) (not (not (and x0 x0)))) (not (not (and (or x6 x4) (and x3 x5)))))) (or (or (not (or (and (and x4 x1) (or x1 x1)) (and (not x0) (not x5)))) (not (and (not (and x4 x1)) (and (or x3 x0) (and x5 x3))))) (and (and (not (not (not x6))) (or (or (not x5) (or x2 x5)) (and (and x5 x3) (or x3 x1)))) (or (not (and (not x2) (not x5))) (and (or (not x3) (not x5)) (not (not x6)))))))))
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(assert (or (or (or (or (not (and (and x2 x5) (and x5 x0))) (not (or (and x0 x0) (or x3 x6)))) (not (not (or (or x5 x1) (and x4 x0))))) (and (not (or (and (and x3 x1) (or x1 x3)) (not (not x0)))) (not (and (or (or x0 x2) (or x4 x2)) (or (and x6 x1) (or x6 x1)))))) (not (not (not (or (or (or x1 x1) (or x3 x0)) (or (and x3 x2) (or x4 x4))))))))
+(assert (not (and (not (and (not (and (and (and (not x1) (not x2)) (not (and x4 x2))) (or (or (or x5 x6) (and x0 x1)) (and (or x1 x5) (not x3))))) (or (and (or (not (not x4)) (not (and x2 x0))) (and (and (or x5 x3) (or x5 x0)) (or (not x3) (or x1 x3)))) (and (or (or (not x1) (and x5 x2)) (not (or x1 x0))) (or (not (and x2 x1)) (or (not x1) (and x6 x2))))))) (and (not (and (and (and (not (not x1)) (or (or x6 x0) (not x5))) (and (and (and x4 x1) (and x4 x4)) (not (or x3 x1)))) (or (and (not (and x5 x4)) (or (or x2 x2) (not x6))) (or (not (and x0 x2)) (and (or x6 x2) (or x1 x2)))))) (and (or (or (not (and (or x0 x4) (not x1))) (not (or (and x2 x4) (and x2 x2)))) (or (and (not (and x4 x4)) (not (and x3 x3))) (and (or (and x1 x0) (not x0)) (or (or x5 x6) (not x0))))) (or (or (and (or (not x5) (or x4 x1)) (and (not x4) (and x3 x5))) (or (not (and x3 x1)) (or (or x6 x1) (not x3)))) (and (or (not (or x0 x1)) (and (and x3 x6) (or x1 x1))) (and (and (and x0 x6) (and x5 x0)) (or (not x4) (or x5 x0))))))))))
+(check-sat)
+(push 1)
+(assert (not (and (or (not (and (not (and (and (and x6 x2) (not x0)) (and (or x5 x6) (and x4 x5)))) (or (or (or (and x4 x1) (not x1)) (and (or x6 x3) (not x3))) (or (and (and x6 x3) (or x4 x4)) (not (or x3 x3)))))) (not (or (or (or (and (or x4 x1) (and x1 x2)) (or (and x5 x3) (not x1))) (not (not (or x3 x3)))) (not (not (and (not x4) (and x6 x0))))))) (or (not (and (and (or (or (not x6) (not x1)) (or (not x5) (not x4))) (and (not (or x6 x4)) (or (not x0) (or x1 x6)))) (or (and (and (or x3 x4) (or x1 x5)) (or (not x2) (or x4 x1))) (and (and (and x6 x0) (and x2 x4)) (and (and x4 x6) (not x6)))))) (or (or (and (not (not (and x4 x4))) (not (and (not x1) (or x2 x2)))) (or (not (or (not x1) (or x6 x0))) (and (not (and x4 x5)) (and (not x5) (and x5 x4))))) (not (or (or (and (not x5) (or x0 x6)) (not (not x0))) (not (not (or x0 x1))))))))))
+(check-sat)
+(push 1)
+(assert (or (not (or (or (and (and x4 x3) (or x1 x4)) (and (not x4) (and x2 x0))) (and (or (not x4) (and x6 x6)) (and (and x5 x5) (not x4))))) (and (or (and (or (and x6 x3) (and x0 x2)) (or (or x3 x1) (or x2 x1))) (or (or (not x0) (not x1)) (and (or x2 x0) (or x5 x6)))) (and (and (not (not x0)) (or (or x3 x1) (or x3 x3))) (not (and (and x3 x0) (and x3 x1)))))))
+(assert (and (or (or (or (and x3 x0) (or x3 x4)) (not (or x5 x6))) (and (and (and x2 x3) (not x4)) (or (and x4 x0) (not x6)))) (not (and (not (not x2)) (or (or x2 x1) (or x0 x2))))))
+(assert (or (not (or (or (or (and (or (or (and (or x4 x2) (and x2 x3)) (and (not x4) (or x4 x5))) (not (not (and x1 x6)))) (not (and (or (and x3 x4) (and x4 x3)) (and (and x1 x6) (or x1 x4))))) (or (and (or (and (or x3 x0) (and x1 x5)) (and (or x2 x1) (or x2 x2))) (or (or (and x3 x4) (and x6 x1)) (or (not x5) (or x0 x2)))) (and (not (and (not x4) (not x1))) (and (or (not x5) (or x2 x6)) (or (and x6 x4) (not x5)))))) (or (and (not (or (and (or x4 x3) (not x2)) (or (or x6 x6) (and x4 x0)))) (or (or (and (or x6 x5) (or x3 x3)) (and (or x6 x4) (not x4))) (not (not (and x4 x3))))) (not (or (or (or (and x5 x4) (or x0 x6)) (or (not x6) (and x2 x3))) (and (or (not x1) (or x6 x5)) (and (and x0 x2) (or x6 x6))))))) (and (and (and (and (or (not (not x6)) (and (and x5 x3) (and x2 x4))) (not (not (not x0)))) (and (or (or (and x6 x4) (not x4)) (not (or x3 x3))) (not (or (not x2) (and x1 x5))))) (or (or (or (or (and x3 x2) (not x1)) (not (not x6))) (and (not (not x4)) (and (not x6) (not x4)))) (or (and (not (or x2 x0)) (or (or x2 x5) (or x3 x3))) (and (not (not x2)) (not (or x2 x5)))))) (and (or (or (and (and (and x0 x0) (and x2 x5)) (not (and x4 x2))) (or (not (and x1 x0)) (not (and x3 x0)))) (and (and (or (or x0 x3) (not x4)) (or (not x5) (not x5))) (or (or (or x6 x2) (and x0 x5)) (not (and x0 x1))))) (or (not (not (and (not x0) (or x1 x6)))) (and (or (or (or x5 x6) (or x1 x5)) (not (or x2 x5))) (or (or (and x4 x2) (not x1)) (or (and x0 x0) (or x2 x6))))))))) (and (and (and (not (or (not (or (or (not x6) (and x4 x2)) (or (not x4) (and x4 x6)))) (or (or (and (not x1) (and x6 x1)) (or (not x4) (and x4 x5))) (or (and (not x3) (not x0)) (or (not x3) (or x6 x2)))))) (or (or (not (and (or (or x6 x1) (or x0 x1)) (not (and x0 x1)))) (or (or (or (and x5 x2) (and x6 x1)) (not (not x3))) (not (or (and x3 x2) (not x0))))) (and (not (not (and (or x2 x3) (not x1)))) (not (or (or (not x3) (not x1)) (and (and x2 x6) (and x2 x1))))))) (and (or (or (or (and (and (not x5) (or x4 x1)) (and (or x3 x5) (not x3))) (not (or (not x0) (or x2 x6)))) (not (and (or (or x2 x2) (or x6 x6)) (and (and x4 x6) (and x2 x1))))) (or (or (and (and (not x0) (and x0 x2)) (and (and x0 x4) (not x0))) (not (and (not x0) (and x2 x0)))) (not (or (and (and x3 x1) (or x5 x2)) (or (or x4 x3) (or x4 x4)))))) (and (or (not (not (and (or x0 x4) (not x4)))) (and (or (or (or x5 x5) (or x0 x5)) (or (or x6 x4) (not x5))) (and (not (or x6 x0)) (and (or x2 x6) (or x0 x6))))) (and (or (not (not (or x2 x0))) (or (not (not x5)) (or (not x4) (or x5 x0)))) (and (or (or (or x0 x6) (not x4)) (not (or x2 x0))) (and (or (and x2 x3) (and x5 x5)) (or (and x4 x5) (not x2)))))))) (and (not (and (or (and (not (or (not x2) (or x6 x1))) (or (and (or x1 x3) (and x0 x5)) (or (not x5) (or x0 x5)))) (and (and (and (not x3) (or x2 x1)) (or (or x3 x0) (not x5))) (or (and (and x5 x6) (and x6 x2)) (or (not x1) (not x6))))) (not (not (not (not (not x0))))))) (or (not (not (and (and (or (not x3) (not x3)) (and (not x5) (not x5))) (not (not (or x0 x3)))))) (or (not (not (not (not (and x1 x0))))) (or (or (not (not (not x0))) (or (or (or x0 x2) (and x1 x3)) (or (and x6 x4) (and x6 x6)))) (and (not (or (and x4 x1) (and x4 x0))) (not (or (and x6 x6) (or x6 x4)))))))))))
+(check-sat)
+(pop 1)
+(assert (and (and (and x5 x2) (and x2 x2)) (not (and x1 x1))))
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_3.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_3.smt2
new file mode 100644 (file)
index 0000000..64693f8
--- /dev/null
@@ -0,0 +1,30 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: unsat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(assert (or (and (not (or (and (and (not (not (and x1 x2))) (and (not (not x1)) (not (and x3 x0)))) (not (or (and (and x0 x2) (or x3 x3)) (not (not x1))))) (not (or (and (not (not x1)) (not (not x0))) (not (or (or x0 x3) (not x0))))))) (or (and (and (not (or (or (and x2 x2) (or x1 x2)) (not (and x3 x3)))) (not (or (not (not x2)) (and (and x2 x1) (and x1 x1))))) (or (or (and (not (or x2 x3)) (or (not x0) (and x1 x1))) (or (or (or x3 x2) (and x2 x3)) (or (and x1 x0) (not x3)))) (or (and (not (or x3 x3)) (or (and x2 x2) (or x3 x0))) (and (not (or x0 x2)) (and (not x1) (or x2 x3)))))) (not (not (not (or (not (not x3)) (or (and x0 x3) (or x0 x3)))))))) (not (or (or (or (not (or (or (and x3 x0) (not x3)) (or (and x2 x0) (and x1 x2)))) (and (or (not (and x0 x2)) (not (or x1 x1))) (or (or (or x3 x1) (or x1 x2)) (or (not x1) (and x1 x1))))) (not (not (not (and (and x0 x3) (or x1 x1)))))) (and (and (and (and (and (or x3 x0) (or x1 x3)) (and (not x1) (not x2))) (not (not (not x0)))) (not (and (or (and x3 x3) (or x2 x3)) (not (or x1 x1))))) (and (or (not (and (and x0 x2) (not x0))) (or (not (or x3 x0)) (not (or x1 x0)))) (or (and (and (and x2 x0) (not x1)) (not (not x0))) (and (or (not x3) (or x1 x1)) (not (and x0 x3))))))))))
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(assert (or (not (and x0 x2)) (and (not x2) (and x0 x2))))
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(assert (or (and (or (not (or (or (and (not (or x3 x3)) (or (not x1) (or x0 x2))) (and (or (and x3 x1) (or x3 x3)) (not (or x1 x3)))) (or (or (not (and x3 x2)) (not (or x1 x1))) (or (and (or x0 x1) (and x0 x1)) (and (or x0 x2) (and x1 x1)))))) (not (and (not (not (not (and x0 x1)))) (or (and (or (or x1 x3) (not x3)) (and (and x3 x1) (and x1 x1))) (not (not (not x1))))))) (not (and (or (and (or (not (and x0 x3)) (and (or x0 x0) (or x0 x0))) (and (and (or x1 x0) (and x1 x2)) (and (not x3) (or x0 x1)))) (and (not (or (not x0) (not x2))) (or (or (and x0 x0) (not x0)) (and (not x1) (and x2 x3))))) (and (and (not (or (and x3 x1) (or x0 x1))) (not (or (or x2 x2) (not x2)))) (not (or (and (and x2 x3) (or x2 x0)) (or (and x0 x0) (not x2)))))))) (not (or (or (or (and (and (or (and x2 x0) (not x3)) (or (or x0 x1) (not x2))) (not (and (not x3) (not x2)))) (not (and (and (and x0 x0) (not x3)) (and (not x3) (and x0 x2))))) (not (not (and (and (and x2 x1) (not x3)) (or (or x3 x2) (not x2)))))) (not (or (not (or (not (and x0 x0)) (or (not x3) (or x3 x3)))) (or (and (or (and x0 x3) (not x2)) (not (not x2))) (or (not (or x0 x3)) (or (and x1 x2) (and x1 x0))))))))))
+(check-sat)
+(pop 1)
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_30.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_30.smt2
new file mode 100644 (file)
index 0000000..7f57788
--- /dev/null
@@ -0,0 +1,70 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(declare-fun x4 () Bool)
+(declare-fun x5 () Bool)
+(declare-fun x6 () Bool)
+(declare-fun x7 () Bool)
+(declare-fun x8 () Bool)
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(assert (or (not (or (and (not (or (or (and (or (or x7 x2) (and x4 x1)) (or (or x0 x5) (and x1 x2))) (not (or (not x5) (or x8 x6)))) (not (or (or (not x0) (and x1 x1)) (not (or x4 x6)))))) (and (and (and (or (or (not x1) (or x3 x0)) (not (not x0))) (or (not (or x2 x7)) (or (and x2 x3) (and x0 x5)))) (or (and (not (and x3 x5)) (and (or x1 x7) (and x0 x7))) (not (and (not x2) (and x5 x0))))) (and (not (not (or (not x1) (or x0 x3)))) (and (not (and (or x2 x5) (and x5 x3))) (and (or (or x2 x5) (and x8 x6)) (or (not x2) (or x8 x6))))))) (or (or (and (not (and (not (or x4 x0)) (or (or x1 x6) (or x6 x0)))) (and (not (not (not x8))) (not (and (not x5) (and x2 x6))))) (not (not (or (not (not x8)) (not (and x7 x8)))))) (or (not (and (and (and (not x2) (not x5)) (and (not x1) (and x5 x0))) (not (not (and x5 x1))))) (and (not (or (not (not x0)) (not (and x8 x0)))) (not (or (or (or x8 x5) (not x8)) (and (not x4) (and x7 x0))))))))) (or (not (or (not (or (not (or (not (not x8)) (not (not x8)))) (and (and (not (not x6)) (not (or x1 x3))) (or (and (not x8) (and x6 x4)) (not (or x2 x1)))))) (not (or (or (and (and (not x4) (or x8 x7)) (or (and x0 x8) (and x4 x3))) (not (or (or x3 x7) (or x2 x5)))) (not (and (not (or x5 x1)) (not (not x8)))))))) (and (or (and (or (not (not (or (not x6) (or x0 x8)))) (and (and (and (not x5) (not x1)) (not (or x4 x4))) (and (and (not x3) (or x7 x6)) (not (or x8 x7))))) (not (and (or (not (and x8 x0)) (not (and x7 x6))) (and (and (or x0 x0) (or x3 x4)) (not (or x8 x5)))))) (and (or (not (or (not (or x5 x8)) (or (and x2 x2) (not x8)))) (or (not (not (not x0))) (or (and (and x1 x5) (not x3)) (or (and x1 x7) (not x2))))) (and (and (or (not (and x2 x7)) (not (or x7 x8))) (and (and (or x6 x1) (or x6 x4)) (not (and x3 x7)))) (and (or (not (or x7 x1)) (not (not x0))) (and (not (or x3 x6)) (not (not x7))))))) (or (or (not (not (and (not (or x4 x1)) (not (and x6 x3))))) (not (not (and (not (or x4 x7)) (or (and x5 x7) (and x2 x1)))))) (and (and (not (or (not (not x6)) (not (and x1 x3)))) (or (not (or (and x6 x4) (and x2 x2))) (or (or (or x7 x6) (not x3)) (and (and x3 x4) (not x7))))) (or (or (not (or (and x7 x4) (not x8))) (and (not (or x6 x5)) (and (and x6 x5) (and x4 x0)))) (and (not (or (not x4) (and x3 x8))) (and (not (not x8)) (not (not x4)))))))))))
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(assert (and (or (or (and (and (and (and (and x3 x7) (or x3 x2)) (or (and x7 x7) (and x6 x5))) (or (or (and x4 x5) (or x6 x6)) (and (and x4 x3) (and x5 x5)))) (and (and (or (or x5 x0) (and x8 x2)) (and (or x1 x6) (and x5 x0))) (or (not (and x8 x4)) (and (not x8) (or x0 x1))))) (and (or (or (and (not x8) (not x8)) (and (not x7) (and x8 x5))) (not (and (or x1 x3) (or x5 x0)))) (not (and (not (and x8 x1)) (not (not x2)))))) (and (or (and (not (not (or x2 x5))) (or (not (or x8 x8)) (and (not x6) (and x7 x8)))) (or (and (not (or x6 x2)) (and (not x1) (and x2 x2))) (not (or (or x6 x3) (and x6 x0))))) (not (or (or (not (or x1 x7)) (or (and x3 x6) (and x5 x6))) (and (or (not x0) (or x0 x2)) (or (not x2) (and x0 x8))))))) (not (or (or (not (not (and (or x5 x4) (or x4 x2)))) (and (not (or (or x1 x6) (not x8))) (or (not (not x3)) (and (or x4 x7) (and x2 x4))))) (and (not (not (or (or x0 x8) (not x4)))) (or (and (and (not x4) (and x2 x5)) (not (and x3 x5))) (and (not (or x0 x0)) (not (not x3)))))))))
+(check-sat)
+(pop 1)
+(assert (or x3 x3))
+(check-sat)
+(pop 1)
+(assert (not (and (not (and (or x4 x1) (and x6 x3))) (and (not (and x3 x6)) (and (not x6) (and x5 x6))))))
+(assert (or (not (or (and (or (or (not (and x6 x7)) (or (not x8) (not x6))) (or (not (and x1 x8)) (or (not x6) (not x4)))) (and (and (or (not x4) (not x3)) (and (not x7) (and x4 x7))) (and (and (or x2 x7) (or x5 x2)) (and (not x1) (not x2))))) (not (not (or (and (and x5 x0) (not x1)) (and (and x4 x8) (not x1))))))) (not (and (not (or (not (or (or x7 x4) (not x1))) (not (not (not x2))))) (not (not (not (not (or x7 x7)))))))))
+(check-sat)
+(push 1)
+(assert (or (and (not (or (and (or x8 x2) (and x3 x4)) (not (or x3 x4)))) (and (not (and (and x2 x4) (or x7 x1))) (not (not (or x7 x1))))) (and (not (not (or (and x5 x4) (or x2 x6)))) (and (or (or (and x1 x1) (or x2 x3)) (not (or x3 x1))) (or (and (or x6 x7) (or x2 x0)) (not (and x8 x0)))))))
+(check-sat)
+(pop 1)
+(assert (and (or (not (and (or (or (or (and (not x0) (not x1)) (and (or x0 x2) (not x0))) (or (or (or x0 x0) (not x2)) (not (not x6)))) (and (not (and (or x5 x3) (not x5))) (not (or (and x1 x6) (and x0 x1))))) (and (or (and (and (or x6 x7) (and x6 x8)) (or (or x5 x7) (and x5 x3))) (not (not (not x7)))) (or (not (and (or x6 x3) (and x8 x3))) (or (and (and x6 x2) (and x3 x0)) (not (and x6 x0))))))) (and (and (and (or (or (and (and x3 x7) (or x0 x0)) (and (or x4 x4) (not x3))) (not (and (not x6) (and x7 x5)))) (and (or (not (or x1 x8)) (and (not x5) (or x8 x4))) (and (or (or x5 x1) (or x6 x3)) (not (not x2))))) (or (and (or (or (not x5) (and x2 x0)) (not (and x7 x1))) (and (and (and x1 x1) (not x6)) (or (not x0) (not x1)))) (and (or (and (or x8 x7) (and x1 x2)) (and (and x8 x0) (or x6 x7))) (not (not (or x6 x6)))))) (and (or (not (or (or (not x6) (or x1 x8)) (not (and x3 x3)))) (and (not (not (not x2))) (and (or (not x7) (and x5 x3)) (or (not x0) (and x5 x8))))) (and (and (or (not (and x1 x6)) (not (and x0 x4))) (not (or (or x8 x5) (not x8)))) (or (or (not (not x5)) (and (or x8 x1) (or x5 x4))) (or (and (and x4 x4) (not x3)) (and (or x1 x1) (and x7 x4)))))))) (or (and (and (or (or (not (and (not x8) (and x8 x0))) (not (and (and x4 x2) (not x2)))) (or (and (and (or x7 x6) (or x6 x7)) (not (and x1 x2))) (or (not (or x1 x6)) (not (not x3))))) (and (and (or (or (not x4) (not x5)) (or (or x1 x1) (and x5 x6))) (and (or (or x1 x8) (or x2 x0)) (and (not x4) (or x5 x4)))) (not (not (not (or x2 x4)))))) (or (not (or (or (or (and x8 x0) (or x4 x6)) (not (and x8 x0))) (and (or (not x2) (not x2)) (and (not x5) (not x2))))) (not (or (not (not (and x4 x8))) (not (not (or x1 x1))))))) (or (and (not (and (and (and (and x5 x5) (and x7 x6)) (or (and x1 x0) (and x1 x2))) (and (not (not x1)) (and (and x1 x0) (or x1 x8))))) (and (not (and (and (or x0 x2) (not x5)) (or (and x1 x3) (or x0 x2)))) (and (not (and (or x0 x3) (or x1 x1))) (not (or (or x6 x1) (or x5 x0)))))) (or (and (not (or (not (not x3)) (not (and x4 x3)))) (and (not (not (not x2))) (not (or (or x8 x2) (or x8 x2))))) (or (or (not (or (or x2 x0) (or x7 x0))) (and (or (or x4 x3) (not x7)) (and (and x7 x7) (not x1)))) (or (or (and (and x8 x8) (or x8 x0)) (or (not x0) (and x1 x7))) (or (not (or x1 x0)) (or (and x1 x3) (or x5 x3))))))))))
+(check-sat)
+(push 1)
+(assert (or (not (not (or (or (or x5 x4) (not x5)) (and (and x3 x7) (and x2 x7))))) (and (or (or (not (or x8 x6)) (not (not x1))) (not (not (or x5 x2)))) (or (and (or (and x5 x3) (not x3)) (or (not x8) (not x6))) (or (and (not x2) (not x8)) (not (not x8)))))))
+(assert (and (and (and x1 x2) (or x4 x0)) (or (and x2 x6) (not x1))))
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(assert (and (and (not (or (or (and (and (or (and (and x1 x1) (or x0 x0)) (not (and x5 x1))) (and (not (not x3)) (or (or x2 x4) (and x1 x2)))) (not (or (or (and x8 x2) (not x3)) (or (or x4 x1) (not x8))))) (or (or (and (and (not x8) (or x5 x0)) (or (not x3) (or x1 x2))) (and (and (and x6 x6) (not x5)) (not (not x6)))) (or (or (not (or x1 x7)) (or (and x6 x5) (and x5 x5))) (or (not (or x3 x6)) (or (or x8 x3) (and x4 x0)))))) (and (and (or (and (or (or x5 x8) (not x0)) (or (or x6 x2) (and x0 x3))) (and (not (and x1 x0)) (and (or x7 x4) (or x1 x7)))) (not (not (or (and x2 x3) (or x0 x6))))) (not (not (or (or (and x3 x5) (not x1)) (not (and x6 x4)))))))) (and (and (not (and (not (not (and (not x4) (and x1 x1)))) (or (not (and (or x2 x1) (or x0 x7))) (or (and (not x3) (and x0 x0)) (or (and x4 x1) (not x7)))))) (or (or (or (not (not (and x2 x1))) (and (or (and x5 x0) (and x5 x4)) (not (and x2 x6)))) (not (or (not (or x3 x2)) (not (and x1 x8))))) (or (not (or (and (not x8) (or x4 x8)) (and (not x0) (not x6)))) (not (and (and (and x2 x1) (not x8)) (and (not x6) (and x2 x8))))))) (or (not (not (or (and (or (not x7) (or x6 x0)) (not (not x8))) (or (and (not x0) (not x6)) (not (or x5 x2)))))) (not (or (and (not (and (not x5) (not x7))) (or (and (not x3) (or x4 x1)) (and (and x1 x1) (and x8 x2)))) (and (or (not (or x0 x6)) (not (or x8 x0))) (not (or (not x1) (or x5 x8))))))))) (or (and (or (and (and (and (or (or (or x2 x4) (not x8)) (and (and x5 x0) (not x6))) (and (and (and x2 x1) (or x8 x7)) (not (or x1 x2)))) (and (not (not (not x4))) (and (or (and x0 x0) (or x0 x8)) (not (not x3))))) (or (and (and (or (or x5 x8) (and x8 x5)) (or (not x2) (not x3))) (and (not (not x5)) (and (not x5) (or x6 x4)))) (not (or (or (not x6) (and x2 x7)) (or (or x8 x5) (not x2)))))) (or (and (or (or (not (or x6 x0)) (or (and x5 x4) (or x0 x0))) (or (and (or x6 x5) (not x1)) (and (not x7) (and x0 x4)))) (not (not (or (not x5) (and x0 x7))))) (not (and (not (not (not x2))) (not (or (or x0 x3) (and x3 x7))))))) (or (not (and (not (and (or (not x5) (and x4 x0)) (not (and x5 x1)))) (and (and (or (or x4 x3) (not x6)) (not (not x6))) (not (or (not x8) (or x0 x2)))))) (and (or (not (and (not (and x8 x7)) (and (not x6) (and x3 x8)))) (or (and (or (not x2) (or x6 x7)) (or (not x2) (not x1))) (not (not (not x2))))) (and (or (and (or (or x3 x6) (not x6)) (or (not x4) (and x2 x0))) (or (or (not x0) (and x6 x7)) (not (not x7)))) (and (not (and (and x5 x0) (or x2 x8))) (or (and (not x4) (and x8 x2)) (and (not x3) (not x2)))))))) (and (or (not (and (and (not (and (and x6 x5) (and x5 x3))) (or (and (and x7 x2) (or x4 x1)) (or (or x8 x0) (not x0)))) (not (and (not (not x0)) (not (and x2 x1)))))) (not (or (and (not (or (not x2) (not x5))) (or (or (and x3 x7) (or x4 x8)) (and (and x8 x1) (not x0)))) (or (not (not (or x0 x5))) (or (and (and x7 x0) (or x2 x5)) (not (and x0 x0))))))) (and (not (not (or (not (or (not x5) (not x6))) (and (not (and x4 x8)) (or (not x8) (or x3 x8)))))) (and (and (not (not (or (or x8 x8) (and x0 x4)))) (or (not (and (and x6 x2) (or x3 x6))) (and (not (and x6 x2)) (not (not x8))))) (or (or (and (and (not x5) (not x3)) (not (and x3 x7))) (and (not (and x4 x7)) (not (not x0)))) (or (not (or (not x6) (and x8 x6))) (not (or (not x8) (or x2 x1)))))))))))
+(assert (or (or (or (not (and (and x4 x0) (or x0 x7))) (and (or (or x8 x3) (and x2 x0)) (and (and x4 x0) (and x1 x8)))) (not (or (or (not x8) (not x3)) (not (and x5 x7))))) (or (not (not (and (not x6) (and x8 x6)))) (or (or (or (and x7 x7) (or x7 x4)) (not (and x7 x3))) (or (and (not x8) (not x5)) (and (and x3 x4) (not x6)))))))
+(assert (not (not (and (or x8 x1) (or x5 x7)))))
+(check-sat)
+(pop 1)
+(assert (not (or (not (not (or (and (and (not (or x0 x1)) (not (and x5 x5))) (not (or (or x7 x4) (not x4)))) (and (not (not (or x6 x5))) (or (and (not x2) (and x6 x4)) (not (and x6 x8))))))) (not (and (or (and (or (or (and x0 x1) (not x5)) (not (not x8))) (and (and (and x4 x5) (or x8 x1)) (and (not x4) (and x4 x6)))) (not (not (or (and x4 x6) (or x7 x1))))) (not (not (or (not (not x8)) (not (and x6 x1))))))))))
+(assert (and (and x6 x5) (or x5 x0)))
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_31.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_31.smt2
new file mode 100644 (file)
index 0000000..3df8012
--- /dev/null
@@ -0,0 +1,35 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: unsat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(assert (not (and (and (or (and (and (or (and (and x1 x1) (and x0 x0)) (or (and x1 x0) (or x1 x0))) (or (not (and x0 x0)) (or (or x0 x1) (or x0 x1)))) (not (and (not (and x1 x1)) (or (not x0) (not x0))))) (and (or (not (not (not x0))) (and (and (or x0 x1) (and x1 x0)) (not (and x1 x1)))) (or (not (not (not x1))) (or (or (and x1 x0) (not x1)) (not (and x0 x0)))))) (not (not (or (and (and (or x1 x0) (not x0)) (not (and x1 x0))) (and (or (not x0) (and x0 x0)) (and (or x0 x0) (or x1 x1))))))) (or (or (or (or (or (or (not x0) (and x1 x0)) (not (or x0 x0))) (and (not (or x0 x1)) (or (not x1) (not x0)))) (or (and (or (or x1 x0) (and x1 x0)) (not (and x1 x0))) (and (and (not x1) (or x1 x1)) (and (not x0) (and x0 x1))))) (or (and (or (or (not x0) (not x0)) (and (not x1) (and x1 x1))) (or (or (and x1 x1) (not x1)) (and (or x0 x1) (and x0 x1)))) (and (and (and (not x1) (not x0)) (or (or x0 x1) (or x1 x0))) (and (or (and x0 x0) (or x0 x1)) (or (or x1 x0) (and x1 x1)))))) (and (not (and (or (not (and x1 x1)) (or (and x0 x1) (not x1))) (not (and (not x1) (or x0 x0))))) (and (not (not (and (not x1) (not x0)))) (not (and (or (not x0) (and x1 x1)) (not (and x1 x0))))))))))
+(check-sat)
+(push 1)
+(assert (not (or (not (and (and (not (not (not (or (or x0 x1) (not x1))))) (and (and (and (and (not x0) (not x1)) (or (not x1) (not x1))) (and (and (not x1) (or x1 x0)) (and (and x0 x0) (or x0 x1)))) (or (and (not (and x0 x0)) (and (and x1 x1) (and x0 x0))) (and (not (and x0 x1)) (or (and x0 x0) (or x1 x1)))))) (not (and (or (and (not (or x0 x1)) (or (or x0 x0) (and x1 x1))) (and (not (or x0 x1)) (or (not x1) (and x1 x0)))) (and (and (not (or x1 x0)) (and (or x0 x1) (and x0 x1))) (not (not (not x1)))))))) (and (or (not (and (not (not (and (or x1 x1) (or x0 x0)))) (or (not (and (or x1 x1) (not x1))) (not (and (and x0 x0) (not x1)))))) (not (not (not (not (not (and x1 x0))))))) (and (not (not (or (or (or (and x0 x1) (and x0 x0)) (and (not x0) (or x1 x0))) (and (or (or x1 x1) (and x0 x0)) (or (not x0) (and x1 x1)))))) (or (not (and (and (or (not x0) (not x0)) (not (or x1 x0))) (or (and (and x1 x0) (not x0)) (or (or x1 x1) (and x1 x0))))) (and (not (not (and (or x1 x0) (and x0 x1)))) (and (and (not (and x1 x1)) (or (or x0 x1) (not x0))) (and (and (not x0) (not x0)) (or (and x0 x0) (or x0 x1)))))))))))
+(assert (not (not (and (or (or (not x1) (or x0 x0)) (and (and x0 x1) (or x0 x0))) (not (not (and x0 x1)))))))
+(assert (or (and (or x0 x1) (and x1 x0)) (or (and x1 x0) (not x0))))
+(assert (not (or x0 x0)))
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(assert (or (or (and x0 x0) (and x0 x0)) (and (or x1 x0) (and x1 x0))))
+(assert (and x1 x1))
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(check-sat)
+(pop 1)
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_32.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_32.smt2
new file mode 100644 (file)
index 0000000..62efd69
--- /dev/null
@@ -0,0 +1,69 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(declare-fun x4 () Bool)
+(declare-fun x5 () Bool)
+(declare-fun x6 () Bool)
+(assert (and (or x3 x1) (not x6)))
+(check-sat)
+(push 1)
+(assert (or (or (or (not (not (or (not (not x6)) (or (and x3 x1) (not x4))))) (or (or (or (and (and x0 x1) (not x0)) (or (not x0) (and x0 x6))) (and (or (or x6 x0) (and x3 x1)) (or (or x3 x6) (and x4 x0)))) (not (not (or (not x4) (and x5 x3)))))) (and (not (or (not (and (or x1 x2) (and x1 x0))) (and (and (or x5 x0) (and x6 x2)) (and (and x4 x5) (not x3))))) (or (and (and (not (and x2 x0)) (or (or x1 x2) (and x2 x5))) (and (or (or x4 x3) (and x1 x3)) (not (not x5)))) (and (and (or (not x0) (not x4)) (or (or x5 x1) (or x3 x4))) (not (or (and x2 x4) (not x2))))))) (and (or (not (and (and (and (not x6) (and x1 x4)) (not (not x1))) (or (and (not x6) (or x2 x0)) (and (not x2) (or x0 x2))))) (not (and (not (or (or x6 x4) (or x2 x1))) (or (not (or x6 x4)) (or (not x5) (and x6 x2)))))) (or (not (not (or (and (not x4) (not x5)) (or (and x0 x6) (or x3 x3))))) (or (and (and (or (not x3) (or x2 x0)) (and (or x4 x5) (or x6 x1))) (not (or (and x5 x2) (not x4)))) (or (or (not (not x1)) (or (or x5 x4) (not x2))) (not (and (or x6 x4) (or x6 x1)))))))))
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(assert (or (or (not (and (or (or (not (or (or (and x3 x5) (or x6 x2)) (not (and x0 x4)))) (not (or (and (or x6 x0) (and x3 x2)) (not (not x3))))) (and (or (not (not (or x6 x2))) (and (and (or x0 x2) (or x6 x3)) (and (not x3) (not x6)))) (not (or (not (or x4 x4)) (not (not x0)))))) (not (not (not (or (not (and x2 x2)) (or (or x6 x4) (or x6 x2)))))))) (or (or (and (not (or (and (and (or x3 x3) (and x1 x0)) (or (not x6) (not x6))) (or (or (not x2) (not x2)) (or (not x6) (or x0 x5))))) (not (and (and (and (not x5) (or x0 x5)) (not (or x4 x3))) (not (and (and x3 x0) (and x3 x0)))))) (or (not (not (and (or (and x3 x0) (not x6)) (and (and x5 x6) (or x1 x0))))) (and (and (or (and (and x6 x0) (and x4 x1)) (or (or x4 x4) (or x0 x4))) (not (or (and x5 x6) (not x3)))) (or (or (not (not x4)) (and (not x2) (or x5 x5))) (and (or (and x0 x0) (not x4)) (and (or x2 x0) (not x6))))))) (and (not (or (or (and (not (and x4 x2)) (or (and x6 x2) (and x0 x1))) (and (or (not x3) (not x6)) (or (and x2 x3) (and x4 x3)))) (not (and (and (and x4 x0) (and x5 x0)) (not (or x0 x0)))))) (not (not (or (or (or (and x1 x1) (not x2)) (not (or x5 x0))) (or (or (or x2 x6) (and x4 x4)) (and (not x1) (and x3 x1))))))))) (and (or (and (or (or (not (and (or (and x0 x0) (and x0 x6)) (not (or x4 x5)))) (and (not (and (and x1 x3) (or x0 x5))) (or (not (not x5)) (not (or x4 x6))))) (and (not (not (not (and x4 x4)))) (or (or (and (not x2) (not x6)) (not (not x5))) (and (and (or x3 x5) (and x5 x1)) (not (or x4 x6)))))) (or (and (and (or (or (and x2 x5) (not x1)) (not (or x3 x5))) (not (or (or x1 x5) (and x6 x4)))) (or (or (and (or x1 x4) (or x3 x1)) (and (not x1) (or x5 x6))) (not (not (and x2 x4))))) (and (or (not (and (or x4 x3) (or x2 x0))) (not (or (and x3 x2) (or x0 x1)))) (not (not (not (and x1 x4))))))) (and (and (and (and (not (not (or x0 x3))) (and (not (or x0 x4)) (or (and x4 x3) (not x5)))) (or (or (not (not x1)) (and (and x4 x2) (or x1 x0))) (not (and (or x4 x4) (not x2))))) (or (or (and (or (and x4 x3) (or x2 x6)) (not (not x3))) (not (and (not x0) (or x4 x4)))) (or (and (not (or x3 x2)) (and (and x4 x0) (and x0 x1))) (or (not (or x0 x4)) (or (or x1 x2) (and x5 x0)))))) (not (not (and (and (and (not x4) (not x5)) (or (and x5 x0) (or x2 x5))) (not (or (not x3) (or x6 x3)))))))) (not (or (not (not (and (or (or (or x6 x3) (not x4)) (not (not x0))) (not (and (not x3) (not x2)))))) (not (or (or (not (and (not x6) (or x3 x0))) (not (or (not x1) (or x3 x0)))) (and (and (and (or x5 x2) (and x5 x2)) (or (not x4) (or x3 x0))) (and (and (not x0) (and x0 x0)) (and (not x6) (not x3)))))))))))
+(assert (not (and (and (or (not (not (and (not (or x5 x2)) (not (not x6))))) (not (and (not (or (or x0 x5) (not x0))) (or (and (or x2 x2) (or x3 x6)) (or (or x4 x0) (and x0 x0)))))) (or (and (and (and (or (and x6 x0) (or x3 x6)) (and (or x2 x1) (or x6 x6))) (not (not (not x4)))) (not (or (not (and x6 x0)) (not (not x5))))) (or (and (not (not (not x6))) (and (not (not x1)) (and (and x2 x6) (or x2 x5)))) (and (not (and (or x4 x0) (and x4 x0))) (or (not (not x3)) (not (not x4))))))) (not (not (and (or (not (and (or x4 x1) (not x4))) (or (not (or x3 x6)) (not (or x0 x0)))) (not (or (not (not x2)) (and (not x4) (or x3 x1))))))))))
+(assert (or (or (not (not (not (not (not (and x2 x3)))))) (or (or (not (not (and (and x0 x2) (and x3 x4)))) (and (and (and (and x3 x3) (and x2 x2)) (not (or x0 x0))) (not (not (not x5))))) (and (not (or (not (or x6 x5)) (and (not x3) (and x5 x0)))) (and (not (not (not x4))) (not (not (and x5 x4))))))) (or (not (not (or (not (or (or x6 x5) (or x6 x1))) (or (not (or x2 x0)) (or (and x3 x6) (and x5 x3)))))) (or (or (or (or (not (not x4)) (and (and x0 x1) (and x3 x6))) (and (not (not x4)) (and (or x0 x3) (not x5)))) (not (not (not (and x2 x4))))) (not (and (not (not (not x5))) (and (and (or x2 x3) (not x1)) (not (and x4 x4)))))))))
+(assert (and (and (or (or (not (not x2)) (and (not x3) (not x1))) (not (or (and x0 x0) (or x4 x4)))) (and (not (or (and x3 x3) (or x0 x0))) (and (and (or x5 x5) (or x2 x0)) (not (not x4))))) (not (and (or (and (and x4 x3) (not x6)) (not (and x5 x3))) (and (and (and x0 x4) (or x0 x3)) (and (not x1) (or x2 x1)))))))
+(assert (not (or (not (and (and (and x6 x4) (not x5)) (not (and x4 x6)))) (and (or (or (and x2 x1) (and x3 x2)) (not (not x3))) (or (or (or x5 x0) (or x1 x3)) (and (and x3 x4) (or x4 x3)))))))
+(check-sat)
+(pop 1)
+(assert (not (not (not (or x3 x2)))))
+(check-sat)
+(push 1)
+(assert (not (and (not (and (and (or (or (not (not (and x4 x0))) (not (or (or x1 x2) (or x3 x1)))) (not (or (and (not x2) (and x4 x4)) (and (not x6) (not x4))))) (or (or (not (and (or x1 x5) (and x5 x5))) (not (or (or x5 x2) (or x1 x3)))) (not (and (and (not x3) (and x2 x5)) (or (or x3 x5) (and x4 x6)))))) (and (and (not (or (not (not x2)) (and (not x2) (and x4 x4)))) (not (and (and (not x5) (or x4 x0)) (not (and x5 x5))))) (or (not (not (not (not x1)))) (and (or (not (not x2)) (not (not x4))) (and (and (or x0 x1) (or x6 x4)) (or (not x4) (or x2 x3)))))))) (or (not (not (or (not (and (not (and x3 x4)) (not (not x6)))) (not (and (and (not x4) (or x1 x4)) (not (or x1 x5))))))) (and (and (not (or (or (and (or x5 x0) (or x3 x1)) (or (not x2) (or x0 x5))) (not (not (and x5 x4))))) (not (or (and (and (or x3 x3) (and x2 x6)) (and (and x3 x5) (and x1 x5))) (not (or (not x2) (not x0)))))) (and (and (and (or (and (or x3 x1) (or x6 x4)) (and (or x5 x3) (and x6 x1))) (or (and (or x2 x2) (or x6 x5)) (or (or x0 x0) (or x3 x5)))) (or (or (not (or x4 x4)) (and (and x0 x3) (and x5 x5))) (or (or (and x1 x3) (and x1 x5)) (and (and x1 x2) (or x2 x0))))) (or (and (or (and (or x0 x1) (not x4)) (and (not x4) (not x3))) (or (not (not x3)) (or (or x6 x4) (and x4 x4)))) (or (or (not (or x6 x5)) (and (or x2 x2) (and x2 x1))) (not (and (not x2) (or x1 x5)))))))))))
+(assert (or x5 x5))
+(assert (or (or (not x5) (and x4 x3)) (not (and x1 x4))))
+(check-sat)
+(pop 1)
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(assert (or (not (and x1 x1)) (not (not x3))))
+(check-sat)
+(push 1)
+(assert (or (not (not x6)) (and (not x2) (or x6 x1))))
+(check-sat)
+(pop 1)
+(assert (or (not (not (and (not x3) (and x1 x4)))) (or (and (not (or x5 x0)) (not (or x1 x2))) (or (or (not x6) (or x3 x5)) (and (or x4 x5) (or x0 x6))))))
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(assert (or (and (and x4 x3) (not x4)) (or (or x3 x5) (or x1 x6))))
+(assert (not (not (not (not (not (not x6)))))))
+(check-sat)
+(pop 1)
+(assert (not (and (and (and (not (and x1 x1)) (or (and x5 x4) (not x1))) (not (and (or x0 x2) (or x0 x5)))) (not (and (and (or x0 x3) (and x4 x0)) (or (not x3) (not x1)))))))
+(assert (and (or (not x3) (and x0 x2)) (not (not x2))))
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_33.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_33.smt2
new file mode 100644 (file)
index 0000000..bde870b
--- /dev/null
@@ -0,0 +1,40 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(declare-fun x4 () Bool)
+(declare-fun x5 () Bool)
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(assert (not (and (not (not (and (and (not x3) (not x2)) (not (not x1))))) (or (not (and (not (not x5)) (and (and x3 x3) (and x0 x2)))) (or (or (not (not x0)) (or (or x1 x5) (not x2))) (not (or (or x4 x5) (not x4))))))))
+(assert (not (or (not (not (and (not x5) (not x4)))) (or (and (and (and x5 x0) (not x2)) (and (or x1 x1) (or x3 x5))) (and (not (and x5 x0)) (or (not x0) (or x1 x2)))))))
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(assert (or (not (and x4 x4)) (not (and x0 x4))))
+(check-sat)
+(push 1)
+(assert (or (not x2) (not x2)))
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(assert (or (and (and (and x1 x0) (and x2 x5)) (or (and x3 x2) (or x1 x0))) (not (or (and x3 x1) (or x0 x1)))))
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_34.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_34.smt2
new file mode 100644 (file)
index 0000000..e82c6de
--- /dev/null
@@ -0,0 +1,48 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(declare-fun x4 () Bool)
+(declare-fun x5 () Bool)
+(declare-fun x6 () Bool)
+(assert (and (or (and (or (not (and (or (and (not x1) (or x0 x2)) (and (not x3) (and x1 x1))) (not (or (not x0) (not x6))))) (and (not (and (not (and x6 x5)) (not (and x2 x3)))) (or (or (or (not x0) (and x4 x0)) (or (and x3 x3) (and x4 x1))) (and (not (and x1 x2)) (or (and x4 x3) (or x2 x0)))))) (or (and (and (not (and (and x5 x0) (and x4 x2))) (or (not (and x1 x5)) (and (not x0) (or x0 x0)))) (not (not (and (not x0) (and x6 x2))))) (not (and (or (and (or x5 x5) (and x3 x3)) (and (not x0) (or x5 x1))) (not (or (or x0 x0) (or x0 x2))))))) (or (or (not (not (and (or (or x0 x6) (and x2 x0)) (and (and x3 x1) (and x2 x4))))) (and (or (or (not (or x6 x3)) (or (and x0 x4) (or x5 x5))) (not (and (not x4) (not x3)))) (or (and (and (or x2 x6) (and x4 x6)) (and (not x6) (not x5))) (and (not (and x2 x5)) (or (and x0 x2) (or x5 x4)))))) (not (or (or (not (not (not x0))) (or (not (or x4 x1)) (not (not x4)))) (or (and (or (or x5 x6) (not x0)) (not (or x5 x3))) (and (and (or x3 x1) (or x3 x2)) (or (and x0 x4) (or x3 x1)))))))) (not (not (not (not (not (and (or (and x6 x1) (or x4 x4)) (and (not x0) (and x1 x2))))))))))
+(check-sat)
+(push 1)
+(assert (not (or (not (or x6 x1)) (and (not x0) (and x3 x0)))))
+(assert (not (or (and (and (not (not x4)) (or (and x6 x1) (not x1))) (not (and (not x1) (and x5 x3)))) (not (not (not (not x2)))))))
+(check-sat)
+(pop 1)
+(assert (or (not (not (and (and (and (or (or (not (and x0 x3)) (or (not x2) (not x5))) (or (and (not x1) (not x5)) (or (not x1) (and x3 x0)))) (and (or (or (or x4 x1) (not x4)) (or (not x1) (not x4))) (or (not (and x3 x4)) (not (not x1))))) (not (or (not (not (and x2 x2))) (not (or (and x3 x5) (not x0)))))) (and (and (or (or (and (and x5 x1) (or x6 x6)) (not (and x4 x3))) (or (not (not x6)) (and (not x3) (or x2 x3)))) (not (or (not (or x4 x5)) (not (not x6))))) (and (and (and (and (or x2 x2) (or x1 x4)) (or (and x4 x2) (not x3))) (or (not (not x6)) (and (and x1 x0) (or x2 x4)))) (and (not (or (and x1 x5) (or x4 x1))) (not (or (or x3 x2) (and x5 x4))))))))) (not (or (not (not (and (or (and (or (not x4) (or x5 x6)) (not (and x1 x4))) (and (or (or x5 x5) (not x0)) (not (and x1 x2)))) (not (and (and (not x2) (not x2)) (and (or x5 x4) (not x2))))))) (or (not (or (or (or (not (or x2 x1)) (and (and x6 x5) (not x2))) (not (or (not x6) (not x4)))) (not (not (and (not x4) (and x6 x0)))))) (and (or (and (or (or (and x6 x0) (not x0)) (and (or x6 x1) (not x3))) (and (not (or x6 x2)) (not (or x1 x2)))) (and (and (or (or x1 x2) (and x0 x3)) (not (and x0 x4))) (and (and (not x0) (not x1)) (or (not x2) (and x4 x1))))) (or (and (or (or (or x1 x0) (not x3)) (or (and x6 x0) (or x2 x0))) (not (not (and x5 x0)))) (or (and (or (and x5 x5) (or x0 x2)) (or (not x1) (or x0 x6))) (or (and (not x3) (not x3)) (or (not x0) (and x1 x5)))))))))))
+(assert (or (not (or x6 x5)) (and (not x3) (or x1 x3))))
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(assert (or (not (or (not (or (or (or (not x0) (not x3)) (and (or x3 x5) (or x3 x1))) (not (or (not x4) (or x1 x5))))) (not (or (and (and (not x2) (and x5 x5)) (not (not x1))) (or (not (and x2 x4)) (not (or x0 x5))))))) (and (and (or (not (and (not (and x1 x0)) (or (not x1) (and x6 x4)))) (or (not (and (and x1 x5) (not x4))) (and (or (or x3 x3) (and x3 x6)) (not (not x3))))) (not (not (and (and (and x1 x0) (or x3 x5)) (and (or x3 x1) (not x5)))))) (or (and (or (and (or (or x2 x5) (not x5)) (or (or x1 x2) (and x0 x0))) (and (not (not x2)) (and (and x3 x5) (not x1)))) (and (and (not (not x3)) (and (or x0 x3) (and x2 x6))) (and (and (not x6) (or x1 x6)) (and (and x0 x5) (or x0 x0))))) (not (or (and (not (not x4)) (and (not x0) (and x1 x3))) (or (or (not x3) (and x6 x2)) (and (not x5) (and x0 x3)))))))))
+(check-sat)
+(push 1)
+(assert (and (not (or (or (not (not x2)) (not (not x2))) (not (or (or x3 x6) (and x6 x4))))) (or (and (or (or (not x3) (not x6)) (not (not x5))) (not (or (or x4 x6) (and x3 x6)))) (not (not (not (and x3 x6)))))))
+(assert (or (and x4 x1) (and x6 x3)))
+(assert (not (and (not (not (and x3 x0))) (and (not (not x1)) (or (or x0 x6) (and x2 x5))))))
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(assert (and x4 x3))
+(assert (not (or (not (not x5)) (and (and x6 x6) (or x1 x0)))))
+(assert (not (and (and (not (or (not (not x6)) (and (and x0 x5) (or x2 x1)))) (or (not (or (or x6 x3) (or x1 x2))) (and (and (and x5 x5) (or x3 x6)) (not (or x0 x6))))) (not (and (or (or (or x2 x2) (or x4 x4)) (and (or x1 x1) (or x4 x5))) (not (and (and x5 x2) (or x3 x3))))))))
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_35.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_35.smt2
new file mode 100644 (file)
index 0000000..f925e3a
--- /dev/null
@@ -0,0 +1,44 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(declare-fun x4 () Bool)
+(declare-fun x5 () Bool)
+(assert (and (not (not (and (not (not (or (or (or x2 x1) (and x5 x0)) (or (not x3) (and x4 x0))))) (or (or (not (not (not x1))) (and (or (or x5 x4) (or x2 x0)) (and (not x3) (and x3 x2)))) (and (not (or (or x2 x4) (not x4))) (or (or (not x4) (not x1)) (and (and x3 x3) (and x4 x3)))))))) (or (not (or (and (and (not (not (or x0 x4))) (and (or (not x2) (or x4 x1)) (and (and x3 x3) (or x0 x3)))) (not (and (and (not x0) (or x3 x4)) (or (and x2 x5) (and x4 x3))))) (not (or (not (not (not x5))) (and (or (and x2 x3) (and x4 x1)) (and (and x0 x3) (not x1))))))) (and (not (not (or (or (and (or x3 x3) (and x4 x5)) (or (or x3 x5) (not x4))) (and (and (or x5 x3) (and x0 x3)) (or (not x4) (not x4)))))) (and (or (or (and (and (and x1 x4) (not x4)) (or (not x1) (and x5 x4))) (and (or (not x2) (and x5 x4)) (or (or x1 x3) (not x5)))) (and (or (and (not x1) (or x3 x1)) (and (or x3 x0) (or x5 x1))) (not (not (or x4 x5))))) (or (or (not (or (and x3 x0) (or x4 x3))) (and (not (and x2 x4)) (not (not x0)))) (or (not (or (and x0 x4) (and x2 x4))) (not (or (not x5) (or x2 x4))))))))))
+(assert (and (and (or (or (not (and (or (or x4 x3) (and x1 x3)) (and (and x3 x3) (not x5)))) (or (not (or (not x2) (not x4))) (not (or (or x1 x3) (not x3))))) (or (not (or (not (or x4 x1)) (and (not x2) (and x1 x2)))) (not (not (and (and x3 x4) (not x2)))))) (or (not (not (or (not (or x5 x5)) (not (or x3 x5))))) (and (or (or (not (and x2 x2)) (and (or x1 x3) (or x3 x5))) (and (and (or x1 x1) (or x4 x0)) (not (or x0 x1)))) (and (and (not (not x4)) (or (not x2) (or x0 x4))) (or (and (and x4 x5) (and x5 x4)) (or (and x0 x0) (and x3 x4))))))) (and (or (not (or (not (or (not x5) (not x0))) (and (and (not x1) (not x0)) (not (not x5))))) (or (and (and (or (or x1 x2) (or x1 x0)) (not (or x2 x2))) (or (or (not x4) (not x3)) (not (or x1 x4)))) (not (or (and (not x2) (or x2 x0)) (not (or x3 x3)))))) (or (or (not (not (and (and x0 x2) (and x4 x5)))) (not (not (or (not x4) (or x0 x3))))) (or (or (not (or (or x5 x0) (or x5 x1))) (or (not (and x5 x5)) (and (or x3 x1) (not x0)))) (not (or (not (not x3)) (not (and x1 x5)))))))))
+(assert (or (and (or (or x4 x1) (or x1 x2)) (and (and x5 x3) (and x0 x2))) (not (not (and x2 x2)))))
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(assert (and (and (or (and (not (and (and (not (or (or x3 x4) (and x0 x0))) (or (or (and x4 x3) (and x1 x2)) (and (and x4 x4) (or x2 x4)))) (and (and (not (not x5)) (not (not x5))) (not (not (not x4)))))) (not (and (and (not (not (not x1))) (or (or (not x5) (not x4)) (or (and x3 x1) (or x5 x3)))) (and (and (not (and x1 x1)) (or (not x5) (or x0 x1))) (not (and (and x1 x3) (or x0 x0))))))) (or (not (or (not (and (not (or x3 x0)) (not (or x5 x4)))) (or (and (and (or x2 x0) (not x2)) (or (and x5 x2) (not x1))) (or (not (not x2)) (not (not x5)))))) (not (or (not (or (or (or x0 x1) (or x3 x5)) (and (and x2 x3) (and x2 x3)))) (not (or (or (not x5) (not x2)) (not (and x4 x5)))))))) (or (not (not (not (and (or (or (not x1) (not x5)) (not (not x4))) (or (and (and x2 x4) (or x5 x1)) (or (and x4 x2) (and x3 x1))))))) (and (or (not (or (or (not (not x4)) (or (not x3) (not x2))) (not (not (and x0 x1))))) (or (not (not (or (and x4 x1) (or x2 x1)))) (not (or (not (or x3 x3)) (and (and x5 x1) (or x5 x4)))))) (and (not (or (or (and (and x3 x2) (not x3)) (and (or x2 x5) (not x5))) (not (or (and x2 x1) (or x4 x4))))) (and (or (or (or (and x3 x1) (not x3)) (not (not x5))) (and (or (not x1) (or x1 x3)) (not (and x2 x2)))) (and (or (and (and x1 x1) (or x5 x0)) (and (or x3 x5) (and x5 x1))) (and (not (and x4 x4)) (and (and x4 x5) (or x1 x2))))))))) (and (and (and (or (and (or (or (or (and x4 x0) (not x0)) (and (or x5 x5) (or x1 x5))) (or (not (or x2 x4)) (and (or x1 x4) (not x4)))) (and (or (or (and x2 x1) (not x3)) (and (and x3 x0) (and x5 x4))) (or (not (not x4)) (and (or x2 x3) (or x4 x4))))) (and (not (and (and (and x5 x4) (or x4 x4)) (and (not x1) (not x4)))) (or (and (not (or x0 x3)) (not (or x0 x2))) (and (not (not x1)) (or (and x4 x3) (not x2)))))) (not (not (and (not (not (and x0 x2))) (or (and (or x3 x0) (or x3 x0)) (or (and x4 x3) (or x0 x5))))))) (not (not (or (or (or (and (and x3 x4) (and x2 x3)) (and (and x1 x0) (and x3 x4))) (not (or (and x0 x2) (not x4)))) (or (not (and (or x3 x1) (or x4 x0))) (and (not (and x5 x3)) (or (not x4) (not x0)))))))) (or (or (and (and (not (and (not (or x5 x1)) (or (and x5 x1) (or x4 x2)))) (not (not (or (not x3) (and x4 x2))))) (not (not (and (and (not x5) (not x2)) (and (or x5 x5) (or x1 x2)))))) (not (and (and (not (not (not x3))) (not (not (not x0)))) (not (or (and (or x3 x3) (not x2)) (and (not x2) (and x2 x1))))))) (not (not (and (not (or (and (not x3) (or x2 x2)) (or (not x2) (not x2)))) (or (and (or (and x3 x3) (not x0)) (and (not x0) (and x0 x0))) (not (or (not x3) (or x4 x2)))))))))))
+(check-sat)
+(pop 1)
+(assert (and (or (not (and (or (not (and (not (not x3)) (or (and x3 x4) (not x0)))) (not (or (and (not x0) (not x5)) (or (or x3 x4) (or x4 x1))))) (or (or (not (not (and x3 x1))) (or (or (and x0 x1) (not x1)) (or (not x5) (not x3)))) (and (and (or (or x0 x5) (or x2 x3)) (and (or x4 x1) (or x4 x1))) (not (and (or x3 x5) (and x1 x4))))))) (not (or (and (and (or (or (not x4) (not x5)) (and (or x2 x5) (not x5))) (or (or (not x2) (and x4 x3)) (or (or x1 x1) (or x0 x3)))) (and (not (and (or x0 x4) (or x0 x3))) (or (and (not x0) (or x5 x4)) (and (or x2 x4) (and x0 x2))))) (and (not (not (or (or x3 x4) (or x4 x4)))) (and (and (not (or x2 x3)) (and (or x1 x0) (and x1 x3))) (or (or (not x2) (and x3 x0)) (and (not x5) (and x3 x0)))))))) (not (not (or (and (or (or (and (or x1 x3) (and x2 x1)) (not (or x3 x1))) (not (and (not x4) (or x4 x5)))) (or (not (and (and x1 x2) (and x1 x1))) (not (not (or x5 x0))))) (or (and (not (not (or x1 x4))) (not (and (or x1 x3) (or x3 x0)))) (not (not (and (and x0 x2) (or x0 x1))))))))))
+(assert (and (and (or (and (not (and (or (and (or x4 x2) (not x3)) (and (not x2) (and x0 x5))) (not (not (and x5 x4))))) (or (not (not (or (and x4 x4) (or x3 x1)))) (not (or (not (not x2)) (or (not x3) (not x2)))))) (and (not (or (and (or (not x4) (or x2 x1)) (not (not x1))) (and (or (or x4 x5) (or x1 x4)) (not (not x2))))) (or (not (not (not (not x5)))) (not (and (not (not x0)) (or (not x3) (or x5 x4))))))) (or (and (or (not (not (or (and x2 x4) (not x1)))) (not (or (or (not x2) (not x1)) (not (not x4))))) (or (not (and (not (or x4 x5)) (and (or x3 x5) (and x1 x2)))) (and (not (or (and x1 x3) (not x3))) (or (or (or x2 x0) (and x2 x4)) (or (or x3 x1) (or x4 x5)))))) (not (or (not (or (not (and x5 x4)) (or (or x1 x2) (and x5 x5)))) (not (or (not (not x4)) (not (and x0 x1)))))))) (and (and (not (and (and (and (or (and x4 x1) (or x5 x3)) (or (or x3 x3) (or x3 x2))) (or (not (and x3 x5)) (and (and x5 x2) (or x4 x2)))) (and (or (or (and x2 x3) (or x5 x2)) (or (not x0) (not x5))) (and (not (not x5)) (or (not x5) (not x4)))))) (not (and (not (not (and (not x0) (or x2 x2)))) (and (or (not (or x3 x5)) (not (not x1))) (not (and (and x5 x1) (and x2 x1))))))) (not (and (not (or (or (and (or x0 x2) (and x1 x1)) (or (or x2 x4) (or x5 x5))) (or (or (and x4 x0) (or x5 x5)) (not (not x1))))) (and (and (or (or (and x1 x4) (and x2 x5)) (not (and x0 x0))) (and (or (and x1 x4) (and x2 x1)) (or (and x1 x1) (and x5 x4)))) (or (or (not (and x1 x1)) (or (and x3 x2) (and x0 x5))) (not (and (or x4 x5) (and x3 x1))))))))))
+(assert (not (and (and (and (or x3 x0) (and x1 x5)) (and (or x4 x2) (and x3 x4))) (or (and (and x2 x0) (or x2 x2)) (or (not x0) (and x3 x4))))))
+(check-sat)
+(push 1)
+(assert (not (not (not (and (or (and (and (or (not (or x3 x0)) (and (and x1 x2) (and x1 x1))) (not (not (or x5 x1)))) (and (and (and (not x5) (and x2 x5)) (and (or x4 x2) (and x2 x3))) (or (or (or x1 x5) (not x2)) (and (and x2 x0) (or x4 x4))))) (or (or (not (and (and x3 x1) (or x5 x4))) (not (not (or x2 x1)))) (or (not (not (and x5 x2))) (or (not (not x3)) (and (and x3 x4) (not x1)))))) (not (not (not (and (not (not x3)) (or (not x2) (or x2 x3)))))))))))
+(assert (and (not (and (or (or (or (and (not x4) (and x2 x2)) (or (and x3 x2) (and x0 x1))) (not (or (and x3 x4) (not x3)))) (and (and (or (and x0 x4) (and x1 x5)) (and (or x4 x2) (and x3 x4))) (and (or (not x4) (or x1 x3)) (not (not x0))))) (not (or (and (and (or x1 x0) (and x0 x0)) (or (and x5 x3) (or x2 x5))) (not (and (or x4 x3) (not x0))))))) (not (or (not (not (not (and (or x2 x1) (not x1))))) (not (or (not (or (or x3 x0) (or x3 x1))) (or (or (or x3 x5) (not x1)) (not (and x5 x5)))))))))
+(check-sat)
+(pop 1)
+(assert (or (or (and x5 x2) (or x1 x1)) (or (not x5) (or x3 x2))))
+(assert (or (not (and (or (and x0 x5) (and x4 x5)) (or (not x4) (not x0)))) (not (or (not (not x4)) (or (not x5) (and x4 x2))))))
+(assert (not (or (not (or (not (or x1 x1)) (and (and x2 x5) (or x2 x5)))) (not (or (or (not x0) (and x5 x4)) (not (and x1 x3)))))))
+(assert (not (or (and (or (not x1) (or x0 x2)) (and (and x1 x1) (and x2 x4))) (and (not (not x5)) (not (not x0))))))
+(assert (not (or (or (or (and x1 x2) (not x0)) (and (not x2) (and x0 x2))) (and (not (and x2 x4)) (and (and x5 x0) (or x2 x4))))))
+(assert (or (or (or x3 x0) (or x0 x0)) (and (not x0) (not x1))))
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_36.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_36.smt2
new file mode 100644 (file)
index 0000000..2b39a38
--- /dev/null
@@ -0,0 +1,35 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(check-sat)
+(push 1)
+(assert (not (or (not x1) (or x1 x0))))
+(assert (and (and x2 x1) (not x0)))
+(assert (not (not (or (not (and (not x2) (or x2 x3))) (not (and (not x2) (and x3 x3)))))))
+(assert (and (not (and (not x3) (not x0))) (and (not (or x3 x3)) (or (not x2) (or x0 x1)))))
+(assert (and (not (and (not (not (and (and (or (and x0 x0) (and x1 x0)) (or (or x2 x1) (and x1 x1))) (and (or (or x0 x3) (and x1 x0)) (not (and x0 x3)))))) (or (and (not (not (not (or x2 x3)))) (not (and (and (or x2 x1) (not x3)) (and (or x1 x1) (or x3 x1))))) (and (and (and (not (and x2 x3)) (or (or x3 x3) (or x2 x2))) (not (not (or x2 x2)))) (and (and (or (and x0 x0) (and x1 x1)) (not (or x3 x0))) (and (or (or x3 x3) (and x3 x2)) (or (not x0) (not x0)))))))) (not (or (or (and (and (not (or (not x1) (or x3 x3))) (and (and (not x0) (and x1 x3)) (and (and x3 x1) (not x2)))) (and (or (and (not x1) (not x1)) (and (not x1) (or x0 x2))) (not (and (or x1 x1) (and x2 x2))))) (or (or (and (or (or x3 x1) (and x1 x3)) (or (not x3) (not x3))) (or (or (not x0) (not x1)) (and (and x3 x2) (or x0 x3)))) (not (or (not (or x1 x0)) (or (and x3 x3) (or x0 x2)))))) (and (not (or (not (not (and x2 x3))) (not (not (and x1 x3))))) (or (not (and (or (and x0 x3) (or x0 x0)) (not (not x2)))) (not (and (not (and x3 x3)) (not (and x1 x2))))))))))
+(assert (not (or (not (or (not (and (and (and x1 x2) (not x1)) (or (or x1 x1) (or x3 x3)))) (not (or (not (not x3)) (and (and x3 x0) (or x3 x3)))))) (not (and (not (and (or (and x3 x2) (and x1 x0)) (not (not x2)))) (or (not (not (or x3 x1))) (or (not (not x2)) (and (or x1 x2) (and x1 x1)))))))))
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(assert (or (or (and (or (not x1) (not x2)) (and (or x1 x1) (and x0 x2))) (not (not (not x0)))) (or (or (not (or x1 x2)) (and (not x3) (or x0 x2))) (not (or (not x2) (or x3 x1))))))
+(check-sat)
+(push 1)
+(assert (not (not (and x2 x0))))
+(assert (not (and (and (and (not (and (or (or x0 x3) (not x0)) (not (and x3 x0)))) (and (or (and (and x3 x2) (not x2)) (and (not x1) (or x1 x3))) (and (or (not x3) (or x3 x3)) (and (or x0 x2) (not x0))))) (or (and (not (not (not x2))) (or (and (and x1 x0) (or x3 x1)) (and (or x3 x0) (not x0)))) (and (not (not (and x2 x2))) (and (not (and x0 x2)) (not (or x2 x1)))))) (or (or (not (not (and (and x3 x3) (or x1 x0)))) (or (not (not (or x0 x0))) (or (not (not x1)) (or (not x3) (not x2))))) (not (and (and (and (or x0 x1) (and x0 x0)) (not (and x3 x1))) (not (and (and x0 x0) (not x1)))))))))
+(check-sat)
+(pop 1)
+(assert (not (not (or (and (or x0 x2) (not x1)) (and (or x2 x0) (not x2))))))
+(assert (and (or (and (not x0) (not x2)) (not (not x3))) (or (not (or x0 x0)) (and (not x0) (and x2 x3)))))
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_37.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_37.smt2
new file mode 100644 (file)
index 0000000..6391cb6
--- /dev/null
@@ -0,0 +1,55 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: unsat
+; EXPECT: unsat
+; EXPECT: unsat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(assert (or (not (or (not (not x0)) (and (or x1 x0) (not x0)))) (and (and (or (and x1 x1) (and x0 x1)) (not (not x1))) (or (not (or x0 x1)) (or (not x1) (or x0 x0))))))
+(check-sat)
+(push 1)
+(assert (or (not (and (and (or (not (not (and x1 x1))) (not (and (or x1 x0) (or x0 x1)))) (or (not (and (not x0) (and x0 x0))) (and (and (or x1 x0) (and x1 x1)) (not (not x1))))) (not (and (or (or (and x1 x0) (and x1 x1)) (not (or x1 x1))) (and (not (not x0)) (not (or x1 x1))))))) (and (not (and (or (and (and (not x0) (not x0)) (or (or x0 x1) (or x0 x1))) (not (and (or x1 x0) (and x1 x0)))) (and (not (or (not x1) (not x1))) (not (or (or x0 x1) (and x0 x0)))))) (not (or (and (or (and (and x0 x1) (or x1 x0)) (or (or x0 x1) (or x1 x1))) (and (not (not x1)) (and (not x1) (not x1)))) (not (or (not (or x0 x0)) (and (or x0 x1) (or x0 x0)))))))))
+(assert (not (not (not x0))))
+(assert (or (not (or (or (or (not (not (or (and (not x0) (or x0 x1)) (or (not x0) (and x1 x1))))) (not (or (and (not (or x1 x0)) (not (not x0))) (not (or (and x0 x0) (not x0)))))) (and (not (not (or (or (or x1 x1) (and x1 x1)) (or (and x1 x0) (and x0 x0))))) (not (or (and (not (and x0 x0)) (not (not x0))) (or (and (not x1) (not x0)) (or (or x0 x1) (or x1 x0))))))) (and (and (and (and (and (not (or x1 x1)) (and (not x0) (not x0))) (not (and (or x1 x1) (not x0)))) (and (not (and (and x0 x0) (or x1 x1))) (not (not (not x1))))) (or (and (or (or (not x0) (or x0 x1)) (not (and x1 x0))) (and (or (or x1 x0) (and x0 x0)) (and (and x0 x1) (or x0 x1)))) (not (not (not (or x0 x0)))))) (and (not (not (and (not (or x0 x0)) (and (not x0) (not x1))))) (and (or (and (or (not x0) (and x1 x0)) (and (and x1 x0) (or x0 x0))) (or (not (not x0)) (and (not x0) (or x0 x1)))) (and (and (not (or x1 x0)) (or (or x0 x1) (and x1 x0))) (and (or (and x1 x1) (not x1)) (or (or x1 x0) (or x0 x0))))))))) (or (and (and (not (not (or (and (not (not x1)) (and (or x1 x1) (and x1 x1))) (or (or (and x0 x1) (or x0 x0)) (or (not x0) (and x1 x1)))))) (not (and (not (and (or (or x1 x0) (not x0)) (not (not x1)))) (not (and (or (or x0 x0) (and x1 x1)) (not (or x1 x1))))))) (or (and (not (not (not (not (and x0 x1))))) (not (not (or (and (not x0) (or x0 x1)) (or (not x0) (or x0 x0)))))) (not (or (and (and (and (and x0 x1) (or x0 x1)) (or (not x0) (or x1 x0))) (not (and (and x1 x1) (and x0 x1)))) (not (not (not (or x0 x1)))))))) (not (and (or (not (not (or (not (and x0 x1)) (or (not x0) (and x0 x1))))) (and (not (not (or (or x0 x0) (or x1 x0)))) (or (or (or (or x0 x0) (and x1 x1)) (and (or x0 x1) (not x0))) (not (and (not x1) (and x1 x0)))))) (and (and (and (not (or (and x1 x0) (not x0))) (not (not (and x1 x1)))) (not (not (or (and x1 x1) (or x0 x1))))) (not (and (and (and (or x0 x0) (and x1 x1)) (not (not x0))) (not (or (and x0 x1) (and x0 x0)))))))))))
+(check-sat)
+(pop 1)
+(assert (or x0 x1))
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(assert (or (not (or (and (and (and (and (and x0 x1) (and x1 x1)) (or (not x1) (not x0))) (and (or (not x1) (and x0 x1)) (not (and x0 x0)))) (and (not (not (or x1 x0))) (and (not (or x0 x0)) (and (and x1 x1) (and x1 x0))))) (not (not (not (not (not x0))))))) (not (and (not (and (or (not (and x0 x0)) (or (not x1) (not x1))) (or (or (and x0 x0) (and x0 x0)) (or (or x0 x1) (or x1 x0))))) (or (not (not (and (and x0 x1) (or x0 x0)))) (or (or (or (and x1 x0) (not x1)) (and (or x0 x0) (or x0 x0))) (and (and (or x1 x0) (or x0 x0)) (or (or x0 x1) (not x0)))))))))
+(check-sat)
+(push 1)
+(assert (or (not (or (or (not (or (not (or (and x1 x1) (not x1))) (or (and (or x0 x0) (not x0)) (not (not x1))))) (and (not (or (and (not x0) (or x1 x1)) (and (not x0) (or x1 x1)))) (and (not (not (and x0 x1))) (and (not (not x1)) (or (not x1) (not x0)))))) (not (and (not (not (or (and x1 x0) (and x1 x0)))) (or (not (or (and x0 x0) (not x0))) (and (not (and x1 x1)) (not (not x1)))))))) (and (and (and (and (or (not (and (or x1 x0) (not x1))) (and (and (and x0 x0) (not x0)) (and (or x1 x1) (and x0 x0)))) (and (and (not (not x0)) (not (or x1 x0))) (or (or (not x0) (and x1 x1)) (not (not x0))))) (not (not (not (not (not x0)))))) (not (not (or (and (or (and x0 x1) (and x1 x0)) (or (not x1) (not x0))) (not (and (and x0 x1) (or x1 x1))))))) (or (or (or (or (not (or (not x0) (or x0 x0))) (and (not (or x1 x1)) (not (not x1)))) (not (or (and (or x1 x1) (not x1)) (and (not x0) (and x0 x1))))) (not (and (not (or (or x1 x1) (or x1 x1))) (not (or (not x0) (or x0 x1)))))) (or (or (and (or (or (not x1) (not x0)) (or (and x0 x1) (not x1))) (not (or (not x0) (not x1)))) (and (not (or (and x0 x0) (or x1 x0))) (or (not (not x0)) (or (or x1 x0) (not x0))))) (not (not (and (and (and x1 x0) (and x1 x0)) (and (not x1) (and x0 x0))))))))))
+(assert (not (or (or (or (not (and (or (not x0) (and x1 x1)) (and (and x1 x1) (or x1 x0)))) (and (or (not (or x0 x0)) (and (or x1 x0) (not x0))) (not (or (or x0 x1) (not x1))))) (or (not (and (and (not x0) (or x1 x1)) (or (or x1 x0) (and x1 x1)))) (or (and (not (and x1 x1)) (not (and x0 x0))) (not (and (not x1) (and x1 x0)))))) (or (and (and (and (not (and x1 x0)) (and (not x0) (or x0 x1))) (and (or (and x0 x1) (or x0 x0)) (not (not x1)))) (or (not (or (not x0) (not x1))) (or (and (and x0 x1) (and x1 x0)) (or (or x1 x0) (or x0 x1))))) (not (or (and (or (not x1) (or x0 x0)) (and (and x0 x0) (or x0 x1))) (not (and (and x1 x1) (not x0)))))))))
+(check-sat)
+(push 1)
+(assert (or (and (or (or x0 x0) (or x1 x0)) (or (not x0) (or x0 x0))) (and (not (or x1 x0)) (not (not x1)))))
+(assert (or (or (and (and (and x0 x1) (not x0)) (and (and x0 x1) (or x0 x0))) (or (or (or x1 x1) (and x0 x0)) (not (not x1)))) (not (or (not (not x0)) (not (or x1 x0))))))
+(check-sat)
+(push 1)
+(assert (or (or (not (not (and (not (not x0)) (or (or x0 x1) (and x0 x1))))) (and (not (and (and (or x1 x0) (and x1 x0)) (not (not x0)))) (not (and (and (and x0 x0) (and x1 x1)) (and (or x1 x0) (not x0)))))) (and (not (not (or (and (and x1 x0) (not x1)) (or (and x1 x1) (or x1 x0))))) (not (or (and (and (not x0) (not x1)) (or (and x1 x0) (or x1 x0))) (and (or (not x1) (not x1)) (or (not x1) (or x1 x0))))))))
+(assert (or (and x1 x1) (not x0)))
+(check-sat)
+(pop 1)
+(assert (or (or (or (and (not (and (or (and x1 x1) (and x1 x1)) (and (and x0 x0) (not x0)))) (not (and (not (or x0 x0)) (or (not x1) (not x0))))) (not (or (and (not (and x1 x0)) (not (or x1 x1))) (not (or (not x1) (not x0)))))) (and (not (not (or (or (or x0 x0) (not x1)) (and (or x0 x1) (or x1 x1))))) (not (not (or (or (not x1) (not x0)) (or (not x0) (not x1))))))) (or (and (and (and (not (and (and x0 x1) (and x0 x0))) (and (or (and x0 x1) (not x0)) (or (not x1) (or x1 x0)))) (or (and (not (and x1 x0)) (and (or x0 x1) (or x1 x1))) (and (or (not x1) (not x0)) (not (or x0 x1))))) (not (or (or (or (not x1) (not x0)) (not (and x0 x1))) (or (not (not x0)) (or (or x1 x0) (and x0 x0)))))) (not (and (not (and (and (or x1 x0) (not x0)) (or (or x0 x0) (not x0)))) (and (not (or (not x0) (or x0 x0))) (and (or (and x0 x1) (or x0 x0)) (not (and x1 x1)))))))))
+(assert (or (and (or (and (or (and (and (or x1 x0) (not x1)) (and (and x0 x1) (not x0))) (not (or (and x1 x0) (or x0 x1)))) (and (or (not (or x0 x0)) (not (not x0))) (not (or (not x0) (or x0 x0))))) (and (not (and (and (and x1 x0) (or x1 x0)) (and (or x1 x1) (not x1)))) (not (not (not (and x1 x0)))))) (and (not (and (not (and (or x1 x1) (or x0 x0))) (not (or (or x1 x1) (and x0 x0))))) (and (or (not (not (not x0))) (not (not (or x0 x0)))) (and (or (and (or x0 x1) (and x1 x1)) (and (not x1) (and x1 x0))) (and (or (and x0 x0) (not x0)) (or (not x1) (not x0))))))) (and (not (and (or (not (and (and x0 x0) (not x0))) (not (or (and x1 x1) (not x0)))) (or (not (or (not x1) (not x0))) (or (not (and x0 x0)) (and (or x0 x1) (and x1 x1)))))) (not (not (and (not (not (or x1 x1))) (not (not (or x1 x0)))))))))
+(assert (not x0))
+(check-sat)
+(pop 1)
+(check-sat)
+(pop 1)
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_38.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_38.smt2
new file mode 100644 (file)
index 0000000..25c2620
--- /dev/null
@@ -0,0 +1,38 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(declare-fun x4 () Bool)
+(declare-fun x5 () Bool)
+(declare-fun x6 () Bool)
+(declare-fun x7 () Bool)
+(declare-fun x8 () Bool)
+(assert (not (not (not (and (not (or (or (or (and x8 x3) (not x7)) (and (and x4 x3) (not x8))) (or (or (and x2 x7) (and x8 x0)) (and (or x2 x2) (or x8 x2))))) (or (not (or (or (or x5 x6) (or x8 x3)) (not (and x7 x6)))) (and (and (and (and x8 x1) (not x4)) (or (and x2 x7) (and x4 x2))) (and (and (not x3) (not x5)) (and (not x3) (or x5 x6))))))))))
+(assert (and (and (not (or (or (not (not (and (not x1) (or x6 x3)))) (not (not (or (and x4 x8) (and x5 x4))))) (and (and (and (not (not x7)) (or (not x2) (or x4 x5))) (or (not (and x1 x5)) (or (not x2) (not x4)))) (and (not (and (not x6) (or x7 x0))) (or (or (and x2 x8) (and x0 x0)) (and (and x3 x3) (and x4 x3))))))) (not (not (not (or (or (and (or x1 x3) (not x0)) (not (not x7))) (not (or (and x2 x5) (and x8 x5)))))))) (not (not (or (and (or (or (not (or x1 x2)) (not (or x6 x3))) (not (or (and x0 x4) (and x3 x4)))) (or (not (and (not x2) (not x4))) (and (not (not x8)) (not (or x6 x0))))) (or (or (or (not (and x7 x0)) (and (and x8 x6) (and x3 x8))) (not (and (or x8 x4) (or x8 x4)))) (and (not (or (or x7 x2) (and x2 x0))) (not (and (or x7 x8) (or x6 x7))))))))))
+(check-sat)
+(push 1)
+(assert (or x8 x2))
+(assert (not (and (and (or (not (not (not (and x3 x3)))) (or (not (not (not x4))) (and (or (not x1) (or x8 x7)) (not (and x3 x7))))) (or (not (or (not (or x1 x7)) (or (and x0 x2) (and x1 x4)))) (not (not (or (and x5 x2) (and x3 x3)))))) (not (and (or (or (or (not x4) (and x0 x6)) (or (not x1) (not x1))) (and (and (not x8) (or x1 x3)) (or (and x1 x7) (and x2 x0)))) (and (not (not (not x5))) (or (or (not x1) (or x5 x5)) (and (not x7) (or x1 x5)))))))))
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(assert (and x0 x2))
+(check-sat)
+(pop 1)
+(assert (not (or (not (not x3)) (or (not x8) (and x8 x6)))))
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_39.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_39.smt2
new file mode 100644 (file)
index 0000000..363dc04
--- /dev/null
@@ -0,0 +1,83 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(declare-fun x4 () Bool)
+(declare-fun x5 () Bool)
+(check-sat)
+(push 1)
+(assert (and (or (and (and (not (or x2 x1)) (not (or x5 x3))) (or (and (not x3) (or x1 x3)) (or (and x1 x0) (and x5 x0)))) (and (not (or (not x5) (not x0))) (not (and (or x5 x0) (and x4 x2))))) (and (not (not (not (not x0)))) (or (and (not (or x2 x3)) (and (or x0 x2) (not x2))) (or (not (not x3)) (or (and x1 x3) (and x2 x2)))))))
+(check-sat)
+(push 1)
+(assert (not x1))
+(check-sat)
+(push 1)
+(assert (or (or (and (and (or (not (not x3)) (not (and x4 x2))) (and (and (or x4 x3) (and x2 x3)) (or (or x3 x5) (and x2 x5)))) (and (and (not (or x2 x4)) (not (or x5 x1))) (not (not (and x1 x0))))) (and (and (or (and (not x1) (not x4)) (not (and x5 x3))) (and (and (or x0 x3) (not x4)) (or (and x0 x0) (not x5)))) (not (not (not (and x2 x4)))))) (or (or (and (not (not (or x5 x4))) (or (or (and x0 x5) (or x3 x3)) (or (not x5) (and x4 x5)))) (and (and (not (and x4 x0)) (or (or x4 x3) (and x0 x3))) (or (or (or x5 x0) (and x1 x4)) (or (and x1 x5) (or x1 x4))))) (and (or (not (and (and x2 x3) (not x2))) (and (and (or x1 x2) (or x3 x1)) (and (and x4 x5) (not x3)))) (or (and (not (not x3)) (not (and x5 x2))) (and (and (or x0 x4) (and x3 x0)) (not (and x5 x4))))))))
+(check-sat)
+(pop 1)
+(check-sat)
+(pop 1)
+(assert (not (not (or (not x0) (not x4)))))
+(assert (not (not (and (and x0 x0) (not x0)))))
+(check-sat)
+(pop 1)
+(assert (or (or (not (and (or (or (and (and (or x1 x1) (not x5)) (or (or x1 x5) (and x4 x1))) (or (or (or x0 x1) (or x4 x1)) (and (or x1 x4) (and x1 x1)))) (not (not (or (or x0 x2) (and x0 x2))))) (not (and (and (not (not x0)) (not (and x1 x2))) (not (not (and x4 x3))))))) (not (not (and (not (and (or (or x3 x3) (and x3 x3)) (or (not x2) (or x4 x3)))) (not (and (or (or x0 x4) (and x1 x2)) (or (not x0) (and x1 x0)))))))) (or (and (and (not (not (and (or (or x5 x4) (and x5 x0)) (and (and x1 x1) (not x2))))) (and (or (not (not (and x1 x0))) (or (not (and x2 x5)) (or (and x4 x2) (and x2 x2)))) (not (not (and (and x4 x2) (not x5)))))) (and (not (not (and (or (not x1) (and x4 x2)) (and (not x1) (and x0 x4))))) (and (not (not (and (or x2 x4) (not x1)))) (or (or (or (or x4 x0) (or x4 x5)) (and (and x0 x2) (or x2 x2))) (not (not (or x4 x2))))))) (and (or (not (and (and (not (or x2 x3)) (and (or x4 x5) (not x2))) (not (not (or x2 x1))))) (or (or (and (or (or x3 x3) (not x4)) (and (not x3) (not x4))) (and (or (and x1 x4) (and x3 x5)) (or (or x4 x3) (or x4 x2)))) (not (not (or (or x0 x1) (and x1 x3)))))) (or (or (not (or (or (not x5) (not x5)) (or (and x1 x3) (and x1 x4)))) (not (not (not (not x2))))) (not (or (and (or (and x0 x2) (not x1)) (not (not x3))) (not (or (or x1 x2) (or x5 x0))))))))))
+(check-sat)
+(push 1)
+(assert (and (and (or (or (not (and (and (and (or (and x0 x1) (not x0)) (and (and x0 x4) (and x3 x3))) (not (and (not x5) (not x2)))) (not (and (not (not x0)) (not (not x4)))))) (not (or (not (and (not (and x4 x1)) (and (or x2 x3) (or x4 x1)))) (and (and (and (or x4 x3) (or x0 x1)) (not (or x0 x5))) (or (or (and x2 x2) (not x0)) (and (or x2 x3) (or x5 x5))))))) (or (or (and (or (and (not (and x5 x1)) (not (or x1 x3))) (not (not (or x2 x3)))) (and (or (not (or x3 x3)) (not (and x0 x2))) (and (not (not x2)) (or (or x2 x2) (and x1 x1))))) (not (or (and (and (and x4 x2) (not x0)) (not (or x4 x5))) (and (not (not x1)) (or (not x4) (not x0)))))) (and (not (or (or (and (not x1) (or x2 x3)) (and (and x2 x5) (or x2 x4))) (or (not (or x2 x5)) (not (not x5))))) (or (or (or (not (and x0 x4)) (and (and x2 x3) (or x3 x4))) (or (and (not x2) (or x5 x0)) (or (and x4 x3) (and x5 x0)))) (or (not (not (and x3 x5))) (or (and (or x2 x0) (and x4 x4)) (or (not x2) (and x3 x1)))))))) (or (not (and (and (or (or (or (or x2 x0) (or x0 x5)) (or (not x2) (and x0 x5))) (and (and (not x4) (not x3)) (and (or x3 x2) (or x5 x1)))) (not (and (or (not x5) (and x3 x2)) (and (and x0 x1) (not x2))))) (and (or (not (and (not x3) (and x0 x1))) (not (not (and x5 x3)))) (and (not (not (not x2))) (not (not (and x4 x0))))))) (and (or (not (and (not (and (or x4 x2) (or x5 x3))) (and (or (or x2 x3) (and x4 x1)) (and (and x1 x1) (or x1 x4))))) (not (or (or (or (not x1) (and x4 x3)) (or (and x5 x3) (not x2))) (or (not (or x1 x5)) (and (not x4) (or x4 x5)))))) (and (or (or (and (not (or x4 x2)) (and (or x3 x2) (not x4))) (not (and (and x3 x1) (or x1 x0)))) (and (or (and (or x0 x2) (or x3 x5)) (not (or x2 x0))) (or (not (not x3)) (and (and x4 x1) (or x1 x4))))) (not (not (not (and (or x1 x5) (and x2 x3))))))))) (and (or (or (not (or (not (and (not (not x3)) (not (not x5)))) (not (and (or (and x3 x4) (or x5 x3)) (not (and x2 x5)))))) (or (or (or (not (or (not x0) (not x4))) (and (and (and x3 x4) (and x0 x4)) (or (or x5 x4) (not x0)))) (or (not (not (and x2 x4))) (not (and (not x2) (or x3 x3))))) (or (and (not (not (not x2))) (or (and (and x1 x4) (not x2)) (not (not x4)))) (not (or (and (and x3 x4) (or x5 x0)) (or (not x2) (or x2 x5))))))) (or (or (or (or (or (not (and x1 x0)) (not (or x0 x3))) (or (or (and x2 x1) (and x1 x5)) (not (or x4 x0)))) (or (and (not (and x1 x5)) (not (not x3))) (or (or (not x1) (not x3)) (not (and x1 x5))))) (and (or (and (and (and x2 x3) (and x4 x0)) (and (not x0) (not x4))) (and (and (not x5) (and x5 x5)) (and (or x4 x5) (and x4 x0)))) (and (or (not (and x2 x0)) (not (not x1))) (not (not (not x3)))))) (and (not (or (and (not (not x0)) (and (and x3 x4) (or x4 x0))) (not (and (not x3) (not x0))))) (not (or (not (or (or x3 x5) (not x2))) (and (or (or x1 x4) (and x1 x1)) (not (or x0 x1)))))))) (and (and (or (or (and (and (not (not x3)) (not (not x1))) (or (and (not x0) (or x5 x2)) (not (or x3 x4)))) (not (not (or (and x2 x4) (not x3))))) (and (or (and (and (and x3 x0) (and x1 x0)) (not (not x3))) (or (not (and x1 x5)) (and (or x0 x5) (not x5)))) (not (or (or (and x5 x2) (or x0 x0)) (not (not x3)))))) (not (or (and (and (or (and x2 x2) (and x1 x3)) (not (or x5 x3))) (or (and (or x3 x0) (or x5 x2)) (or (and x2 x1) (or x5 x3)))) (or (not (or (not x1) (not x4))) (or (and (not x5) (and x0 x3)) (and (or x2 x2) (and x5 x0))))))) (or (not (or (or (and (or (or x4 x1) (or x5 x1)) (not (and x2 x4))) (not (and (or x0 x3) (and x4 x4)))) (or (and (or (or x1 x4) (not x5)) (or (or x2 x2) (or x3 x4))) (not (not (or x3 x4)))))) (or (or (or (or (and (or x0 x5) (not x4)) (or (or x4 x2) (and x3 x4))) (or (not (not x3)) (not (or x4 x0)))) (and (and (not (or x4 x4)) (or (not x4) (or x0 x2))) (not (or (and x1 x5) (not x5))))) (not (and (or (or (and x2 x3) (not x5)) (or (and x3 x2) (or x3 x3))) (or (and (and x5 x3) (and x4 x5)) (and (and x0 x0) (and x3 x3)))))))))))
+(assert (and (and (or (and (not (or (and (or (not x4) (not x3)) (and (or x0 x0) (and x4 x3))) (and (not (not x2)) (and (and x2 x4) (and x0 x1))))) (and (not (and (and (or x0 x5) (not x0)) (not (and x1 x5)))) (or (not (and (and x1 x2) (not x5))) (not (not (not x3)))))) (and (not (and (and (or (and x5 x2) (not x0)) (not (or x3 x2))) (and (or (and x0 x1) (and x3 x5)) (or (not x1) (not x1))))) (and (or (and (and (and x0 x4) (not x0)) (not (and x0 x2))) (or (and (not x4) (or x0 x2)) (and (and x1 x3) (not x0)))) (and (and (not (and x3 x0)) (and (and x2 x4) (or x0 x3))) (and (or (or x5 x5) (and x0 x4)) (not (or x3 x5))))))) (not (not (or (or (and (and (and x0 x3) (or x3 x1)) (and (not x4) (not x2))) (not (and (and x0 x5) (and x3 x4)))) (and (or (or (not x3) (and x5 x3)) (not (or x5 x4))) (and (not (not x2)) (not (not x4)))))))) (not (or (and (not (or (or (and (and x3 x2) (not x1)) (and (not x5) (or x0 x4))) (and (and (or x2 x0) (not x1)) (not (or x4 x5))))) (not (or (and (or (not x0) (or x0 x4)) (not (or x4 x5))) (not (not (not x2)))))) (and (or (and (not (and (not x5) (and x5 x0))) (or (not (not x3)) (and (not x4) (and x2 x3)))) (not (or (not (not x1)) (and (not x4) (or x4 x0))))) (and (not (not (and (or x2 x0) (and x1 x5)))) (not (and (and (not x3) (not x2)) (and (not x5) (and x2 x4))))))))))
+(assert (not (or x0 x1)))
+(assert (or (not (and (or (or (or (or x2 x2) (or x3 x3)) (or (or x0 x2) (not x2))) (and (not (or x4 x2)) (not (not x2)))) (or (not (or (and x4 x1) (or x5 x4))) (and (not (not x1)) (and (and x2 x5) (and x2 x5)))))) (or (or (and (not (not (not x0))) (and (not (not x1)) (or (or x2 x1) (and x1 x1)))) (and (or (or (and x1 x5) (or x5 x1)) (not (and x1 x2))) (not (not (and x1 x3))))) (or (not (not (not (not x4)))) (or (not (and (and x4 x0) (and x0 x4))) (and (not (not x1)) (not (not x0))))))))
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(assert (and (and (or (or (not (and (not (and (or x2 x2) (not x0))) (and (and (or x5 x4) (not x3)) (and (or x3 x3) (or x5 x3))))) (not (and (not (and (or x2 x2) (or x2 x4))) (or (or (not x0) (or x1 x0)) (and (or x2 x5) (not x5)))))) (not (or (and (not (and (and x2 x3) (not x4))) (not (or (not x2) (or x0 x4)))) (not (and (not (not x4)) (or (and x2 x5) (and x2 x4))))))) (or (not (not (not (or (not (or x2 x5)) (or (and x3 x1) (or x2 x3)))))) (and (and (not (and (not (not x3)) (and (or x2 x1) (not x1)))) (and (not (not (or x4 x4))) (and (or (or x0 x5) (or x3 x1)) (not (or x3 x3))))) (not (not (or (or (and x0 x4) (or x3 x1)) (not (or x0 x4)))))))) (not (not (not (or (not (or (not (not x4)) (not (or x1 x3)))) (and (not (not (not x5))) (and (not (or x1 x3)) (not (and x4 x4))))))))))
+(check-sat)
+(pop 1)
+(assert (and (and (not (not (or (or x1 x0) (not x4)))) (not (and (and (or x2 x0) (not x5)) (or (not x5) (and x3 x2))))) (or (and (or (not (not x2)) (not (and x1 x3))) (and (not (or x2 x3)) (or (and x3 x0) (and x4 x2)))) (not (or (not (not x3)) (not (or x0 x5)))))))
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(assert (and (and (and (not x2) (not x5)) (or (not x0) (and x4 x3))) (and (or (and x1 x2) (not x0)) (or (not x3) (and x3 x0)))))
+(assert (and (not (not x5)) (and (or x2 x0) (or x2 x1))))
+(assert (or (and (and (and (and (or (and (not (or x4 x2)) (or (not x0) (and x3 x5))) (and (not (and x1 x2)) (or (not x3) (and x2 x3)))) (or (not (or (or x1 x1) (or x0 x5))) (not (or (or x3 x5) (or x1 x3))))) (not (and (not (not (and x4 x0))) (not (and (or x5 x3) (or x0 x5)))))) (or (or (not (not (or (or x3 x0) (not x0)))) (or (and (or (and x2 x4) (not x4)) (and (and x0 x3) (not x0))) (not (or (or x4 x1) (or x3 x4))))) (and (or (and (and (not x4) (not x2)) (not (not x3))) (not (not (or x2 x1)))) (or (or (or (and x4 x5) (and x4 x4)) (and (not x5) (and x3 x1))) (not (and (or x2 x3) (not x1))))))) (not (or (not (and (or (not (not x5)) (or (not x0) (and x0 x4))) (and (not (and x5 x3)) (or (not x5) (and x4 x0))))) (or (not (not (and (not x1) (or x2 x1)))) (not (or (or (or x5 x0) (not x0)) (not (and x2 x4)))))))) (and (or (or (or (not (or (not (and x2 x3)) (and (and x3 x5) (and x5 x0)))) (and (or (and (and x4 x4) (and x2 x1)) (not (not x3))) (not (and (not x3) (not x0))))) (not (not (not (and (not x3) (or x1 x0)))))) (not (or (or (and (and (not x0) (or x0 x4)) (and (or x3 x4) (or x5 x4))) (and (not (and x1 x5)) (not (and x4 x0)))) (and (not (and (not x4) (and x2 x5))) (or (and (and x1 x4) (not x3)) (or (or x1 x5) (or x0 x3))))))) (or (or (not (not (not (not (and x4 x1))))) (not (and (or (or (or x5 x0) (not x3)) (not (not x4))) (and (and (not x1) (and x1 x4)) (or (not x5) (and x2 x2)))))) (or (not (not (and (or (or x2 x2) (or x0 x2)) (and (or x0 x5) (or x5 x1))))) (not (or (and (and (or x2 x3) (or x5 x0)) (and (and x0 x5) (and x3 x0))) (not (and (or x4 x3) (or x1 x1))))))))))
+(assert (or (or x4 x1) (not x5)))
+(check-sat)
+(pop 1)
+(assert (or (or (or (or (and (not x5) (or x4 x2)) (not (or x4 x3))) (not (and (and x1 x2) (and x0 x0)))) (and (not (not (not x2))) (or (and (not x0) (not x3)) (and (or x4 x4) (not x3))))) (or (and (or (and (or x3 x0) (not x5)) (not (not x0))) (not (or (not x5) (or x2 x5)))) (or (and (and (not x0) (not x3)) (or (and x5 x0) (not x5))) (not (not (or x3 x0)))))))
+(assert (or (and (or (or x0 x3) (or x3 x4)) (not (or x5 x3))) (or (and (or x2 x3) (not x4)) (not (not x1)))))
+(assert (and (or (or (not (not (or (not (and (or (or x2 x0) (and x3 x4)) (and (not x4) (not x5)))) (or (or (not (or x5 x4)) (or (not x5) (or x5 x2))) (and (not (and x2 x2)) (or (or x5 x1) (or x3 x2))))))) (not (or (and (and (not (and (and x5 x2) (or x0 x0))) (not (and (not x3) (not x2)))) (not (and (not (or x4 x4)) (and (not x1) (or x3 x3))))) (or (or (or (not (not x5)) (and (and x2 x0) (not x2))) (or (not (and x4 x3)) (or (or x2 x2) (and x0 x0)))) (not (not (or (not x0) (not x0)))))))) (and (or (or (or (or (or (not (and x2 x5)) (and (or x4 x5) (and x2 x2))) (or (or (or x2 x1) (and x0 x5)) (and (not x2) (not x1)))) (not (or (not (or x1 x3)) (or (or x5 x5) (or x1 x0))))) (and (and (not (or (not x5) (not x2))) (not (or (or x5 x0) (not x2)))) (not (and (and (not x1) (and x5 x2)) (and (not x0) (and x0 x4)))))) (and (or (not (not (or (and x4 x2) (and x4 x1)))) (not (not (not (or x1 x1))))) (or (and (or (or (not x2) (not x3)) (or (or x1 x2) (or x5 x1))) (or (or (or x4 x2) (or x4 x3)) (and (and x5 x1) (and x0 x1)))) (or (and (not (and x2 x4)) (or (and x5 x2) (and x1 x2))) (not (and (or x4 x1) (or x0 x1))))))) (and (and (and (or (or (not (not x1)) (not (or x0 x4))) (not (and (or x5 x5) (or x4 x1)))) (not (or (or (not x2) (and x1 x1)) (and (and x1 x0) (or x5 x4))))) (and (not (or (or (or x4 x3) (not x4)) (not (or x3 x2)))) (and (or (and (and x3 x2) (and x3 x0)) (not (or x5 x3))) (and (or (and x1 x1) (or x1 x3)) (and (not x5) (not x1)))))) (or (not (not (not (not (or x5 x0))))) (or (or (or (and (and x0 x4) (not x3)) (and (or x1 x0) (not x0))) (and (and (and x0 x0) (or x0 x2)) (not (or x4 x5)))) (not (or (and (or x0 x2) (and x1 x4)) (and (or x3 x5) (not x4))))))))) (or (or (and (and (or (or (not (or (and x1 x1) (and x1 x2))) (or (or (and x3 x2) (not x1)) (and (or x1 x3) (not x4)))) (and (and (and (or x2 x3) (not x1)) (or (not x1) (and x1 x0))) (not (not (and x4 x0))))) (and (or (and (and (or x3 x0) (and x2 x1)) (or (and x3 x5) (or x0 x5))) (or (or (or x3 x1) (or x2 x2)) (or (and x5 x2) (or x3 x1)))) (and (and (and (not x5) (not x0)) (and (or x0 x0) (or x3 x4))) (not (or (and x0 x3) (not x5)))))) (and (and (not (not (or (not x2) (and x2 x1)))) (or (and (not (not x4)) (and (not x3) (not x0))) (and (and (or x5 x1) (or x4 x5)) (not (and x5 x3))))) (or (and (or (and (and x3 x0) (and x5 x0)) (not (not x0))) (and (not (not x2)) (and (or x1 x3) (and x5 x4)))) (not (or (not (and x0 x1)) (or (or x0 x1) (or x4 x5))))))) (or (or (not (and (not (and (and x5 x4) (not x5))) (or (not (or x4 x1)) (not (and x4 x1))))) (or (or (and (and (or x5 x4) (or x2 x0)) (or (or x0 x5) (not x0))) (and (and (not x3) (and x2 x4)) (and (or x2 x0) (or x1 x4)))) (and (and (not (or x0 x3)) (or (and x3 x0) (not x4))) (and (or (and x0 x5) (or x3 x4)) (and (and x5 x3) (or x2 x3)))))) (and (not (not (or (not (and x5 x2)) (not (and x0 x4))))) (not (and (and (and (not x5) (not x4)) (and (or x5 x1) (not x1))) (or (not (or x0 x4)) (not (not x3)))))))) (not (not (and (or (or (or (and (or x3 x4) (not x4)) (not (or x1 x0))) (and (or (or x1 x1) (and x2 x5)) (or (or x5 x2) (not x5)))) (not (not (not (not x5))))) (or (or (and (or (or x5 x1) (not x3)) (and (and x3 x3) (not x1))) (and (and (not x4) (or x4 x2)) (or (or x4 x5) (and x4 x5)))) (or (and (not (and x2 x1)) (or (or x2 x5) (or x1 x4))) (or (and (or x5 x0) (not x5)) (not (or x3 x2)))))))))))
+(check-sat)
+(push 1)
+(assert (or (not (or (or (or (or (or (not (or (not x2) (or x5 x5))) (or (or (and x4 x2) (not x4)) (or (not x1) (or x3 x2)))) (or (and (or (or x2 x3) (and x5 x0)) (and (or x0 x2) (not x2))) (or (not (not x2)) (or (and x0 x3) (or x2 x3))))) (or (and (not (and (or x3 x2) (and x3 x2))) (not (and (and x0 x1) (not x1)))) (or (not (and (and x5 x1) (or x0 x5))) (not (and (and x1 x5) (and x1 x1)))))) (or (and (and (or (or (not x5) (not x2)) (and (and x3 x4) (not x4))) (or (and (not x0) (or x3 x1)) (not (or x3 x0)))) (not (not (or (or x2 x3) (not x0))))) (and (not (and (or (or x0 x5) (and x3 x3)) (and (and x5 x5) (and x3 x5)))) (not (not (or (not x5) (and x2 x0))))))) (and (or (not (not (not (or (and x0 x4) (not x4))))) (not (not (not (not (or x3 x4)))))) (or (or (and (not (or (or x2 x1) (and x0 x2))) (and (or (and x1 x2) (and x5 x2)) (or (or x5 x5) (and x1 x5)))) (or (not (and (and x3 x5) (and x1 x1))) (not (or (not x3) (and x2 x4))))) (not (not (or (and (not x5) (or x2 x2)) (or (and x5 x4) (and x3 x5))))))))) (or (not (or (and (and (or (and (and (or x1 x3) (not x0)) (or (or x2 x5) (or x3 x1))) (or (not (or x3 x5)) (or (not x2) (and x3 x5)))) (not (or (and (or x5 x1) (and x4 x1)) (or (not x3) (or x2 x1))))) (or (not (not (not (or x2 x1)))) (and (not (and (and x0 x4) (or x1 x4))) (not (not (not x0)))))) (not (and (not (and (or (and x3 x5) (not x3)) (or (or x2 x0) (or x0 x0)))) (and (not (and (or x2 x4) (or x2 x3))) (and (or (not x1) (and x4 x3)) (or (or x0 x5) (or x3 x5)))))))) (and (and (or (and (not (or (not (not x5)) (not (and x2 x2)))) (not (or (and (or x4 x1) (or x3 x2)) (or (and x4 x3) (or x1 x1))))) (or (or (or (not (and x0 x4)) (and (not x5) (and x2 x3))) (and (and (and x4 x3) (not x1)) (not (not x2)))) (or (not (not (not x3))) (not (or (not x2) (not x3)))))) (or (or (or (and (or (or x4 x1) (not x0)) (or (and x2 x0) (not x4))) (not (not (or x5 x3)))) (and (and (not (not x0)) (and (and x1 x4) (and x4 x5))) (not (or (not x0) (or x5 x2))))) (or (or (and (or (or x1 x4) (or x4 x2)) (or (and x0 x1) (not x3))) (or (or (and x1 x1) (and x3 x0)) (and (or x4 x1) (and x1 x1)))) (not (and (and (not x0) (not x0)) (or (and x1 x0) (or x5 x0))))))) (or (or (and (or (and (or (not x0) (or x0 x1)) (and (not x2) (and x3 x2))) (or (or (or x0 x3) (not x0)) (or (and x5 x5) (not x5)))) (or (not (not (and x3 x1))) (and (or (not x2) (or x3 x4)) (and (and x5 x1) (or x3 x4))))) (or (or (and (or (and x0 x4) (and x5 x4)) (or (not x0) (or x1 x1))) (and (not (and x1 x5)) (or (or x3 x4) (and x1 x3)))) (not (and (or (not x5) (not x2)) (and (not x5) (not x2)))))) (or (or (and (not (and (not x3) (or x2 x2))) (and (not (not x1)) (and (and x0 x2) (and x5 x4)))) (and (not (and (and x0 x5) (and x5 x3))) (and (or (and x3 x0) (or x1 x4)) (or (or x4 x5) (and x4 x5))))) (not (not (or (not (and x3 x4)) (or (or x5 x2) (or x2 x0)))))))))))
+(assert (and (not (and (not (not (not (or (and x5 x1) (or x2 x2))))) (not (not (not (and (or x2 x4) (and x0 x1))))))) (not (or (or (and (or (and (and x3 x3) (and x5 x0)) (not (and x0 x3))) (and (not (not x5)) (or (and x2 x2) (and x3 x3)))) (not (not (or (and x2 x5) (and x3 x3))))) (or (not (and (or (and x4 x3) (or x3 x1)) (and (or x1 x0) (or x1 x3)))) (not (and (and (or x4 x1) (not x0)) (not (not x5)))))))))
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_4.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_4.smt2
new file mode 100644 (file)
index 0000000..abe6943
--- /dev/null
@@ -0,0 +1,59 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: unsat
+; EXPECT: unsat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(declare-fun x4 () Bool)
+(declare-fun x5 () Bool)
+(declare-fun x6 () Bool)
+(declare-fun x7 () Bool)
+(assert (or (and (not (or (or (or (and (or (and (and x7 x2) (or x6 x4)) (not (not x3))) (or (not (or x1 x2)) (and (or x1 x1) (and x5 x5)))) (or (and (and (or x2 x5) (and x6 x6)) (not (and x5 x6))) (and (and (and x5 x5) (or x1 x6)) (or (or x0 x3) (and x2 x4))))) (not (and (and (or (and x4 x4) (and x2 x4)) (or (and x0 x6) (or x6 x5))) (not (or (and x6 x7) (or x4 x4)))))) (and (not (or (or (or (not x6) (and x5 x6)) (or (and x2 x4) (or x6 x7))) (or (or (or x2 x5) (and x3 x6)) (or (and x5 x1) (and x1 x6))))) (and (not (and (and (not x1) (and x1 x7)) (and (or x2 x6) (or x0 x5)))) (and (not (and (not x4) (or x0 x2))) (and (not (and x4 x0)) (not (and x4 x1)))))))) (or (not (not (or (and (or (or (and x2 x7) (not x1)) (not (or x3 x7))) (and (not (not x4)) (or (or x7 x2) (and x3 x2)))) (or (or (and (or x2 x5) (or x0 x4)) (or (not x5) (not x5))) (and (not (and x0 x2)) (or (and x2 x7) (not x2))))))) (not (or (and (or (or (not (not x2)) (or (or x5 x2) (or x5 x7))) (and (and (or x0 x1) (or x7 x6)) (not (and x3 x0)))) (and (and (or (or x7 x5) (not x7)) (and (and x4 x5) (or x7 x2))) (or (or (not x1) (not x3)) (or (or x4 x7) (and x2 x0))))) (or (or (or (and (or x4 x6) (not x2)) (not (and x4 x4))) (not (or (and x2 x3) (not x1)))) (and (and (not (or x6 x3)) (not (or x4 x4))) (not (and (not x7) (and x2 x3))))))))) (or (not (or (or (and (and (not (or (and x0 x5) (and x7 x6))) (or (or (not x0) (not x3)) (or (and x0 x6) (or x7 x0)))) (or (or (and (not x4) (or x2 x3)) (not (not x7))) (not (and (and x2 x6) (not x0))))) (not (or (or (or (and x4 x2) (not x4)) (or (not x3) (and x5 x2))) (or (or (not x7) (not x1)) (not (and x1 x0)))))) (and (or (or (or (or (not x6) (and x3 x6)) (not (and x1 x0))) (or (or (and x7 x3) (not x1)) (not (or x7 x7)))) (and (or (or (not x1) (and x4 x2)) (or (not x3) (not x0))) (or (or (not x1) (not x7)) (not (or x1 x5))))) (or (or (and (and (not x0) (not x3)) (or (and x5 x4) (and x6 x0))) (or (or (and x4 x1) (and x7 x4)) (and (or x6 x0) (not x3)))) (not (and (or (not x4) (not x3)) (and (not x7) (not x7)))))))) (and (or (not (and (not (not (or (and x2 x6) (or x1 x2)))) (and (not (or (or x2 x4) (or x0 x4))) (or (or (and x2 x1) (and x1 x4)) (not (and x3 x0)))))) (and (not (not (and (and (not x3) (not x2)) (not (or x4 x6))))) (and (or (and (not (not x6)) (not (not x0))) (not (not (not x7)))) (and (not (not (and x6 x5))) (not (and (not x2) (or x5 x3))))))) (not (or (and (or (or (or (and x4 x3) (or x3 x6)) (and (and x4 x1) (or x4 x2))) (or (not (and x2 x6)) (or (not x0) (and x4 x5)))) (and (or (not (not x0)) (or (or x3 x7) (and x4 x2))) (or (not (and x0 x3)) (or (and x5 x0) (or x2 x3))))) (or (or (or (not (not x6)) (or (or x3 x1) (and x3 x4))) (and (or (or x0 x3) (or x3 x4)) (or (and x7 x0) (not x4)))) (or (not (not (and x7 x5))) (not (or (and x4 x3) (not x7)))))))))))
+(assert (or (or x2 x1) (or x2 x4)))
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(assert (not (or (and (not (or (or x5 x0) (or x7 x1))) (and (not (not x4)) (not (not x6)))) (not (not (or (or x4 x3) (not x2)))))))
+(assert (and (and (and (and (not (not (and (or (and x7 x4) (and x7 x6)) (or (or x6 x5) (or x5 x3))))) (or (not (not (or (and x6 x6) (or x2 x6)))) (not (or (and (or x7 x5) (not x3)) (or (not x7) (not x0)))))) (or (or (and (or (not (not x1)) (and (or x0 x0) (and x4 x7))) (not (or (or x4 x5) (and x2 x5)))) (not (and (or (or x7 x0) (or x3 x1)) (not (and x3 x2))))) (and (not (and (not (or x4 x0)) (not (not x7)))) (and (not (not (and x1 x0))) (or (and (or x5 x5) (and x4 x5)) (not (not x6))))))) (not (and (or (not (or (or (and x0 x7) (not x0)) (or (and x7 x0) (and x0 x4)))) (and (not (not (not x0))) (or (and (not x3) (or x4 x2)) (not (and x1 x1))))) (and (and (or (or (and x0 x7) (or x0 x3)) (and (not x3) (or x4 x4))) (or (or (not x3) (or x7 x4)) (not (or x1 x2)))) (not (not (and (and x2 x5) (not x5)))))))) (not (not (and (or (and (or (not (not x3)) (or (or x0 x3) (and x3 x6))) (not (not (and x5 x4)))) (not (and (and (or x3 x7) (and x0 x2)) (or (and x5 x7) (not x1))))) (not (not (and (and (or x5 x3) (not x4)) (not (not x1))))))))))
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(check-sat)
+(pop 1)
+(assert (not (and (not (not (and (or (or (and x3 x5) (or x2 x6)) (not (not x7))) (or (not (and x2 x7)) (or (and x0 x1) (or x6 x1)))))) (not (and (not (not (or (or x0 x7) (and x1 x1)))) (not (or (not (or x4 x4)) (or (or x1 x4) (and x3 x3)))))))))
+(assert (or x5 x7))
+(check-sat)
+(push 1)
+(assert (and (or (not (not (or x5 x3))) (and (or (or x4 x5) (or x2 x1)) (and (not x5) (and x1 x3)))) (not (and (or (not x0) (not x7)) (not (not x5))))))
+(assert (or (and (not (and (or (and (or (and x2 x3) (not x4)) (or (and x1 x1) (or x3 x5))) (or (not (and x4 x7)) (and (and x1 x2) (or x4 x0)))) (and (not (not (or x0 x3))) (or (not (not x4)) (and (and x1 x5) (not x2)))))) (and (or (not (not (or (and x1 x5) (not x5)))) (and (or (and (not x6) (or x7 x3)) (or (and x7 x0) (and x4 x4))) (not (not (not x5))))) (and (and (not (and (and x2 x4) (or x4 x1))) (or (and (and x4 x0) (not x2)) (and (or x6 x2) (and x5 x2)))) (not (not (not (not x7))))))) (or (and (or (and (and (not (or x3 x4)) (and (not x5) (not x1))) (not (or (not x7) (or x5 x0)))) (and (not (and (and x1 x7) (or x7 x5))) (not (and (not x0) (or x2 x0))))) (not (and (or (or (not x1) (or x6 x6)) (and (and x5 x4) (or x5 x6))) (not (or (not x4) (and x5 x4)))))) (not (not (or (and (and (not x5) (not x2)) (and (not x3) (or x3 x2))) (not (and (not x5) (and x6 x1)))))))))
+(assert (or (not (or (not (not (or (and (and (and x5 x4) (not x4)) (or (not x6) (and x2 x1))) (or (and (or x0 x7) (not x5)) (not (and x7 x4)))))) (not (and (and (or (and (or x7 x3) (not x3)) (or (not x5) (not x3))) (not (not (not x7)))) (not (or (not (or x2 x4)) (not (and x3 x0)))))))) (and (not (not (or (and (or (and (not x7) (not x1)) (not (not x4))) (not (and (or x4 x1) (or x3 x5)))) (or (not (and (not x3) (and x3 x6))) (and (not (or x0 x5)) (not (and x5 x6))))))) (or (not (not (not (and (not (and x4 x3)) (not (not x1)))))) (not (and (or (and (or (or x2 x7) (and x0 x7)) (or (and x7 x7) (and x7 x4))) (and (and (not x6) (or x2 x2)) (and (and x5 x3) (and x6 x2)))) (or (and (not (or x5 x3)) (or (or x3 x3) (or x1 x2))) (not (not (or x3 x1))))))))))
+(assert (not (or (or (and (and (and (or (and (or x5 x5) (or x6 x6)) (and (and x1 x2) (not x5))) (and (or (not x7) (or x1 x1)) (and (and x2 x2) (and x2 x5)))) (not (not (and (not x4) (not x1))))) (and (or (not (not (not x2))) (and (and (not x7) (or x4 x5)) (and (and x6 x2) (not x1)))) (not (and (not (or x4 x0)) (or (and x3 x4) (or x4 x6)))))) (and (and (or (and (not (not x5)) (not (not x6))) (or (not (not x0)) (and (or x5 x4) (not x5)))) (and (or (not (and x2 x3)) (and (or x7 x0) (and x6 x3))) (and (not (or x3 x4)) (or (or x2 x0) (not x0))))) (and (not (and (not (or x5 x3)) (not (or x5 x7)))) (and (or (not (and x7 x3)) (not (and x6 x6))) (or (or (not x0) (and x4 x2)) (not (and x3 x4))))))) (and (or (and (not (not (not (and x1 x3)))) (or (or (or (or x3 x3) (and x7 x1)) (or (not x5) (or x7 x6))) (and (or (and x0 x7) (or x4 x5)) (or (and x3 x1) (not x1))))) (or (and (and (not (and x6 x1)) (not (or x1 x2))) (and (not (not x4)) (and (or x0 x2) (or x0 x1)))) (or (not (and (not x4) (or x2 x2))) (and (and (or x1 x2) (not x7)) (and (and x0 x5) (or x2 x4)))))) (and (and (not (and (and (not x7) (not x5)) (or (and x4 x2) (and x6 x4)))) (and (or (not (not x2)) (and (not x1) (not x3))) (and (and (or x3 x0) (and x2 x2)) (or (not x7) (or x0 x4))))) (and (not (or (and (or x6 x4) (not x7)) (or (not x1) (and x2 x2)))) (and (or (or (not x5) (and x2 x1)) (or (not x7) (not x4))) (or (not (and x2 x7)) (or (not x5) (or x6 x7))))))))))
+(assert (not x0))
+(assert (and x0 x7))
+(assert (not (not (or (and x6 x2) (and x0 x6)))))
+(assert (or (not x2) (and x5 x0)))
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(assert (not (not (and (or (or x0 x0) (and x3 x5)) (not (not x4))))))
+(check-sat)
+(pop 1)
+(assert (and (not (or (and x6 x2) (not x4))) (not (and (or x1 x7) (or x0 x6)))))
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_40.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_40.smt2
new file mode 100644 (file)
index 0000000..855dd81
--- /dev/null
@@ -0,0 +1,42 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(assert (not (and (not (or (and (or (or x0 x3) (or x2 x1)) (and (or x1 x0) (not x0))) (or (and (not x2) (and x2 x3)) (not (and x2 x1))))) (and (not (and (or (and x3 x1) (not x2)) (not (or x3 x3)))) (or (not (and (and x1 x2) (and x0 x0))) (or (or (or x3 x2) (not x1)) (or (and x3 x2) (not x0))))))))
+(check-sat)
+(push 1)
+(assert (and (and x3 x1) (and x2 x2)))
+(check-sat)
+(pop 1)
+(assert (or (or (and (not (or (and (not (and (not (not x1)) (or (and x0 x2) (and x0 x3)))) (not (not (and (not x1) (and x0 x3))))) (not (not (not (and (not x0) (not x2))))))) (not (or (not (and (not (or (or x1 x1) (not x1))) (not (or (not x3) (or x3 x0))))) (not (or (not (or (or x2 x0) (not x3))) (and (not (and x0 x2)) (not (and x2 x3)))))))) (and (or (not (or (not (not (or (or x3 x2) (and x2 x3)))) (and (or (or (not x3) (or x0 x2)) (not (and x1 x2))) (or (and (or x3 x2) (not x0)) (and (and x3 x3) (not x2)))))) (not (not (not (or (and (or x1 x3) (or x2 x2)) (or (not x0) (not x1))))))) (and (or (not (or (and (or (and x1 x3) (or x2 x2)) (or (not x1) (not x3))) (or (or (and x2 x0) (not x3)) (not (not x1))))) (or (or (not (not (not x0))) (not (or (not x0) (not x1)))) (or (and (and (or x2 x1) (and x2 x0)) (not (and x0 x2))) (not (and (not x0) (or x3 x1)))))) (and (not (and (and (or (and x3 x0) (and x0 x1)) (not (or x1 x1))) (not (and (not x3) (not x0))))) (not (and (or (not (not x1)) (and (not x0) (or x1 x0))) (not (not (and x1 x1))))))))) (and (not (not (not (and (or (and (and (or x2 x3) (not x0)) (or (and x3 x3) (and x2 x0))) (or (not (or x2 x1)) (not (or x3 x1)))) (and (and (and (and x3 x2) (or x3 x2)) (not (not x0))) (or (and (or x2 x1) (and x1 x0)) (and (not x2) (not x1)))))))) (and (or (and (or (not (not (not (or x2 x0)))) (not (or (and (and x2 x2) (and x2 x1)) (and (and x3 x0) (or x1 x0))))) (not (or (or (and (not x2) (and x2 x1)) (not (not x0))) (not (and (and x3 x0) (or x1 x3)))))) (not (or (not (or (and (and x2 x2) (not x3)) (or (not x2) (or x0 x2)))) (or (or (and (or x0 x1) (or x0 x1)) (not (not x2))) (or (or (and x2 x0) (and x1 x2)) (and (not x1) (or x3 x3))))))) (or (and (or (and (and (or (and x3 x3) (and x0 x0)) (or (or x0 x3) (or x0 x3))) (and (not (or x3 x3)) (and (not x3) (or x1 x2)))) (and (and (and (not x0) (or x1 x3)) (or (not x2) (or x1 x2))) (and (or (not x3) (or x0 x0)) (or (not x0) (not x2))))) (and (not (and (or (not x3) (not x0)) (or (not x2) (or x0 x3)))) (not (not (not (and x0 x0)))))) (or (and (and (and (or (not x1) (not x0)) (and (or x2 x0) (not x2))) (or (not (and x1 x2)) (and (or x2 x2) (not x2)))) (and (not (not (not x3))) (or (and (not x0) (and x2 x1)) (and (not x3) (not x1))))) (or (and (or (not (or x1 x2)) (or (and x2 x1) (not x0))) (and (or (and x3 x0) (or x2 x3)) (or (or x0 x3) (and x3 x2)))) (or (not (not (and x2 x2))) (or (not (not x2)) (or (or x0 x3) (or x0 x2)))))))))))
+(check-sat)
+(push 1)
+(assert (or (or (not x3) (and x3 x0)) (not (and x3 x1))))
+(assert (not x0))
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(assert (or (not (or (or (and (and (not (or (not x1) (and x1 x1))) (and (and (or x3 x3) (not x2)) (and (not x0) (or x2 x1)))) (not (or (or (and x0 x2) (not x2)) (not (and x0 x1))))) (not (and (or (and (and x0 x1) (not x0)) (or (and x0 x2) (or x1 x3))) (and (or (or x3 x1) (and x3 x1)) (or (or x3 x1) (not x0)))))) (and (and (not (not (not (or x1 x2)))) (or (or (or (not x1) (and x0 x3)) (and (not x2) (not x0))) (or (or (not x1) (not x1)) (and (and x2 x1) (not x2))))) (not (not (and (not (or x2 x2)) (and (not x2) (and x1 x2)))))))) (not (or (and (and (not (not (and (and x3 x2) (and x0 x3)))) (not (not (not (not x1))))) (and (not (not (and (not x2) (not x1)))) (not (or (or (or x2 x3) (not x1)) (and (and x0 x1) (or x3 x0)))))) (and (not (and (and (and (not x3) (not x0)) (and (not x0) (or x3 x2))) (not (and (and x0 x2) (and x3 x0))))) (not (and (and (not (and x1 x1)) (or (and x1 x1) (or x0 x1))) (not (or (or x0 x0) (and x2 x3))))))))))
+(check-sat)
+(pop 1)
+(assert (not (and (and (and (or (or (or (and x0 x2) (and x1 x3)) (or (not x0) (and x2 x1))) (and (or (and x0 x2) (not x2)) (or (not x3) (and x1 x0)))) (or (not (or (and x1 x1) (or x1 x3))) (and (and (and x0 x0) (and x2 x2)) (and (not x0) (or x2 x3))))) (not (not (and (not (or x0 x2)) (or (and x1 x2) (or x2 x3)))))) (or (and (or (not (or (not x3) (or x1 x1))) (and (not (or x2 x2)) (or (or x3 x3) (and x3 x3)))) (not (or (or (and x2 x2) (and x1 x2)) (not (not x1))))) (not (not (not (and (or x0 x3) (or x3 x2)))))))))
+(assert (or (not (and (not x1) (not x3))) (or (not (and x2 x0)) (and (or x1 x0) (or x2 x1)))))
+(assert (and (not (or (and x2 x0) (not x0))) (or (not (and x1 x1)) (and (and x1 x3) (and x3 x3)))))
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_41.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_41.smt2
new file mode 100644 (file)
index 0000000..0fbefd2
--- /dev/null
@@ -0,0 +1,26 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(check-sat)
+(push 1)
+(assert (or (or (or (and (and (not (and (or x0 x0) (not x0))) (not (or (or x2 x2) (not x0)))) (or (or (not (or x0 x0)) (or (and x0 x2) (or x0 x2))) (and (and (and x1 x1) (and x2 x1)) (not (not x2))))) (and (not (not (and (not x2) (and x0 x2)))) (not (not (and (not x2) (not x1)))))) (not (or (and (not (and (not x2) (not x0))) (and (not (not x0)) (and (not x1) (and x2 x2)))) (and (not (and (not x2) (or x1 x0))) (or (or (or x1 x0) (or x0 x0)) (or (or x0 x0) (not x1))))))) (not (not (not (and (not (or (or x2 x0) (not x2))) (not (and (not x0) (or x0 x1)))))))))
+(assert (or (not (or (and (or (or x0 x0) (or x2 x2)) (and (not x1) (or x2 x2))) (and (not (not x1)) (and (or x0 x0) (or x0 x1))))) (not (and (or (and (and x1 x2) (not x1)) (not (not x2))) (not (and (and x2 x0) (not x1)))))))
+(assert (or (not (not x2)) (not (not x0))))
+(assert (not (or (not (or (and (and (and x0 x0) (or x1 x1)) (or (or x0 x2) (not x1))) (not (or (or x0 x1) (or x0 x0))))) (not (not (not (or (or x1 x1) (not x2))))))))
+(check-sat)
+(pop 1)
+(assert (not (and (not (and (and (or (and (and (or (not x0) (not x1)) (and (or x1 x1) (not x2))) (and (and (or x1 x0) (and x1 x2)) (and (not x0) (not x2)))) (not (or (or (or x1 x0) (not x1)) (or (or x0 x1) (not x2))))) (or (or (and (not (not x0)) (or (or x0 x1) (not x0))) (or (not (or x0 x2)) (not (or x0 x0)))) (not (and (or (and x1 x1) (not x0)) (or (and x1 x1) (or x1 x0)))))) (or (and (not (or (not (and x0 x0)) (and (and x0 x2) (and x2 x0)))) (not (and (and (or x0 x2) (and x0 x2)) (and (not x0) (and x0 x1))))) (and (or (not (and (and x2 x1) (not x2))) (or (and (and x2 x2) (and x2 x2)) (or (or x0 x1) (or x1 x2)))) (or (and (and (and x2 x1) (or x1 x0)) (and (or x2 x0) (not x1))) (and (not (or x2 x2)) (or (and x2 x0) (and x0 x0)))))))) (or (and (or (not (and (not (not (or x2 x0))) (and (or (and x0 x1) (or x0 x1)) (not (not x1))))) (not (and (and (or (or x0 x1) (not x1)) (not (not x2))) (not (or (not x2) (not x2)))))) (and (or (and (or (not (and x2 x2)) (or (and x1 x2) (or x2 x2))) (and (or (not x2) (and x2 x2)) (not (not x2)))) (not (not (and (not x2) (not x1))))) (not (and (and (and (or x1 x1) (and x0 x0)) (or (or x0 x0) (not x1))) (or (and (or x2 x1) (not x2)) (and (or x2 x2) (not x1))))))) (not (or (and (and (or (or (not x2) (not x0)) (not (and x1 x0))) (and (not (not x0)) (or (and x1 x0) (or x1 x0)))) (and (and (or (and x0 x2) (not x2)) (and (or x2 x2) (not x1))) (not (or (and x0 x1) (and x1 x0))))) (or (not (or (not (and x1 x0)) (not (not x2)))) (not (not (and (or x2 x0) (not x1)))))))))))
+(check-sat)
+(push 1)
+(assert (or (and (and (or (or (and (not (and (or (or x2 x0) (or x0 x1)) (not (or x2 x1)))) (or (not (not (not x2))) (not (not (or x1 x1))))) (or (or (and (or (and x2 x0) (not x1)) (or (or x2 x2) (and x1 x2))) (or (or (and x0 x0) (and x2 x0)) (or (not x2) (or x0 x1)))) (and (or (and (or x0 x0) (or x2 x0)) (not (not x1))) (not (and (or x1 x2) (or x1 x1)))))) (and (not (not (and (or (or x1 x0) (and x1 x1)) (not (or x1 x0))))) (and (and (and (or (or x0 x2) (and x0 x2)) (and (and x2 x2) (and x0 x1))) (or (or (or x1 x1) (not x2)) (not (not x1)))) (not (not (or (or x1 x0) (and x2 x0))))))) (not (not (and (or (not (or (and x1 x2) (not x2))) (and (and (or x2 x0) (and x1 x0)) (and (or x1 x0) (or x2 x1)))) (not (or (not (not x0)) (not (and x2 x2)))))))) (and (or (and (or (not (not (and (and x1 x1) (and x1 x1)))) (or (and (not (and x0 x1)) (or (or x2 x2) (or x0 x1))) (and (not (not x0)) (not (and x0 x0))))) (not (and (or (and (not x1) (not x2)) (not (or x2 x1))) (and (and (not x0) (and x0 x2)) (or (and x2 x2) (not x2)))))) (or (and (and (not (and (or x1 x0) (or x0 x1))) (not (or (or x2 x1) (or x1 x0)))) (and (and (or (and x1 x1) (not x2)) (or (not x0) (and x0 x1))) (not (not (or x0 x2))))) (not (and (not (or (and x2 x0) (or x2 x0))) (not (not (not x0))))))) (or (or (not (and (and (not (not x0)) (or (and x1 x2) (not x0))) (and (not (not x0)) (and (or x0 x2) (not x1))))) (and (not (and (or (not x1) (and x0 x0)) (and (not x1) (and x2 x2)))) (not (and (or (and x0 x0) (not x0)) (and (not x2) (and x0 x2)))))) (and (and (or (not (or (not x1) (or x1 x2))) (or (or (and x1 x1) (and x0 x0)) (not (and x0 x0)))) (not (or (and (or x0 x0) (not x1)) (or (and x0 x2) (or x1 x1))))) (not (and (not (not (and x2 x1))) (or (and (not x1) (not x0)) (not (or x0 x2))))))))) (or (and (or (and (not (or (or (or (not x1) (or x0 x0)) (and (or x2 x1) (not x1))) (and (or (not x2) (or x1 x2)) (or (and x2 x1) (and x1 x0))))) (and (not (and (and (or x2 x0) (not x2)) (and (or x1 x1) (or x2 x0)))) (not (or (and (and x0 x2) (and x0 x2)) (not (or x1 x1)))))) (not (or (not (or (and (and x0 x1) (not x1)) (or (and x2 x1) (not x2)))) (and (and (and (not x2) (and x2 x1)) (not (or x2 x2))) (and (and (or x1 x1) (not x1)) (or (and x0 x1) (not x1))))))) (not (and (or (and (or (or (not x2) (not x1)) (not (and x1 x1))) (or (not (or x0 x0)) (not (and x2 x1)))) (not (and (not (and x1 x1)) (or (not x1) (and x0 x2))))) (or (or (or (not (or x2 x2)) (and (and x1 x0) (and x1 x1))) (not (and (or x1 x0) (or x0 x2)))) (and (not (or (or x2 x2) (and x2 x0))) (not (and (and x2 x2) (or x1 x1)))))))) (not (or (not (or (not (and (not (and x2 x2)) (and (or x0 x1) (and x2 x0)))) (and (not (not (and x2 x0))) (or (and (and x0 x0) (not x0)) (and (and x0 x1) (not x0)))))) (or (not (or (or (and (and x0 x2) (and x2 x0)) (and (and x2 x1) (or x2 x2))) (and (or (or x0 x0) (or x1 x0)) (and (and x2 x1) (or x0 x1))))) (and (or (or (not (or x0 x1)) (not (or x0 x1))) (or (not (not x0)) (not (and x0 x2)))) (not (not (or (or x2 x2) (not x2)))))))))))
+(check-sat)
+(pop 1)
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_42.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_42.smt2
new file mode 100644 (file)
index 0000000..d02eb03
--- /dev/null
@@ -0,0 +1,49 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(declare-fun x4 () Bool)
+(declare-fun x5 () Bool)
+(declare-fun x6 () Bool)
+(declare-fun x7 () Bool)
+(declare-fun x8 () Bool)
+(declare-fun x9 () Bool)
+(assert (or (and (and (or (or (not (not (not (and x3 x2)))) (and (and (or (and x1 x1) (not x9)) (or (or x9 x5) (not x5))) (or (not (or x6 x3)) (not (not x5))))) (or (not (or (and (and x2 x5) (or x5 x6)) (not (or x0 x5)))) (not (or (or (or x0 x6) (not x1)) (not (not x9)))))) (or (and (not (or (or (not x2) (and x9 x9)) (or (not x6) (and x8 x5)))) (and (or (not (not x8)) (not (not x5))) (and (or (or x7 x1) (and x6 x9)) (or (and x5 x5) (and x0 x8))))) (and (and (or (or (not x9) (and x3 x0)) (and (or x6 x4) (and x0 x2))) (not (not (not x3)))) (or (or (or (or x2 x4) (or x8 x5)) (not (not x5))) (and (not (or x9 x9)) (not (not x1))))))) (and (or (and (and (not (not (or x9 x7))) (not (or (or x1 x5) (and x5 x0)))) (and (and (or (and x4 x3) (or x4 x4)) (and (or x7 x7) (or x6 x3))) (not (or (not x5) (or x8 x5))))) (or (or (not (and (or x1 x1) (and x4 x7))) (or (or (or x0 x3) (or x6 x8)) (and (not x5) (not x9)))) (and (and (and (and x8 x4) (and x5 x7)) (and (not x5) (not x5))) (not (not (not x8)))))) (not (or (and (or (or (not x6) (and x6 x9)) (and (and x0 x3) (or x4 x3))) (not (and (not x8) (and x3 x2)))) (or (and (not (or x6 x9)) (and (or x2 x4) (or x6 x4))) (not (and (or x1 x4) (and x1 x9)))))))) (or (not (and (not (and (or (not (not x0)) (not (or x5 x5))) (or (or (not x9) (or x8 x5)) (and (or x2 x1) (or x4 x4))))) (not (and (or (and (and x5 x6) (or x2 x3)) (or (not x3) (and x1 x0))) (and (and (and x3 x9) (and x1 x7)) (or (not x9) (and x7 x5))))))) (or (not (or (or (not (not (and x5 x0))) (or (and (not x3) (not x8)) (or (and x5 x7) (not x8)))) (or (and (and (or x3 x9) (or x5 x6)) (or (or x0 x7) (and x7 x6))) (or (or (or x3 x3) (not x7)) (not (or x4 x4)))))) (not (not (and (not (or (or x8 x5) (not x9))) (not (or (and x3 x3) (or x3 x2))))))))))
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(assert (and (or (or x0 x9) (not x9)) (not (or x8 x3))))
+(check-sat)
+(push 1)
+(assert (or (not (not (and x5 x8))) (not (not (not x7)))))
+(check-sat)
+(pop 1)
+(assert (not (not (or (or (not x4) (not x5)) (not (not x6))))))
+(assert (not (not (and (and x8 x5) (or x4 x1)))))
+(assert (and (not (not (or (or (and (and (or (and x7 x6) (or x2 x3)) (or (or x3 x4) (not x6))) (or (not (or x9 x1)) (not (and x7 x8)))) (and (not (not (and x2 x0))) (not (and (not x7) (or x3 x3))))) (and (or (and (not (and x2 x0)) (and (or x5 x9) (and x4 x2))) (or (or (not x2) (and x4 x4)) (or (and x4 x7) (not x0)))) (and (or (not (not x8)) (or (or x2 x0) (or x2 x6))) (and (and (not x3) (or x9 x9)) (or (not x2) (and x4 x6)))))))) (not (or (not (not (and (not (or (and x7 x9) (or x0 x0))) (not (not (or x7 x9)))))) (and (not (or (and (not (or x0 x6)) (and (and x7 x3) (and x7 x8))) (or (and (not x7) (or x5 x6)) (and (not x9) (or x4 x2))))) (and (not (or (or (and x2 x2) (not x3)) (or (and x2 x0) (or x5 x4)))) (not (or (or (not x7) (or x0 x5)) (or (or x4 x8) (and x8 x2))))))))))
+(assert (or (not (and x0 x3)) (or (or x0 x1) (or x2 x7))))
+(check-sat)
+(pop 1)
+(assert (or x4 x9))
+(check-sat)
+(push 1)
+(assert (or (or (or (not (or x9 x3)) (and (and x1 x9) (not x3))) (not (or (or x6 x1) (or x9 x8)))) (and (and (not (and x0 x6)) (and (not x0) (not x2))) (and (and (or x4 x5) (or x2 x8)) (and (and x5 x1) (and x4 x9))))))
+(check-sat)
+(pop 1)
+(assert (and (not (or (and (not (not (not (or x9 x5)))) (not (or (not (or x5 x4)) (not (or x8 x9))))) (and (or (not (and (or x0 x0) (not x8))) (not (or (and x7 x5) (or x0 x2)))) (or (not (not (not x2))) (and (and (or x0 x4) (and x2 x2)) (and (and x6 x7) (not x9))))))) (and (and (not (not (or (or (not x8) (and x9 x1)) (and (and x5 x8) (or x9 x3))))) (and (and (not (or (not x7) (and x0 x9))) (and (not (and x3 x4)) (not (or x4 x0)))) (or (or (and (and x0 x0) (or x1 x5)) (and (and x7 x5) (and x6 x0))) (and (and (or x4 x7) (not x6)) (not (and x1 x0)))))) (or (or (and (and (or (and x5 x1) (not x5)) (not (and x2 x4))) (and (and (not x6) (or x1 x6)) (not (and x1 x1)))) (and (and (and (or x1 x6) (or x7 x2)) (not (not x8))) (not (and (and x6 x1) (not x1))))) (not (or (or (and (or x0 x9) (not x6)) (not (not x8))) (and (and (or x7 x2) (or x7 x0)) (not (not x5)))))))))
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_43.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_43.smt2
new file mode 100644 (file)
index 0000000..66f745c
--- /dev/null
@@ -0,0 +1,54 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(check-sat)
+(push 1)
+(assert (not (not (or (and (or (or x1 x1) (and x0 x1)) (or (or x2 x0) (or x0 x0))) (not (and (or x2 x0) (not x1)))))))
+(assert (and (and x0 x1) (and x1 x0)))
+(assert (or (not (or (or (or (and (or (and (and x1 x2) (and x1 x1)) (and (not x1) (and x2 x0))) (or (not (not x2)) (or (and x1 x1) (and x2 x1)))) (or (or (not (or x1 x2)) (and (or x0 x2) (or x2 x1))) (not (or (and x1 x2) (or x2 x0))))) (or (not (or (and (or x2 x0) (or x2 x1)) (and (not x2) (and x2 x1)))) (or (not (and (or x2 x1) (and x2 x2))) (and (and (not x1) (and x0 x2)) (and (and x0 x2) (or x1 x2)))))) (not (and (or (or (or (not x2) (and x0 x1)) (or (or x2 x2) (or x2 x2))) (and (and (not x2) (not x0)) (not (and x1 x0)))) (or (not (not (or x2 x0))) (and (not (or x2 x2)) (not (not x2)))))))) (not (or (and (not (and (and (not (not x2)) (and (not x2) (not x2))) (or (and (not x0) (or x1 x1)) (or (and x1 x0) (and x0 x0))))) (and (or (or (not (and x1 x1)) (not (or x1 x1))) (not (and (and x1 x0) (or x2 x0)))) (not (not (or (not x2) (and x0 x0)))))) (or (or (and (and (not (and x1 x1)) (or (or x0 x0) (or x2 x2))) (not (and (and x1 x0) (not x0)))) (or (not (not (and x1 x2))) (or (or (not x1) (and x1 x2)) (or (or x0 x2) (and x0 x0))))) (and (or (not (and (or x2 x2) (and x2 x2))) (and (not (not x1)) (and (or x1 x2) (and x1 x0)))) (not (or (not (or x1 x0)) (not (or x0 x2))))))))))
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(assert (not (and (not (and x1 x1)) (and (and x0 x0) (not x2)))))
+(check-sat)
+(push 1)
+(assert (or (and (or (and (or (and x0 x0) (not x0)) (and (and x1 x0) (or x0 x1))) (or (or (or x1 x1) (and x2 x2)) (not (and x0 x0)))) (or (and (and (and x2 x0) (not x1)) (or (or x2 x2) (and x0 x0))) (and (or (and x1 x1) (and x2 x1)) (and (not x0) (and x1 x0))))) (not (not (or (or (or x1 x1) (or x1 x0)) (not (or x2 x1)))))))
+(assert (not (not (and (and (or (or (and x0 x2) (or x2 x0)) (and (and x1 x1) (or x1 x2))) (and (or (and x1 x0) (not x1)) (or (and x0 x0) (not x2)))) (not (and (not (or x2 x0)) (not (not x0))))))))
+(assert (not (or (and (and x1 x0) (not x2)) (or (or x2 x1) (or x0 x2)))))
+(assert (or (not (and (or (and (or (not (or (and x1 x0) (not x2))) (and (not (or x2 x1)) (not (or x0 x2)))) (and (not (and (not x2) (or x0 x2))) (not (or (not x0) (and x0 x2))))) (or (not (and (and (or x1 x2) (not x1)) (or (not x0) (or x0 x1)))) (or (and (and (not x1) (and x2 x1)) (and (and x2 x1) (or x1 x0))) (or (not (or x1 x1)) (or (or x1 x2) (not x1)))))) (not (or (not (not (not (or x1 x0)))) (not (or (and (or x0 x0) (not x2)) (not (or x1 x2)))))))) (or (and (or (not (or (or (or (and x1 x0) (or x0 x0)) (or (or x2 x1) (not x2))) (not (not (and x2 x2))))) (not (not (or (and (or x2 x1) (or x1 x2)) (or (and x2 x1) (or x0 x1)))))) (not (and (not (not (not (and x2 x1)))) (and (and (not (not x1)) (and (not x0) (not x1))) (or (or (or x2 x1) (not x2)) (and (not x1) (not x0))))))) (or (and (or (not (not (not (and x1 x2)))) (or (not (and (or x0 x0) (not x0))) (and (not (not x1)) (not (and x0 x2))))) (and (and (and (and (and x2 x1) (or x2 x2)) (not (or x0 x1))) (not (not (and x1 x2)))) (and (and (not (or x0 x1)) (or (and x2 x2) (not x1))) (and (and (or x2 x2) (not x1)) (and (or x1 x1) (or x2 x0)))))) (or (and (not (and (and (and x0 x1) (not x1)) (or (or x0 x0) (not x0)))) (and (or (not (and x1 x2)) (not (or x0 x2))) (and (or (or x0 x1) (or x2 x0)) (not (or x1 x0))))) (not (and (not (and (and x0 x1) (and x0 x0))) (not (or (not x0) (or x1 x0))))))))))
+(check-sat)
+(pop 1)
+(check-sat)
+(pop 1)
+(assert (not (and (and (or (and x0 x2) (not x2)) (and (and x1 x0) (not x0))) (not (and (and x2 x1) (or x0 x1))))))
+(check-sat)
+(push 1)
+(assert (and (not (and (or (not (and (and (not (not (or x2 x1))) (or (not (or x2 x2)) (and (not x2) (and x0 x1)))) (or (and (not (or x1 x2)) (and (and x2 x1) (or x2 x0))) (not (and (or x1 x2) (not x0)))))) (not (or (or (not (not (not x2))) (not (or (or x1 x1) (and x0 x1)))) (or (and (not (not x0)) (and (or x0 x0) (not x1))) (or (not (and x1 x2)) (and (and x0 x0) (and x1 x0))))))) (and (and (or (or (and (or (and x2 x0) (not x0)) (or (or x2 x1) (and x2 x1))) (or (or (or x2 x1) (not x0)) (or (and x2 x2) (not x2)))) (or (and (or (or x2 x0) (and x0 x1)) (not (and x1 x0))) (or (or (not x0) (not x0)) (or (not x2) (not x0))))) (not (or (and (and (not x1) (and x0 x0)) (not (and x1 x0))) (or (and (and x0 x2) (and x1 x0)) (and (and x0 x0) (not x1)))))) (or (and (or (or (and (and x2 x0) (or x0 x2)) (or (and x2 x2) (not x2))) (or (and (or x0 x1) (and x2 x2)) (or (and x0 x0) (or x2 x1)))) (not (or (and (and x2 x1) (not x2)) (and (not x1) (and x1 x0))))) (or (or (and (not (and x0 x1)) (and (or x0 x1) (not x1))) (not (or (and x2 x0) (and x1 x1)))) (or (or (and (and x2 x0) (or x0 x1)) (and (not x2) (or x2 x1))) (and (or (not x1) (not x1)) (or (and x2 x1) (not x1))))))))) (and (or (not (or (not (or (and (and (or x2 x1) (or x0 x2)) (or (or x0 x2) (and x1 x0))) (not (or (or x0 x1) (and x2 x2))))) (or (or (and (and (and x2 x0) (and x1 x1)) (and (or x0 x0) (and x1 x1))) (and (and (and x1 x1) (not x0)) (and (not x1) (not x0)))) (and (or (and (not x2) (not x1)) (not (or x0 x0))) (not (not (and x1 x0))))))) (or (not (not (not (and (and (and x2 x0) (not x1)) (or (or x1 x0) (and x2 x2)))))) (not (and (and (or (or (not x0) (not x0)) (and (and x1 x1) (and x0 x1))) (and (and (not x2) (and x2 x1)) (not (not x2)))) (and (or (and (or x2 x0) (or x2 x1)) (and (and x2 x1) (and x0 x2))) (not (not (not x0)))))))) (and (or (not (and (and (and (and (or x1 x1) (not x0)) (not (not x1))) (or (not (not x2)) (and (and x1 x1) (not x0)))) (and (or (or (and x2 x2) (or x0 x1)) (and (and x0 x2) (not x1))) (and (not (not x2)) (and (not x2) (not x1)))))) (not (or (or (or (and (and x1 x1) (not x0)) (not (and x2 x0))) (and (and (and x1 x1) (not x0)) (or (and x2 x0) (or x2 x0)))) (not (and (not (not x2)) (or (or x1 x2) (not x0))))))) (and (not (not (or (and (and (and x2 x2) (not x1)) (not (or x2 x1))) (or (not (and x0 x0)) (not (and x2 x1)))))) (or (not (not (not (not (not x0))))) (or (not (and (or (and x2 x0) (and x2 x0)) (or (not x1) (or x1 x2)))) (or (not (not (or x2 x1))) (not (not (not x0)))))))))))
+(check-sat)
+(push 1)
+(assert (or (and (and (and (not (or (or (or (not x1) (and x2 x0)) (or (not x1) (or x0 x1))) (not (or (not x1) (or x1 x0))))) (and (or (or (and (not x2) (not x1)) (or (or x2 x2) (or x1 x0))) (not (and (and x0 x1) (or x0 x2)))) (not (or (or (and x1 x0) (or x0 x2)) (and (and x1 x1) (or x0 x0)))))) (not (and (not (not (or (or x0 x2) (not x2)))) (or (not (not (and x2 x2))) (not (not (and x1 x1))))))) (not (not (or (and (not (not (not x0))) (and (or (not x2) (not x2)) (not (and x0 x0)))) (or (or (and (not x2) (not x2)) (or (not x2) (and x2 x1))) (and (and (not x0) (or x2 x2)) (and (or x1 x1) (not x0)))))))) (not (or (and (or (or (or (and (and x0 x1) (or x0 x1)) (and (or x0 x0) (not x2))) (not (and (not x0) (or x2 x2)))) (and (or (and (not x1) (or x2 x0)) (not (not x0))) (or (or (and x1 x1) (not x0)) (not (or x0 x0))))) (not (not (or (or (not x1) (not x2)) (and (or x2 x2) (not x1)))))) (and (and (not (or (and (or x0 x2) (not x2)) (not (and x2 x2)))) (and (and (or (or x1 x1) (not x1)) (not (and x0 x0))) (not (not (not x2))))) (and (and (and (and (and x1 x1) (not x0)) (not (not x2))) (and (not (not x0)) (or (or x1 x0) (and x1 x1)))) (or (or (and (and x0 x1) (or x0 x0)) (or (not x1) (and x0 x1))) (not (and (and x1 x1) (not x1))))))))))
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(assert (and x2 x2))
+(check-sat)
+(push 1)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_44.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_44.smt2
new file mode 100644 (file)
index 0000000..763e3ec
--- /dev/null
@@ -0,0 +1,31 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(declare-fun x4 () Bool)
+(declare-fun x5 () Bool)
+(declare-fun x6 () Bool)
+(declare-fun x7 () Bool)
+(declare-fun x8 () Bool)
+(assert (or (not (not (and (and (not (not (not (not (or x2 x4))))) (and (not (or (not (not x4)) (or (or x2 x8) (or x3 x7)))) (and (or (or (not x8) (not x8)) (not (not x5))) (or (not (not x3)) (or (or x3 x7) (or x5 x2)))))) (or (and (and (or (and (and x8 x5) (not x5)) (and (or x8 x6) (not x7))) (and (and (or x7 x2) (or x6 x5)) (and (or x8 x6) (and x4 x0)))) (not (or (and (not x3) (and x6 x6)) (or (not x8) (or x1 x3))))) (and (not (and (or (and x5 x0) (not x0)) (or (or x8 x3) (or x0 x5)))) (and (or (or (and x6 x0) (not x1)) (or (or x3 x3) (or x2 x7))) (not (and (not x3) (or x0 x1))))))))) (not (and (and (or (or (not (and (not (or x2 x2)) (and (and x6 x2) (or x7 x6)))) (or (and (and (not x3) (not x7)) (or (not x8) (or x0 x0))) (and (not (or x7 x3)) (or (or x8 x6) (and x2 x1))))) (not (not (or (and (and x1 x1) (or x2 x3)) (not (not x0)))))) (not (not (not (or (or (or x8 x6) (and x7 x0)) (and (not x0) (not x7))))))) (or (and (and (or (not (not (not x7))) (and (or (and x2 x8) (or x2 x8)) (or (not x8) (or x6 x8)))) (or (and (and (and x6 x4) (not x0)) (or (or x2 x4) (or x8 x1))) (or (or (not x4) (not x8)) (or (or x8 x2) (and x8 x8))))) (and (not (not (or (and x0 x2) (not x5)))) (not (or (or (not x8) (and x8 x6)) (or (or x1 x6) (and x4 x6)))))) (not (and (or (not (or (not x8) (or x8 x4))) (or (and (or x6 x7) (or x5 x2)) (or (and x8 x2) (and x5 x0)))) (not (and (or (and x2 x1) (and x1 x5)) (or (not x7) (or x5 x4)))))))))))
+(assert (or (and (or (and (and (not (and x5 x1)) (and (and x6 x6) (and x6 x4))) (not (not (and x4 x1)))) (and (or (not (or x5 x0)) (or (and x4 x0) (not x2))) (and (and (or x4 x3) (or x5 x4)) (and (or x0 x3) (and x2 x5))))) (and (and (and (not (or x7 x7)) (or (and x5 x4) (or x0 x2))) (not (not (or x7 x6)))) (and (not (or (and x4 x2) (and x4 x3))) (or (and (and x1 x5) (not x3)) (or (and x2 x0) (or x7 x2)))))) (or (or (and (or (not (and x2 x6)) (or (not x3) (and x6 x4))) (or (not (and x7 x0)) (not (or x3 x2)))) (and (or (and (and x4 x1) (or x6 x8)) (or (not x0) (or x0 x0))) (and (or (not x8) (not x7)) (or (or x7 x0) (not x7))))) (or (or (not (not (not x3))) (and (or (not x6) (and x0 x5)) (or (not x6) (and x6 x6)))) (not (and (and (not x6) (not x4)) (and (or x4 x4) (not x7))))))))
+(check-sat)
+(push 1)
+(assert (and (or (or x8 x0) (and x1 x0)) (and (and x6 x5) (not x3))))
+(assert (and x6 x2))
+(check-sat)
+(pop 1)
+(assert (and (and (or x0 x6) (not x3)) (or (and x7 x7) (and x7 x3))))
+(assert (not (not (not (or x5 x3)))))
+(assert (not (and (and (and (not (and x2 x3)) (or (and x1 x5) (or x4 x2))) (or (or (or x4 x7) (and x5 x1)) (and (not x1) (and x1 x4)))) (or (or (and (not x6) (not x1)) (and (not x4) (or x6 x5))) (not (not (and x4 x8)))))))
+(assert (and (or (not (and (not (or (or (or (not x2) (not x0)) (or (or x6 x0) (or x7 x6))) (or (or (or x2 x3) (not x5)) (and (and x4 x6) (and x3 x0))))) (and (and (or (not (not x3)) (or (not x6) (and x6 x1))) (not (and (not x4) (and x3 x5)))) (and (not (not (and x1 x8))) (or (or (not x5) (and x4 x7)) (and (and x5 x4) (or x8 x7))))))) (or (and (not (or (or (or (not x2) (not x2)) (not (or x5 x2))) (not (and (and x6 x5) (and x0 x1))))) (or (not (or (and (and x7 x8) (and x5 x3)) (not (and x6 x4)))) (not (not (and (not x6) (or x5 x0)))))) (or (not (not (not (or (not x7) (and x7 x5))))) (or (and (or (not (or x0 x3)) (not (and x0 x2))) (not (and (not x8) (not x7)))) (or (or (and (and x7 x5) (and x7 x5)) (or (or x4 x5) (not x4))) (and (or (or x4 x4) (and x8 x5)) (not (and x8 x3)))))))) (and (or (and (not (or (not (or (and x1 x6) (or x8 x3))) (not (not (not x8))))) (and (and (or (or (not x8) (and x2 x5)) (and (and x6 x4) (not x8))) (and (and (and x0 x7) (not x2)) (not (or x3 x6)))) (and (not (not (or x7 x8))) (not (not (or x0 x5)))))) (and (not (and (or (and (not x5) (and x4 x4)) (or (or x4 x1) (or x7 x7))) (and (and (and x3 x7) (not x7)) (or (not x2) (not x2))))) (not (not (or (not (or x7 x1)) (and (and x2 x8) (not x5))))))) (or (not (and (and (or (or (or x5 x5) (and x1 x5)) (not (and x4 x1))) (and (and (and x3 x0) (and x2 x5)) (not (or x6 x5)))) (or (or (and (or x8 x4) (not x3)) (and (not x6) (and x3 x7))) (and (and (not x0) (or x5 x5)) (or (not x5) (and x8 x1)))))) (and (or (not (and (and (not x6) (not x3)) (and (not x6) (or x5 x2)))) (not (or (or (or x8 x1) (and x8 x6)) (or (not x3) (or x8 x3))))) (not (or (and (and (and x2 x2) (not x5)) (not (and x8 x0))) (and (and (not x3) (not x1)) (and (and x2 x3) (not x6))))))))))
+(assert (or (or (and (and (not x7) (or x2 x6)) (or (and x3 x2) (and x8 x1))) (not (or (and x6 x5) (or x7 x1)))) (or (and (not (not x4)) (and (and x2 x5) (or x4 x1))) (not (not (or x7 x5))))))
+(assert (or (or (and (and (and (not (or (and x4 x7) (or x6 x2))) (and (or (and x2 x8) (or x2 x4)) (and (or x4 x2) (or x7 x7)))) (or (not (or (or x3 x2) (not x1))) (and (or (or x4 x8) (or x8 x1)) (and (not x6) (and x5 x1))))) (and (and (or (not (not x3)) (and (not x1) (and x1 x5))) (not (and (and x5 x4) (or x6 x7)))) (not (or (or (not x4) (and x2 x8)) (and (not x1) (or x3 x2)))))) (not (or (not (or (or (and x2 x4) (or x5 x6)) (not (not x8)))) (not (or (not (or x1 x5)) (not (or x4 x5))))))) (or (not (and (not (not (or (not x0) (and x7 x1)))) (and (or (and (or x0 x0) (or x5 x0)) (and (not x5) (or x5 x6))) (not (or (and x1 x5) (not x7)))))) (not (and (and (not (or (and x4 x8) (or x3 x8))) (not (or (or x6 x4) (not x5)))) (not (or (and (not x0) (not x2)) (or (or x4 x6) (or x0 x2)))))))))
+(assert (not (and (and (or x3 x2) (or x1 x8)) (and (and x5 x5) (not x8)))))
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_45.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_45.smt2
new file mode 100644 (file)
index 0000000..228450d
--- /dev/null
@@ -0,0 +1,52 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: unsat
+; EXPECT: unsat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(declare-fun x4 () Bool)
+(declare-fun x5 () Bool)
+(declare-fun x6 () Bool)
+(assert (or (or (not (and (or (or (not (and (or x6 x3) (not x4))) (and (or (and x2 x3) (not x3)) (and (or x4 x1) (or x4 x3)))) (or (and (not (and x2 x5)) (and (and x2 x0) (and x5 x0))) (and (or (or x1 x4) (and x0 x0)) (or (and x1 x2) (not x5))))) (or (or (or (and (and x6 x5) (not x6)) (and (and x2 x3) (not x4))) (and (not (or x5 x0)) (or (and x1 x3) (and x1 x5)))) (and (not (or (and x0 x5) (and x2 x0))) (or (or (or x6 x2) (not x1)) (or (and x3 x6) (and x4 x2))))))) (and (not (or (or (not (not (or x4 x0))) (or (not (or x2 x4)) (and (not x2) (or x1 x3)))) (or (or (not (not x3)) (and (and x0 x4) (or x0 x0))) (not (and (not x0) (or x3 x2)))))) (or (or (or (or (and (not x3) (or x5 x6)) (and (or x6 x4) (or x5 x5))) (not (or (or x1 x2) (and x6 x4)))) (not (or (and (and x2 x4) (and x5 x2)) (and (not x5) (and x2 x1))))) (not (or (or (not (not x4)) (not (not x1))) (or (not (not x2)) (or (or x4 x6) (and x6 x1)))))))) (not (not (or (or (or (not (and (or x3 x2) (or x1 x4))) (and (or (and x3 x2) (and x4 x0)) (or (not x2) (and x2 x6)))) (and (not (and (and x3 x4) (not x1))) (or (not (and x3 x5)) (and (not x4) (or x5 x5))))) (not (or (or (or (or x6 x5) (or x1 x4)) (or (or x1 x4) (and x6 x0))) (not (not (not x6))))))))))
+(assert (or (and (or (and (or (and (not (and (and x5 x5) (not x6))) (not (not (not x3)))) (and (and (and (and x5 x0) (and x4 x3)) (not (and x2 x1))) (not (or (and x1 x3) (and x0 x6))))) (not (and (not (and (or x4 x1) (not x0))) (and (not (or x3 x3)) (or (or x4 x4) (not x3)))))) (or (or (not (or (and (or x3 x2) (or x3 x1)) (not (and x6 x4)))) (not (and (not (or x1 x6)) (or (not x2) (or x1 x6))))) (and (not (or (and (not x3) (and x1 x4)) (and (or x4 x1) (and x6 x6)))) (not (or (and (or x2 x2) (or x3 x1)) (or (not x2) (and x3 x1))))))) (and (not (and (not (not (or (and x6 x1) (and x1 x6)))) (or (or (and (or x5 x6) (not x5)) (or (and x5 x2) (not x5))) (and (or (and x1 x0) (or x6 x3)) (or (and x0 x5) (and x1 x3)))))) (or (and (not (or (not (or x3 x5)) (or (and x4 x2) (not x5)))) (and (not (or (not x6) (and x5 x4))) (and (or (not x3) (or x6 x3)) (not (and x1 x2))))) (and (not (and (not (or x5 x0)) (not (and x1 x3)))) (not (or (and (not x3) (or x0 x6)) (not (or x5 x3)))))))) (and (not (not (and (not (and (or (and x2 x3) (or x5 x6)) (and (not x0) (or x4 x1)))) (or (not (and (and x0 x4) (or x6 x4))) (and (not (or x3 x5)) (or (and x2 x1) (and x6 x3))))))) (not (not (not (or (and (not (or x1 x0)) (or (and x4 x1) (not x4))) (and (not (not x2)) (and (not x2) (and x3 x3))))))))))
+(check-sat)
+(push 1)
+(assert (or (not (not (not x6))) (and (or (and x1 x1) (not x2)) (and (or x4 x3) (not x1)))))
+(assert (not (and (and x0 x3) (or x3 x4))))
+(assert (or (and x5 x3) (not x4)))
+(assert (or (or (or (not (not (or (or (and x3 x2) (and x1 x2)) (and (or x5 x5) (not x6))))) (not (and (and (and (not x6) (or x1 x0)) (or (or x3 x3) (or x3 x3))) (and (or (and x0 x4) (not x3)) (or (not x1) (and x0 x6)))))) (and (and (or (or (not (and x6 x5)) (and (not x5) (or x6 x2))) (not (and (and x6 x2) (not x3)))) (not (or (or (not x5) (not x4)) (or (and x3 x6) (or x6 x1))))) (or (or (not (and (not x6) (or x1 x6))) (and (or (not x3) (and x1 x0)) (not (not x6)))) (not (not (not (not x2))))))) (not (and (and (or (not (not (not x2))) (or (and (not x3) (and x3 x4)) (not (and x1 x3)))) (or (or (and (not x0) (or x0 x0)) (or (not x3) (and x1 x0))) (not (not (and x5 x6))))) (and (and (and (not (not x2)) (not (or x6 x3))) (or (and (not x1) (not x1)) (and (and x1 x5) (and x2 x6)))) (not (not (and (not x1) (or x4 x5)))))))))
+(assert (or (and (not (not (not (or (and (or (or x3 x5) (not x3)) (not (or x0 x5))) (or (or (not x3) (or x0 x2)) (or (not x3) (not x4))))))) (not (or (not (and (or (and (or x5 x1) (and x5 x2)) (not (not x5))) (not (or (not x1) (and x6 x6))))) (and (or (and (or (or x3 x1) (or x5 x4)) (and (not x2) (and x1 x2))) (and (or (and x0 x2) (and x6 x6)) (and (and x3 x4) (not x2)))) (or (and (not (not x2)) (and (not x3) (and x1 x5))) (and (not (or x1 x1)) (or (and x2 x5) (not x2)))))))) (and (or (not (not (not (and (and (not x4) (not x0)) (and (and x0 x3) (and x1 x0)))))) (and (or (not (and (and (or x2 x3) (not x2)) (or (not x2) (and x5 x4)))) (not (not (not (and x1 x4))))) (or (and (or (not (or x0 x4)) (and (not x4) (not x2))) (not (and (and x5 x0) (or x5 x1)))) (not (and (and (or x2 x4) (not x0)) (not (not x2))))))) (and (or (not (or (or (or (not x6) (not x1)) (not (or x6 x4))) (and (and (not x6) (not x4)) (not (and x3 x6))))) (not (not (not (not (not x1)))))) (not (or (or (and (not (and x4 x0)) (and (not x6) (or x4 x5))) (not (and (not x6) (or x5 x1)))) (or (and (or (or x1 x2) (or x5 x5)) (not (not x1))) (or (and (and x6 x6) (not x4)) (or (or x2 x0) (and x3 x0))))))))))
+(check-sat)
+(pop 1)
+(assert (or (and (not (and x2 x5)) (and (or x3 x4) (or x0 x3))) (or (or (not x1) (and x3 x3)) (not (or x5 x1)))))
+(check-sat)
+(push 1)
+(assert (not (not (not (or (or x2 x3) (and x2 x1))))))
+(assert (not (and (not (and (or (or x4 x4) (or x1 x5)) (or (and x1 x1) (or x4 x3)))) (or (or (and (not x6) (not x6)) (and (not x1) (or x3 x6))) (not (not (and x4 x0)))))))
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(assert (and (and (not (not (and (or (and x6 x6) (and x4 x4)) (or (or x2 x1) (or x0 x2))))) (and (and (not (or (and x0 x5) (or x2 x4))) (not (or (not x1) (not x1)))) (or (and (and (not x1) (not x3)) (not (or x4 x6))) (or (or (or x2 x6) (or x3 x4)) (and (and x3 x3) (or x0 x1)))))) (or (not (not (or (not (not x4)) (and (or x6 x0) (or x2 x0))))) (or (not (and (and (and x1 x3) (not x4)) (not (and x0 x1)))) (or (and (or (or x6 x4) (or x0 x6)) (or (or x6 x4) (not x4))) (and (not (or x5 x3)) (and (or x2 x2) (not x5))))))))
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(check-sat)
+(pop 1)
+(assert (or (and (or (not (or (or (or (or x1 x4) (and x3 x2)) (or (or x5 x1) (or x6 x2))) (or (not (and x3 x5)) (or (and x0 x1) (not x6))))) (and (and (and (or (and x3 x3) (or x2 x5)) (not (and x0 x4))) (not (not (not x4)))) (or (and (or (or x2 x1) (and x2 x2)) (not (or x1 x4))) (not (and (not x1) (and x0 x2)))))) (not (or (not (and (and (not x1) (and x3 x4)) (and (not x6) (or x6 x1)))) (not (not (and (or x2 x2) (and x4 x6))))))) (not (or (and (and (not (and (or x6 x5) (and x5 x2))) (not (or (not x4) (or x6 x1)))) (or (or (and (not x0) (not x4)) (or (and x4 x5) (not x4))) (or (and (or x6 x1) (and x3 x6)) (or (not x6) (or x4 x1))))) (not (or (and (and (or x2 x6) (not x3)) (or (or x3 x6) (or x1 x4))) (not (and (not x5) (not x0)))))))))
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_46.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_46.smt2
new file mode 100644 (file)
index 0000000..784a6a3
--- /dev/null
@@ -0,0 +1,50 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(declare-fun x4 () Bool)
+(declare-fun x5 () Bool)
+(declare-fun x6 () Bool)
+(declare-fun x7 () Bool)
+(declare-fun x8 () Bool)
+(assert (or (or (not (not x7)) (or (or x2 x5) (or x8 x5))) (and (or (and x7 x8) (not x3)) (and (or x5 x7) (or x5 x1)))))
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(assert (or (or (or (not x3) (or x4 x0)) (not (not x1))) (and (not (not x1)) (and (or x6 x8) (and x0 x8)))))
+(assert (and (not (and x7 x6)) (not (and x7 x8))))
+(assert (or x6 x3))
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(assert (not (not (not (or x1 x2)))))
+(check-sat)
+(pop 1)
+(assert (or (or (and (not (not (or x8 x7))) (and (and (and x3 x8) (and x6 x0)) (not (and x1 x7)))) (or (or (not (not x4)) (or (and x0 x0) (and x6 x7))) (not (not (or x7 x5))))) (not (or (not (and (not x6) (not x1))) (or (or (and x3 x1) (not x6)) (or (and x5 x4) (not x4)))))))
+(check-sat)
+(push 1)
+(assert (and (not x2) (not x5)))
+(check-sat)
+(push 1)
+(assert (or (or (not (not (not (or (or (or x1 x5) (not x7)) (or (not x1) (or x4 x4)))))) (or (not (and (or (or (not x0) (or x8 x4)) (and (not x4) (or x5 x3))) (not (not (not x6))))) (not (or (and (or (or x4 x8) (not x8)) (and (or x8 x8) (or x6 x0))) (not (and (and x4 x0) (or x7 x5))))))) (or (not (or (and (and (not (and x1 x1)) (or (not x8) (not x5))) (and (not (and x0 x2)) (or (or x8 x4) (or x4 x6)))) (not (not (or (and x1 x7) (or x7 x0)))))) (not (not (and (and (and (or x4 x3) (or x0 x8)) (not (and x8 x7))) (or (or (not x1) (and x0 x5)) (and (or x8 x3) (and x4 x6)))))))))
+(assert (or (and (and (not (not (and (or (not (and x3 x8)) (and (or x8 x0) (or x3 x5))) (not (or (or x7 x1) (and x6 x4)))))) (or (not (or (not (and (or x3 x8) (and x2 x1))) (and (not (or x6 x2)) (not (or x8 x6))))) (or (or (or (not (or x3 x6)) (not (not x1))) (or (or (and x4 x6) (or x6 x1)) (or (and x3 x3) (not x4)))) (or (or (and (or x0 x3) (or x6 x1)) (or (or x2 x5) (and x2 x4))) (or (not (not x1)) (not (or x5 x8))))))) (not (or (or (not (and (or (and x1 x4) (not x6)) (not (or x0 x7)))) (not (not (and (not x5) (or x4 x7))))) (or (and (and (not (or x8 x5)) (not (and x3 x6))) (and (and (not x1) (not x6)) (or (or x8 x8) (and x6 x1)))) (and (or (and (or x6 x5) (and x4 x6)) (or (or x1 x0) (or x1 x5))) (or (or (not x4) (not x3)) (not (or x1 x8)))))))) (not (or (and (and (not (or (not (or x3 x6)) (or (or x1 x1) (and x2 x0)))) (not (and (not (not x7)) (not (and x3 x4))))) (not (or (not (and (not x8) (not x5))) (and (or (not x6) (and x4 x3)) (not (not x2)))))) (and (or (not (not (or (or x1 x6) (not x5)))) (not (or (and (not x0) (and x1 x6)) (and (or x0 x5) (and x3 x0))))) (or (not (and (not (and x3 x7)) (and (or x0 x5) (and x1 x0)))) (and (or (not (not x3)) (and (or x7 x3) (or x8 x1))) (not (not (not x5))))))))))
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_47.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_47.smt2
new file mode 100644 (file)
index 0000000..69ceead
--- /dev/null
@@ -0,0 +1,23 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXIT: 20
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(check-sat)
+(push 1)
+(assert (or (and x1 x2) (and x1 x2)))
+(assert (or (and (or (and (and (and (and (and (not (or x1 x2)) (not (and x0 x2))) (or (and (and x1 x2) (not x2)) (or (or x1 x2) (not x1)))) (or (or (not (not x1)) (or (and x0 x2) (or x2 x2))) (and (not (or x0 x0)) (not (and x1 x1))))) (not (not (and (not (not x2)) (and (or x1 x0) (and x0 x2)))))) (and (and (or (not (not (or x0 x2))) (not (or (not x2) (or x2 x0)))) (not (not (not (not x1))))) (or (not (and (not (and x1 x0)) (not (and x0 x1)))) (not (or (not (or x2 x2)) (or (not x2) (and x1 x0))))))) (not (not (or (not (not (or (and x0 x0) (and x1 x2)))) (not (and (or (and x2 x2) (or x2 x2)) (or (not x2) (or x1 x1)))))))) (or (not (and (or (not (or (and (and x0 x1) (or x0 x1)) (and (not x1) (and x1 x2)))) (or (and (not (and x1 x1)) (not (or x0 x2))) (not (not (not x2))))) (or (and (not (and (not x1) (and x2 x1))) (not (and (or x2 x1) (not x0)))) (or (or (not (or x1 x1)) (and (or x1 x2) (or x2 x1))) (or (and (or x1 x0) (and x2 x2)) (and (and x1 x0) (not x1))))))) (or (or (and (and (and (and (and x2 x0) (not x0)) (and (and x0 x1) (or x0 x2))) (not (or (and x1 x2) (or x1 x1)))) (and (or (not (not x1)) (not (or x1 x1))) (or (not (or x2 x0)) (not (and x2 x2))))) (and (and (or (not (and x1 x0)) (not (or x1 x0))) (and (not (not x1)) (and (not x1) (not x0)))) (not (or (and (not x1) (or x0 x1)) (and (or x0 x1) (not x2)))))) (and (or (or (not (or (and x0 x1) (not x0))) (not (and (not x1) (or x1 x2)))) (not (not (or (and x0 x1) (not x2))))) (or (or (or (not (not x2)) (and (or x0 x1) (and x1 x2))) (or (not (not x0)) (or (not x1) (and x1 x1)))) (or (and (and (not x2) (or x2 x2)) (not (not x0))) (and (not (or x0 x0)) (not (not x2))))))))) (and (and (or (or (not (or (and (not (and x2 x2)) (or (not x0) (or x0 x0))) (or (not (or x0 x0)) (and (not x2) (not x0))))) (or (and (or (or (or x2 x0) (and x2 x1)) (or (not x0) (not x1))) (and (or (not x1) (or x0 x2)) (or (or x0 x0) (not x0)))) (and (not (or (not x0) (and x2 x1))) (not (or (or x1 x1) (and x1 x1)))))) (and (not (not (and (not (and x2 x0)) (not (and x1 x2))))) (not (and (or (and (and x0 x0) (not x0)) (or (not x0) (or x2 x1))) (and (and (or x0 x2) (or x0 x2)) (and (or x1 x2) (not x0))))))) (and (not (or (or (not (and (and x0 x2) (and x0 x0))) (or (or (and x0 x0) (or x1 x1)) (or (and x2 x2) (or x0 x0)))) (or (or (not (or x2 x1)) (or (not x0) (or x1 x1))) (or (or (not x0) (and x0 x1)) (not (and x2 x1)))))) (not (or (not (or (or (or x0 x0) (or x2 x0)) (and (and x1 x0) (and x2 x0)))) (or (and (or (or x1 x1) (not x2)) (and (and x2 x0) (not x1))) (and (not (not x0)) (or (and x1 x1) (or x2 x2)))))))) (and (and (or (or (not (or (and (and x1 x1) (or x0 x2)) (not (and x0 x1)))) (not (or (and (and x0 x0) (and x1 x1)) (and (or x2 x0) (or x1 x2))))) (and (not (and (and (or x0 x0) (not x0)) (and (and x1 x2) (not x2)))) (and (or (and (or x1 x0) (or x0 x1)) (and (or x1 x2) (or x0 x1))) (and (not (and x0 x2)) (and (and x2 x0) (not x0)))))) (and (not (or (and (and (and x0 x1) (not x0)) (and (not x2) (not x2))) (and (and (and x2 x1) (not x1)) (not (or x2 x1))))) (not (and (and (and (not x0) (and x0 x2)) (not (and x2 x1))) (not (or (or x2 x0) (or x0 x2))))))) (not (and (not (or (or (and (or x2 x0) (or x1 x1)) (not (and x2 x0))) (not (not (not x0))))) (and (not (and (and (not x1) (and x2 x2)) (and (not x2) (not x1)))) (or (or (or (and x0 x0) (not x2)) (or (and x1 x2) (and x0 x2))) (or (or (and x2 x2) (or x2 x2)) (and (not x1) (or x1 x1)))))))))))
+(assert (and x1 x2))
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(assert (not (and (or (and (not x2) (or x0 x1)) (or (not x1) (not x2))) (or (or (not x2) (or x0 x2)) (and (not x1) (or x1 x2))))))
+(assert (not (and (and x1 x2) (or x1 x1))))
+(assert (or (not (not x2)) (not (and x0 x2))))
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_48.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_48.smt2
new file mode 100644 (file)
index 0000000..13f6262
--- /dev/null
@@ -0,0 +1,25 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXIT: 20
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(declare-fun x4 () Bool)
+(declare-fun x5 () Bool)
+(assert (and (or (not (not (and x0 x4))) (and (not (not x2)) (not (not x4)))) (not (or (not (or x2 x5)) (and (not x4) (not x1))))))
+(assert (and (and (not (and (and (not (and (and (and x5 x0) (not x4)) (or (and x0 x0) (or x0 x0)))) (or (or (not (or x5 x2)) (or (not x3) (or x4 x2))) (not (and (and x1 x0) (not x0))))) (and (not (or (and (or x1 x3) (and x1 x0)) (and (and x2 x0) (and x2 x3)))) (not (not (or (not x5) (not x5))))))) (or (or (or (and (or (and (not x2) (or x1 x0)) (not (not x1))) (and (and (and x4 x3) (or x4 x3)) (and (not x5) (or x0 x2)))) (and (not (not (not x2))) (or (or (or x2 x1) (or x3 x2)) (and (or x2 x2) (and x4 x2))))) (not (or (or (and (or x1 x5) (or x3 x5)) (not (not x5))) (not (and (not x3) (not x3)))))) (not (or (and (or (or (or x4 x4) (or x0 x2)) (not (or x0 x4))) (or (or (or x2 x1) (or x1 x4)) (or (or x4 x4) (or x1 x5)))) (and (not (or (or x3 x4) (or x2 x0))) (not (not (or x2 x3)))))))) (and (or (or (not (not (not (and (not x2) (or x1 x2))))) (and (not (or (and (and x5 x3) (not x3)) (or (and x4 x0) (not x0)))) (not (not (and (and x0 x5) (and x3 x1)))))) (not (and (not (and (not (or x1 x3)) (not (or x1 x5)))) (not (not (not (or x1 x1))))))) (not (and (or (or (not (not (not x0))) (and (not (not x1)) (or (not x0) (or x4 x3)))) (or (and (or (and x4 x0) (and x1 x2)) (or (not x1) (not x5))) (or (or (or x3 x0) (or x3 x4)) (or (or x3 x4) (and x1 x2))))) (not (and (not (or (not x3) (not x3))) (and (and (or x5 x1) (not x2)) (or (or x5 x4) (or x0 x5))))))))))
+(check-sat)
+(push 1)
+(assert (and x0 x1))
+(check-sat)
+(push 1)
+(assert (and (or (and (and (or (or (not (or x4 x3)) (or (or x1 x0) (or x5 x3))) (and (or (not x0) (not x5)) (or (and x5 x0) (and x5 x0)))) (not (and (and (and x0 x1) (not x2)) (not (or x3 x3))))) (and (not (and (not (and x3 x1)) (not (not x1)))) (not (and (or (or x1 x0) (or x4 x4)) (or (not x5) (and x3 x4)))))) (or (not (or (not (or (and x3 x2) (or x0 x2))) (or (not (and x0 x0)) (and (not x4) (not x3))))) (not (or (and (and (or x5 x3) (and x2 x5)) (not (or x4 x4))) (or (not (not x1)) (or (or x3 x4) (not x5))))))) (not (and (and (not (not (or (not x0) (or x1 x4)))) (and (or (or (not x1) (not x5)) (not (or x2 x3))) (and (and (and x5 x3) (not x2)) (not (not x5))))) (or (or (and (and (and x0 x4) (not x5)) (not (or x0 x0))) (or (not (or x0 x4)) (and (not x1) (or x2 x0)))) (and (not (or (or x4 x2) (or x3 x3))) (and (and (and x5 x3) (and x4 x3)) (and (not x4) (not x1)))))))))
+(check-sat)
+(pop 1)
+(assert (not (not (not (and (or (or (and (or x4 x3) (and x1 x4)) (and (or x3 x0) (not x0))) (and (and (or x1 x4) (and x3 x5)) (or (or x1 x5) (and x0 x1)))) (or (and (not (not x5)) (or (or x0 x2) (and x5 x0))) (and (or (not x2) (not x4)) (or (and x2 x5) (not x0)))))))))
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_49.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_49.smt2
new file mode 100644 (file)
index 0000000..f82ee00
--- /dev/null
@@ -0,0 +1,15 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: unsat
+; EXIT: 20
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(assert (and (not (and (or (and (and (or (or (or x0 x1) (and x0 x0)) (or (not x0) (and x0 x1))) (or (not (or x0 x0)) (not (and x0 x0)))) (not (or (not (not x0)) (not (and x0 x1))))) (and (or (and (and (not x1) (or x1 x0)) (not (and x0 x1))) (not (not (or x1 x0)))) (not (not (and (or x0 x1) (not x0)))))) (and (not (or (and (and (not x1) (not x0)) (and (and x0 x1) (and x1 x1))) (and (not (and x0 x0)) (not (or x0 x0))))) (and (or (or (and (or x1 x1) (and x0 x1)) (not (or x0 x0))) (and (or (or x1 x1) (or x0 x0)) (and (or x1 x1) (and x0 x1)))) (not (or (and (not x0) (or x0 x1)) (or (and x0 x0) (or x0 x1)))))))) (or (not (and (and (and (not (and (not x0) (not x0))) (and (and (or x0 x1) (not x0)) (or (not x0) (or x0 x0)))) (and (and (and (not x0) (and x0 x1)) (and (not x0) (not x1))) (and (not (not x0)) (and (and x1 x1) (not x0))))) (or (not (not (not (not x0)))) (not (and (and (or x0 x1) (or x1 x1)) (or (or x1 x1) (or x0 x1))))))) (or (and (not (and (or (not (not x0)) (or (or x0 x1) (or x1 x0))) (or (and (not x1) (and x0 x1)) (or (not x1) (and x1 x0))))) (and (not (and (not (not x0)) (and (not x1) (and x1 x0)))) (not (not (and (or x0 x1) (or x0 x1)))))) (and (or (and (and (and (or x1 x0) (and x1 x0)) (and (not x1) (or x1 x1))) (or (and (and x1 x0) (not x1)) (and (not x1) (or x1 x1)))) (or (and (or (not x1) (not x1)) (and (or x0 x0) (not x0))) (not (and (not x0) (and x0 x1))))) (and (and (or (and (not x1) (or x0 x1)) (and (not x1) (or x1 x1))) (and (and (and x1 x1) (or x1 x0)) (and (not x0) (or x1 x1)))) (or (and (or (and x1 x0) (or x1 x1)) (or (or x1 x1) (and x1 x0))) (not (and (and x0 x1) (not x1))))))))))
+(assert (not (not (or (or (or (or (or (and x0 x0) (and x1 x0)) (or (and x1 x1) (and x0 x0))) (or (not (and x1 x1)) (and (or x1 x0) (or x0 x0)))) (and (and (or (and x1 x0) (or x1 x0)) (and (or x0 x1) (or x0 x0))) (and (not (not x0)) (and (and x1 x1) (or x1 x0))))) (and (not (not (and (or x0 x0) (and x1 x0)))) (not (or (or (and x1 x0) (or x0 x0)) (or (not x1) (and x1 x0)))))))))
+(check-sat)
+(push 1)
+(assert (or (or (or (not (not (or x1 x1))) (not (not (and x0 x1)))) (and (not (not (not x0))) (not (and (not x0) (and x0 x1))))) (not (or (and (not (not x1)) (and (not x0) (or x1 x0))) (not (and (not x1) (and x1 x0)))))))
+(assert (or x0 x0))
+(assert (and (not (and (or (or x0 x0) (and x1 x1)) (and (or x1 x0) (or x0 x1)))) (and (or (not (or x1 x1)) (not (not x0))) (or (or (and x1 x1) (not x1)) (not (or x0 x0))))))
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_5.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_5.smt2
new file mode 100644 (file)
index 0000000..0e30d29
--- /dev/null
@@ -0,0 +1,66 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(declare-fun x4 () Bool)
+(declare-fun x5 () Bool)
+(declare-fun x6 () Bool)
+(assert (or (or (not (not (and (and x3 x0) (not x2)))) (and (not (not (and x1 x6))) (and (and (or x1 x4) (or x0 x3)) (or (or x0 x4) (or x3 x3))))) (and (and (not (not (or x5 x3))) (or (or (and x5 x1) (not x4)) (and (or x4 x3) (and x4 x5)))) (not (or (not (not x6)) (or (not x0) (not x6)))))))
+(check-sat)
+(push 1)
+(assert (not (not (or (not (not (and (and x6 x1) (or x2 x1)))) (and (or (not (or x1 x0)) (or (not x1) (or x3 x6))) (or (not (and x3 x1)) (not (not x1))))))))
+(assert (or (not (not (or x4 x3))) (or (not (and x4 x4)) (not (or x3 x5)))))
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(assert (not (or (not (not (and (and (not (not (not x5))) (and (not (and x5 x4)) (not (or x1 x0)))) (not (and (or (or x2 x4) (not x4)) (or (and x3 x6) (and x6 x2))))))) (and (and (not (and (or (not (or x1 x2)) (not (or x6 x1))) (or (and (not x3) (or x3 x5)) (or (and x4 x4) (and x6 x6))))) (not (and (not (or (or x3 x2) (not x2))) (not (or (not x2) (not x6)))))) (or (not (or (not (not (or x4 x3))) (and (and (and x2 x6) (or x6 x5)) (or (or x1 x3) (and x2 x3))))) (or (and (and (or (and x6 x0) (and x5 x1)) (not (not x1))) (or (or (and x0 x2) (not x0)) (not (or x0 x5)))) (and (not (and (not x2) (not x2))) (not (or (not x3) (not x5))))))))))
+(check-sat)
+(pop 1)
+(check-sat)
+(pop 1)
+(assert (or (and (and (and (and (or (not (not (and (not x1) (not x2)))) (not (and (not (and x0 x4)) (and (not x3) (or x5 x1))))) (or (or (and (or (and x3 x6) (and x3 x1)) (not (or x1 x4))) (and (or (not x5) (not x0)) (not (not x3)))) (or (and (and (or x6 x5) (and x5 x5)) (or (and x1 x6) (and x5 x6))) (or (and (or x5 x6) (or x5 x4)) (not (or x2 x0)))))) (or (and (and (and (or (or x4 x2) (or x5 x1)) (and (or x5 x0) (and x5 x5))) (not (and (not x5) (or x3 x1)))) (not (and (and (or x5 x1) (and x0 x2)) (not (and x6 x3))))) (and (not (or (not (or x2 x2)) (and (or x0 x2) (not x0)))) (not (or (not (not x3)) (not (and x4 x6))))))) (or (not (or (or (or (or (not x3) (or x0 x3)) (not (and x0 x6))) (or (and (or x2 x4) (or x2 x6)) (and (or x3 x0) (not x6)))) (and (or (and (or x1 x4) (not x3)) (and (not x2) (not x0))) (not (or (not x5) (not x2)))))) (not (or (not (or (or (and x3 x2) (or x3 x6)) (and (and x1 x2) (or x1 x6)))) (not (and (or (not x4) (not x2)) (not (and x0 x0)))))))) (or (not (and (or (not (and (and (or x3 x4) (and x4 x1)) (not (not x1)))) (not (not (not (or x0 x2))))) (and (not (or (and (or x6 x2) (not x5)) (and (and x6 x6) (or x6 x6)))) (and (and (or (or x2 x2) (or x2 x1)) (or (not x1) (and x4 x1))) (or (or (not x4) (and x5 x6)) (or (not x0) (not x2))))))) (not (not (not (or (not (and (or x0 x5) (and x4 x0))) (not (not (and x3 x3))))))))) (or (and (not (not (or (and (or (not (and x3 x2)) (not (and x2 x3))) (not (or (not x2) (and x4 x0)))) (or (and (and (not x3) (and x6 x5)) (or (and x3 x3) (or x5 x0))) (not (or (or x4 x5) (or x2 x1))))))) (or (or (or (not (not (not (or x4 x4)))) (and (not (or (or x0 x4) (and x1 x3))) (and (not (and x5 x4)) (or (not x5) (not x5))))) (or (or (not (or (and x3 x6) (and x6 x1))) (not (or (and x5 x1) (not x5)))) (and (or (or (not x4) (not x4)) (and (and x2 x2) (or x4 x0))) (and (not (or x5 x2)) (or (not x5) (or x3 x5)))))) (not (and (not (and (and (not x0) (not x3)) (not (or x2 x2)))) (and (or (or (and x4 x6) (not x1)) (and (not x4) (or x3 x6))) (or (and (or x0 x1) (and x1 x4)) (or (and x4 x2) (and x2 x0)))))))) (and (or (or (not (and (or (or (or x2 x2) (not x1)) (and (or x4 x3) (or x1 x3))) (or (or (or x4 x0) (not x2)) (or (and x1 x3) (or x2 x5))))) (and (or (and (and (and x3 x3) (and x3 x4)) (not (and x6 x3))) (not (or (or x6 x1) (or x1 x6)))) (or (or (or (not x2) (not x0)) (or (and x6 x6) (not x6))) (not (not (not x0)))))) (and (not (or (or (and (and x1 x1) (and x6 x2)) (or (not x2) (and x2 x2))) (and (not (or x0 x5)) (and (not x4) (not x4))))) (or (not (and (and (or x0 x3) (and x2 x6)) (not (not x0)))) (not (or (not (and x3 x3)) (or (not x5) (and x1 x6))))))) (not (or (or (and (not (not (not x4))) (and (and (not x3) (and x4 x3)) (not (or x4 x2)))) (or (not (or (and x2 x6) (or x5 x2))) (and (not (or x6 x6)) (not (not x0))))) (and (not (and (or (or x4 x3) (and x1 x4)) (and (or x1 x6) (or x0 x1)))) (or (or (and (or x5 x1) (not x3)) (or (not x0) (or x1 x5))) (or (and (or x3 x6) (not x0)) (or (not x2) (or x2 x4)))))))))))
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(assert (or (and (not (not x0)) (and (and x0 x1) (or x2 x1))) (not (and (not x4) (or x6 x0)))))
+(assert (not (not (and (or (or (and (and (or x4 x6) (or x3 x1)) (not (and x4 x5))) (or (not (not x3)) (and (not x6) (and x3 x6)))) (and (and (not (not x0)) (not (and x5 x5))) (or (not (or x1 x0)) (and (and x2 x3) (not x6))))) (or (and (and (not (or x0 x2)) (and (not x4) (or x3 x1))) (not (or (not x6) (and x4 x4)))) (not (not (not (and x6 x2)))))))))
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(assert (and (and (or (and (or (or (or (or (and (and x1 x4) (or x0 x0)) (or (not x3) (or x1 x4))) (not (not (and x6 x0)))) (or (and (and (or x1 x4) (not x4)) (or (not x1) (or x1 x0))) (and (or (not x6) (and x5 x2)) (and (not x2) (not x1))))) (or (and (not (and (and x2 x2) (not x3))) (not (or (or x4 x2) (not x5)))) (not (not (or (or x1 x1) (and x0 x4)))))) (or (or (or (and (not (and x1 x6)) (and (and x6 x2) (and x3 x3))) (not (not (or x5 x4)))) (or (or (not (or x6 x4)) (or (not x0) (not x4))) (not (or (and x4 x4) (not x3))))) (or (or (not (not (or x3 x2))) (or (or (and x6 x0) (not x2)) (and (not x5) (or x6 x0)))) (or (not (and (and x2 x3) (not x6))) (or (not (and x0 x4)) (or (or x3 x6) (not x1))))))) (not (and (or (and (and (or (not x2) (or x0 x6)) (not (and x5 x4))) (not (not (not x1)))) (not (or (or (or x5 x0) (not x4)) (not (not x4))))) (and (and (or (not (not x0)) (not (or x0 x3))) (or (and (or x1 x4) (and x3 x5)) (not (not x1)))) (not (or (not (and x4 x2)) (and (and x0 x2) (not x2)))))))) (and (and (or (and (or (or (and (not x4) (or x6 x3)) (not (not x5))) (and (and (and x2 x0) (or x2 x2)) (not (and x0 x0)))) (or (not (or (and x3 x4) (and x4 x0))) (or (not (not x0)) (not (not x3))))) (not (and (and (or (and x0 x2) (or x4 x4)) (and (and x4 x6) (not x0))) (or (not (or x0 x3)) (or (not x1) (or x3 x1)))))) (not (not (not (not (not (not x0))))))) (and (or (or (not (and (not (or x6 x3)) (not (and x4 x0)))) (not (and (and (not x4) (and x1 x3)) (not (not x5))))) (not (not (or (or (not x4) (not x1)) (or (not x3) (not x4)))))) (and (or (and (and (not (and x4 x5)) (or (and x0 x5) (or x6 x1))) (and (and (and x0 x1) (not x1)) (or (not x5) (and x5 x2)))) (not (or (or (and x4 x4) (or x5 x4)) (not (or x0 x4))))) (not (and (not (and (or x3 x6) (and x1 x1))) (or (or (or x1 x6) (or x6 x0)) (or (or x6 x0) (not x2))))))))) (or (and (and (or (and (or (not (not (not x1))) (and (not (or x6 x0)) (and (not x1) (not x1)))) (or (or (not (or x2 x6)) (and (or x4 x1) (or x0 x1))) (or (and (and x0 x6) (or x6 x0)) (or (and x2 x3) (or x4 x1))))) (or (not (and (not (or x2 x3)) (not (or x2 x4)))) (or (not (not (not x2))) (not (or (or x1 x4) (and x6 x2)))))) (not (or (or (not (and (or x3 x1) (or x4 x5))) (not (or (or x6 x5) (and x1 x6)))) (and (and (or (or x4 x4) (and x6 x6)) (and (and x2 x5) (not x5))) (or (or (not x2) (and x5 x6)) (or (not x3) (and x5 x6))))))) (or (and (or (not (or (and (or x5 x6) (and x2 x5)) (or (and x5 x3) (or x1 x2)))) (and (or (and (or x1 x2) (or x6 x5)) (and (not x5) (not x2))) (not (and (not x5) (not x0))))) (or (and (and (and (not x5) (and x5 x0)) (or (or x6 x6) (not x2))) (and (not (or x6 x1)) (not (and x6 x4)))) (or (not (and (not x4) (and x5 x6))) (or (or (or x1 x2) (not x5)) (not (or x3 x5)))))) (not (and (not (and (and (not x4) (or x4 x6)) (not (not x1)))) (not (and (or (or x0 x4) (not x4)) (and (or x5 x2) (not x1)))))))) (or (not (not (not (not (or (and (or x1 x4) (or x1 x2)) (not (not x1))))))) (and (not (not (and (or (or (and x0 x2) (not x4)) (or (or x5 x0) (or x6 x3))) (or (or (or x1 x3) (not x5)) (and (not x5) (and x4 x0)))))) (or (not (not (and (or (or x4 x4) (and x1 x6)) (not (not x2))))) (not (or (not (and (or x4 x0) (and x5 x1))) (and (and (and x3 x0) (not x1)) (and (and x6 x0) (not x1)))))))))))
+(assert (or (or (and (not (not (and (not x3) (or x3 x3)))) (or (or (not (or x1 x6)) (and (and x2 x6) (or x1 x0))) (or (not (and x5 x0)) (or (or x6 x0) (not x0))))) (or (or (not (and (and x5 x4) (not x5))) (or (or (or x4 x1) (and x4 x0)) (or (not x0) (or x5 x6)))) (not (or (or (or x3 x1) (or x3 x6)) (or (or x1 x5) (or x5 x6)))))) (or (not (or (or (and (not x2) (and x0 x0)) (or (or x2 x6) (and x5 x5))) (or (or (not x6) (and x2 x3)) (not (and x4 x4))))) (and (and (or (not (and x3 x5)) (or (and x6 x4) (and x6 x6))) (not (or (not x6) (and x1 x2)))) (not (not (and (and x0 x4) (and x1 x0))))))))
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(assert (not (not (and x6 x6))))
+(check-sat)
+(pop 1)
+(assert (not (or (or (or x6 x6) (or x1 x5)) (and (not x2) (and x2 x3)))))
+(check-sat)
+(push 1)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_50.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_50.smt2
new file mode 100644 (file)
index 0000000..325d7c4
--- /dev/null
@@ -0,0 +1,13 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: unsat
+; EXIT: 20
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(assert (not (not (or x0 x0))))
+(check-sat)
+(push 1)
+(assert (not (and (not (not (not (or (or x0 x0) (not x0))))) (not (not (and (and (or x0 x0) (and x0 x0)) (or (or x0 x0) (not x0))))))))
+(assert (or (not (not (not (and (not (not (or x0 x0))) (not (or (not x0) (not x0))))))) (and (not (or (or (and (and (and x0 x0) (or x0 x0)) (not (not x0))) (or (not (not x0)) (and (not x0) (and x0 x0)))) (or (not (or (not x0) (not x0))) (or (or (and x0 x0) (or x0 x0)) (and (and x0 x0) (and x0 x0)))))) (and (and (or (not (and (not x0) (and x0 x0))) (and (not (not x0)) (not (or x0 x0)))) (not (or (or (or x0 x0) (and x0 x0)) (not (not x0))))) (not (and (or (not (and x0 x0)) (or (or x0 x0) (or x0 x0))) (not (and (and x0 x0) (and x0 x0)))))))))
+(assert (or (or (not (or (or x0 x0) (or x0 x0))) (or (or (and x0 x0) (or x0 x0)) (or (or x0 x0) (and x0 x0)))) (or (or (not (or x0 x0)) (or (or x0 x0) (not x0))) (or (not (and x0 x0)) (and (or x0 x0) (or x0 x0))))))
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_51.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_51.smt2
new file mode 100644 (file)
index 0000000..a5d312a
--- /dev/null
@@ -0,0 +1,37 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: unsat
+; EXPECT: unsat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXIT: 20
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(check-sat)
+(push 1)
+(assert (not (and (or (and (and (or x0 x0) (or x0 x0)) (or (not x0) (and x0 x0))) (and (or (or x0 x0) (not x0)) (not (and x0 x0)))) (or (or (or (not x0) (or x0 x0)) (and (or x0 x0) (and x0 x0))) (or (or (not x0) (or x0 x0)) (not (or x0 x0)))))))
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(check-sat)
+(pop 1)
+(assert (or (and (and (not (and (or (or (or (not (not x0)) (not (and x0 x0))) (or (not (and x0 x0)) (and (and x0 x0) (and x0 x0)))) (not (not (or (or x0 x0) (or x0 x0))))) (or (not (or (or (not x0) (not x0)) (not (or x0 x0)))) (not (not (and (and x0 x0) (and x0 x0))))))) (or (or (not (or (and (or (and x0 x0) (and x0 x0)) (not (or x0 x0))) (not (and (or x0 x0) (or x0 x0))))) (or (not (not (and (and x0 x0) (and x0 x0)))) (not (not (and (or x0 x0) (not x0)))))) (not (not (and (and (or (and x0 x0) (or x0 x0)) (and (or x0 x0) (not x0))) (not (not (or x0 x0)))))))) (and (or (or (or (and (and (not (and x0 x0)) (and (and x0 x0) (or x0 x0))) (or (and (not x0) (and x0 x0)) (and (not x0) (or x0 x0)))) (and (or (and (and x0 x0) (or x0 x0)) (or (or x0 x0) (and x0 x0))) (or (and (or x0 x0) (and x0 x0)) (or (and x0 x0) (not x0))))) (or (and (and (or (not x0) (not x0)) (and (not x0) (not x0))) (or (or (not x0) (and x0 x0)) (or (or x0 x0) (and x0 x0)))) (not (and (not (or x0 x0)) (not (not x0)))))) (or (not (not (or (not (or x0 x0)) (and (and x0 x0) (or x0 x0))))) (and (or (not (or (not x0) (or x0 x0))) (or (or (not x0) (or x0 x0)) (or (not x0) (or x0 x0)))) (and (not (or (not x0) (not x0))) (not (and (not x0) (or x0 x0))))))) (or (or (and (or (and (and (not x0) (and x0 x0)) (not (and x0 x0))) (not (not (not x0)))) (and (and (or (and x0 x0) (not x0)) (and (or x0 x0) (not x0))) (or (not (and x0 x0)) (not (and x0 x0))))) (and (or (or (not (not x0)) (and (not x0) (and x0 x0))) (not (or (and x0 x0) (or x0 x0)))) (not (and (not (not x0)) (not (and x0 x0)))))) (not (and (not (not (not (not x0)))) (or (not (not (or x0 x0))) (not (or (and x0 x0) (or x0 x0))))))))) (not (and (or (not (and (and (not (not (not x0))) (and (and (and x0 x0) (and x0 x0)) (and (not x0) (or x0 x0)))) (and (or (or (and x0 x0) (not x0)) (and (not x0) (not x0))) (or (not (or x0 x0)) (and (or x0 x0) (or x0 x0)))))) (not (and (or (or (and (and x0 x0) (not x0)) (and (not x0) (and x0 x0))) (or (not (and x0 x0)) (not (or x0 x0)))) (and (and (or (not x0) (and x0 x0)) (and (and x0 x0) (and x0 x0))) (and (or (or x0 x0) (or x0 x0)) (or (and x0 x0) (or x0 x0))))))) (and (or (and (and (or (and (and x0 x0) (not x0)) (or (and x0 x0) (not x0))) (and (and (not x0) (and x0 x0)) (not (or x0 x0)))) (or (and (or (and x0 x0) (and x0 x0)) (not (or x0 x0))) (not (or (and x0 x0) (or x0 x0))))) (and (or (or (and (or x0 x0) (or x0 x0)) (not (not x0))) (and (not (and x0 x0)) (not (not x0)))) (and (not (and (not x0) (not x0))) (and (or (and x0 x0) (and x0 x0)) (or (or x0 x0) (and x0 x0)))))) (and (and (or (not (not (and x0 x0))) (or (or (and x0 x0) (not x0)) (or (not x0) (or x0 x0)))) (not (or (and (not x0) (and x0 x0)) (or (and x0 x0) (or x0 x0))))) (not (or (or (not (not x0)) (or (not x0) (not x0))) (not (not (and x0 x0)))))))))))
+(check-sat)
+(push 1)
+(assert (and (not (and (not (not (not x0))) (or (not (not x0)) (and (not x0) (or x0 x0))))) (or (not (not (or (not x0) (or x0 x0)))) (and (and (or (or x0 x0) (not x0)) (not (and x0 x0))) (not (or (not x0) (not x0)))))))
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(assert (not (or (not (or (and (and (not (or (not (not x0)) (not (not x0)))) (and (not (not (or x0 x0))) (or (and (or x0 x0) (and x0 x0)) (and (or x0 x0) (and x0 x0))))) (or (not (or (and (not x0) (not x0)) (or (not x0) (not x0)))) (and (and (or (not x0) (and x0 x0)) (or (or x0 x0) (and x0 x0))) (not (not (and x0 x0)))))) (not (not (and (or (not (and x0 x0)) (or (or x0 x0) (and x0 x0))) (not (not (and x0 x0)))))))) (not (or (and (or (and (not (or (not x0) (and x0 x0))) (and (or (and x0 x0) (and x0 x0)) (not (or x0 x0)))) (or (and (or (not x0) (not x0)) (not (and x0 x0))) (or (and (and x0 x0) (not x0)) (and (or x0 x0) (and x0 x0))))) (and (or (and (and (or x0 x0) (not x0)) (or (or x0 x0) (and x0 x0))) (not (or (and x0 x0) (and x0 x0)))) (not (or (not (not x0)) (or (not x0) (not x0)))))) (or (or (or (and (or (and x0 x0) (not x0)) (not (not x0))) (and (not (or x0 x0)) (and (not x0) (not x0)))) (or (not (and (and x0 x0) (and x0 x0))) (and (not (not x0)) (and (or x0 x0) (not x0))))) (or (and (not (not (not x0))) (and (and (and x0 x0) (not x0)) (or (and x0 x0) (and x0 x0)))) (or (and (not (or x0 x0)) (and (and x0 x0) (not x0))) (or (not (not x0)) (and (or x0 x0) (or x0 x0)))))))))))
+(check-sat)
+(push 1)
+(assert (and (or (not (not (and (and (not (not (not (and x0 x0)))) (not (not (and (or x0 x0) (not x0))))) (and (or (or (and (or x0 x0) (or x0 x0)) (or (not x0) (or x0 x0))) (and (and (and x0 x0) (not x0)) (or (not x0) (or x0 x0)))) (or (not (and (and x0 x0) (not x0))) (not (not (not x0)))))))) (or (and (and (and (or (or (not (not x0)) (and (or x0 x0) (or x0 x0))) (and (and (and x0 x0) (or x0 x0)) (and (not x0) (or x0 x0)))) (or (or (not (not x0)) (or (or x0 x0) (and x0 x0))) (or (or (and x0 x0) (or x0 x0)) (not (and x0 x0))))) (not (or (not (or (and x0 x0) (not x0))) (and (and (not x0) (not x0)) (or (not x0) (or x0 x0)))))) (not (and (and (not (and (or x0 x0) (not x0))) (and (or (or x0 x0) (or x0 x0)) (or (and x0 x0) (or x0 x0)))) (or (or (not (not x0)) (and (not x0) (and x0 x0))) (and (and (or x0 x0) (or x0 x0)) (and (and x0 x0) (not x0))))))) (not (or (or (and (not (and (and x0 x0) (and x0 x0))) (or (or (or x0 x0) (or x0 x0)) (and (and x0 x0) (not x0)))) (not (not (or (or x0 x0) (or x0 x0))))) (not (or (or (or (and x0 x0) (not x0)) (not (or x0 x0))) (or (not (or x0 x0)) (and (and x0 x0) (or x0 x0))))))))) (or (or (and (not (not (not (and (or (or x0 x0) (not x0)) (and (not x0) (not x0)))))) (or (or (not (and (not (and x0 x0)) (not (and x0 x0)))) (not (not (not (or x0 x0))))) (or (and (or (or (or x0 x0) (not x0)) (or (and x0 x0) (not x0))) (or (and (not x0) (and x0 x0)) (not (not x0)))) (not (or (and (not x0) (and x0 x0)) (and (not x0) (and x0 x0))))))) (or (not (and (and (or (or (or x0 x0) (or x0 x0)) (not (not x0))) (or (and (not x0) (and x0 x0)) (not (and x0 x0)))) (or (or (not (not x0)) (or (and x0 x0) (and x0 x0))) (not (and (not x0) (and x0 x0)))))) (or (and (or (not (and (and x0 x0) (and x0 x0))) (not (or (not x0) (or x0 x0)))) (and (not (and (or x0 x0) (or x0 x0))) (or (or (not x0) (or x0 x0)) (or (and x0 x0) (or x0 x0))))) (not (or (and (or (not x0) (and x0 x0)) (and (and x0 x0) (or x0 x0))) (not (and (or x0 x0) (and x0 x0)))))))) (not (or (and (or (or (or (and (or x0 x0) (and x0 x0)) (and (not x0) (or x0 x0))) (and (or (or x0 x0) (not x0)) (or (or x0 x0) (and x0 x0)))) (not (or (and (or x0 x0) (or x0 x0)) (or (or x0 x0) (or x0 x0))))) (or (not (and (and (or x0 x0) (or x0 x0)) (or (and x0 x0) (not x0)))) (and (not (and (or x0 x0) (not x0))) (and (and (or x0 x0) (and x0 x0)) (and (not x0) (not x0)))))) (and (not (or (or (or (and x0 x0) (not x0)) (or (not x0) (or x0 x0))) (and (and (not x0) (not x0)) (not (not x0))))) (not (or (not (and (not x0) (or x0 x0))) (or (or (not x0) (and x0 x0)) (not (and x0 x0)))))))))))
+(assert (or (not (and (or x0 x0) (or x0 x0))) (or (not (or x0 x0)) (not (not x0)))))
+(assert (not (and (not (and (or (and (or x0 x0) (and x0 x0)) (not (and x0 x0))) (not (not (or x0 x0))))) (and (and (not (or (not x0) (not x0))) (and (or (and x0 x0) (or x0 x0)) (and (not x0) (not x0)))) (or (and (and (and x0 x0) (and x0 x0)) (or (not x0) (not x0))) (and (and (or x0 x0) (or x0 x0)) (or (not x0) (not x0))))))))
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_52.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_52.smt2
new file mode 100644 (file)
index 0000000..dd7bbef
--- /dev/null
@@ -0,0 +1,48 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: unsat
+; EXPECT: unsat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXIT: 20
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(declare-fun x4 () Bool)
+(declare-fun x5 () Bool)
+(declare-fun x6 () Bool)
+(declare-fun x7 () Bool)
+(assert (not (and (not x3) (or x2 x1))))
+(assert (or (not (or (and (not (or (or (or (not x2) (not x7)) (and (or x7 x4) (or x6 x7))) (not (not (or x6 x4))))) (not (or (or (and (or x1 x5) (and x4 x7)) (or (and x4 x6) (and x0 x0))) (not (and (and x5 x7) (and x0 x5)))))) (and (or (not (and (not (or x1 x7)) (and (or x1 x5) (and x6 x1)))) (or (and (not (not x5)) (not (not x5))) (and (or (or x0 x5) (and x1 x3)) (or (or x0 x6) (and x2 x7))))) (not (or (not (and (and x0 x4) (not x2))) (not (and (or x1 x3) (not x7)))))))) (not (and (and (not (or (or (or (not x7) (and x0 x5)) (not (or x4 x3))) (or (and (and x3 x1) (and x7 x4)) (or (and x5 x4) (not x6))))) (not (not (or (or (not x1) (or x7 x1)) (and (or x1 x5) (or x3 x1)))))) (or (and (not (and (and (and x2 x7) (or x4 x5)) (not (or x6 x4)))) (not (and (or (or x5 x2) (and x4 x3)) (or (or x4 x0) (and x0 x1))))) (not (and (and (and (not x1) (or x2 x1)) (not (or x7 x6))) (not (or (and x4 x4) (not x2))))))))))
+(assert (and (or (and (not (or (and (and (or (not x0) (and x1 x7)) (and (not x0) (or x4 x5))) (or (or (and x6 x7) (or x3 x3)) (or (or x2 x2) (and x5 x6)))) (not (not (and (or x3 x6) (and x6 x0)))))) (and (not (not (not (not (and x7 x6))))) (or (not (or (not (or x7 x4)) (or (or x7 x4) (or x4 x2)))) (not (and (and (not x3) (or x3 x1)) (not (or x5 x4))))))) (and (and (and (not (not (and (not x5) (and x7 x5)))) (not (not (and (not x4) (and x5 x6))))) (or (not (and (and (or x4 x3) (not x6)) (and (and x2 x5) (or x5 x2)))) (or (and (or (and x0 x1) (not x3)) (or (not x4) (or x0 x2))) (not (or (not x6) (not x0)))))) (not (not (or (and (and (and x3 x0) (not x0)) (not (not x3))) (not (and (and x5 x3) (not x7)))))))) (and (or (not (and (or (and (and (not x0) (or x4 x2)) (or (and x3 x0) (or x6 x0))) (or (or (not x6) (not x7)) (not (and x5 x0)))) (and (not (or (and x1 x5) (not x2))) (or (not (and x3 x4)) (and (and x2 x0) (and x1 x6)))))) (not (and (or (and (and (or x5 x5) (not x2)) (or (or x6 x7) (or x7 x5))) (not (and (and x0 x4) (or x5 x1)))) (and (or (or (not x0) (or x7 x2)) (or (not x3) (and x1 x0))) (or (not (not x3)) (and (or x0 x0) (and x0 x2))))))) (or (or (and (and (and (and (not x5) (and x7 x6)) (and (and x0 x2) (or x3 x4))) (not (and (not x7) (or x3 x1)))) (and (not (or (or x4 x3) (or x5 x1))) (not (and (and x0 x0) (or x7 x6))))) (not (and (not (not (and x2 x6))) (and (and (or x3 x6) (or x4 x3)) (or (and x2 x1) (and x7 x6)))))) (and (not (and (and (not (not x3)) (not (or x3 x1))) (not (or (or x2 x3) (not x0))))) (not (or (not (or (and x2 x1) (or x4 x2))) (not (or (not x4) (or x2 x7))))))))))
+(check-sat)
+(push 1)
+(assert (not (not (not (or (and (or (and x6 x5) (or x6 x7)) (or (not x2) (not x7))) (or (or (and x6 x3) (and x7 x7)) (or (and x6 x4) (or x0 x6))))))))
+(assert (not (or (not (and (not (or (not (and (or x0 x1) (not x1))) (or (or (and x3 x1) (and x2 x0)) (or (and x1 x3) (or x7 x3))))) (or (or (and (and (not x2) (not x0)) (and (not x4) (not x2))) (not (and (not x6) (not x7)))) (not (not (not (or x0 x2))))))) (and (and (or (not (or (and (or x4 x2) (and x6 x4)) (and (or x4 x3) (and x1 x6)))) (and (or (or (not x5) (and x1 x5)) (and (and x6 x0) (not x0))) (or (and (or x5 x2) (and x7 x4)) (not (not x6))))) (or (and (or (not (or x7 x4)) (and (and x3 x3) (or x4 x0))) (not (not (or x0 x3)))) (or (not (not (and x3 x2))) (or (not (or x1 x6)) (or (and x5 x6) (and x6 x6)))))) (or (and (and (or (and (or x3 x7) (not x4)) (not (not x0))) (or (not (and x4 x3)) (not (and x6 x1)))) (not (not (or (and x1 x5) (and x7 x3))))) (and (or (or (not (and x4 x0)) (or (and x5 x0) (or x5 x4))) (or (and (and x6 x7) (not x4)) (and (not x0) (and x3 x1)))) (or (not (or (not x6) (or x2 x4))) (or (or (or x1 x5) (not x1)) (or (not x5) (and x3 x6))))))))))
+(assert (not (or (not (not x4)) (and (and x5 x0) (and x6 x7)))))
+(assert (not (not (and (and (or (not x5) (or x4 x5)) (or (and x7 x5) (or x7 x0))) (not (not (and x1 x7)))))))
+(check-sat)
+(push 1)
+(check-sat)
+(pop 1)
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(assert (or (not (or x0 x6)) (not (and x1 x7))))
+(check-sat)
+(push 1)
+(assert (or (and (not x7) (not x4)) (or (not x3) (or x7 x7))))
+(assert (not (and (or (and (not (or (and (not (and (and x0 x0) (and x3 x3))) (and (and (not x3) (or x2 x5)) (not (not x0)))) (not (not (or (or x3 x5) (not x4)))))) (and (not (not (not (or (or x3 x4) (or x3 x6))))) (not (or (or (or (or x5 x1) (not x2)) (and (not x3) (and x1 x2))) (not (and (not x5) (and x1 x5))))))) (not (and (or (not (not (or (or x3 x0) (not x2)))) (and (or (or (and x2 x6) (or x5 x6)) (and (or x7 x7) (not x3))) (not (not (and x0 x7))))) (or (or (and (or (not x7) (or x0 x0)) (and (and x2 x4) (not x1))) (not (or (not x3) (and x7 x2)))) (and (not (and (or x4 x0) (not x4))) (not (or (or x5 x7) (or x5 x3)))))))) (or (not (not (and (or (and (not (or x0 x2)) (not (and x4 x1))) (or (not (and x4 x3)) (and (or x4 x0) (not x0)))) (and (or (or (not x7) (and x7 x4)) (and (and x3 x3) (or x3 x4))) (or (or (or x7 x7) (or x5 x7)) (not (not x3))))))) (not (not (or (not (not (and (and x3 x6) (not x5)))) (and (and (or (or x6 x2) (and x2 x6)) (not (or x6 x0))) (not (and (or x6 x6) (not x1)))))))))))
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(assert (not (or (and (or (not x6) (and x4 x4)) (not (and x3 x3))) (and (not (or x2 x4)) (and (not x1) (or x4 x6))))))
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_6.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_6.smt2
new file mode 100644 (file)
index 0000000..9ed3737
--- /dev/null
@@ -0,0 +1,36 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(declare-fun x4 () Bool)
+(declare-fun x5 () Bool)
+(declare-fun x6 () Bool)
+(assert (and (or (or (or (not (and (and (or (and x2 x1) (and x0 x4)) (and (and x0 x2) (not x1))) (or (not (not x3)) (not (and x6 x0))))) (and (and (or (or (and x2 x0) (and x0 x0)) (and (and x1 x6) (not x6))) (or (not (and x1 x4)) (or (or x0 x0) (or x3 x0)))) (not (or (or (and x1 x2) (and x1 x4)) (not (and x3 x2)))))) (or (or (and (and (and (or x1 x4) (not x1)) (or (not x1) (and x4 x5))) (and (not (or x3 x2)) (and (not x4) (not x6)))) (or (not (not (not x6))) (not (not (or x0 x2))))) (and (and (or (or (or x6 x3) (or x3 x1)) (not (and x4 x1))) (and (not (or x1 x3)) (or (or x3 x4) (or x4 x1)))) (or (not (or (not x0) (and x4 x5))) (not (not (or x4 x4))))))) (or (not (or (or (and (or (not x1) (and x3 x3)) (not (or x4 x0))) (and (and (not x6) (and x6 x3)) (and (not x1) (not x6)))) (or (or (not (and x5 x0)) (or (not x1) (or x3 x0))) (and (not (and x0 x0)) (and (and x5 x6) (not x2)))))) (and (not (and (not (not (not x0))) (and (or (and x2 x2) (or x1 x4)) (or (and x1 x6) (and x5 x3))))) (and (not (not (not (or x0 x0)))) (or (or (and (or x0 x2) (or x5 x2)) (not (not x2))) (not (or (and x3 x2) (or x5 x3)))))))) (or (and (or (or (not (not (or (not x6) (and x1 x2)))) (not (and (not (and x1 x3)) (and (not x2) (and x1 x4))))) (not (or (and (and (or x1 x2) (or x0 x2)) (and (or x6 x6) (and x4 x0))) (and (and (or x0 x4) (or x6 x0)) (and (and x0 x2) (or x3 x6)))))) (or (and (or (or (and (and x4 x6) (or x2 x6)) (and (not x6) (or x6 x1))) (not (not (not x3)))) (or (and (not (and x5 x2)) (or (or x5 x1) (or x4 x6))) (and (not (or x3 x4)) (or (not x2) (not x2))))) (or (or (not (not (or x1 x1))) (and (not (or x6 x4)) (and (or x6 x1) (not x5)))) (and (and (not (or x0 x0)) (and (or x0 x6) (not x6))) (or (and (not x0) (or x2 x1)) (or (and x6 x3) (not x3))))))) (not (or (not (not (or (or (and x3 x0) (and x3 x5)) (and (or x3 x0) (and x3 x0))))) (not (or (not (or (or x6 x4) (not x5))) (not (or (and x5 x2) (and x4 x4))))))))))
+(assert (or x3 x5))
+(assert (or (and (not x1) (not x6)) (not (not x6))))
+(assert (not (not (and (and (or (or (and (not (or (or x0 x4) (and x4 x1))) (and (and (or x4 x5) (or x3 x1)) (or (not x0) (or x3 x4)))) (or (or (or (or x5 x5) (or x1 x4)) (or (and x5 x6) (not x1))) (or (or (or x2 x0) (or x0 x3)) (and (or x0 x4) (or x5 x6))))) (not (or (not (not (or x0 x2))) (and (and (and x0 x1) (and x0 x5)) (not (and x6 x0)))))) (and (not (or (not (or (or x2 x3) (and x6 x6))) (and (or (not x1) (or x2 x6)) (or (and x6 x4) (and x6 x5))))) (not (not (not (and (not x5) (or x1 x4))))))) (or (not (or (not (not (or (or x4 x0) (and x2 x6)))) (and (and (not (not x0)) (not (not x2))) (not (not (and x5 x6)))))) (or (and (and (and (or (not x4) (not x1)) (and (not x3) (not x1))) (not (and (not x1) (not x0)))) (or (or (or (or x3 x3) (not x3)) (or (not x0) (and x5 x5))) (or (not (and x0 x6)) (and (and x6 x1) (or x0 x3))))) (not (or (or (and (and x1 x5) (and x3 x6)) (and (not x0) (not x4))) (and (and (and x6 x0) (or x4 x0)) (or (and x0 x4) (not x5)))))))))))
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(assert (and x2 x0))
+(check-sat)
+(push 1)
+(assert (and (not (and (or x3 x3) (and x6 x0))) (or (not (or x6 x4)) (or (or x1 x2) (and x4 x6)))))
+(assert (and (not (or (and (and (and x4 x2) (not x3)) (or (or x5 x6) (not x2))) (not (or (not x0) (not x4))))) (or (or (not (or (not x0) (or x2 x2))) (and (and (not x5) (not x1)) (or (not x6) (not x5)))) (and (and (not (and x2 x1)) (not (or x6 x0))) (or (not (or x0 x2)) (not (and x1 x2)))))))
+(check-sat)
+(pop 1)
+(check-sat)
+(pop 1)
+(assert (and (not (or (not (not x4)) (or (or x1 x6) (and x2 x4)))) (not (and (and (or x1 x1) (and x1 x6)) (not (not x2))))))
+(assert (not (not x3)))
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_7.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_7.smt2
new file mode 100644 (file)
index 0000000..edb16c0
--- /dev/null
@@ -0,0 +1,43 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(declare-fun x4 () Bool)
+(declare-fun x5 () Bool)
+(declare-fun x6 () Bool)
+(declare-fun x7 () Bool)
+(declare-fun x8 () Bool)
+(declare-fun x9 () Bool)
+(assert (and (and (or (or (and (not (and (and (or x9 x6) (or x8 x9)) (not (not x2)))) (and (not (and (and x3 x1) (or x7 x0))) (or (and (or x6 x7) (not x2)) (or (or x8 x8) (not x0))))) (and (or (and (or (or x7 x5) (or x2 x8)) (not (not x3))) (and (and (and x2 x0) (and x1 x9)) (and (and x7 x5) (or x8 x5)))) (and (or (and (or x3 x6) (and x9 x4)) (or (not x8) (and x2 x6))) (not (and (not x7) (or x6 x1)))))) (not (or (or (and (and (and x6 x2) (or x5 x9)) (not (not x2))) (or (or (and x5 x0) (or x3 x0)) (or (or x6 x9) (not x5)))) (or (not (or (not x0) (or x7 x7))) (not (or (and x6 x1) (not x1))))))) (or (and (or (and (not (or (or x4 x2) (and x4 x3))) (or (not (or x1 x7)) (not (not x7)))) (or (or (or (or x3 x0) (and x0 x2)) (and (not x1) (or x3 x8))) (not (or (not x3) (or x3 x0))))) (or (not (or (and (and x3 x7) (not x2)) (or (not x6) (or x8 x9)))) (not (not (or (and x1 x2) (and x6 x3)))))) (and (or (or (not (and (not x3) (not x0))) (and (and (not x4) (and x6 x6)) (and (and x4 x1) (not x3)))) (and (and (or (or x9 x9) (not x5)) (or (and x3 x0) (and x3 x2))) (not (or (not x9) (not x7))))) (or (or (or (or (not x4) (and x0 x2)) (not (or x1 x7))) (and (and (or x1 x8) (and x1 x1)) (and (or x7 x7) (or x0 x1)))) (and (and (not (not x3)) (or (or x2 x0) (not x4))) (and (not (not x8)) (or (and x0 x0) (not x8)))))))) (or (not (or (and (and (not (not (and x1 x2))) (and (not (not x5)) (or (not x9) (and x2 x8)))) (and (or (or (or x7 x1) (not x7)) (not (not x8))) (or (not (and x9 x9)) (or (not x3) (and x0 x0))))) (and (not (not (not (and x6 x6)))) (or (or (and (or x6 x6) (and x0 x9)) (not (not x1))) (or (or (not x2) (or x3 x5)) (or (or x7 x5) (and x1 x0))))))) (not (not (or (or (not (and (and x9 x4) (not x7))) (and (not (and x3 x7)) (and (and x4 x4) (and x1 x0)))) (and (and (and (or x3 x7) (or x5 x7)) (not (not x3))) (not (or (not x7) (or x6 x4))))))))))
+(check-sat)
+(push 1)
+(assert (not (or (or (and x3 x8) (or x4 x0)) (and (not x9) (and x6 x8)))))
+(assert (not (and (and (or (or x9 x5) (and x4 x3)) (not (and x2 x9))) (and (or (and x3 x4) (not x4)) (and (and x0 x3) (or x6 x2))))))
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(assert (or (or (or (not x4) (and x9 x9)) (or (or x1 x5) (not x4))) (or (and (or x6 x0) (not x3)) (and (or x8 x7) (or x4 x4)))))
+(check-sat)
+(push 1)
+(assert (or (and (and x9 x7) (or x8 x2)) (or (not x9) (or x6 x0))))
+(check-sat)
+(pop 1)
+(assert (and (not (not (not (and (not (or (not x4) (not x2))) (and (and (and x3 x1) (and x0 x0)) (or (not x2) (not x4))))))) (or (or (not (or (not (not (and x9 x0))) (and (and (not x0) (and x4 x4)) (or (not x0) (not x7))))) (or (or (not (not (and x8 x1))) (or (or (and x1 x3) (and x4 x4)) (or (not x6) (not x7)))) (and (not (and (not x5) (not x1))) (not (and (not x1) (not x2)))))) (or (not (and (and (and (or x0 x8) (not x5)) (not (or x0 x8))) (not (not (not x1))))) (or (not (and (or (and x3 x2) (and x7 x2)) (and (or x6 x8) (not x1)))) (and (and (or (and x0 x6) (and x5 x4)) (and (and x0 x6) (and x1 x0))) (or (or (not x7) (and x2 x3)) (not (or x2 x9)))))))))
+(check-sat)
+(push 1)
+(assert (and (or (and (not (not (and (and x0 x4) (and x6 x4)))) (not (not (and (not x5) (not x9))))) (not (and (or (or (or x0 x1) (or x5 x5)) (not (not x6))) (and (or (and x2 x3) (and x3 x7)) (not (and x3 x3)))))) (or (not (not (or (not (not x8)) (and (not x7) (not x8))))) (not (or (not (not (or x8 x4))) (and (not (or x7 x6)) (not (and x5 x5))))))))
+(assert (not (or (and (and (or (or (or (and (not x4) (not x8)) (not (not x2))) (not (and (not x8) (or x6 x2)))) (not (not (or (and x7 x6) (and x0 x4))))) (or (or (not (not (and x3 x7))) (or (not (not x1)) (not (not x8)))) (and (not (or (not x6) (and x6 x8))) (or (and (not x4) (not x6)) (or (or x3 x1) (and x8 x3)))))) (or (and (not (or (not (and x7 x6)) (and (not x7) (and x5 x7)))) (not (and (not (and x6 x8)) (and (not x8) (not x5))))) (not (and (or (or (or x4 x0) (not x6)) (and (not x3) (not x8))) (not (and (not x1) (and x4 x9))))))) (and (or (and (and (and (and (and x9 x1) (not x9)) (or (or x5 x5) (not x7))) (or (and (not x5) (not x8)) (not (and x0 x1)))) (or (or (or (not x4) (or x1 x6)) (or (or x2 x0) (not x5))) (or (not (not x7)) (not (not x5))))) (or (and (not (or (and x1 x3) (or x1 x7))) (or (or (not x0) (not x6)) (or (not x9) (and x0 x0)))) (and (or (or (or x8 x1) (or x5 x8)) (or (or x1 x7) (and x2 x2))) (not (and (and x5 x9) (and x5 x8)))))) (or (not (and (and (and (or x4 x2) (and x8 x5)) (not (and x2 x2))) (not (not (not x3))))) (and (and (or (or (and x3 x3) (not x2)) (not (or x2 x6))) (or (and (and x9 x1) (not x1)) (not (and x6 x8)))) (not (not (or (not x2) (or x4 x1))))))))))
+(assert (and (not x4) (not x3)))
+(assert (and (or x8 x9) (not x1)))
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_8.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_8.smt2
new file mode 100644 (file)
index 0000000..01afa0d
--- /dev/null
@@ -0,0 +1,46 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: unsat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(declare-fun x4 () Bool)
+(declare-fun x5 () Bool)
+(check-sat)
+(push 1)
+(assert (or (or (and (and (and (not (and (or (not (or x1 x0)) (not (and x4 x3))) (and (or (not x1) (and x1 x5)) (or (and x4 x5) (and x0 x2))))) (and (and (or (and (or x5 x0) (not x2)) (or (not x1) (or x5 x0))) (not (or (or x3 x2) (and x2 x1)))) (and (or (not (not x0)) (and (or x1 x0) (not x4))) (and (not (or x1 x5)) (or (and x0 x2) (or x5 x3)))))) (not (not (or (or (not (not x3)) (or (or x0 x3) (or x4 x5))) (or (not (not x5)) (and (and x3 x1) (or x0 x5))))))) (not (or (and (not (or (not (or x0 x5)) (or (and x1 x0) (and x2 x4)))) (not (not (and (and x0 x0) (and x0 x4))))) (not (and (and (not (and x1 x2)) (or (or x2 x0) (or x3 x4))) (not (or (not x4) (not x2)))))))) (and (and (and (or (not (or (or (or x5 x1) (not x5)) (or (and x2 x0) (not x4)))) (or (or (or (and x4 x3) (not x0)) (not (or x2 x5))) (not (or (or x4 x1) (and x5 x3))))) (not (and (not (not (or x3 x1))) (not (and (and x3 x1) (not x2)))))) (not (or (or (not (and (not x5) (and x2 x5))) (not (and (or x3 x2) (or x4 x2)))) (and (and (and (not x2) (not x4)) (or (and x0 x4) (or x2 x1))) (and (not (or x0 x3)) (and (and x3 x3) (and x4 x5))))))) (or (and (or (and (or (not (or x2 x5)) (not (not x2))) (or (or (not x1) (not x2)) (or (and x5 x5) (not x2)))) (or (and (and (and x3 x2) (and x0 x1)) (not (not x5))) (not (or (and x4 x0) (and x0 x4))))) (not (or (or (not (not x4)) (or (not x3) (or x2 x4))) (not (or (not x0) (and x2 x0)))))) (or (and (or (not (and (and x1 x2) (not x3))) (and (or (not x1) (or x3 x4)) (not (or x4 x0)))) (not (or (and (and x1 x5) (and x0 x1)) (not (or x2 x0))))) (not (or (not (and (or x4 x5) (not x2))) (or (and (or x0 x3) (or x4 x1)) (and (or x5 x0) (not x4))))))))) (not (and (and (or (and (and (or (not (not x4)) (and (and x4 x0) (and x4 x2))) (and (or (or x5 x4) (and x3 x5)) (or (and x2 x4) (and x1 x3)))) (or (not (and (and x2 x5) (and x4 x3))) (or (not (not x3)) (and (and x3 x3) (and x1 x2))))) (or (not (or (not (not x2)) (not (or x3 x1)))) (and (and (or (or x1 x2) (not x2)) (and (or x0 x5) (and x1 x3))) (not (not (and x5 x0)))))) (or (not (or (and (or (and x3 x3) (not x5)) (and (not x4) (and x2 x5))) (not (or (not x3) (or x0 x0))))) (and (and (and (not (and x3 x1)) (not (and x4 x0))) (or (and (not x1) (and x1 x0)) (or (or x5 x3) (and x2 x2)))) (and (not (or (not x2) (and x4 x2))) (not (and (or x3 x5) (or x1 x1))))))) (and (and (or (or (or (not (and x1 x4)) (or (and x1 x1) (and x3 x5))) (or (or (and x4 x4) (or x4 x4)) (and (and x5 x4) (not x1)))) (or (or (not (and x0 x3)) (and (or x3 x2) (or x1 x3))) (and (or (and x0 x2) (or x5 x4)) (not (and x2 x4))))) (or (or (or (not (or x2 x3)) (and (or x2 x3) (or x4 x3))) (and (and (or x1 x2) (and x1 x1)) (not (or x4 x5)))) (and (or (or (and x5 x1) (not x1)) (and (or x3 x5) (not x0))) (and (not (not x5)) (not (and x4 x5)))))) (not (and (and (and (or (and x2 x2) (and x2 x3)) (not (or x3 x0))) (or (not (not x1)) (or (and x4 x2) (not x3)))) (and (or (or (or x4 x3) (or x3 x3)) (not (and x2 x2))) (or (and (and x1 x1) (or x2 x5)) (and (and x2 x3) (not x3)))))))))))
+(assert (and (not (not (not (or (and (and (not (and (not x5) (or x1 x1))) (not (or (or x2 x4) (not x0)))) (and (and (and (or x1 x4) (not x3)) (or (and x5 x0) (and x1 x0))) (not (not (not x4))))) (not (not (not (not (not x5))))))))) (not (or (not (and (not (not (not (and (and x0 x3) (or x5 x0))))) (and (and (not (and (and x4 x3) (or x1 x3))) (or (and (and x5 x0) (or x2 x0)) (or (and x4 x2) (and x0 x3)))) (or (or (and (and x3 x4) (or x0 x1)) (or (and x5 x0) (not x1))) (and (not (or x2 x5)) (and (not x1) (and x0 x1))))))) (not (or (not (or (and (or (and x0 x2) (and x5 x3)) (and (and x0 x3) (not x4))) (or (and (not x2) (not x0)) (and (or x2 x1) (not x1))))) (not (not (and (not (not x3)) (or (or x4 x0) (not x1)))))))))))
+(check-sat)
+(push 1)
+(assert (not (not (not (or (or (or x3 x5) (or x2 x0)) (or (or x3 x4) (or x2 x4)))))))
+(assert (and (and (or (not x5) (or x0 x3)) (or (and x2 x0) (or x0 x1))) (not (or (not x1) (and x4 x0)))))
+(assert (or (not (or x4 x0)) (and (or x1 x3) (and x5 x3))))
+(check-sat)
+(pop 1)
+(check-sat)
+(push 1)
+(assert (or (not (or (not (not x1)) (and (or x5 x4) (and x3 x4)))) (not (not (not (and x3 x2))))))
+(assert (not (not (and x2 x4))))
+(check-sat)
+(push 1)
+(assert (and x3 x3))
+(assert (not (and (not x1) (and x0 x5))))
+(assert (not (and (not (or (and (and (or x2 x1) (not x3)) (and (not x2) (or x1 x1))) (and (and (not x4) (not x5)) (not (not x4))))) (not (or (and (and (not x5) (and x2 x0)) (or (and x3 x5) (or x0 x3))) (not (or (or x2 x4) (not x1))))))))
+(check-sat)
+(pop 1)
+(assert (not (or (or (or (not x0) (not x5)) (or (and x3 x5) (not x0))) (and (not (and x2 x0)) (and (not x1) (not x1))))))
+(assert (or (not x4) (or x3 x4)))
+(assert (not (not (and (and (and x1 x4) (not x4)) (or (or x4 x3) (and x0 x2))))))
+(check-sat)
+(pop 1)
+(assert (not x1))
+(check-sat)
diff --git a/test/regress/regress0/push-pop/boolean/fuzz_9.smt2 b/test/regress/regress0/push-pop/boolean/fuzz_9.smt2
new file mode 100644 (file)
index 0000000..90466c9
--- /dev/null
@@ -0,0 +1,56 @@
+; COMMAND-LINE: --incremental
+; EXPECT: sat
+; EXPECT: sat
+; EXPECT: unsat
+; EXPECT: unsat
+; EXPECT: unsat
+; EXPECT: unsat
+; EXPECT: unsat
+; EXPECT: unsat
+; EXPECT: unsat
+; EXPECT: sat
+; EXIT: 10
+(set-logic QF_LIA)
+(declare-fun x0 () Bool)
+(declare-fun x1 () Bool)
+(declare-fun x2 () Bool)
+(declare-fun x3 () Bool)
+(declare-fun x4 () Bool)
+(declare-fun x5 () Bool)
+(declare-fun x6 () Bool)
+(declare-fun x7 () Bool)
+(declare-fun x8 () Bool)
+(assert (or (or (not (or (or (not (or (and x4 x4) (not x7))) (not (and (and x5 x7) (not x7)))) (and (and (and (and x6 x6) (not x0)) (not (or x3 x1))) (and (or (not x1) (and x5 x3)) (or (or x7 x6) (not x4)))))) (not (or (or (or (not (or x3 x7)) (not (and x2 x8))) (and (not (not x1)) (or (and x0 x3) (or x2 x5)))) (or (or (or (and x8 x1) (or x3 x0)) (and (not x5) (and x8 x6))) (not (not (and x2 x5))))))) (not (not (and (not (or (or (not x7) (and x8 x2)) (not (or x6 x3)))) (not (and (not (and x8 x3)) (or (not x3) (or x8 x2)))))))))
+(check-sat)
+(push 1)
+(assert (and (and (or (or (and (and (or x1 x5) (not x8)) (and (not x8) (and x0 x8))) (or (or (and x0 x3) (and x0 x6)) (and (or x7 x7) (and x7 x0)))) (or (and (or (and x8 x7) (or x3 x2)) (not (not x7))) (not (and (not x8) (not x5))))) (or (or (and (and (or x2 x6) (or x7 x4)) (and (or x4 x3) (not x5))) (and (or (not x2) (or x2 x7)) (not (and x8 x7)))) (and (and (and (and x5 x4) (not x3)) (not (not x8))) (or (and (or x6 x1) (or x0 x7)) (not (and x8 x4)))))) (and (not (and (or (not (or x5 x5)) (and (and x6 x3) (or x0 x0))) (and (not (or x0 x0)) (and (not x6) (and x8 x6))))) (or (and (not (not (and x3 x8))) (or (not (not x0)) (and (and x5 x6) (or x0 x4)))) (or (and (and (not x2) (not x0)) (and (and x4 x2) (or x1 x6))) (or (and (not x5) (not x8)) (not (and x5 x3))))))))
+(check-sat)
+(push 1)
+(assert (and (or x7 x5) (and x2 x6)))
+(check-sat)
+(push 1)
+(check-sat)
+(push 1)
+(assert (not (and x1 x6)))
+(assert (or x7 x7))
+(assert (not (or x0 x7)))
+(check-sat)
+(push 1)
+(assert (and (not (or (or (and x6 x2) (or x2 x8)) (or (and x7 x3) (or x2 x5)))) (and (or (not (not x4)) (and (not x4) (not x2))) (not (not (or x1 x7))))))
+(assert (not (and (or (and (and (not (and x6 x1)) (or (and x5 x3) (or x3 x1))) (or (or (not x2) (or x0 x1)) (not (or x7 x5)))) (not (or (not (not x8)) (and (not x4) (and x5 x8))))) (not (or (or (or (or x1 x1) (and x2 x3)) (and (and x5 x8) (not x7))) (and (not (or x5 x8)) (or (not x5) (and x2 x2))))))))
+(assert (not x4))
+(assert (not (and (not (or (not (or (not (or x8 x1)) (or (not x6) (not x4)))) (or (or (and (and x0 x7) (or x2 x7)) (or (or x7 x3) (and x5 x2))) (or (or (and x7 x0) (and x1 x1)) (and (not x7) (or x6 x7)))))) (or (and (and (and (not (not x0)) (and (or x7 x4) (or x3 x6))) (not (not (not x6)))) (or (or (and (and x1 x5) (or x7 x5)) (not (and x2 x3))) (not (or (not x8) (and x1 x8))))) (not (and (not (and (not x8) (and x1 x6))) (or (and (and x0 x0) (not x0)) (not (not x7)))))))))
+(assert (or x1 x2))
+(check-sat)
+(pop 1)
+(check-sat)
+(pop 1)
+(assert (not (and (not (and (not x5) (not x7))) (and (or (not x1) (and x4 x1)) (not (and x5 x8))))))
+(assert (not (and (or (and (not (and (and (not (or (not x5) (and x4 x7))) (and (and (and x6 x1) (not x3)) (not (and x5 x1)))) (and (or (or (or x7 x2) (or x2 x6)) (not (not x2))) (and (and (not x6) (and x4 x8)) (and (not x5) (or x1 x6)))))) (or (not (or (not (and (and x3 x5) (or x7 x3))) (or (not (not x7)) (not (not x0))))) (or (not (not (and (or x3 x6) (and x6 x2)))) (or (not (or (or x7 x3) (not x5))) (or (or (and x1 x2) (and x4 x2)) (not (not x7))))))) (and (not (not (or (not (or (not x0) (not x4))) (or (and (and x3 x2) (and x8 x3)) (and (not x1) (not x6)))))) (not (not (or (or (and (or x8 x3) (not x8)) (or (or x7 x5) (or x7 x7))) (and (or (or x4 x4) (or x3 x3)) (and (not x8) (not x7)))))))) (and (not (or (not (or (or (not (and x4 x4)) (or (and x5 x8) (or x5 x4))) (not (not (and x6 x3))))) (not (or (or (or (not x3) (or x5 x2)) (not (not x0))) (and (or (or x6 x4) (and x0 x3)) (and (not x2) (not x0))))))) (and (not (not (or (or (or (or x6 x6) (and x6 x8)) (or (or x1 x5) (or x8 x4))) (and (and (not x6) (or x8 x0)) (not (or x0 x5)))))) (or (not (not (or (or (not x0) (and x3 x4)) (or (and x3 x3) (not x2))))) (and (or (or (or (not x1) (not x0)) (not (or x0 x2))) (and (and (and x8 x7) (and x8 x2)) (or (or x7 x4) (and x1 x3)))) (or (or (or (or x8 x1) (or x8 x6)) (not (not x6))) (or (or (and x8 x7) (or x4 x6)) (and (not x3) (and x0 x0)))))))))))
+(check-sat)
+(pop 1)
+(check-sat)
+(pop 1)
+(assert (not (and (and x7 x2) (or x4 x6))))
+(check-sat)
+(push 1)