summaryrefslogtreecommitdiff
path: root/src/smt/sygus_solver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/smt/sygus_solver.cpp')
-rw-r--r--src/smt/sygus_solver.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/smt/sygus_solver.cpp b/src/smt/sygus_solver.cpp
index 0976442e1..317bb2646 100644
--- a/src/smt/sygus_solver.cpp
+++ b/src/smt/sygus_solver.cpp
@@ -31,6 +31,7 @@
#include "theory/quantifiers/sygus/sygus_grammar_cons.h"
#include "theory/quantifiers/sygus/sygus_utils.h"
#include "theory/quantifiers_engine.h"
+#include "theory/rewriter.h"
#include "theory/smt_engine_subsolver.h"
using namespace cvc5::theory;
@@ -384,7 +385,12 @@ void SygusSolver::checkSynthSolution(Assertions& as)
// definitions that were added as assertions to the sygus problem.
for (Node a : auxAssertions)
{
- solChecker->assertFormula(a);
+ // We require rewriting here, e.g. so that define-fun from the original
+ // problem are rewritten to true. If this is not the case, then the
+ // assertions module of the subsolver will complain about assertions
+ // with free variables.
+ Node ar = theory::Rewriter::rewrite(a);
+ solChecker->assertFormula(ar);
}
Result r = solChecker->checkSat();
Notice() << "SygusSolver::checkSynthSolution(): result is " << r
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback