virtual Node getNextCandidate() = 0;
/** is n a legal candidate? */
bool isLegalCandidate(Node n);
+ /** Identify this generator (for debugging, etc..) */
+ virtual std::string identify() const = 0;
protected:
/** Reference to the quantifiers state */
{
return d_exclude_eqc.find(r) != d_exclude_eqc.end();
}
+ /** Identify this generator (for debugging, etc..) */
+ std::string identify() const override { return "CandidateGeneratorQE"; }
+
protected:
/** reset this class for matching operator op in equivalence class eqc */
void resetForOperator(Node eqc, Node op);
void reset(Node eqc) override;
/** get next candidate */
Node getNextCandidate() override;
+ /** Identify this generator (for debugging, etc..) */
+ std::string identify() const override { return "CandidateGeneratorQELitDeq"; }
private:
/** the equality class iterator for false */
unsigned d_index;
//first time
bool d_firstTime;
+ /** Identify this generator (for debugging, etc..) */
+ std::string identify() const override { return "CandidateGeneratorQEAll"; }
public:
CandidateGeneratorQEAll(QuantifiersState& qs, TermRegistry& tr, Node mpat);
void reset(Node eqc) override;
/** get next candidate */
Node getNextCandidate() override;
+ /** Identify this generator (for debugging, etc..) */
+ std::string identify() const override
+ {
+ return "CandidateGeneratorConsExpand";
+ }
protected:
/** the (datatype) type of the input match pattern */
* application of the wrong constructor.
*/
Node getNextCandidate() override;
+ /** Identify this generator (for debugging, etc..) */
+ std::string identify() const override { return "CandidateGeneratorSelector"; }
+
protected:
/** the selector operator */
Node d_selOp;
{
return true;
}
- std::map<Node, Node> coeffs;
if (options::purifyTriggers())
{
Node x = getInversionVariable(n);
if (i == 1 && n.getKind() == EQUAL
&& !quantifiers::TermUtil::hasInstConstAttr(n[0]))
{
- return NodeManager::currentNM()->mkNode(n.getKind(), n[1], n[0]);
+ return NodeManager::currentNM()->mkNode(EQUAL, n[1], n[0]);
}
else
{