[[option.mode.SYGUS]]
name = "sygus"
help = "print enumerated terms and candidates generated by the sygus solver"
+[[option.mode.TRIGGER]]
+ name = "trigger"
+ help = "print selected triggers for quantified formulas"
# Stores then enabled output tags.
[[option]]
#include "theory/quantifiers/ematching/inst_strategy_e_matching.h"
+#include "options/base_options.h"
+#include "options/outputc.h"
#include "theory/quantifiers/ematching/pattern_term_selector.h"
#include "theory/quantifiers/ematching/trigger_database.h"
#include "theory/quantifiers/quant_relevance.h"
&& d_auto_gen_trigger[1][f].empty() && f.getNumChildren() == 2)
{
Trace("trigger-warn") << "Could not find trigger for " << f << std::endl;
+ Output(options::OutputTag::TRIGGER)
+ << "(no-trigger " << f << ")" << std::endl;
}
}
if (options::triggerActiveSelMode() != options::TriggerActiveSelMode::ALL)
#include "theory/quantifiers/ematching/trigger.h"
#include "expr/skolem_manager.h"
+#include "options/base_options.h"
+#include "options/outputc.h"
#include "options/quantifiers_options.h"
#include "theory/quantifiers/ematching/candidate_generator.h"
#include "theory/quantifiers/ematching/inst_match_generator.h"
Trace("trigger") << " " << n << std::endl;
}
}
+ if (Output.isOn(options::OutputTag::TRIGGER))
+ {
+ QuantAttributes& qa = d_qreg.getQuantAttributes();
+ Output(options::OutputTag::TRIGGER)
+ << "(trigger " << qa.quantToString(q) << " (";
+ for (size_t i = 0, nnodes = d_nodes.size(); i < nnodes; i++)
+ {
+ // note we must display the original form, so we go back to bound vars
+ Node ns = d_qreg.substituteInstConstantsToBoundVariables(d_nodes[i], q);
+ Output(options::OutputTag::TRIGGER) << (i > 0 ? " " : "") << ns;
+ }
+ Output(options::OutputTag::TRIGGER) << "))" << std::endl;
+ }
QuantifiersStatistics& stats = qs.getStats();
if( d_nodes.size()==1 ){
if (TriggerTermInfo::isSimpleTrigger(d_nodes[0]))