TheorySets::TheorySets(Env& env, OutputChannel& out, Valuation valuation)
: Theory(THEORY_SETS, env, out, valuation),
- d_skCache(),
+ d_skCache(env.getRewriter()),
d_state(env, valuation, d_skCache),
- d_im(*this, d_state, d_pnm),
- d_internal(new TheorySetsPrivate(*this, d_state, d_im, d_skCache, d_pnm)),
+ d_im(env, *this, d_state),
+ d_internal(
+ new TheorySetsPrivate(env, *this, d_state, d_im, d_skCache, d_pnm)),
d_notify(*d_internal.get(), d_im)
{
// use the official theory state and inference manager objects
if (nk == UNIVERSE_SET || nk == COMPLEMENT || nk == JOIN_IMAGE
|| nk == COMPREHENSION)
{
- if (!options::setsExt())
+ if (!options().sets.setsExt)
{
std::stringstream ss;
ss << "Extended set operators are not supported in default mode, try "
if (nk == COMPREHENSION)
{
// set comprehension is an implicit quantifier, require it in the logic
- if (!getLogicInfo().isQuantified())
+ if (!logicInfo().isQuantified())
{
std::stringstream ss;
ss << "Set comprehensions require quantifiers in the background logic.";
// may appear when this option is enabled, and solving for such a set
// impacts the semantics of universe set, see
// regress0/sets/pre-proc-univ.smt2
- if (!in[0].getType().isSet() || !options::setsExt())
+ if (!in[0].getType().isSet() || !options().sets.setsExt)
{
outSubstitutions.addSubstitutionSolved(in[0], in[1], tin);
status = Theory::PP_ASSERT_STATUS_SOLVED;
}
else if (in[1].isVar() && isLegalElimination(in[1], in[0]))
{
- if (!in[0].getType().isSet() || !options::setsExt())
+ if (!in[0].getType().isSet() || !options().sets.setsExt)
{
outSubstitutions.addSubstitutionSolved(in[1], in[0], tin);
status = Theory::PP_ASSERT_STATUS_SOLVED;