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