Fix regression error by turning off model-based solver when models are on
authorClark Barrett <barrett@cs.nyu.edu>
Tue, 2 Apr 2013 03:06:13 +0000 (23:06 -0400)
committerClark Barrett <barrett@cs.nyu.edu>
Tue, 2 Apr 2013 03:06:13 +0000 (23:06 -0400)
(ironic, yes, but model-based solver doesn't yet produce models)

src/smt/smt_engine.cpp

index 7bbc12551ab75cd6c326f87333f3464ffd24e719..de41a34a0f339b6b62e8b676f1f59c5bddc4f227 100644 (file)
@@ -874,11 +874,13 @@ void SmtEngine::setLogicInternal() throw() {
       options::arraysEagerIndexSplitting.set(false);
     }
   }
-  // Turn on model-based arrays for QF_AX
+  // Turn on model-based arrays for QF_AX (unless models are enabled)
   if(! options::arraysModelBased.wasSetByUser()) {
     if (not d_logic.isQuantified() &&
         d_logic.isTheoryEnabled(THEORY_ARRAY) &&
-        d_logic.isPure(THEORY_ARRAY)) {
+        d_logic.isPure(THEORY_ARRAY) &&
+        !options::produceModels() &&
+        !options::checkModels()) {
       Trace("smt") << "turning on model-based array solver" << endl;
       options::arraysModelBased.set(true);
     }