d_allCompSets.push_back(n);
Trace("sets-debug2") << "Comp-set[" << r << "] : " << n << std::endl;
}
- else if (n.isVar() && !d_skCache.isSkolem(n))
+ else if (Theory::isLeafOf(n, THEORY_SETS) && !d_skCache.isSkolem(n))
{
- // it is important that we check it is a variable, but not an internally
- // introduced skolem, due to the semantics of the universe set.
+ // It is important that we check it is a leaf, due to parametric theories
+ // that may be used to construct terms of set type. It is also important to
+ // exclude internally introduced skolems, due to the semantics of the
+ // universe set.
if (tnn.isSet())
{
if (d_var_set.find(r) == d_var_set.end())
regress1/sets/lemmabug-ListElts317minimized.smt2
regress1/sets/proj-issue164.smt2
regress1/sets/proj-issue178.smt2
+ regress1/sets/proj-issue494-finite-leafof.smt2
regress1/sets/remove_check_free_31_6.smt2
regress1/sets/sets-disequal.smt2
regress1/sets/sets-tuple-poly.cvc.smt2
--- /dev/null
+(set-logic ALL)
+(set-info :status unsat)
+(set-option :strings-exp true)
+(set-option :sets-ext true)
+(declare-const x (Array (Set RoundingMode) (Set RoundingMode)))
+(check-sat-assuming (
+(seq.nth
+(seq.++ (seq.++ (seq.unit false) (seq.unit false)) (seq.++ (seq.unit false) (seq.unit false)) (seq.++ (seq.unit false) (seq.unit false)))
+(set.card (select x (as set.universe (Set RoundingMode)))))))