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 be3c3dacb3 add bound refinement propagation
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-12 10:10:31 -07:00
Nikolaj Bjorner 7fc4653e47 fix #4623
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-11 14:08:53 -07:00
Nikolaj Bjorner 9f7e80c440 trace also declarations in assumptions
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-11 09:39:17 -07:00
Nikolaj Bjorner 1f48eabea5 allow Boolean arguments to bit-wise logical operators #4618
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-09 22:01:42 -07:00
Margus Veanes e5693b8a98
added support for saving state graph in dot format (#4621)
* added support for saving state graph in dot format

* moved write_dgml and write_dot under CASSERT

* updated dgml and dot generation a bit so that a state that is both and alive state is detected as having green background but red border when the invariant is vioalted
2020-08-09 14:53:29 -07:00
Rocco Salvia 3852d4516d
modular Axiom Profiler (#4619)
* Rocco first commit

* Rocco: clean the log

* Rocco: version 0.1 beta of the causality graph

* Rocco: minimal fix to separate lines

* Rocco: fix the enodes

* Rocco: our trace has to reflect same behaviour of the native trace for what concern used_enodes

* Rocco: disable trace when dummy instantiations

* Rocco: fix to enodes

* Update README.md

* Rocco: remove causality details and add the pattern (trigger)

* Rocco: add ; at the end of the bindings

* Rocco: add triggers as separate trace

* Rocco README file

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Rocco: bug in tout flush

* Update README.md

* Update README.md

* Rocco: clean code

* Ready for pull request

* Remove commented line bindings

* Add space between // and first char

* Substitute or with || for compatibility; Add space around >
2020-08-08 12:09:24 -07:00
Margus Veanes 934f87a336
dgml output generation for regex state graphs (#4620)
* dgml output generation for regex state graphs

* fixed issue in header file
2020-08-08 09:40:20 -07:00
Nikolaj Bjorner a51e40a6cd gc perf fix
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-06 14:26:59 -07:00
Murphy Berzish f4ec63f39c
z3str3: add auxiliary str.substr axioms (#4617) 2020-08-06 14:00:50 -05:00
Nikolaj Bjorner 4fa2e23704 overload bit-wise operators to work for Booleans for convenience #4618
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-05 16:22:49 -07:00
Nikolaj Bjorner db009e2805 overload bit-wise operators to work for Booleans for convenience #4618
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-05 16:19:31 -07:00
Nikolaj Bjorner 7ae706844d revert breaking change
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-03 08:49:38 -07:00
Nikolaj Bjorner 7eb05dd952 ensure lengths are registered for disequality fixe #4613
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-02 16:13:11 -07:00
Margus Veanes 7fa5b31fe1
adding back dropped return statement (#4611) 2020-08-01 18:59:47 -07:00
Nikolaj Bjorner 06f34bd42b tidy
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-01 16:54:05 -07:00
Margus Veanes 8137143ada
string to regex approximation used to strengthen membership constraints (#4610)
* string to regex approximation used to strengthen membership constraints

* fixed pull request comments
2020-08-01 16:45:00 -07:00
Lev Nachmanson fb035c0634 fixed a but with insertion of a null vertex
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-07-31 16:59:57 -07:00
Nikolaj Bjorner 566a0d540a simplify has-fixed-length
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-31 11:57:07 -07:00
Nikolaj Bjorner 97ed1cd07d don't rewrite empty/non-empty checking predicates
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-31 11:47:52 -07:00
Nikolaj Bjorner 615e2cf37c don't rewrite empty/non-empty checking predicates
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-31 11:47:52 -07:00
Nikolaj Bjorner b4f994b5c8 fix loop
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-31 11:47:51 -07:00
Nikolaj Bjorner 4392c03b57 better behavior on disequality and branch selection
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-31 11:47:47 -07:00
Nikolaj Bjorner 02084dc95b misc
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-31 01:21:24 -07:00
Nikolaj Bjorner 3f862cb2ee
better behavior on disequality and branch selection (#4605)
* better behavior on disequality and branch selection

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

* fix loop

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-31 01:14:11 -07:00
Nikolaj Bjorner e0d4669116 na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-30 23:47:45 -07:00
Nikolaj Bjorner ac64a370d7 change default
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-30 15:55:41 -07:00
Nikolaj Bjorner 6cfbda0f08 remove automata references
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-30 15:26:32 -07:00
Caleb Stanford 976e4c91b0
Integrate new regex solver (#4602)
* 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

* remove experimental functionality for integration

* fix compilation

* remove some tracing and TODOs

* remove old comment

* update copyright dates to 2020

* feedback from Nikolaj

* use [] for map access

* make state_graph methods constant

* avoid recursion in mark_dead_recursive and mark_live_recursive

* a possible bug fix in propagate_nonempty

* write down list of invariants in state_graph

* implement partial invariant check and insert CASSERT statements

* expand on invariant check and tracing

* finish state graph invariant check

* minor tweaks

* regex propagation: convert first two axioms to propagations

* remove obsolete regex solver functionality

Co-authored-by: calebstanford-msr <t-casta@microsoft.com>
2020-07-30 13:54:49 -07:00
Nikolaj Bjorner 293b0b8cc2 fix build
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-30 12:49:18 -07:00
Nikolaj Bjorner 3a26dccc8a fix build
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-30 12:48:43 -07:00
Nikolaj Bjorner e0a9848e01 fixing build 2020-07-30 12:33:32 -07:00
Nikolaj Bjorner 69b4a819a6 rewrite to_int comparisons 2020-07-30 10:23:23 -07:00
Nikolaj Bjorner f6cbe3a016 propagate on variables 2020-07-30 10:22:04 -07:00
Nikolaj Bjorner 4039352837 add ability to touch variables for bound propagation 2020-07-30 10:20:17 -07:00
Nikolaj Bjorner a74ef394ec some more rewrites 2020-07-30 10:19:32 -07:00
Nikolaj Bjorner 59d8895d15 add accessors for implied values to API
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-28 19:46:39 -07:00
Nikolaj Bjorner 4628cb8e79 check for negation, not complement 2020-07-28 11:30:35 -07:00
Nikolaj Bjorner 42b42dd89a use bounded pp for cubes 2020-07-28 10:15:16 -07:00
Nikolaj Bjorner f7b2407a11 for #4588 2020-07-28 10:14:56 -07:00
Nikolaj Bjorner 8857a67e4f fix model return after shutdown, reported in #4532
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-27 23:48:19 -07:00
Nikolaj Bjorner b71a64365d sketch fixed-length heuristic
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-27 19:34:32 -07:00
Caleb Stanford 5664b570a3
Seq rewriter integration (#4599)
* 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

* remove cache hit/miss counts tracing

* remove changes not in the rewriter

* remove cache hit/miss count tracing

Co-authored-by: calebstanford-msr <t-casta@microsoft.com>
2020-07-27 19:08:45 -07:00
Murphy Berzish afdfc5e8a6
z3str3: fix incorrect automaton polarity in intersection check, and clean up code (#4595) 2020-07-27 20:11:38 -05:00
Nikolaj Bjorner 6910c0d5eb
Revert "Seq rewriter integration (#4597)" (#4598)
This reverts commit e90f01006c.
2020-07-27 18:10:14 -07:00
Nikolaj Bjorner e90f01006c
Seq rewriter integration (#4597)
* 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

* remove cache hit/miss counts tracing

* remove changes not in the rewriter

* remove cache hit/miss count tracing

Co-authored-by: calebstanford-msr <t-casta@microsoft.com>
Co-authored-by: Caleb Stanford <caleb.pirsquared@gmail.com>
2020-07-27 18:08:51 -07:00
Murphy Berzish 2fb914d2a2
z3str3: construct correct counterexamples for string-integer in model construction (#4562) 2020-07-27 14:15:41 -05:00
Nikolaj Bjorner 9624df942f na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-27 09:24:35 -07:00
Nikolaj Bjorner a08082e392 fix #4594
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-27 09:22:53 -07:00
Nikolaj Bjorner ae502bc2c4 simplify a few of the several axiom trace commands 2020-07-26 18:02:34 -07:00
Nikolaj Bjorner c7704ef9af pass algebraic manager to arith-plugin mk-numeral because rational check may overwrite the argument using the current manager deals with crash as part of #4532
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-26 17:52:28 -07:00
Nikolaj Bjorner ac39ddb43f flush gmc for sat-preprocessor model bug #4532
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-26 14:30:48 -07:00
Nikolaj Bjorner e8ef9a85a4 fix #4327
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-26 13:22:13 -07:00
Nikolaj Bjorner 4be6927460 unused variable warning
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-26 13:22:12 -07:00
Nikolaj Bjorner 78afa2527c unused variable warning
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-26 13:22:12 -07:00
Nikolaj Bjorner 105f97d3ee #4582 again 2020-07-25 15:12:25 -07:00
Nikolaj Bjorner 2133ba06a7 prepare for theory variables othe rthan seq/re 2020-07-25 15:11:13 -07:00
Nikolaj Bjorner f789573d12 prepare for alternative axiom 2020-07-25 15:10:39 -07:00
Nikolaj Bjorner 2d4839f89e #4582 again 2020-07-25 15:09:30 -07:00
Nikolaj Bjorner 1059f6d3b8 #4582 again 2020-07-25 11:54:05 -07:00
Nikolaj Bjorner 963daab268 #4582 again 2020-07-25 11:18:20 -07:00
Nikolaj Bjorner e63992c8bd fix #4589
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-24 15:46:54 -07:00
Nikolaj Bjorner 780346c7ca address model generation bugs raised in #4518 and #4324
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-24 13:22:19 -07:00
Nikolaj Bjorner e1d2b88a82 access polynomial expressions from algebraic numerals
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-23 15:08:11 -07:00
Nikolaj Bjorner a6a041ec5d setting defaults in AUFLIRA and AUFLIA to conservative ite-lifting. Fixing conservative setting to be after constructor in asserted_formulas. fixes #4586
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-23 13:43:54 -07:00
Nikolaj Bjorner 71a32f5bb2 remove unused
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-22 11:38:27 -07:00
Nikolaj Bjorner 45855fce06 fix
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-22 10:45:29 -07:00
Nikolaj Bjorner dd5e2e8930 check for 0
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-22 10:44:00 -07:00
Iain Scott b6867d69c2
Return significand bits correctly (dotnet API). Fixes #4584 2020-07-22 16:57:33 +01:00
Nikolaj Bjorner ed58175e1b issue #4582
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-21 18:23:41 -07:00
Nikolaj Bjorner aab50ff3f5 fixing bugs reported in #4518
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-21 15:50:19 -07:00
Nikolaj Bjorner b1824fea10 fix lifetimes for crashes in #4525
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-21 12:53:56 -07:00
Nikolaj Bjorner 1d8d85add9 fix #4575 - correction set resolution only works with uniform weights
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-20 15:05:06 -07:00
Nikolaj Bjorner ebce0b3612 fix #4577
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-20 14:40:45 -07:00
Nikolaj Bjorner 61b85d7123 verbosity
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-20 14:11:59 -07:00
Nikolaj Bjorner 00491148f0 string
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-20 10:22:57 -07:00
Nikolaj Bjorner 549ef0e052 fix typos #4573
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-20 10:22:57 -07:00
Christoph M. Wintersteiger a298091322
Fix for fp.roundToIntegral of tiny, denormal floats. Fixes #4190. 2020-07-17 15:58:01 +00:00
Christoph M. Wintersteiger 2ef57d7f8d
Fix FP rounding of huge exponents. Fixes #3776. 2020-07-17 13:42:12 +00:00
Christoph M. Wintersteiger d3ae40130a
Fix rounding bug in mpf_manager. Fixes #2970. 2020-07-16 12:39:12 +00:00
Christoph M. Wintersteiger ccdae7af24
Fix for corner-case in fp.roundToIntegral. Fixes #2894. 2020-07-16 11:58:18 +00:00
Christoph M. Wintersteiger c321fb7726
Correctly report unsupported features in bvarray2uf_rewriter. Fixes #4046 and #4047. 2020-07-15 16:16:29 +00:00
Nuno Lopes b7caabbd0f fix crashes with MSVC 2019 2020-07-14 13:14:44 +01:00
Nuno Lopes aeac0b46a0 remove copy 2020-07-14 12:26:49 +01:00
Nuno Lopes d1a0e83423 fix crash 2020-07-13 14:25:12 +01:00
Nuno Lopes 122f5a1464 remove unused field 2020-07-12 23:12:00 +01:00
Nuno Lopes 90fc8d854f add rval methods to scoped_vector 2020-07-12 22:16:24 +01:00
Nuno Lopes f30e8ccec3 fix crashes due to my last commit 2020-07-12 19:53:22 +01:00
Nuno Lopes bb26f219fe remove unneeded constructors (last round) 2020-07-12 17:41:57 +01:00
Nuno Lopes 44ec259c4c fix python test 2020-07-11 22:33:47 +01:00
Nuno Lopes 23e6adcad3 fix a couple hundred deref-after-free bugs due to .c_str() on a temporary string 2020-07-11 20:24:45 +01:00
Nikolaj Bjorner 48a9defb0d fix #1484 'regression'
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-09 15:09:25 -07:00
Nikolaj Bjorner 6b380811b8 fix #4524
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-09 15:05:55 -07:00
Nikolaj Bjorner 65e6b73873 fix #4538 - regression when renaming family from special_relations to specrels
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-08 14:46:40 -07:00
Nikolaj Bjorner 80cc45c5c1 display justifications compactly for tracing #4575
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-08 13:32:41 -07:00
Nikolaj Bjorner ab7b8b6ec5 fix #4572
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-08 11:58:44 -07:00
Nikolaj Bjorner 061abd153c fixing #4515
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-08 11:43:32 -07:00
Nikolaj Bjorner ec3066c28a #4532 - arithmetic using SAT for interpreted atoms such as (< 0 0)
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-08 11:43:32 -07:00
Nikolaj Bjorner e1a0a2e536 give up on addition subterms in monomial decomposition caused by disabling rewriter.flat seems to be corner case exercised in #4532.
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-08 11:43:32 -07:00
Nikolaj Bjorner 69afd9f6bd formatting
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-08 11:43:31 -07:00
Nikolaj Bjorner 9bcda408ba towards closing small domain equality enforcement gap #4515
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-08 11:43:31 -07:00
Christoph M. Wintersteiger 3776588375
Clarify bit-blasting of fp.neg. Fixes #4466. 2020-07-08 18:24:08 +00:00
Christoph M. Wintersteiger c59519bf9c
Add missing FP conversion. Fixes #4470. 2020-07-08 17:56:25 +00:00
Nikolaj Bjorner 688d38d868 typo
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-07 19:07:26 -07:00
Nikolaj Bjorner 4e77984c57 enable binary string access to unsigned numerals over API #4568
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-07 18:59:20 -07:00
Nikolaj Bjorner 4b346ef693 enable binary string access to unsigned numerals over API #4568
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-07 18:58:42 -07:00
Nikolaj Bjorner 4a8533e41f enable binary string access to unsigned numerals over API #4568
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-07 18:17:54 -07:00
Nikolaj Bjorner 2d358a9a50 fix #4565
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-06 17:07:37 -07:00
Nuno Lopes ca97bfb4b8 fix build 2020-07-05 11:44:12 +01:00
Nikolaj Bjorner 006418e027 build
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-04 23:34:21 -07:00
Nikolaj Bjorner f380d4cf83 mpfx
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-04 18:25:32 -07:00
Nikolaj Bjorner 74eb401c3b addrecdef
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-04 18:18:25 -07:00
Nikolaj Bjorner 51d43c04ea st
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-04 17:13:04 -07:00
Nikolaj Bjorner 2bb712c9da ml
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-04 17:09:08 -07:00
Nikolaj Bjorner 5ea145ce26 ml
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-04 17:08:22 -07:00
Nikolaj Bjorner bf14444f7d st
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-04 17:07:07 -07:00
Nikolaj Bjorner f3b51db891 ml build
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-04 16:22:01 -07:00
Nikolaj Bjorner d0e20e44ff booyah
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-04 15:56:30 -07:00
Nikolaj Bjorner 10d0404175 add rec decl/def to ML #4563
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-04 15:38:32 -07:00
Lev Nachmanson 62b9630c4b remove unicode from hnf_cutter.h
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-07-04 09:33:45 -07:00
Lev Nachmanson 7a4eed0216 add comments to hnf_cutter
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-07-04 09:33:45 -07:00
Lev Nachmanson 49e49d6bb6 add comments to hnf_cutter
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-07-04 09:33:45 -07:00
Lev Nachmanson 80a4da9b1d add comments to hnf_cutter
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-07-04 09:33:45 -07:00
Lev Nachmanson fff6a94de4 cheap_eqs - fix the build
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-07-04 09:33:45 -07:00
Lev Nachmanson 61da368ee3 cheap_eqs - work on fixed_phase
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-07-04 09:33:45 -07:00
Lev Nachmanson f4502ff952 cheap_eqs - work on fixed_phase
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-07-04 09:33:45 -07:00
Lev Nachmanson 1695379dc9 cheap_eqs - work on fixed_phase
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-07-04 09:33:45 -07:00
Lev Nachmanson a1c5cff541 cheap_eqs - work on fixed_phase
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-07-04 09:33:45 -07:00
Lev Nachmanson 29b3f438bc cheap_eqs - work on fixed_phase
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-07-04 09:33:45 -07:00
Lev Nachmanson cb3ebac3dd cleanup lp_bound_propagator.h
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-07-04 09:33:45 -07:00
Lev Nachmanson b996bc1f02 remove cheap equalities with the table
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-07-04 09:33:45 -07:00
Murphy Berzish e8690d28f8
z3str3: continue instead of incorrectly giving up in solve_regex_automata (#4556) 2020-07-03 17:13:27 -05:00
Nikolaj Bjorner 8d3caa00fe do as Lev does
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-03 13:21:43 -07:00
Nikolaj Bjorner 7802e33f37 na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-03 12:22:13 -07:00
Nikolaj Bjorner 5e768c9697 move unused literals under if0
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-03 12:21:20 -07:00
Nikolaj Bjorner 5987d9ae20 cache computing strings and regexes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-02 11:14:29 -07:00
Nikolaj Bjorner 655166b867 randomize generation of 'some value' for user sorts. #4557
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-01 16:34:09 -07:00
Nikolaj Bjorner d91ca423ab enforce reference count ownership in context of mk_derivative calls.
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-01 13:13:17 -07:00
Nikolaj Bjorner d75ce38016 fix #4552
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-06-30 19:14:55 -07:00
Murphy Berzish fce1252145
Z3str3: Add consistency checks for string-integer conversion terms in model construction (#4551)
* z3str3: check consistency of str.to_int in fixed length solver

* z3str3: add similar check for int.to_str as well

* z3str3: refactor string-integer conversion check and add post checks for model construction
2020-06-30 11:20:44 -05:00
Nuno Lopes 8fda4f904d API: dont deref already free'd memory on error 2020-06-30 15:04:40 +01:00
Nuno Lopes 64f1a759a7 inline api_context::reset_error_code() 2020-06-29 19:14:17 +01:00
pinzaghi aec8000bda
in check method, as_ast() call fails when True passed as assumption (#4550) 2020-06-29 09:59:10 -07:00
Nikolaj Bjorner eaffe46468 revert debug changes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-06-28 10:27:47 -07:00
Nikolaj Bjorner 9a642215eb avoid infinite loop between is-nullable and mk-bool-app
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-06-28 10:27:47 -07:00
Nikolaj Bjorner 9bc5552ca2 add vcrunime pattern to distribution directive #4542
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-06-25 08:56:13 -07:00
Nikolaj Bjorner 85cb0293f5 fix #4541
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-06-24 20:26:59 -07:00
Federico Mora Rocha 8d16a9a034
z3str3: fix Issues 4349, 4354, and 4310 (#4529)
* regex needs lesson; m.mk_eq not ctx.mk_eq

* when unsat core is of size 0, then do naive learning

* remove two extra comments, and correct positive regex learning

* replace magic numbers for fixed-length lessons with constants
2020-06-24 15:46:32 -05:00
Nikolaj Bjorner c0fbb31379 use nonse based seed for transition characters
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-06-24 12:07:37 -07:00
Murphy Berzish b0633ecc86
Z3str3: safety checks for substr and propagate (#4528)
* z3str3: handle str.substr arguments missing arith values in model construction safely

* z3str3: reset propagation vectors on scope pop
2020-06-24 12:14:03 -05:00
Nikolaj Bjorner 7f3bdea0d5 unused methods
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-06-23 19:28:07 -07:00
Nikolaj Bjorner 5d36578684 some unused variables reported by Caleb
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-06-22 19:04:10 -07:00
Nikolaj Bjorner 8758baf24e perf and div/mod axioms #4532
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-06-22 14:51:58 -07:00
Nikolaj Bjorner 38d6771a5e na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-06-22 12:23:42 -07:00
Lev Nachmanson 6ced6995d0 check for m.get_sort(lhs->get_owner()) == m.get_sort(rhs->get_owner()) in equality propagation
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-06-22 11:48:46 -07:00
Nikolaj Bjorner 4b6ca6a10c replace size by data_size
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-06-22 11:16:36 -07:00
Nikolaj Bjorner 85661c415d remove ex-act
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-06-22 09:08:04 -07:00
Nikolaj Bjorner 6a54c0bc04 fix issues reported in #4525
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-06-21 17:43:05 -07:00
Nikolaj Bjorner 02f34ea4b1 address some crashes reported by Caleb
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-06-20 18:35:35 -07:00
Lev Nachmanson 6524a70c32 remove un unnecessary call
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-06-20 11:31:22 -07:00
Lev Nachmanson 8f588a9263 fix the build
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-06-20 11:31:22 -07:00
Lev Nachmanson b703d2786c fix the build cheap_eqs
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-06-20 11:31:22 -07:00
Lev Nachmanson 3bde9f54d8 add some comments cheap_eqs
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-06-20 11:31:22 -07:00
Lev Nachmanson 115ae8fe14 check for integrality when adding an equality
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-06-20 11:31:22 -07:00
Lev Nachmanson c4fbe05a96 simplify cheap_eqs
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-06-20 11:31:22 -07:00
Lev Nachmanson e3503f060f debug cheap_eqs
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-06-20 11:31:22 -07:00
Lev Nachmanson 42ed1e62a9 debug cheap_eqs
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-06-20 11:31:22 -07:00
Lev Nachmanson 2e2e98925a debug cheap_eqs
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-06-20 11:31:22 -07:00
Lev Nachmanson ffaa7d0b27 debug cheap_eqs
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-06-20 11:31:22 -07:00
Lev Nachmanson 7a2aa28644 make the tree option in cheap_eqs the default
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-06-20 11:31:22 -07:00
Lev Nachmanson 525f747e3c cheap_eqs
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-06-20 11:31:22 -07:00
Lev Nachmanson c2cead4fb6 cheap_eqs
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-06-20 11:31:22 -07:00
Lev Nachmanson b5fc9635c4 cheap_eqs
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-06-20 11:31:22 -07:00
Lev Nachmanson 3b00b34c6f cheap_eqs
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-06-20 11:31:22 -07:00
Lev Nachmanson 80467f1400 cheap_eqs
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-06-20 11:31:22 -07:00
Lev Nachmanson 431bb36cf5 cheap_eqs tree
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-06-20 11:31:22 -07:00
Lev Nachmanson f7f9c15676 cheap_eqs tree
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-06-20 11:31:22 -07:00
Nikolaj Bjorner 274323b818 fix reset order for #4533
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-06-19 16:07:45 -07:00
Nikolaj Bjorner 1204671595 fix #4534
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-06-19 14:10:49 -07:00
Arie Gurfinkel 07a1aea689 fix(spacer): bug in assign_bounds to Farkas conversion
The fix is to remove a hack that used a theory rewriter to simplify
the conversion. Now the conversion happens less often than possible.
Will need more thinking to fix properly.

The unsoundness at this point would cause SPACER to generate lemmas
that do not block a proof obligation and then get stuck in an infinite loop
blocking and generating the same lemma.
2020-06-18 21:19:53 -04:00
Nuno Lopes 38d4418f94 simplify string_buffer::append 2020-06-18 19:55:34 +01:00
Nuno Lopes fdeba2102c fix deref of free'd memory in mk_fresh_const 2020-06-18 19:25:32 +01:00
Nikolaj Bjorner 3b1149330d enable theory propagation of regex accept condition
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-06-17 13:42:40 -07:00
Nikolaj Bjorner be36a8fd80 fix for SPACER models using bit2bool
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-06-16 10:45:11 -07:00
Nikolaj Bjorner 48d4d8d7af fix tracking of bounds
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-06-15 17:36:20 -07:00
Lev Nachmanson f882219081 fix a bug in cheap_eqs with table
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-06-15 13:30:45 -07:00
Lev Nachmanson 09516d74f6 change the default for cheap eqs to table
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-06-15 13:30:45 -07:00
Lev Nachmanson d13e584706 simplify the fixed var table
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-06-15 13:30:45 -07:00
Nikolaj Bjorner d09e6eccf0 re-enable proofs for qe-lite #3153
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-06-15 12:03:15 -07:00
Nikolaj Bjorner 395a304262 add optional feature to bound search within ranges
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-06-14 21:34:54 -07:00
Nikolaj Bjorner 180fb3abf6 tidy
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-06-14 11:36:09 -07:00
Nikolaj Bjorner 7387fc9dec avoid some bignum overhead in addmul
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-06-14 11:20:05 -07:00
Nikolaj Bjorner 53e49eb428 neatify
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-06-13 15:20:21 -07:00
Nikolaj Bjorner 5ee9edf46b fix incorrect bound in order-lemma
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-06-13 14:28:42 -07:00
Lev Nachmanson 23c12b75af remove a duplicate option gb==grobner
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-06-13 10:03:19 -07:00
Lev Nachmanson e5632736d2 review comments
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-06-12 22:11:11 -07:00
Lev Nachmanson fbfcc6796a fix the build
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-06-12 22:11:11 -07:00
Lev Nachmanson 66701de157 fix the test build
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-06-12 22:11:11 -07:00
Lev Nachmanson 06826adec3 fix the race in add_var_bound and add_def_constraint
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-06-12 22:11:11 -07:00
Lev Nachmanson fe0e042e40 move m_fixed_var_table to lar_solver
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-06-12 22:11:11 -07:00
Lev Nachmanson 3b87cdfd0f remove the debug output
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-06-12 22:11:11 -07:00