3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-13 20:38:43 +00:00
Commit graph

175 commits

Author SHA1 Message Date
calebstanford-msr c939195c10
add regex support for reverse and left/right derivative rewriting (#4477)
* partial work on adding 'reverse' (broken code)

* new op codes for derivative and reverse + associated rewrite rules

* incorporate reverses and derivatives in rewriter + some fixes

* enable rewriting str.in_re constraints with right derivative
2020-05-29 13:00:37 -07:00
Nikolaj Bjorner dbd90e5f86 dbg proagate_eq
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-05-27 10:33:45 -07:00
Nikolaj Bjorner a97bc65af4 hoist co-factors eagerly without adding axioms
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-05-25 15:10:45 -07:00
Nikolaj Bjorner d1d14111cb turn on Unicode parsing when they fit in 8 bits
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-05-22 10:41:19 -07:00
Nikolaj Bjorner 5844964d95 rename temporary macro
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-05-18 17:17:51 -07:00
Nikolaj Bjorner c8c02060ee another module level ifdef for #4382
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-05-18 15:01:27 -07:00
Murphy Berzish 152d6338f8
fix hex digit radix in unicode escape (#4356) 2020-05-17 19:07:51 -07:00
Nikolaj Bjorner 1def58bc9f optional unicode mode
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-05-17 19:06:34 -07:00
Nikolaj Bjorner 30f17b1509 fix #4355
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-05-17 12:28:30 -07:00
Nikolaj Bjorner fc8dfe3e40 seq
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-05-17 05:35:32 -07:00
Nikolaj Bjorner 34cc60410f additional str/re operators, remove encoding option from zstring
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-05-17 05:08:36 -07:00
Nikolaj Bjorner bfb38451d1 add unicode encoding back 2020-05-16 17:11:47 -07:00
Murphy Berzish 6f0a367357
add SMTLIB2.6 names for QF_SLIA and string-int conversion operators (#4341) 2020-05-16 14:31:47 -07:00
Nikolaj Bjorner 21c4d451d8 parse RegLan
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-05-16 14:26:53 -07:00
Nikolaj Bjorner 4753d93bb7 add some of the SMTLIB2.6 conventions and features to strings
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-05-16 14:00:02 -07:00
Nikolaj Bjorner 1ab2ad07be outline of unicode parsing #4333
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-05-16 13:36:43 -07:00
Murphy Berzish 1f15033ca2
z3str3: remove legacy code (#4215)
* z3str3: remove legacy fixed-length overlap testing

parameter smt.str.fixed_length_overlap_models has been deprecated

* z3str3: remove legacy length/value testing algorithm and binary search heuristic

the following parameters are deprecated:
smt.str.use_binary_search
smt.str.binary_search_start
smt.str.fixed_length_models (the fixed-length model construction is now always used)

* z3str3: remove legacy regex unroll methods

* z3str3: remove unused methods and member variables
2020-05-06 13:07:04 -07:00
Nikolaj Bjorner 9c3f0190f4 fix #4069
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-04-23 20:53:13 -07:00
Nikolaj Bjorner 501aa7927d split into seq_axioms and seq_skolem
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-04-17 06:14:52 -07:00
Nikolaj Bjorner 835b57b775 fix #3961 fix #3940
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-04-14 17:33:44 -07:00
Nikolaj Bjorner a7aff1bcf0 fix regression on string ops
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-04-02 10:03:35 -07:00
Nikolaj Bjorner 57d430b3fd fix #3700
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-04-02 06:38:14 -07:00
Nikolaj Bjorner ab5905cf7f some adjustments for stack use on large strings
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-01-12 22:08:24 -08:00
Nikolaj Bjorner 541658fe02 move to abstract symbols
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-01-10 12:14:13 -08:00
Nikolaj Bjorner 489448b869 fix #2762, fix #2750, add iterative unrolling to help on termination on sat instances (to address non-termination in #2759 and #2762)
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-11-30 18:05:24 -08:00
Nikolaj Bjorner a257ec0cc1 build warnings #2748
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-11-28 15:36:54 -08:00
Nikolaj Bjorner 64dd4e1c83 fix #2659
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-10-25 10:42:21 -07:00
Nikolaj Bjorner 4ce6b53d95 fix #2640
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-10-16 20:40:03 -07:00
Nikolaj Bjorner 4101652747 handle case where lower bound is above upper
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-09-20 09:54:18 -07:00
Nikolaj Bjorner cd0cd82eb7 add rewrites for #2575
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-09-20 08:55:53 -07:00
Nikolaj Bjorner 12034df11a add rewrites for #2575
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-09-20 02:16:30 -07:00
Nikolaj Bjorner 584eee2cf4 fixing #2448 and #2445 and #2443
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-08-02 15:06:34 -07:00
Nikolaj Bjorner 335543b374 adding comparison #2360
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-06-28 21:14:58 -07:00
Nikolaj Bjorner b2845d888e add get_lstring per #2286
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-05-22 18:32:57 +04:00
Nikolaj Bjorner 3e059a3a3b one must answer the call of the master of compilers #2258
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-05-07 05:49:16 +02:00
Nikolaj Bjorner 3c8fd83c97 implementing last-index-of #2089
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-03-22 12:29:50 -07:00
Nuno Lopes 6a0c409b0f move a few strings instead of copying 2019-02-28 10:53:27 +00:00
Nikolaj Bjorner f56749a241 fix #2041, fix #2043
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-12-16 15:18:49 -08:00
Nikolaj Bjorner ea0d253308 fix const-char test
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-12-03 11:56:20 -08:00
Nikolaj Bjorner 2aa7ccc4a9 hide bit-vector dependencies under seq_util
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-12-03 08:45:17 -08:00
Nikolaj Bjorner 67f22d8d65 improving performance for length constraints
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-11-29 11:32:52 -08:00
Nikolaj Bjorner e96f9de70b perf #1988
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-11-29 06:02:32 -08:00
Nikolaj Bjorner aa723f1eee fix uninitialized variable
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-11-24 18:13:35 -08:00
Nikolaj Bjorner 6ddbc9cd38 overhaul of regular expression membership solving. Use iterative deepening and propagation, coallesce intersections
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-11-24 15:26:39 -08:00
Nikolaj Bjorner f591e0948a fix #1841
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-11-22 15:28:33 -08:00
Nikolaj Bjorner 7bc3b4e381 swap order in equality for emptiness check to deal with rewriter
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-11-22 13:03:55 -08:00
Nikolaj Bjorner aeb4d1864d clean up suffix/prefix rewriting
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-11-22 11:39:34 -08:00
Nikolaj Bjorner 498fa87993 seq rewriting fixes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-11-22 10:48:49 -08:00
Nikolaj Bjorner 03bb5a085f fix #1940
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-11-15 09:21:03 -08:00
Murphy Berzish b09035565a canonicalize encoding of string constants/symbols 2018-09-05 19:04:11 -04:00
Nikolaj Bjorner 774fa33bfe fix parameter lookup
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-07-13 08:49:46 -07:00
Nikolaj Bjorner 4915fb080b fix #1749 by rejecting non-well-founded use of datatype in array
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-07-12 22:45:52 -07:00
Nikolaj Bjorner a04921dafe fix #1595
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-04-26 08:47:05 +02:00
Nikolaj Bjorner cf2258a536 fix #1594
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-04-26 08:39:35 +02:00
Nikolaj Bjorner aef3de5fca escape ascii above 127, issue #1571
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-04-12 15:05:35 +08:00
Nikolaj Bjorner a4c58ec4c2 fix #1496
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-02-22 08:05:28 +09:00
Bruce Mitchener 76eb7b9ede Use nullptr. 2018-02-12 14:05:55 +07:00
Nikolaj Bjorner 3f7453f5c5 fixing build
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-02-07 20:23:31 -08:00
Nikolaj Bjorner 61934d8106 align semantics of re.allchar with string proposal. #1475
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-02-07 20:08:15 -08:00
Nikolaj Bjorner b19f94ae5b make include paths uniformly use path relative to src. #534
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-07-31 13:24:11 -07:00
Nikolaj Bjorner d1cfc53495 fix for #1015
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-05-10 19:40:00 -07:00
Murphy Berzish 05958193ab revert change to String sort declaration 2017-04-27 22:30:02 -04:00
Murphy Berzish 46ac718790 theory_str frontend changes 2017-04-26 17:24:05 -04:00
Nikolaj Bjorner 48638c6f1e fix for #975, add mask to ensure character encoding is unique within range of bits used for encoding
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-04-15 09:34:13 +07:00
Murphy Berzish ad0766898c add boolean operators to zstring and fix ostream 2017-03-04 15:20:57 -05:00
Murphy Berzish 0ebd93c8b5 add _re.unroll internal operator to seq_decl_plugin 2017-02-23 20:57:19 -05:00
Murphy Berzish eb0ba26f90 C-style octal escapes, including 1- and 2-digit escapes 2017-02-23 18:33:10 -05:00
Murphy Berzish 61bbf8ba7e add octal escape to seq_decl_plugin 2017-02-23 18:24:08 -05:00
Nikolaj Bjorner 8e6600c6be add python API for newly exposed regex constructors
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-12-09 09:09:03 +01:00
Nikolaj Bjorner 7a4c20698f fix handling of AC operator ++ on regular expressions. Issue #804
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-11-22 13:02:17 -08:00
Nikolaj Bjorner 879f792125 fix axiomatization of str.replace. Fixes issue #703
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-08-20 06:13:52 -07:00
Nikolaj Bjorner d5ee7e24bc add simplification for equalities between itos and constant strings, Issue #589
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-07-08 11:50:39 -07:00
Nikolaj Bjorner 09b8c0e7fa removing warnings for unused variables, #579
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-05-17 15:59:06 -07:00
Nikolaj Bjorner 0870b4a5a0 add length coherence check for length = 0
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-03-25 17:17:34 -07:00
Nikolaj Bjorner 45fdb95f53 fix performance for model construction, recognize concats of values as a value for pre-processing
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-03-23 17:23:57 -07:00
Nikolaj Bjorner 94453033b6 add partial support for complementation of regular expressions. Handles case of complementing character ranges
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-12 15:59:33 +00:00
Nikolaj Bjorner 60c0e73b2f Merge branch 'master' of https://github.com/Z3Prover/z3 2016-02-09 11:08:52 +00:00
Nikolaj Bjorner 133e3693de fix bug in replace built-in and move length-equality propagation to branch final check
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-09 11:08:33 +00:00
Christoph M. Wintersteiger 37b11cdc74 Comments, whitespace. 2016-02-07 15:01:09 +00:00
Nikolaj Bjorner 5b50d98b89 ensure that seq rewriter gets invoked during pre-processing
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-06 16:13:31 +00:00
Nikolaj Bjorner 6529d43fb1 fix bugs exposed by unit tests from Pierre
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-01-26 09:50:14 -08:00
Nikolaj Bjorner 8e378062e2 add get-some-value to seq API, expose quantifier tactics
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-01-26 08:05:44 -08:00
Nikolaj Bjorner 345f6e87bd seq bug fixes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-01-26 07:21:31 -08:00
Nikolaj Bjorner 924f03c6de fixing bugs in seq
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-01-23 10:38:49 -05:00
Nikolaj Bjorner 150c5c283d update re simplification
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-01-15 10:11:39 +05:30
Nikolaj Bjorner de9c959241 add support for re.nostr, re.all, fix bug in disequality handling of sequences, update signature of loop to handle integer arguments and variable arguments
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-01-14 10:56:03 +01:00
Nikolaj Bjorner e0215400e2 add empty/full regular languages, escape sequence fixes, check cancellation inside simplifier
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-01-13 20:13:17 +01:00
Nikolaj Bjorner 9909c056f0 add range / loop handling for re. Fix regression reading mixed numerals reported by Trentin
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-01-13 00:49:31 -08:00
Nikolaj Bjorner db746e0c2f fix more unused variable warning messages
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-01-12 09:52:16 -08:00
Nikolaj Bjorner db71563478 fix build compiler warnings on OSX
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-01-12 09:36:01 -08:00
Nikolaj Bjorner 0e6aaf0211 Issue #407 build break
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-01-07 20:05:49 -08:00
Nuno Lopes 465d28e160 seq_decl: fix build with stricter compilers
get rid of 32 rellocations as a nice side-effect
2016-01-05 14:57:41 +00:00
Nikolaj Bjorner e10ecad5dc seq API
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-01-02 22:52:28 -08:00
Nikolaj Bjorner 876fd1f7ba seq
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-01-01 09:00:21 -08:00
Nikolaj Bjorner 78550ec816 seq
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2015-12-31 07:48:14 -08:00
Nikolaj Bjorner 746d26e744 seq
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2015-12-29 21:14:52 -08:00
Nikolaj Bjorner 31302ec851 automata
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2015-12-25 15:22:26 -08:00
Nikolaj Bjorner f414869456 add symbolic automaton
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2015-12-23 19:46:10 -08:00
Nikolaj Bjorner 386399472d seq
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2015-12-23 11:02:34 -08:00
Nikolaj Bjorner 9c6271dded add debugging facilities for github issues #384 #367
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2015-12-22 10:43:18 -08:00