(set-logic QF_S) (set-info :status sat) (set-option :strings-exp true) (set-option :strings-fmf true) (declare-fun var_0 () String) (declare-fun var_1 () String) (declare-fun var_2 () String) (declare-fun var_3 () String) (declare-fun var_4 () String) (declare-fun var_5 () String) (declare-fun var_6 () String) (declare-fun var_7 () String) (declare-fun var_8 () String) (declare-fun var_9 () String) (declare-fun var_10 () String) (declare-fun var_11 () String) (declare-fun var_12 () String) (assert (str.in_re (str.++ var_8 "z" var_9 ) (re.++ (re.* (re.union (str.to_re "a") (re.++ (str.to_re "b") (re.++ (re.* (re.union (str.to_re "b") (str.to_re "a"))) (str.to_re "z"))))) (re.++ (str.to_re "b") (re.* (re.union (str.to_re "b") (str.to_re "a"))))))) (assert (str.in_re (str.++ var_8 "z" var_9 ) (re.++ (re.* (re.union (re.union (str.to_re "z") (str.to_re "a")) (re.++ (str.to_re "b") (re.++ (re.* (str.to_re "b")) (re.union (str.to_re "z") (str.to_re "a")))))) (re.++ (str.to_re "b") (re.* (str.to_re "b")))))) (assert (str.in_re (str.++ var_8 "z" var_9 ) (re.++ (re.* (re.union (str.to_re "a") (re.++ (str.to_re "b") (re.++ (re.* (re.union (str.to_re "z") (str.to_re "a"))) (str.to_re "b"))))) (re.++ (str.to_re "b") (re.* (re.union (str.to_re "z") (str.to_re "a"))))))) (assert (str.in_re (str.++ var_8 "z" var_9 ) (re.* (re.++ (re.union (str.to_re "b") (str.to_re "a")) (re.++ (re.* (str.to_re "a")) (re.union (str.to_re "z") (str.to_re "b"))))))) (assert (str.in_re var_9 (re.* (re.range "a" "u")))) (assert (str.in_re var_8 (re.* (re.range "a" "u")))) (assert (not (str.in_re (str.++ "b" var_8 "z" "b" var_9 ) (re.++ (re.* (re.++ (str.to_re "b") (str.to_re "z"))) (str.to_re "b"))))) (check-sat)