Disable uf symmetry breaker in incremental mode (#2091)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Tue, 26 Jun 2018 22:11:31 +0000 (17:11 -0500)
committerAndres Noetzli <andres.noetzli@gmail.com>
Tue, 26 Jun 2018 22:11:31 +0000 (15:11 -0700)
src/smt/smt_engine.cpp

index 1b5e8853667c5453c40df934eebed0c2ef37d462..5652eeaa64edbc5389ce93997d0ab6f5a85bc3fe 100644 (file)
@@ -1657,12 +1657,13 @@ void SmtEngine::setDefaults() {
     }
   }
 
-  // by default, symmetry breaker is on only for QF_UF
+  // by default, symmetry breaker is on only for non-incremental QF_UF
   if(! options::ufSymmetryBreaker.wasSetByUser()) {
-    bool qf_uf = d_logic.isPure(THEORY_UF) && !d_logic.isQuantified()
-                 && !options::proof() && !options::unsatCores();
-    Trace("smt") << "setting uf symmetry breaker to " << qf_uf << endl;
-    options::ufSymmetryBreaker.set(qf_uf);
+    bool qf_uf_noinc = d_logic.isPure(THEORY_UF) && !d_logic.isQuantified()
+                       && !options::incrementalSolving() && !options::proof()
+                       && !options::unsatCores();
+    Trace("smt") << "setting uf symmetry breaker to " << qf_uf_noinc << endl;
+    options::ufSymmetryBreaker.set(qf_uf_noinc);
   }
 
   // If in arrays, set the UF handler to arrays