Blob Blame History Raw
--- src/solvers/qbf/qbf_bdd_core.cpp.orig	2018-12-18 13:04:16.000000000 -0700
+++ src/solvers/qbf/qbf_bdd_core.cpp	2019-01-31 20:32:20.731352424 -0700
@@ -13,6 +13,7 @@ Author: CM Wintersteiger
 #include <util/arith_tools.h>
 #include <util/invariant.h>
 #include <util/std_expr.h>
+#include <util/expr_util.h>
 
 #include <cuddObj.hh> // CUDD Library
 
@@ -51,7 +52,7 @@ literalt qbf_bdd_certificatet::new_varia
   literalt l=qdimacs_coret::new_variable();
 
   if(!is_quantified(l))
-    add_quantifier(quantifiert::EXISTENTIAL, l);
+    add_quantifier(quantifiert::typet::EXISTENTIAL, l);
 
   return l;
 }
@@ -105,7 +106,7 @@ propt::resultt qbf_bdd_coret::prop_solve
   {
     unsigned var=it->var_no;
 
-    if(it->type==quantifiert::EXISTENTIAL)
+    if(it->type==quantifiert::typet::EXISTENTIAL)
     {
       #if 0
       std::cout << "BDD E: " << var << ", " <<
@@ -124,7 +125,7 @@ propt::resultt qbf_bdd_coret::prop_solve
     else
     {
       INVARIANT(
-        it->type == quantifiert::UNIVERSAL,
+        it->type == quantifiert::typet::UNIVERSAL,
         "only handles quantified variables");
       #if 0
       std::cout << "BDD A: " << var << ", " <<
@@ -138,15 +139,15 @@ propt::resultt qbf_bdd_coret::prop_solve
   if(*matrix==bdd_manager->bddOne())
   {
     compress_certificate();
-    return P_SATISFIABLE;
+    return resultt::P_SATISFIABLE;
   }
   else if(*matrix==bdd_manager->bddZero())
   {
     model_bdds.clear();
-    return P_UNSATISFIABLE;
+    return resultt::P_UNSATISFIABLE;
   }
   else
-    return P_ERROR;
+    return resultt::P_ERROR;
 }
 
 bool qbf_bdd_coret::is_in_core(literalt l) const
@@ -241,19 +242,19 @@ void qbf_bdd_coret::compress_certificate
 {
   status() << "Compressing Certificate" << eom;
 
-  for(const quantifiert &quantifier : quantifiers)
+  for(auto it=quantifiers.begin(); it!=quantifiers.end(); it++)
   {
-    if(quantifier.type==quantifiert::EXISTENTIAL)
+    if(it->type==quantifiert::typet::EXISTENTIAL)
     {
-      const BDD &var=*bdd_variable_map[quantifier.var_no];
-      const BDD &model=*model_bdds[quantifier.var_no];
+      const BDD &var=*bdd_variable_map[it->var_no];
+      const BDD &model=*model_bdds[it->var_no];
 
       if(model==bdd_manager->bddOne() ||
          model==bdd_manager->bddZero())
       {
-        for(const quantifiert &quantifier2 : quantifiers)
+        for(auto it2=it; it2!=quantifiers.end(); it2++)
         {
-          BDD &model2=*model_bdds[quantifier2.var_no];
+          BDD &model2=*model_bdds[it2->var_no];
 
           if(model==bdd_manager->bddZero())
             model2=model2.AndAbstract(~var, var);
@@ -272,7 +273,7 @@ const exprt qbf_bdd_certificatet::f_get(
     !find_quantifier(l, q), "no model for unquantified variables");
 
   // universal?
-  if(q.type==quantifiert::UNIVERSAL)
+  if(q.type==quantifiert::typet::UNIVERSAL)
   {
     INVARIANT(l.var_no() != 0, "input literal wasn't properly initialized");
     variable_mapt::const_iterator it=variable_map.find(l.var_no());
@@ -286,7 +287,7 @@ const exprt qbf_bdd_certificatet::f_get(
     extractbit_exprt extract_expr(sym, from_integer(index, integer_typet()));
 
     if(l.sign())
-      extract_expr.negate();
+      extract_expr = to_extractbit_expr(boolean_negate(extract_expr));
 
     return extract_expr;
   }
@@ -294,7 +295,7 @@ const exprt qbf_bdd_certificatet::f_get(
   {
     // skolem functions for existentials
     INVARIANT(
-      q.type == quantifiert::EXISTENTIAL,
+      q.type == quantifiert::typet::EXISTENTIAL,
       "only quantified literals are supported");
 
     function_cachet::const_iterator it=function_cache.find(l.var_no());
--- src/solvers/qbf/qbf_skizzo_core.cpp.orig	2019-01-17 19:58:21.060120367 -0700
+++ src/solvers/qbf/qbf_skizzo_core.cpp	2019-01-17 19:59:16.132962875 -0700
@@ -48,7 +48,7 @@ propt::resultt qbf_skizzo_coret::prop_so
 {
   // sKizzo crashes on empty instances
   if(no_clauses()==0)
-    return P_SATISFIABLE;
+    return resultt::P_SATISFIABLE;
 
   {
     std::string msg=
@@ -107,7 +107,7 @@ propt::resultt qbf_skizzo_coret::prop_so
     if(!result_found)
     {
       messaget::error() << "Skizzo failed: unknown result" << messaget::eom;
-      return P_ERROR;
+      return resultt::P_ERROR;
     }
   }
 
@@ -119,14 +119,14 @@ propt::resultt qbf_skizzo_coret::prop_so
     messaget::status() << "Skizzo: TRUE" << messaget::eom;
 
     if(get_certificate())
-      return P_ERROR;
+      return resultt::P_ERROR;
 
-    return P_SATISFIABLE;
+    return resultt::P_SATISFIABLE;
   }
   else
   {
     messaget::status() << "Skizzo: FALSE" << messaget::eom;
-    return P_UNSATISFIABLE;
+    return resultt::P_UNSATISFIABLE;
   }
 }
 
--- src/solvers/qbf/qbf_squolem_core.cpp.orig	2018-12-18 13:04:16.000000000 -0700
+++ src/solvers/qbf/qbf_squolem_core.cpp	2019-01-17 19:59:16.133962873 -0700
@@ -202,7 +202,7 @@ const exprt qbf_squolem_coret::f_get(lit
     extractbit_exprt extract_expr(sym, from_integer(index, integer_typet()));
 
     if(l.sign())
-      extract_expr.negate();
+      extract_expr = to_extractbit_expr(boolean_negate(extract_expr));
 
     return extract_expr;
   }