3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-10-04 06:53:58 +00:00
Commit graph

89 commits

Author SHA1 Message Date
Murphy Berzish
54d7e4bbb5 remove the option to bypass check_regex_in in theory_str 2016-08-17 21:12:19 -04:00
Murphy Berzish
6263391c11 fix out-of-range integer comparison bug in string NFA 2016-08-17 20:58:57 -04:00
Murphy Berzish
71ad4d3a4a add regex_in_bool_map to theory_str 2016-08-17 16:21:19 -04:00
Murphy Berzish
685edbb268 pull out incorrectly-used data structures in theory_str for contains check, this will need to be revisited 2016-08-15 18:58:36 -04:00
Murphy Berzish
d28ef1d471 add theory_str::check_contain_by_eq_nodes 2016-08-15 17:38:24 -04:00
Murphy Berzish
1f594b190a add theory_str::check_contain_by_eqc_val 2016-08-14 14:55:29 -04:00
Murphy Berzish
6612971049 start adding Contains checks to theory_str 2016-08-14 14:15:29 -04:00
Murphy Berzish
f7ba3ff084 crash avoidance in theory_str search start, fixes length-001.smt2 regression 2016-08-09 20:11:25 -04:00
Murphy Berzish
ee1af96f1b add opt_NoQuickReturn_IntegerTheory check in theory_str::new_eq_check()
This allows us to assert an "inconsistent length" axiom from the integer theory
while continuing in new_eq_handler(). Currently active when
opt_NoQuickReturn_IntegerTheory is 'true' but this may be necessary
here and in other places, in general, to fix integer theory integration.
2016-08-01 17:05:02 -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
95f1cfa5a6 add theory_str::check_length_consistency, WIP 2016-07-27 16:18:05 -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
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
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
04803d7a3b starting regex support 2016-06-23 15:24:35 -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
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
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
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
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
be5cc02a45 working axiomatization for CharAt 2016-06-13 21:57:08 -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
Murphy Berzish
fd968783a5 fix model generation for theory_str 2016-06-09 20:35:26 -04:00
Murphy Berzish
bd2b014008 debugging information for dependence analysis 2016-06-08 19:32:25 -04:00
Murphy Berzish
04fe8f66df concat-eq-concat type 1 split 0 2016-06-08 16:22:31 -04:00
Murphy Berzish
b5fe473c3a fix compilation errors after merge 2016-06-01 17:50:45 -04:00
Murphy Berzish
bc79a73779 lower/upper bound WIP 2016-06-01 17:23:47 -04:00
Murphy Berzish
f8f7014a18 use LRA instead of LIA in strings setup, so that the theory_seq integer value code works 2016-06-01 16:34:48 -04:00
Murphy Berzish
ecb069b701 non-fixes to string length code, plus the get_length() code from new Z3 2016-05-20 16:34:11 -04:00
Murphy Berzish
2522e35c5e start work on string-integer integration 2016-05-20 10:22:19 -04:00
Murphy Berzish
2f80a9d4ae add more_len_tests, more_value_tests 2016-05-17 16:31:08 -04:00
Murphy Berzish
9fc1410495 remove incorrect not-null assertions for model gen 2016-05-17 14:53:17 -04:00
Murphy Berzish
f9e1ed4496 add simplify_parent() 2016-05-09 18:12:21 -04:00
Murphy Berzish
bcaad06061 add theory name; add debug info for freeVar_map 2016-05-07 17:47:50 -04:00
Murphy Berzish
1d324877cd use theory_seq's internalize_term 2016-05-07 15:40:39 -04:00