Murphy Berzish
244b611f1c
fix infinite loop bug in theory_str::new_eq_check
2016-07-28 17:10:41 -04:00
Murphy Berzish
999420485b
add theory_str::check_length_eq_var_concat and helper methods
2016-07-28 16:49:39 -04:00
Murphy Berzish
76ceac6664
add theory_str::check_length_const_string
2016-07-28 16:31:40 -04:00
Murphy Berzish
95f1cfa5a6
add theory_str::check_length_consistency, WIP
2016-07-27 16:18:05 -04:00
Murphy Berzish
a31a948a5b
add theory_str::can_concat_eq_concat
2016-07-27 15:21:33 -04:00
Murphy Berzish
ceed3f3ff0
add theory_str::can_concat_eq_str
2016-07-27 15:15:01 -04:00
Murphy Berzish
1c518be61d
new_eq_handler improvements in theory_str, WIP
2016-07-27 12:46:35 -04:00
Murphy Berzish
f555074e27
add option to disable integer theory integration in theory_str; this is currently ENABLED
2016-07-23 23:29:56 -04:00
Murphy Berzish
02a66c425e
add option to bypass quick returns in integer theory integration in theory_str
...
this might not actually be that useful, if the problem is, as I suspect it to be,
that values we get from the integer theory need not correspond with
assertions in the core (that can get popped off the stack, etc.)
2016-07-23 22:43:46 -04:00
Murphy Berzish
ac16aa7c81
fix out-of-scope variable bug in theory_str::process_concat_eq_type6
...
this fix will have to be made to all functions that use varForBreakConcat
2016-07-23 16:02:11 -04:00
Murphy Berzish
0f38203779
add RegexCharRange to theory_str
2016-07-19 16:39:43 -04:00
Murphy Berzish
9ffcd135d5
add RegexPlus to theory_str
2016-07-19 15:47:41 -04:00
Murphy Berzish
8d47b08244
fix out-of-scope value tester bug in theory_str::gen_free_var_options()
...
we now pass tests/z3str/charAt-003.smt2 with detailed debugging turned off!
2016-07-10 13:05:41 -04:00
Murphy Berzish
8aa6fee0af
fixups wip
2016-07-08 12:21:11 -04:00
Murphy Berzish
847a5fc1f8
replace old mk_value behaviour in theory_str that creates placeholders for unused terms instead of crashing
2016-07-07 16:13:48 -04:00
Murphy Berzish
9eead64d03
prevent assertion of basic string axioms on variables that go out of scope (theory_str)
...
this is testing a crash avoidance feature, the regression is tests/z3str/regex-026.smt2
this also adds some debugging code for a substr() crash but that is WIP
2016-07-06 17:31:37 -04:00
Murphy Berzish
7d903ff1fa
implement process_concat_eq_unroll, WIP
2016-06-30 04:55:11 -04:00
Murphy Berzish
b53da182b6
fix gen_assign_unroll_reg so that it does not assert a contradiction
2016-06-30 04:39:09 -04:00
Murphy Berzish
a2d6149df5
add general-case regex unroll model generation
...
WIP as there is currently a SAT-as-UNSAT bug I'm trying to fix
This also changes the semantics of lower_bound and upper_bound,
no longer wrapping the expr that is passed in with mk_strlen().
This actually makes these methods useful for checking bounds
of things other than strings.
2016-06-30 04:00:42 -04:00
Murphy Berzish
b4110c886f
successful unroll of simple unbounded Str2Reg
2016-06-30 02:46:16 -04:00
Murphy Berzish
427632ede3
let free variable assignment work a bit more towards unrolls
2016-06-30 01:42:00 -04:00
Murphy Berzish
21f0a50aba
add Unroll check to get_eqc_allUnroll
2016-06-30 01:24:43 -04:00
Murphy Berzish
03827cb487
add more Unroll support to final_check, ctx_dep_analysis
2016-06-30 01:21:21 -04:00
Murphy Berzish
b31d1a92aa
add more support for unroll (WIP)
2016-06-27 14:41:57 -04:00
Murphy Berzish
020e8aef6d
regex union
2016-06-23 17:14:03 -04:00
Murphy Berzish
04803d7a3b
starting regex support
2016-06-23 15:24:35 -04:00
Murphy Berzish
4c34629806
starting regex support, rewriter
2016-06-21 21:13:16 -04:00
Murphy Berzish
a808a8c587
theory_str infer_len_concat_arg
2016-06-21 17:38:49 -04:00
Murphy Berzish
1e46782392
theory_str infer_len_concat
2016-06-21 17:25:28 -04:00
Murphy Berzish
ba42478f9b
string-integer wip
2016-06-20 20:02:22 -04:00
Murphy Berzish
89a337ba7e
quick path with string-integer integration in theory_str::simplify_concat_equality
2016-06-19 18:25:31 -04:00
Murphy Berzish
5b3c868c90
theory_str Replace method
2016-06-15 21:14:54 -04:00
Murphy Berzish
fb20951064
theory_str Substr support WIP
2016-06-15 20:26:07 -04:00
Murphy Berzish
be5bf7fb80
LastIndexof support
2016-06-15 18:45:01 -04:00
Murphy Berzish
7c8b882ae6
decl and rewriter support for LastIndexof in theory_str (WIP)
2016-06-15 18:04:33 -04:00
Murphy Berzish
dc5a334d42
support for Indexof2 in theory_str
2016-06-15 17:37:17 -04:00
Murphy Berzish
881e3056f3
support for IndexOf in theory_str
2016-06-14 21:28:31 -04:00
Murphy Berzish
db2a5854e9
decl and rewriter for Indexof (WIP)
2016-06-14 20:10:06 -04:00
Murphy Berzish
7aeeb599ef
very very basic Contains support in theory_str
...
not included: the 1200 lines of code that make it very fast
2016-06-14 18:43:51 -04:00
Murphy Berzish
a3986d6d0e
decl and rewriter support for Contains (WIP)
2016-06-14 18:36:43 -04:00
Murphy Berzish
989d6b577b
EndsWith axiomatization in theory_str
2016-06-14 18:05:24 -04:00
Murphy Berzish
fd38b4c729
EndsWith decl and rewriter, WIP
2016-06-14 17:55:46 -04:00
Murphy Berzish
4f131ebba7
prevent infinite loop of axiom generation. working StartsWith
2016-06-14 16:42:46 -04:00
Murphy Berzish
c5ffb012dd
axioms for StartsWith; WIP as I need to fix an infinite recursion bug
2016-06-14 16:16:39 -04:00
Murphy Berzish
7d8e54c50f
decl and rewriter for string StartsWith
2016-06-13 22:27:46 -04:00
Murphy Berzish
be5cc02a45
working axiomatization for CharAt
2016-06-13 21:57:08 -04:00
Murphy Berzish
389845180c
add CharAt to theory_str and basic rewrite rule for constant CharAt exprs
2016-06-13 16:34:24 -04:00
Murphy Berzish
7d09dbb8ec
basic infrastructure for string rewriting
2016-06-12 20:46:52 -04:00
Murphy Berzish
18cd47dcd0
add flag for bailing out during a final check infinite loop in theory_str
...
also adds more debugging to free variable gen
2016-06-12 20:14:57 -04:00
Murphy Berzish
08328c5614
add option in theory_str to assert string constant lengths more eagerly
...
now passes z3str/concat-025
2016-06-12 17:16:14 -04:00