3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-18 22:59:02 +00:00
Commit graph

4689 commits

Author SHA1 Message Date
Murphy Berzish 947d443726 improved regex concat rewrite 2016-11-29 19:46:37 -05:00
Murphy Berzish 361f02ef1d remove assignment refcount hack from theory_str::pop_scope_eh 2016-11-28 21:34:55 -05:00
Murphy Berzish f968f79d1c refactor solve_concat_eq_str to use expr_ref_vector 2016-11-28 18:47:42 -05:00
Murphy Berzish b77f6666dc refactor process_concat_eq_type_6 to use expr_ref_vector 2016-11-28 18:40:28 -05:00
Murphy Berzish 1e65511a3f save a few functions to trail in theory_str 2016-11-28 16:21:26 -05:00
Murphy Berzish 8c33dfab39 fix escape character overflow print 2016-11-27 20:51:34 -05:00
Murphy Berzish 1fa8129c8f pretty-printing of general escape sequences for string literals 2016-11-25 18:02:24 -05:00
Murphy Berzish 889b6be2c3 fix smt-lib 2.5 double quotes in pp 2016-11-23 19:03:53 -05:00
Murphy Berzish 8e962aa427 escape chars in smt2 printing of string constants 2016-11-22 18:32:03 -05:00
Murphy Berzish 11d8ffc4d4 escape characters in theory_str 2016-11-22 18:21:40 -05:00
Murphy Berzish 5e37a21802 fix expr_ref in theory_str splits WIP 2016-11-18 16:07:20 -05:00
Murphy Berzish 855037eed7 refactor process_concat_eq_type2 in theory_str; fixes unsat/big/8558 2016-11-17 16:25:53 -05:00
Murphy Berzish d260218e2b tabs to spaces test 2016-11-17 15:28:26 -05:00
Murphy Berzish e2d05578d6 add extra trace message in smt_context for theory_str results change 2016-11-17 15:25:39 -05:00
Murphy Berzish 55ae83f47e Revert "experimental modification to simplify_parent call in theory_str, WIP"
This reverts commit 9771428600.
2016-11-16 13:00:05 -05:00
Murphy Berzish 9771428600 experimental modification to simplify_parent call in theory_str, WIP 2016-11-15 15:18:07 -05:00
Murphy Berzish df6b461117 enhanced backpropagation in theory_str final_check for var=concat terms
fixes kaluza sat/big/709.smt2
2016-11-14 12:33:23 -05:00
Murphy Berzish 02aacab04e add z3str2-style free variable check to theory_str 2016-11-11 17:52:18 -05:00
Murphy Berzish fbaee080b2 fix performance regression introduced with theory_str str.from-int
more investigation is required to understand why this works.
2016-11-11 00:32:50 -05:00
Murphy Berzish 5635016205 theory_str str.from-int very WIP 2016-11-09 18:06:02 -05:00
Murphy Berzish fff1fadf3b add str.from-int in theory_str rewriter 2016-11-09 15:54:22 -05:00
Murphy Berzish 4aa2d965b3 Merge branch 'develop' of github.com:mtrberzi/z3 into develop 2016-11-09 14:05:38 -05:00
Murphy Berzish 61d1d5e8b0 add cache for length terms to theory_str, but it seems to slow things down so I disabled it 2016-11-08 15:20:47 -05:00
Murphy Berzish 521e0e175b refresh reused split vars in theory_str
this fixes kaluza/unsat/big/7907, now SAT in ~30s
2016-11-08 14:23:10 -05:00
Murphy Berzish 3ae336fa6f add experimental value tester caching to theory_str 2016-11-02 13:05:16 -04:00
Murphy Berzish a61e1f17e8 fix crash in gen_len_test_options when fast length testers are disabled 2016-11-02 12:35:14 -04:00
Murphy Berzish 3da78f9d80 experimental cached length testers in theory_str 2016-11-01 20:35:01 -04:00
Murphy Berzish a5b00641d8 Merge branch 'develop' of github.com:mtrberzi/z3 into develop 2016-11-01 13:02:59 -04:00
Murphy Berzish 452eed6626 move get_std_regex_str to str_util 2016-10-29 12:19:24 -04:00
Murphy Berzish b06b9f9264 str.to-int WIP 2016-10-21 13:35:35 -04:00
Murphy Berzish ef0f6f1de3 add str.to-int in theory_str WIP 2016-10-20 16:01:51 -04:00
Murphy Berzish 05dfa5509a theory_str high-level and regex API 2016-10-20 15:36:54 -04:00
Murphy Berzish d57c92f69e theory_str api: concat, length 2016-10-20 12:25:52 -04:00
Murphy Berzish ce53b36864 theory_str API started 2016-10-14 12:34:11 -04:00
Murphy Berzish dc8062ba67 patch out contains check for substr reduction
fixes all regressions in release build, we may want to revisit this later
2016-09-22 20:14:42 -04:00
Murphy Berzish 1061cdf58a fix value tester theory var reuse in theory_str
fixes release regression in charAt-007
2016-09-22 15:40:43 -04:00
Murphy Berzish 4433417b6e faster push_scope in theory_str 2016-09-20 16:25:28 -04:00
Murphy Berzish feef85c129 override scope check in theory_str::solve_concat_eq_str
fixes indexof2-009.smt2
2016-09-20 15:37:29 -04:00
Murphy Berzish 48eaa6159c disable aggressive unroll testing in theory_str, it may be doing more harm than good 2016-09-20 01:10:27 -04:00
Murphy Berzish 447c6e4ce3 refresh length tester in theory_str::gen_len_val_options_for_free_var
fixes charAt-007.smt2
2016-09-20 00:28:29 -04:00
Murphy Berzish f1d7ffcdce fix regression regex-020 2016-09-20 00:14:38 -04:00
Murphy Berzish 9615b191de theory_str hacking for theory var stuff WIP 2016-09-19 23:40:17 -04:00
Murphy Berzish c38f63dd2a fix eqc management and unroll test var gen in theory_str::final_check 2016-09-19 19:42:16 -04:00
Murphy Berzish 91b625768c fix tracing in theory_str 2016-09-15 17:01:59 -04:00
Murphy Berzish e7c0c29ae5 potentially fix out-of-scope infinite loop bug in theory_str gen_unroll_conditional_options 2016-09-15 15:59:56 -04:00
Murphy Berzish 8776b97841 variable scope correctness hack in theory_str 2016-09-14 22:08:40 -04:00
Murphy Berzish bed40c45b8 cleanup 2016-09-14 21:48:27 -04:00
Murphy Berzish ad7247df51 make calls to theory_str::dump_assignments depend on the correct trace flags 2016-09-14 19:32:14 -04:00
Murphy Berzish 15055c8041 use mk_int_var to make xor terms 2016-09-14 19:01:14 -04:00
Murphy Berzish d334403720 remove relevancy testing experiment 2016-09-14 17:42:40 -04:00
Murphy Berzish f22f4da023 remove unused variable 2016-09-14 17:33:47 -04:00
Murphy Berzish 9ee7326a19 tweaks to process_concat_eq_type_3 2016-09-14 17:26:52 -04:00
Murphy Berzish a294c145dc add theory_str::try_eval_concat to work around rewriter behaviour
this fixes a regression in concat-013.smt2
2016-09-14 16:18:03 -04:00
Murphy Berzish e46fc7b0b6 fix expr-app conversion 2016-09-14 15:51:33 -04:00
Murphy Berzish 804009a757 use z3str2 eqc semantics for get_eqc_value 2016-09-14 15:37:48 -04:00
Murphy Berzish 50353168ef fix semantics of get_concats_in_eqc and get_var_in_eqc 2016-09-14 15:36:36 -04:00
Murphy Berzish 87d61d6d6e fix semantics of in_same_eqc 2016-09-14 15:35:37 -04:00
Murphy Berzish ec9e1686f7 fix semantics of collect_eq_nodes and simplify_parent 2016-09-14 15:32:49 -04:00
Murphy Berzish 9481601b4b restore z3str2 eqc semantics in theory_str::new_eq_check 2016-09-14 15:15:47 -04:00
Murphy Berzish 34dc655150 z3str2 eqc semantics for theory_str unroll checks 2016-09-13 18:24:59 -04:00
Murphy Berzish 8f636e1f57 fix typo'ed set reference in handle_equality 2016-09-13 18:16:21 -04:00
Murphy Berzish aea0032aa7 manage our own union-find structure in theory_str
concat-086.smt2 passes with this, for the first time ever
2016-09-13 18:01:45 -04:00
Murphy Berzish ca71a20ab7 add caching to theory_str::mk_concat, WIP 2016-09-12 17:17:17 -04:00
Murphy Berzish 015016c92b disable variable scope check if not tracing in theory_str 2016-09-12 16:57:05 -04:00
Murphy Berzish b3fddf4707 performance optimization in theory_str::classify_ast_by_type 2016-09-12 16:41:35 -04:00
Murphy Berzish 2c5569aa1f change cut_var_map to obj_map 2016-09-12 15:43:58 -04:00
Murphy Berzish 82e07aae8c disable deferred eqc check in theory_str 2016-09-08 19:55:08 -04:00
Murphy Berzish c83e39d3b8 fix incorrect axiom in theory_str for Contains check
this partially fixes a regression in contains-034.smt2, which now
is at least not a SAT-as-UNSAT
2016-09-05 17:45:10 -04:00
Murphy Berzish 7b34efada7 add aggressive unroll test option to theory_str 2016-09-04 18:48:15 -04:00
Murphy Berzish 347f441517 add a check for variable scope to theory_str 2016-09-02 20:44:14 -04:00
Murphy Berzish 2b8f165cc4 patch UNSAT to UNKNOWN in cmd_context for theory_str 2016-09-02 19:04:20 -04:00
Murphy Berzish d3062a8eff omit out-of-scope length testers from axiom premise in theory_str::gen_len_test_options
this fixes a regression in charAt-007.smt2
2016-09-02 18:23:41 -04:00
Murphy Berzish f9b4f21683 add rewrite for theory_str rewriter RegexPlus
fixes regex-013.smt2
2016-08-31 19:22:04 -04:00
Murphy Berzish 5e22bc57c8 theory_str cleanup 2016-08-31 19:19:23 -04:00
Murphy Berzish 89d5f4ffb4 add compute_contains check to theory_str
this may cause a crash in indexof-002.smt2 but
I cannot reproduce it
2016-08-21 21:37:46 -04:00
Murphy Berzish 2a199294a1 remove incorrect null pointer check from theory_str::gen_len_val_options_for_free_var
everything that calls this method knows that it can legally return null
2016-08-21 00:43:00 -04:00
Murphy Berzish 7b3203b48e disable aggressive length/value testing in theory_str, it seems to be detrimental 2016-08-21 00:30:29 -04:00
Murphy Berzish 1a75781a3c add experimental option to defer new_eq_check to final_check in theory_str 2016-08-20 23:09:08 -04:00
Murphy Berzish 481e97a274 propagate early in theory_str to set up contains/regex maps
this fixes an unsat-as-sat error in a regex test and flips around some timeouts
so more work will be required to track this down
2016-08-19 22:53:36 -04:00
Murphy Berzish 8598a48e3b fix weird Contains rewriter behaviour in theory_str 2016-08-18 19:14:50 -04:00
Murphy Berzish 3c8b833eeb fix expression dereference error in theory_str::gen_assign_unroll_Str2Reg 2016-08-18 17:03:32 -04:00
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 0834229b39 theory_str model validation for substr 2016-08-17 15:33:02 -04:00
Murphy Berzish 48081864b0 add regex validation in str_rewriter 2016-08-16 18:07:31 -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 f48377e780 temporarily disable a third Contains check for testing purposes 2016-08-14 16:14:48 -04:00
Murphy Berzish ee6f1eef69 add theory_str::check_contain_by_substr 2016-08-14 15:14:48 -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 3dff240bb3 theory_str model validation for Length 2016-08-07 15:50:41 -04:00
Murphy Berzish cb566ad5ce fix model validation for theory_str 2016-08-07 15:43:08 -04:00
Murphy Berzish 395ec4543c avoid crash in theory_str, this leaks memory 2016-08-06 22:19:10 -04:00
Murphy Berzish 43b0cd5010 clean up unused variables in theory_str.cpp 2016-08-06 15:38:58 -04:00
Murphy Berzish 2c91f388df add defensive double-non-concat check in theory_str::simplify_concat_equality() 2016-08-06 15:35:47 -04:00
Murphy Berzish 91c336d7ee fix erroneous vector double-insert in theory_str::group_terms_by_eqc() 2016-08-06 15:32:37 -04:00
Murphy Berzish 0c4e725902 finish theory_str::mk_concat, no caching of generated terms yet 2016-08-04 16:40:05 -04:00