3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-22 16:45:31 +00:00
Commit graph

5572 commits

Author SHA1 Message Date
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