regress0/strings/substr-rewrites.smt2
regress0/strings/type001.smt2
regress0/strings/unsound-0908.smt2
+ regress0/strings/unsound-repl-rewrite.smt2
regress0/sygus/General_plus10.sy
regress0/sygus/aig-si.sy
regress0/sygus/c100.sy
--- /dev/null
+; COMMAND-LINE: --strings-exp
+; EXPECT: sat
+(set-logic QF_S)
+(declare-fun x () String)
+(declare-fun y () String)
+(declare-fun z () Int)
+(assert (not (= (str.replace "B" (str.replace "" x "A") "B") (str.replace "B" x "B"))))
+(check-sat)
b);
repl = d_nm->mkNode(kind::STRING_STRREPL, b, x, b);
sameNormalForm(repl_repl, repl);
+
+ // Different normal forms for:
+ //
+ // (str.replace "B" (str.replace "" x "A") "B")
+ //
+ // (str.replace "B" x "B")
+ repl_repl = d_nm->mkNode(kind::STRING_STRREPL,
+ b,
+ d_nm->mkNode(kind::STRING_STRREPL, empty, x, a),
+ b);
+ repl = d_nm->mkNode(kind::STRING_STRREPL, b, x, b);
+ differentNormalForms(repl_repl, repl);
}
void testRewriteContains()