if (pt_index >= 0)
{
Trace("sygus-rr-debug")
- << "; both ext-rewrite to : " << bvr << std::endl;
+ << "; unsound: both ext-rewrite to : " << bvr << std::endl;
Trace("sygus-rr-debug")
- << "; but are not equivalent for : " << std::endl;
+ << "; unsound: but are not equivalent for : " << std::endl;
std::vector<Node> vars;
std::vector<Node> pt;
its->second.getSamplePoint(pt_index, vars, pt);
Assert(vars.size() == pt.size());
for (unsigned i = 0, size = pt.size(); i < size; i++)
{
- Trace("sygus-rr-debug")
- << "; " << vars[i] << " -> " << pt[i] << std::endl;
+ Trace("sygus-rr-debug") << "; unsound: " << vars[i]
+ << " -> " << pt[i] << std::endl;
}
Node bv_e = its->second.evaluate(bv, pt_index);
Node pbv_e = its->second.evaluate(prev_bv, pt_index);
Assert(bv_e != pbv_e);
- Trace("sygus-rr-debug") << "; where they evaluate to " << pbv_e
- << " and " << bv_e << std::endl;
+ Trace("sygus-rr-debug") << "; unsound: where they evaluate to "
+ << pbv_e << " and " << bv_e
+ << std::endl;
}
else
{
#include "printer/printer.h"
#include "prop/prop_engine.h"
#include "smt/smt_statistics_registry.h"
+#include "theory/quantifiers/ce_guided_instantiation.h"
#include "theory/quantifiers/first_order_model.h"
#include "theory/quantifiers/instantiate.h"
#include "theory/quantifiers/quantifiers_attributes.h"
Printer::getPrinter(options::outputLanguage())->toStreamSygus(out, sol);
}
out << ")" << std::endl;
+ ++(d_qe->getCegInstantiation()->d_statistics.d_solutions);
if (status != 0 && options::sygusRewSynth())
{
// rewrite.
out << "(candidate-rewrite " << solb << " " << eq_sol << ")"
<< std::endl;
+ ++(d_qe->getCegInstantiation()->d_statistics.d_candidate_rewrites);
// debugging information
if (Trace.isOn("sygus-rr-debug"))
{
}
}
-CegInstantiation::Statistics::Statistics():
- d_cegqi_lemmas_ce("CegInstantiation::cegqi_lemmas_ce", 0),
- d_cegqi_lemmas_refine("CegInstantiation::cegqi_lemmas_refine", 0),
- d_cegqi_si_lemmas("CegInstantiation::cegqi_lemmas_si", 0)
+CegInstantiation::Statistics::Statistics()
+ : d_cegqi_lemmas_ce("CegInstantiation::cegqi_lemmas_ce", 0),
+ d_cegqi_lemmas_refine("CegInstantiation::cegqi_lemmas_refine", 0),
+ d_cegqi_si_lemmas("CegInstantiation::cegqi_lemmas_si", 0),
+ d_solutions("CegConjecture::solutions", 0),
+ d_candidate_rewrites("CegConjecture::candidate_rewrites", 0)
+
{
smtStatisticsRegistry()->registerStat(&d_cegqi_lemmas_ce);
smtStatisticsRegistry()->registerStat(&d_cegqi_lemmas_refine);
smtStatisticsRegistry()->registerStat(&d_cegqi_si_lemmas);
+ smtStatisticsRegistry()->registerStat(&d_solutions);
+ smtStatisticsRegistry()->registerStat(&d_candidate_rewrites);
}
CegInstantiation::Statistics::~Statistics(){
smtStatisticsRegistry()->unregisterStat(&d_cegqi_lemmas_ce);
smtStatisticsRegistry()->unregisterStat(&d_cegqi_lemmas_refine);
smtStatisticsRegistry()->unregisterStat(&d_cegqi_si_lemmas);
+ smtStatisticsRegistry()->unregisterStat(&d_solutions);
+ smtStatisticsRegistry()->unregisterStat(&d_candidate_rewrites);
}
}/* namespace CVC4::theory::quantifiers */
IntStat d_cegqi_lemmas_ce;
IntStat d_cegqi_lemmas_refine;
IntStat d_cegqi_si_lemmas;
+ IntStat d_solutions;
+ IntStat d_candidate_rewrites;
Statistics();
~Statistics();
};/* class CegInstantiation::Statistics */