summaryrefslogtreecommitdiff
path: root/src/theory
diff options
context:
space:
mode:
Diffstat (limited to 'src/theory')
-rw-r--r--src/theory/strings/theory_strings_preprocess.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/theory/strings/theory_strings_preprocess.cpp b/src/theory/strings/theory_strings_preprocess.cpp
index d1eef656b..8e057a525 100644
--- a/src/theory/strings/theory_strings_preprocess.cpp
+++ b/src/theory/strings/theory_strings_preprocess.cpp
@@ -309,6 +309,9 @@ Node StringsPreprocess::simplify( Node t, std::vector< Node > &new_nodes ) {
lem = s.eqNode(nm->mkNode(APPLY_UF, us, d_zero));
conc2.push_back(lem);
+ lem = nm->mkNode(GT, lens, d_zero);
+ conc2.push_back(lem);
+
Node x = nm->mkBoundVar(nm->integerType());
Node xbv = nm->mkNode(BOUND_VAR_LIST, x);
Node g =
@@ -343,6 +346,7 @@ Node StringsPreprocess::simplify( Node t, std::vector< Node > &new_nodes ) {
// ELSE:
// stoit = U( len( s ) ) ^ U( 0 ) = 0 ^
// "" = Us( len( s ) ) ^ s = Us( 0 ) ^
+ // str.len( s ) > 0 ^
// forall x. (x>=0 ^ x < str.len(s)) =>
// Us( x ) = Ud( x ) ++ Us( x+1 ) ^
// U( x+1 ) = ( str.code( Ud( x ) ) - 48 ) + 10*U( x )
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback