diff options
Diffstat (limited to 'src/theory/quantifiers/sygus')
-rw-r--r-- | src/theory/quantifiers/sygus/ce_guided_single_inv.cpp | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/theory/quantifiers/sygus/ce_guided_single_inv.cpp b/src/theory/quantifiers/sygus/ce_guided_single_inv.cpp index 2e5a834b1..27d77dfbb 100644 --- a/src/theory/quantifiers/sygus/ce_guided_single_inv.cpp +++ b/src/theory/quantifiers/sygus/ce_guided_single_inv.cpp @@ -564,13 +564,15 @@ Node CegSingleInv::reconstructToSyntax(Node s, } } - - if( Trace.isOn("csi-sol") ){ - //debug solution - if (!d_sol->debugSolution(d_solution)) - { - Trace("csi-sol") << "WARNING : solution " << d_solution << " contains free constants." << std::endl; - } + // debug solution + if (!d_sol->debugSolution(d_solution)) + { + // This can happen if we encountered free variables in either the + // instantiation terms, or in the instantiation lemmas after postprocessing. + // In this case, we fail, since the solution is not valid. + Trace("csi-sol") << "FAIL : solution " << d_solution + << " contains free constants." << std::endl; + reconstructed = -1; } if( Trace.isOn("cegqi-stats") ){ int tsize, itesize; |