return "QUANTIFIERS_INST_E_MATCHING_HO";
case InferenceId::QUANTIFIERS_INST_E_MATCHING_VAR_GEN:
return "QUANTIFIERS_INST_E_MATCHING_VAR_GEN";
+ case InferenceId::QUANTIFIERS_INST_E_MATCHING_RELATIONAL:
+ return "QUANTIFIERS_INST_E_MATCHING_RELATIONAL";
case InferenceId::QUANTIFIERS_INST_CBQI_CONFLICT:
return "QUANTIFIERS_INST_CBQI_CONFLICT";
case InferenceId::QUANTIFIERS_INST_CBQI_PROP:
QUANTIFIERS_INST_E_MATCHING_HO,
// E-matching based on variable triggers
QUANTIFIERS_INST_E_MATCHING_VAR_GEN,
+ // E-matching based on relational triggers
+ QUANTIFIERS_INST_E_MATCHING_RELATIONAL,
// conflicting instantiation from conflict-based instantiation
QUANTIFIERS_INST_CBQI_CONFLICT,
// propagating instantiation from conflict-based instantiation
if (m.set(d_qstate, d_vindex, s))
{
Trace("relational-match-gen") << "...success" << std::endl;
- int ret = continueNextMatch(q, m, InferenceId::UNKNOWN);
+ int ret = continueNextMatch(
+ q, m, InferenceId::QUANTIFIERS_INST_E_MATCHING_RELATIONAL);
if (ret > 0)
{
Trace("relational-match-gen") << "...returned " << ret << std::endl;
void TheoryInferenceManager::trustedConflict(TrustNode tconf, InferenceId id)
{
+ Assert(id != InferenceId::UNKNOWN)
+ << "Must provide an inference id for conflict";
d_conflictIdStats << id;
resourceManager()->spendResource(id);
Trace("im") << "(conflict " << id << " " << tconf.getProven() << ")"
return false;
}
}
+ Assert(id != InferenceId::UNKNOWN)
+ << "Must provide an inference id for lemma";
d_lemmaIdStats << id;
resourceManager()->spendResource(id);
Trace("im") << "(lemma " << id << " " << tlem.getProven() << ")" << std::endl;
const std::vector<Node>& args,
ProofGenerator* pg)
{
+ Assert(iid != InferenceId::UNKNOWN)
+ << "Must provide an inference id for fact";
d_factIdStats << iid;
resourceManager()->spendResource(iid);
// make the node corresponding to the explanation