#include "theory/bv/bv_solver_bitblast_internal.h"
+#include "options/bv_options.h"
#include "proof/conv_proof_generator.h"
#include "theory/bv/bitblast/bitblast_proof_generator.h"
#include "theory/bv/theory_bv.h"
}
}
+bool BVSolverBitblastInternal::needsEqualityEngine(EeSetupInfo& esi)
+{
+ // Disable equality engine if --bitblast=eager is enabled.
+ return options().bv.bitblastMode != options::BitblastMode::EAGER;
+}
+
bool BVSolverBitblastInternal::preNotifyFact(
TNode atom, bool pol, TNode fact, bool isPrereg, bool isInternal)
{
}
}
- return false; // Return false to enable equality engine reasoning in Theory.
+ // Disable the equality engine in --bitblast=eager mode. Otherwise return
+ // false to enable equality engine reasoning in Theory.
+ return options().bv.bitblastMode == options::BitblastMode::EAGER;
}
TrustNode BVSolverBitblastInternal::explain(TNode n)
ProofNodeManager* pnm);
~BVSolverBitblastInternal() = default;
- bool needsEqualityEngine(EeSetupInfo& esi) override { return true; }
+ bool needsEqualityEngine(EeSetupInfo& esi) override;
void preRegisterTerm(TNode n) override {}