John Regehr
b7e1b1e118
get rid of threads in the scoped_timer thread pool prior to forking, on non-Windows ( #4833 )
...
* on POSIX systems, fork() is dangerous in the presence of a thread
pool, because the child process inherits only the thread from the
parent that actually called fork().
this patch winds down the scoped_timer thread pool in preparation for
forking; workers will get freshly created again following the fork
call.
2020-11-29 21:26:53 +00:00
Nikolaj Bjorner
797f50e699
DRAT debugging updates
2020-11-22 15:38:57 -08:00
Nikolaj Bjorner
1b768c9b3a
fix #4805
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-11-20 12:11:38 -08:00
Nikolaj Bjorner
6506d33b35
Add GCD test
2020-11-20 11:12:54 -08:00
Nuno Lopes
40159a3a96
fix single-thread build
2020-11-19 21:46:32 +00:00
John Regehr
0fa88efc2b
scoped_timer: wait for timer thread before main thread continues ( #4803 )
2020-11-19 21:42:55 +00:00
Christoph M. Wintersteiger
eadf755628
Fix bonus subtraction in fp.rem. Fixes #4564 . Fixes most of #2381 .
2020-11-06 20:54:10 +00:00
Nikolaj Bjorner
ab199dedf9
debug arith/mbi
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-11-02 12:13:19 -08:00
Christoph M. Wintersteiger
c03c395267
Add missing assertion. Fixes #4642 .
2020-10-30 14:09:51 +00:00
Nuno Lopes
1730bc7c7f
fix #4763 : shell not finishing before hard timeout
...
The timer thread for the hard timeout was leaking and thus the thread only exited on timeout
2020-10-30 10:01:09 +00:00
Nikolaj Bjorner
f354671465
add parameter for scenario from #4743
2020-10-30 01:14:34 -07:00
Nikolaj Bjorner
0de3149634
fix #4763
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-10-29 11:15:53 -07:00
Nikolaj Bjorner
8d76470a8a
fixes to mostly solver arith/euf and backtracking scopes
2020-10-26 11:06:41 -07:00
Nikolaj Bjorner
1ee2ba2a9b
mbqi
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-10-26 11:06:40 -07:00
Nuno Lopes
aaa1af5b28
fix debug build
2020-10-24 13:05:25 +01:00
Nuno Lopes
4e9035d4b9
cleanup thread pool of scoped_timer on memory finalize
...
but keep it alive on Z3_memory_reset()
2020-10-24 12:46:50 +01:00
Nuno Lopes
0213af3c61
replace remaining volatiles with atomic<>
...
volatiles are now deprecated in recent C++
2020-10-24 11:47:45 +01:00
Nikolaj Bjorner
a4aa87b6c9
revert to STL allocated memory to be orthogonal to memory manager behavior
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-10-22 12:12:32 -07:00
Nikolaj Bjorner
9bd7df7e19
add stub for finalize
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-10-22 11:07:05 -07:00
John Regehr
a95c35dadb
thread pool for scoped_timer ( #4748 )
...
creating a fresh thread for every scoped_timer has significant overhead
in some use cases. this patch creates a persistent pool of worker threads
to do this job, resulting in 20-30% speedup of some alive2 jobs on a
large multicore
2020-10-22 18:25:01 +01:00
Nuno Lopes
0c354c7aab
obj_map: fix move constructor
2020-10-22 12:13:58 +01:00
Nikolaj Bjorner
72d407a49f
mbp ( #4741 )
...
* adding dt-solver
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* dt
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* move mbp to self-contained module
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* files
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* Create CMakeLists.txt
* dt
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* rename to bool_var2expr to indicate type class
* mbp
* na
* add projection
* na
* na
* na
* na
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* deps
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* testing arith/q
* na
* newline for model printing
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-10-21 15:48:40 -07:00
Nikolaj Bjorner
44679d8f5b
arith_solver ( #4733 )
...
* porting arithmetic solver
* integrating arithmetic
* lp
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-10-16 10:49:46 -07:00
Nikolaj Bjorner
fa58a36b9f
model refactor ( #4723 )
...
* refactor model fixing
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* missing cond macro
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* file
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* file
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* add macros dependency
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* deps and debug
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* add dependency to normal forms
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* build issues
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* compile
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fix leal regression
* complete model fixer
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fold back private functionality to model_finder
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* avoid duplicate fixed callbacks
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-10-05 14:13:05 -07:00
Nikolaj Bjorner
45103637ad
fix build
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-09-29 14:34:24 -07:00
Nikolaj Bjorner
ee909b6374
random compiler nits
2020-09-29 13:43:51 -07:00
Nikolaj Bjorner
a216bee647
updated notes, fixes to dual solver
2020-09-29 13:43:50 -07:00
Nikolaj Bjorner
15f6124fbd
remove files
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-09-29 13:43:50 -07:00
Nikolaj Bjorner
4562c07ceb
redo egraph
2020-09-29 13:43:49 -07:00
Nikolaj Bjorner
367e5fdd52
delay internalize ( #4714 )
...
* adding array solver
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* use default in model construction
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* debug delay internalization
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* bv
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* arrays
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* get rid of implied values and bounds
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* redo egraph
* remove out
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* remove files
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-09-28 19:24:16 -07:00
Nikolaj Bjorner
7c2bdfe3fb
delay internalization, relevancy ( #4707 )
...
* delay evaluation
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* Update bv_solver.cpp
* delay internalize
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* compiler warnings
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* remove gc
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* add bv delay option
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-09-23 17:12:01 -07:00
Nikolaj Bjorner
b7ec4489a6
bv fixes and tuning ( #4703 )
...
* heap size information
* bv tuning
* fix #4701
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* throw on set-has-size #4700
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-09-21 19:54:53 -07:00
Nikolaj Bjorner
6a4261d1af
debugging bv
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-09-15 15:37:31 -07:00
Nikolaj Bjorner
796e2fd9eb
arrays ( #4684 )
...
* arrays
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* arrays
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* arrays
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fill
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* update drat and fix euf bugs
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* const qualifiers
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* reorg ba
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* reorg
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* build warnings
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-09-13 19:29:59 -07:00
Nikolaj Bjorner
cfa7c733db
fixing #4670 ( #4682 )
...
* fixing #4670
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* init
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* arrays
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* arrays
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* arrays
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-09-10 04:35:11 -07:00
Nikolaj Bjorner
7327023c88
add variable replay, remove MacOS from Travis ( #4681 )
...
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* dbg
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* bv
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* drat and fresh
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* move ackerman functionality
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* debugability
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* towards debugability
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* missing file
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* remove csp
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* replay variables created by solver
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* remove old function
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fix scoped-limit
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-09-08 05:57:07 -07:00
Margus Veanes
af54a79acc
fixing issue #4651 ( #4666 )
...
* fixing issue #4651
* regression fix
* fix #4662
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* reenabled lift_ites_throttled with an additional filter, without the filter finding the model in report #4651 goes from .02s to 20s, also updated pretty printing of regexes to be more accurate
* removing temp testing variable
* Allow to skip System.loadLibrary() calls from Java Native class (#4667 )
* using intended utility methods for sort detection
* adding ack/model
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* add smt params dependency
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* missing file
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* deps
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* order
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* persist fields
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* dbg build
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* reset caches
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* sr
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fix cmake build
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* shuffle dependencies
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* warnings /errors
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* update include
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* missing cmakelists
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* update cmake
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* add depend
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* add depend
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* virtual method
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* path
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* move parameters from ast/rewriter to params
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* move fpa
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fix warnings
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* remove pragma
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* dbg
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* updated sat_smt
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fix #4651
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* encoding options #4665
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* expose name inclusion as optional
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fix misc issues around #4661 introduced when adding lazy push/pop to selected theories
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* remove lazy push from theory_lra
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fix dotnet build
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* release nodes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* free memory in egraph
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* avoid duplicate class names frame in sat_scc and sat_smt
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* adding euf
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* elaborate on smt/drat format outline, expose euf mode as config
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* mk-var during copy
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* move theory_var_list into id_var_list and utilities from smt-enode into it, prepare for theory variables in egraph
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* with bounded
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* Remove duplicate binary condition. Fixes #4668 .
* butterfly effect on fp?
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* prepare for theory plugins
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* file
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* build fix
* remove SMTFD
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* SMTFD is back (#4676 )
* fixing issue #4651
* regression fix
* reenabled lift_ites_throttled with an additional filter, without the filter finding the model in report #4651 goes from .02s to 20s, also updated pretty printing of regexes to be more accurate
* removing temp testing variable
* using intended utility methods for sort detection
* misc edits related to nonground regexes
* bug fix of state id off by 1 calculation error and improved pretty printing with regex tooltip generated in dgml state graph
* removed unused method declaration
* improved id to regex value map info in generated dgml
* reorgd callback function for state pretty printer
* updated some comments
Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>
Co-authored-by: Sergey Vladimirov <vlsergey@gmail.com>
Co-authored-by: Christoph M. Wintersteiger <cwinter@microsoft.com>
Co-authored-by: Arie Gurfinkel <arie.gurfinkel@gmail.com>
2020-09-08 04:13:18 -07:00
Nikolaj Bjorner
d02b0cde7a
running updates to bv_solver ( #4674 )
...
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* dbg
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* bv
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* drat and fresh
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* move ackerman functionality
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* debugability
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* towards debugability
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* missing file
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* remove csp
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-09-07 20:35:32 -07:00
Christoph M. Wintersteiger
527bf72d42
Remove duplicate binary condition. Fixes #4668 .
2020-09-01 15:22:01 +00:00
Nikolaj Bjorner
ecddaeae66
na
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-09-01 07:15:13 -07:00
Nikolaj Bjorner
d4e92d4aca
move theory_var_list into id_var_list and utilities from smt-enode into it, prepare for theory variables in egraph
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-09-01 04:26:31 -07:00
Nikolaj Bjorner
4d41db3028
adding euf
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-31 14:36:16 -07:00
Nikolaj Bjorner
4244ce4aad
adding ack/model
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-28 12:55:47 -07:00
Nuno Lopes
a7b51d04cd
remove unused file
2020-08-25 15:10:41 +01:00
Arie Gurfinkel
22b5daf85e
fix rlimit for clang-10 ( #4658 )
2020-08-21 10:34:10 -07:00
Nikolaj Bjorner
ecb43ccca2
update smt logging format to follow SAT solver
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-20 20:00:20 -07:00
Nikolaj Bjorner
2611484525
fix #4642
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-17 08:35:15 -07:00
Nikolaj Bjorner
f0308436b5
use lazy scopes to avoid push/pop overhead
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-17 08:07:06 -07:00
Caleb Stanford
2c02264a94
Regex solver updates ( #4636 )
...
* std::cout debugging statements
* comment out std::cout debugging as this is now a shared fork
* convert std::cout to TRACE statements for seq_rewriter and seq_regex
* add cases to min_length and max_length for regexes
* bug fix
* update min_length and max_length functions for REs
* initial pass on simplifying derivative normal forms by eliminating redundant predicates locally
* add seq_regex_brief trace statements
* working on debugging ref count issue
* fix ref count bug and convert trace statements to seq_regex_brief
* add compact tracing for cache hits/misses
* seq_regex fix cache hit/miss tracing and wrapper around is_nullable
* minor
* label and disable more experimental changes for testing
* minor documentation / tracing
* a few more @EXP annotations
* dead state elimination skeleton code
* progress on dead state elimination
* more progress on dead state elimination
* refactor dead state class to separate self-contained state_graph class
* finish factoring state_graph to only work with unsigned values, and implement separate functionality for expr* logic
* implement get_all_derivatives, add debug tracing
* trace statements for debugging is_nullable loop bug
* fix is_nullable loop bug
* comment out local nullable change and mark experimental
* pretty printing for state_graph
* rewrite state graph to remove the fragile assumption that all edges from a state are added at a time
* start of general cycle detection check + fix some comments
* implement full cycle detection procedure
* normalize derivative conditions to form 'ele <= a'
* order derivative conditions by character code
* fix confusing names m_to and m_from
* assign increasing state IDs from 1 instead of using get_id on AST node
* remove elim_condition call in get_dall_derivatives
* use u_map instead of uint_map to avoid memory leak
* remove unnecessary call to is_ground
* debugging
* small improvements to seq_regex_brief tracing
* fix bug on evil2 example
* save work
* new propagate code
* work in progress on using same seq sort for deriv calls
* avoid re-computing derivatives: use same head var for every derivative call
* use min_length on regexes to prune search
* simple implementation of can_be_in_cycle using rank function idea
* add a disabled experimental change
* minor cleanup comments, etc.
* seq_rewriter cleanup for PR
* typo noticed by Nikolaj
* move state graph to util/state_graph
* re-add accidentally removed line
* clean up seq_regex code removing obsolete functions and comments
* a few more cleanup items
* oops, missed merge change to fix compilation
* disabled change to lift unions to the top level and treat them seperately in seq_regex solver
* added get_overapprox_regex to over-approximate regex membership constraints
* replace calls to is_epsilon with a centrally available method in seq_decl_plugin
* simplifications and modifications in get_overapprox_regex and related
* added approximation support for sequence expressions that use ite
* removed is_app check that was redundant
* tweak differences with upstream
* rewrite derivative leaves
* enable Antimorov-style derivatives via lifting unions in the solver
* TODO placeholders for outputting state graph
* change order in seq_regex propagate_in_re
* implement a more restricted form of Antimorov derivatives via a special op code to indicate lifting unions
* minor
* new Antimorov optimizations based on BDD compatibility checking
* seq regex tracing for # of derivatives
* fix get_cofactors (currently this fix is buggy)
* partially revert get_cofactors buggy change
* re-implement get_cofactors to more efficiently explore nodes in the derivative expression
* dgml generation for state graph
* fix release build
* improved dgml output
* bug fixes in dgml generation
* dot output support for state_graph and moved dgml and dot output under CASSERT
* updated tracing of what regex corresponds to what state id with /tr:state_graph
* clean up & document Antimorov derivative support
* remove op cache tracing
* remove re_rank experimental idea
* small fix
* fix Antimorov derivative (important change for the good performance)
* remove unused and unnecessary code
* implemented simpler efficient get_cofactors alternative mk_deriv_accept
* simplifications in propagate_accept, and trace unusual cases
* document the various seq_regex tracing & debugging command-line options
* fix debug build (broken tracing)
* guard eager Antimorov lifting for possible disabling
* fix bug in propagate_accept Rule 1
* disable eager version of Antimorov lifting for performance reasons
* remove some remaining obsolete comments
Co-authored-by: calebstanford-msr <t-casta@microsoft.com>
Co-authored-by: Margus Veanes <margus@microsoft.com>
2020-08-13 12:47:36 -07:00
Nikolaj Bjorner
c63ad2e834
enable ranges for bit-vectors
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-13 10:53:37 -07:00