We've observed that our QF_NRA solving benefits significantly from --theoryof-mode=type across the board (of other options that influence QF_NRA solving). This PR sets type as the new default for QF_NRA solving.
if (logic.isSharingEnabled() && !logic.isTheoryEnabled(THEORY_BV)
&& !logic.isTheoryEnabled(THEORY_STRINGS)
&& !logic.isTheoryEnabled(THEORY_SETS)
- && !logic.isTheoryEnabled(THEORY_BAGS))
+ && !logic.isTheoryEnabled(THEORY_BAGS)
+ && !(logic.isTheoryEnabled(THEORY_ARITH) && !logic.isLinear()
+ && !logic.isQuantified()))
{
Trace("smt") << "setting theoryof-mode to term-based" << std::endl;
options::theoryOfMode.set(options::TheoryOfMode::THEORY_OF_TERM_BASED);