3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-17 14:25:35 +00:00
Commit graph

12239 commits

Author SHA1 Message Date
Nikolaj Bjorner 507b4c7848 path
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-29 11:05:05 -07:00
Nikolaj Bjorner 49838057a4 virtual method
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-29 10:51:06 -07:00
Nikolaj Bjorner 98084d7da7 add depend
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-29 10:49:19 -07:00
Nikolaj Bjorner 7c592d4543 add depend
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-29 10:48:05 -07:00
Nikolaj Bjorner f6b242e581 update cmake
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-29 10:46:58 -07:00
Nikolaj Bjorner 455d53ef27 missing cmakelists
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-29 10:46:17 -07:00
Nikolaj Bjorner e2bdf54d5e update include
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-29 10:45:26 -07:00
Nikolaj Bjorner 79fc3f2375 warnings /errors
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-29 09:53:24 -07:00
Nikolaj Bjorner b9cbb08858 shuffle dependencies
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-29 09:51:39 -07:00
Nikolaj Bjorner 4e6476c90a fix cmake build
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-29 09:22:04 -07:00
Nikolaj Bjorner 60f8884dbd sr
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-28 15:10:52 -07:00
Nikolaj Bjorner b8fb744935 reset caches
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-28 15:09:12 -07:00
Nikolaj Bjorner 739b5376e3 dbg build
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-28 13:45:06 -07:00
Nikolaj Bjorner 93ee2a68a4 persist fields
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-28 13:41:50 -07:00
Nikolaj Bjorner ba21ffa31b missing file
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-28 12:59:57 -07:00
Nikolaj Bjorner 4244ce4aad adding ack/model
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-28 12:55:47 -07:00
Nikolaj Bjorner 6706b0dfcd na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-27 15:07:45 -07:00
Nikolaj Bjorner 872fd5e9ff fix #4662
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-27 15:05:35 -07:00
Nikolaj Bjorner c6135a40d5 virtual
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-26 17:59:40 -07:00
Nikolaj Bjorner 4ab35a9bb5 euf model
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-26 15:55:20 -07:00
Nuno Lopes e6e635b2e8 remove unneeded pragma 2020-08-26 22:56:14 +01:00
Nikolaj Bjorner 21e13bc5f9 re-add pb extraction
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-26 13:53:28 -07:00
Nikolaj Bjorner 526d76b447 re-add pb extraction
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-26 13:52:43 -07:00
Nikolaj Bjorner 9c77fbc2a9 use virtual destructors
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-26 11:26:10 -07:00
Nikolaj Bjorner 1a36d44450 na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-26 10:41:20 -07:00
Nikolaj Bjorner c21a2fcf9f sat solver setup
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-26 09:40:42 -07:00
Margus Veanes 78b88f761c
updated rewrite rules to propagate nullability over nonground regexes (#4663)
* updated rewrite rules to propagate nullability over nonground regexes

* updated rewrite rules to propagate nullability over nonground regexes

* fixed incorrect rewrite status flag
2020-08-26 00:26:17 -07:00
Nikolaj Bjorner ab10616b77 fix build
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-25 13:19:55 -07:00
Nikolaj Bjorner ecd3315a74 add sat-euf
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-25 12:16:57 -07:00
Nuno Lopes a7b51d04cd remove unused file 2020-08-25 15:10:41 +01:00
Nikolaj Bjorner 22aee4d08d fix issue in #4655
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-24 17:45:50 -07:00
Nikolaj Bjorner c722962124 fix regressions in python API for user-propagator
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-24 10:55:43 -07:00
Nikolaj Bjorner e46ad45968 na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-24 02:20:30 -07:00
Nikolaj Bjorner 6beec7b642 na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-24 02:04:44 -07:00
Nikolaj Bjorner dc1783aafa na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-24 02:02:49 -07:00
Nikolaj Bjorner 65e6d942ac euf
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-24 01:55:13 -07:00
Nikolaj Bjorner 96587bf708 na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-23 13:13:27 -07:00
Nikolaj Bjorner 43d932301d apply operator
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-23 10:45:31 -07:00
Nikolaj Bjorner 84475ff142 fix #4637
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-23 10:05:17 -07:00
Nikolaj Bjorner 666e835e08 na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-23 09:39:36 -07:00
Nikolaj Bjorner af389db2b2 build break
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-23 09:28:56 -07:00
Nikolaj Bjorner 03276b12b1 na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-22 19:12:02 -07:00
Nikolaj Bjorner 96f10b8c1c user propagator
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-22 19:01:04 -07:00
Margus Veanes 5e5ef50dbc
re info extension (#4659)
* made loop info calculation more accurate

* made loop info calculation more accurate

* updated formattig and added const declarations
2020-08-22 15:59:53 -07:00
Nikolaj Bjorner a58b8ceced na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-21 19:48:12 -07:00
Nikolaj Bjorner db65381f33
extended calculation of info for regexes (#4656)
* extended calculation of info for regexes, updated tracing of state_graph with regex info

* took care of PR comments and fixed some info calculation bugs

* fix rlimit for clang-10 (#4658)

* merge

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* extended calculation of info for regexes, updated tracing of state_graph with regex info

* took care of PR comments and fixed some info calculation bugs

* added missing return statements, reordered def of compl to match declaration order of methods

* fixed loop lower bound bug in loop info and default nullable value in invalid_info

* fixed type bug: bool to lbool

* trying to remove invisible control characters

* renamed compl method (compl is a reserved c++ keyword) to complement

Co-authored-by: Arie Gurfinkel <arie.gurfinkel@uwaterloo.ca>
Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-21 19:25:46 -07:00
Nikolaj Bjorner 2d5b749745 extend solver callbacks with methods
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-21 19:24:59 -07:00
Margus Veanes 1e29ba76d0 renamed compl method (compl is a reserved c++ keyword) to complement 2020-08-21 17:34:15 -07:00
Margus Veanes 4dd9249a95 trying to remove invisible control characters 2020-08-21 16:23:24 -07:00
Margus Veanes 8285162c3c fixed type bug: bool to lbool 2020-08-21 16:11:38 -07:00
Margus Veanes 7b478c8406 fixed loop lower bound bug in loop info and default nullable value in invalid_info 2020-08-21 15:59:56 -07:00
Margus Veanes 3fb226dcd6 added missing return statements, reordered def of compl to match declaration order of methods 2020-08-21 13:20:05 -07:00
Margus Veanes 1099c519ab took care of PR comments and fixed some info calculation bugs 2020-08-21 13:00:36 -07:00
Margus Veanes 93bc1bc983 extended calculation of info for regexes, updated tracing of state_graph with regex info 2020-08-21 13:00:36 -07:00
Nikolaj Bjorner 080be7a2af merge
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-21 12:14:28 -07: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 77088745d0 missing override specifiers per #4654
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-20 11:25:52 -07:00
Nikolaj Bjorner eef05e00af user propagator
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-20 10:39:20 -07:00
Nikolaj Bjorner ba4a218fc0 user propagator fixes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-19 19:32:36 -07:00
Margus Veanes de65c61ebc
renamed re to rex and added custom pretty printing for info (#4650) 2020-08-19 19:20:14 -07:00
Nikolaj Bjorner 79aa3457c1 prop
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-19 10:39:51 -07:00
Nikolaj Bjorner 5aaa7e0022 fix #4648
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-18 22:47:58 -07:00
Nikolaj Bjorner ed258ca019 approximate min-length for complements
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-18 22:04:09 -07:00
Nikolaj Bjorner 4857d60c99 user propagator over the API 2020-08-18 21:53:02 -07:00
Margus Veanes c50e869e5a
computing and memoizing info for regexes (#4647)
* computing and memoizing info for regex expressions

* computing and memoizing info for regex expressions

* took care of comments of the related pull request

* removed +1 from min_length of ite

* added to_str method for re and fixed STRACE bug in get_info_rec
2020-08-18 20:01:59 -07:00
Nikolaj Bjorner 747a8ff72a initial sketch of python bindings
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-18 10:41:47 -07:00
Nikolaj Bjorner 0c93c7aa08 adding user propagation to API
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-18 10:30:10 -07:00
Nikolaj Bjorner 578ddf3e9d na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-18 07:19:07 -07:00
Nikolaj Bjorner 152c95f72a adding user-propagator ability
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-17 22:39:55 -07:00
Nikolaj Bjorner c13e3ce693 fix #4640
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-17 08:38:07 -07:00
Nikolaj Bjorner df8b14d77c fix #4641
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-17 08:35:59 -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 33d96c1a37 fix #4643
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-17 08:33:59 -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
Nikolaj Bjorner 558233dd8e build fixes, add lazy push/pop state to avoid overhead on unused theories
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-17 00:13:46 -07:00
Nikolaj Bjorner ca3ec22b7a handle better cancellation for parallel, switch between cube mode and base level mode in smt.threads, expose parameters to control theory_bv and phase caching
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-16 23:29:24 -07:00
Nikolaj Bjorner fae206b738 add command-line help descriptions on tactics
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-14 19:29:35 -07:00
Nikolaj Bjorner c0a07f9229 tidy
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-14 04:26:59 -07:00
Nikolaj Bjorner c4a03dcf7c remove temporary comment
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-14 04:13:30 -07:00
Margus Veanes 1233cb4621 added missing const declarations that caused build failure on some platforms 2020-08-13 20:04:35 -07:00
Margus Veanes 1567587b97 fixed bug in seq_unit 2020-08-13 18:14:21 -07:00
Margus Veanes e80b143e71 updated detection of when parenthesis can be omitted to cover empty and epsilon 2020-08-13 18:14:21 -07:00
Margus Veanes ae413365e9 further PR comment fixes 2020-08-13 18:14:21 -07:00
Margus Veanes 5f9a326910 took care of comments for related PR 2020-08-13 18:14:21 -07:00
Margus Veanes 2c33bd6faf pp support for regex expressions is more-or-less standard syntax 2020-08-13 18:13:51 -07:00
Nikolaj Bjorner 9729db16a2 always reduce macro expansions in model evaluation #4588
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-13 17:39:15 -07:00
Nikolaj Bjorner 094e41d21d build
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-13 16:40:41 -07:00
Nikolaj Bjorner 7d391d44a2 #4637
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-13 13:32:38 -07:00
Nikolaj Bjorner a892e4793b typo
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-13 12:48:18 -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 9df6c10ad8 handle small powers in theory_lra #4616
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-13 11:47:51 -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
Nikolaj Bjorner 72d140334f fixes for #4634
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-13 08:45:22 -07:00
Nikolaj Bjorner c41abf2241 fix #4624 #4633 #4632 #4631
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-13 08:36:16 -07:00
Nikolaj Bjorner 84390575e2 fix #4624
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-12 10:15:09 -07:00
Nikolaj Bjorner 11d5b508be fix #4625
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-12 10:14:39 -07:00
Nikolaj Bjorner 4045563223 fix #4626
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-12 10:13:52 -07:00
Nikolaj Bjorner 5ecc59b6bc fix #4627
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-12 10:13:13 -07:00
Nikolaj Bjorner a5e4e520fb fix #4628 - not really a bug, but style nit. uf1 and uf2 need both to be called
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-12 10:12:22 -07:00