bool LfscNodeConverter::isIndexedOperatorKind(Kind k)
{
- return k == BITVECTOR_EXTRACT || k == BITVECTOR_REPEAT
+ return k == REGEXP_LOOP || k == BITVECTOR_EXTRACT || k == BITVECTOR_REPEAT
|| k == BITVECTOR_ZERO_EXTEND || k == BITVECTOR_SIGN_EXTEND
|| k == BITVECTOR_ROTATE_LEFT || k == BITVECTOR_ROTATE_RIGHT
|| k == INT_TO_BITVECTOR || k == IAND || k == APPLY_UPDATER
std::vector<Node> indices;
switch (k)
{
+ case REGEXP_LOOP:
+ {
+ RegExpLoop op = n.getConst<RegExpLoop>();
+ indices.push_back(nm->mkConstInt(Rational(op.d_loopMinOcc)));
+ indices.push_back(nm->mkConstInt(Rational(op.d_loopMaxOcc)));
+ break;
+ }
case BITVECTOR_EXTRACT:
{
BitVectorExtract p = n.getConst<BitVectorExtract>();
regress1/strings/idof-neg-index.smt2
regress1/strings/idof-triv.smt2
regress1/strings/ilc-l-nt.smt2
+ regress1/strings/instance1079-re-loop-cong.smt2
regress1/strings/instance2984-null-term.smt2
regress1/strings/instance3303-delta.smt2
regress1/strings/instance7075-delta.smt2
--- /dev/null
+; COMMAND-LINE: --strings-exp
+; EXPECT: unsat
+(set-logic QF_S)
+(set-info :status unsat)
+(declare-const X String)
+(assert (not (str.in_re X (re.++ ((_ re.loop 0 16) (re.union re.allchar (str.to_re "\u{0a}"))) (str.to_re "\u{0a}")))))
+(assert (str.in_re X (str.to_re "//cdmax/Ui\u{0a}")))
+(check-sat)