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

13653 commits

Author SHA1 Message Date
Nikolaj Bjorner 0077ddf33c try delay init for user propagator in smt_tactic
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-12-03 09:45:07 -08:00
Nikolaj Bjorner 41aa7d7b60 stack
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-12-02 09:00:51 -08:00
Nikolaj Bjorner bfd61fec00 enable user propagation on tactics
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-12-02 08:28:52 -08:00
Nikolaj Bjorner 71cbb160d2 fix regression from today, see #5676
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-12-01 14:29:53 -08:00
Nikolaj Bjorner 87aec8819f fix #5687
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-12-01 10:08:29 -08:00
Nikolaj Bjorner c6a5aa0cc4 try th_lemma, update documentation of api functions for creating strings
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-12-01 09:21:02 -08:00
Nikolaj Bjorner 3b4f976118 na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-11-30 19:15:03 -08:00
Nikolaj Bjorner 4daba290b1 change user propagation to apply scheme similar to theory_recfun
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-11-30 19:12:15 -08:00
Nikolaj Bjorner 3c1aedf219 fixing #5473
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-11-30 17:08:28 -08:00
Nikolaj Bjorner 9e51691285 add virtual destructor
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-11-29 20:02:12 -08:00
Nikolaj Bjorner b5efb87118 base -> core 2021-11-29 19:55:10 -08:00
Nikolaj Bjorner 959f4c9440 rename files to theory_user_propagator 2021-11-29 19:44:58 -08:00
Nikolaj Bjorner 5857236f2f introducing base namespace for user propagator 2021-11-29 19:41:30 -08:00
Nikolaj Bjorner c083aa82ee add debug information in user-propagate #5687
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-11-29 08:59:53 -08:00
Nikolaj Bjorner 1e9e52a58f #5641 2021-11-29 08:59:53 -08:00
Lev Nachmanson d50c4bfcc1 remove an unused var
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2021-11-28 09:44:50 -08:00
Nikolaj Bjorner d50bfc6a50 #5641 2021-11-25 18:01:35 +01:00
Nikolaj Bjorner 833dd62623 fix #5681 2021-11-24 13:24:31 +01:00
Nikolaj Bjorner e8f5a29c31 fix #5679
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-11-22 19:37:10 +01:00
Nikolaj Bjorner fee4821106 include thread
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-11-19 21:06:07 +01:00
Nikolaj Bjorner a7d24788c3 wasm build issue
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-11-19 20:45:36 +01:00
Nikolaj Bjorner 741c5f43f4 Merge branch 'master' of https://github.com/z3prover/z3 2021-11-19 11:03:08 -08:00
Nikolaj Bjorner ca2c2bb802 ensure smt2log works with multi-threaded consumers, ease scenarios around #5655
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-11-19 11:02:50 -08:00
Nikolaj Bjorner 4928c28e63 fix #5675
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-11-19 08:42:32 -08:00
Nikolaj Bjorner 99d5215956 revert use of f format
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-11-19 00:01:19 -08:00
Nikolaj Bjorner f83367a11e mac builds
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-11-18 22:39:30 -08:00
Nikolaj Bjorner 518ef9f916 fix #5674
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-11-18 21:14:50 -08:00
Nikolaj Bjorner c826b64e35 prepare release
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-11-16 09:41:51 -08:00
Nikolaj Bjorner b6f7deacf4 fix #5663 2021-11-12 11:36:42 -08:00
Nikolaj Bjorner 3c16edc8d3 check for v1 == v2
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-11-12 09:11:17 -08:00
Nikolaj Bjorner 63ac2ee0d1 #5614 turn on / off options to get better performance.
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-11-11 17:54:46 -08:00
Nikolaj Bjorner b28a8013fe #5653
fix performance bottleneck in static features
2021-11-11 13:30:38 -08:00
Nikolaj Bjorner 3a9656bc59 fixing issues with user propagator from python
"fresh" remains broken (not working yet).
2021-11-07 17:04:11 -08:00
Nikolaj Bjorner f2fcbc7cb7 capture values not reference 2021-11-07 13:43:56 -08:00
Nikolaj Bjorner af2cc460a9 #5646 2021-11-03 08:53:48 -07:00
Nikolaj Bjorner dd1e0fc561 #5643 2021-11-03 08:53:48 -07:00
Clemens Eisenhofer 091079e58c
Added user propagator example (#5625)
* Added user propagator example

* User propagator example code refactoring
(+ removed unused parameter warning)

* Moved user-propagator example to its own directory
2021-11-02 15:03:02 -07:00
Nikolaj Bjorner 87d4ce2659 working on #5614
there are some different sources for the performance regression illustrated by the example. The mitigations will be enabled separately:
- m_bv_to_propagate is too expensive
- lp_bound_propagator misses equalities in two different ways:
   - it resets row checks after backtracking even though they could still propagate
   - it misses equalities for fixed rows when the fixed constant value does not correspond to a fixed variable.

FYI @levnach
2021-11-02 14:55:39 -07:00
Nikolaj Bjorner a94e2e62af build warnings 2021-11-02 14:55:38 -07:00
Henrich Lauko 96671cfc73
Add and fix a few general compiler warnings. (#5628)
* rewriter: fix unused variable warnings

* cmake: make missing non-virtual dtors error

* treewide: add missing virtual destructors

* cmake: add a few more checks

* api: add missing virtual destructor to user_propagator_base

* examples: compile cpp example with compiler warnings

* model: fix unused variable warnings

* rewriter: fix logical-op-parentheses warnings

* sat: fix unused variable warnings

* smt: fix unused variable warnings
2021-10-29 15:42:32 +02:00
Alexander Traud 1d45a33163
fix one typo and two misunderstandings for doxygen (#5633) 2021-10-29 15:35:05 +02:00
Alexander Traud d1592c6abf
fix misspelled \brief for doxygen (#5632) 2021-10-29 15:34:28 +02:00
Nikolaj Bjorner 4dad414161 fix performance regression after adding user declared functions to model
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-10-28 05:49:15 +02:00
Alexander Traud f5f35f87d0
fix grouping for latest doxygen (#5626)
Since doxygen 1.8.16, opening and closing a group must not be done as
C comment but as doxygen command. In other words, not one but two
asterisk characters are required so that doxygen finds a group.
2021-10-27 23:46:31 +02:00
Nikolaj Bjorner 125eae06bd #4869 load datatype parsing for HORN logic
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-10-26 11:54:29 +02:00
Nikolaj Bjorner 61eb8d1908 add ref for regression
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-10-26 11:39:13 +02:00
Nikolaj Bjorner aa5b4b8c77 strengthen contract for log_axiom_instantiation #5621
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-10-26 09:49:44 +02:00
Nikolaj Bjorner bdecc25619 strengthen contract for log_axiom_instantiation #5621
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-10-26 09:49:44 +02:00
Margus Veanes efcad5ff35
fixed nullability bug in the if-then-else info (#5620) 2021-10-26 09:11:07 +02:00
Nikolaj Bjorner 075769c4c0 try get_string contents again
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-10-25 16:03:40 +02:00
Nikolaj Bjorner 45681b4c6e update API type annotation to make it OCaml friendly 2021-10-25 13:43:15 +02:00
Nikolaj Bjorner 3036b88f09 support threading for TRACE mode 2021-10-25 13:35:32 +02:00
Nikolaj Bjorner 3a3cef8fce #5615 - update documentation and use non-encoded versions for ASCII characters in get_lstring
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-10-23 18:21:51 +02:00
Nikolaj Bjorner 7f41d6140f use some suggestions from #5615
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-10-22 12:39:55 -04:00
Nikolaj Bjorner 051616385f remove deprecated escape string from Julia bindings
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-10-21 19:14:12 -04:00
Nikolaj Bjorner f05ac8a429 updated C++ API for escaped and unescaped strings #5615
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-10-21 14:52:59 -04:00
Nikolaj Bjorner 05e7ed9637 add API to access unescaped strings, update documentation of Z3_get_lstring, #5615
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-10-21 11:30:03 -04:00
Nikolaj Bjorner 6eed885379 print bounded terms for better efficiency 2021-10-21 10:42:39 -04:00
Nikolaj Bjorner 13da6a02a6 add handling of quantifiers #5612 2021-10-20 12:27:56 -04:00
Nikolaj Bjorner 839a0852fe Merge branch 'master' of https://github.com/z3prover/z3 2021-10-19 12:24:41 -04:00
Nikolaj Bjorner 86147d01ea #5605
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-10-19 12:24:29 -04:00
Nikolaj Bjorner f9dde2e8a4 #5605
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-10-19 12:21:54 -04:00
CEisenhofer 3557e0b0c5
Added eq/fixed/final functions in C++ user propagator as methods (#5607) 2021-10-19 10:48:31 -04:00
Nikolaj Bjorner fc3a701888 push-pop
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-10-18 15:36:48 -07:00
Nikolaj Bjorner d5e5dcfe45 add nff and auto-relevant
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-10-18 15:32:55 -07:00
Nikolaj Bjorner bc2020a39b #5604
retain array interpretation when available
2021-10-17 20:24:26 -07:00
Nikolaj Bjorner 115203e87c fixes to sat.euf ematching #5573 2021-10-16 15:52:37 -07:00
Margus Veanes f78546cd7c
fixed bug of computing butlast of a sequence (#5602) 2021-10-15 18:02:51 -07:00
Nikolaj Bjorner fb9fa1b7d2 updated printer 2021-10-15 17:56:54 -07:00
Margus Veanes cb120c93f4
Regex range bug fix (#5601)
* added a missing derivative case for nonground range

* further missing cases and a bug fix in re.to_str
2021-10-15 15:30:55 -07:00
Simon Cruanes 6302b864c8
tweak GC in OCaml bindings (#5600)
* feat(api/ml): use custom block hints to guide the GC

this forces the GC to collect garbage when a few _large_ objects
(solver, etc.) are dead. The current code would let arbitrarily many
such objects die and not trigger a GC (which would have to come from
OCaml code instead)

* tuning

* try to use caml_alloc_custom_mem with fake sizes

* try to fix leak by explicitly finalizing OCaml context

* chore: use more recent ubuntu for azure CI

* remove finalizer causing segfault in example
2021-10-14 12:46:14 -07:00
Nikolaj Bjorner f60ed2ce92 #5591 2021-10-13 21:38:36 -07:00
Nikolaj Bjorner 7b341313d5 #5593 2021-10-13 17:50:56 -07:00
Nikolaj Bjorner fd77f0c111 fix #5594 2021-10-13 17:17:05 -07:00
Nikolaj Bjorner 96e117d78c Update smt_context.cpp 2021-10-12 17:10:12 -07:00
Nikolaj Bjorner c15968aa9e fix #4901 2021-10-12 17:10:04 -07:00
Nikolaj Bjorner 9a76bf0aa2 #5591
nth issue
2021-10-12 13:59:28 -07:00
Christoph M. Wintersteiger 58fd4fc860
Merge pull request #5550 from wintersteiger/cwinter_fpa_fixes
Assorted fixes for floats
2021-10-12 18:24:49 +01:00
Nikolaj Bjorner 52032b9ef8 #5467 2021-10-12 10:16:15 -07:00
Christoph M. Wintersteiger b471ebdf1c
Revert "Fix off-by-one in fp.div bit-blasting. Inspired by #4841 but doesn't quite fix it."
This reverts commit f80fdb4ea3a762cfe95daa0321d9875cfa00c7ae.
2021-10-12 12:45:11 +00:00
Christoph M. Wintersteiger 738783a26c
Fix off-by-one in fp.div bit-blasting. Inspired by #4841 but doesn't quite fix it. 2021-10-12 12:45:11 +00:00
Christoph M. Wintersteiger c24f438e51
Fix for mk_to_fp_float; pertains to #4841 2021-10-12 12:45:10 +00:00
Christoph M. Wintersteiger 00e8ea7962
Make terms that are internalized on the fly relevant 2021-10-12 12:45:10 +00:00
Christoph M. Wintersteiger 8e69f76784
Add additional equality in theory_fpa 2021-10-12 12:45:09 +00:00
Christoph M. Wintersteiger f1acc4b78a
Make fpa2bv debug symbol names optional 2021-10-12 12:45:09 +00:00
Christoph M. Wintersteiger 515a2a771e
Whitespace 2021-10-12 12:45:09 +00:00
Christoph M. Wintersteiger e8d6d97ba3
Refine fpa_decl_plugin::is_unique_value 2021-10-12 12:45:08 +00:00
Christoph M. Wintersteiger 12c32663c6
Fix error messsages 2021-10-12 12:45:08 +00:00
Nikolaj Bjorner c3549ec784 na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-10-11 11:03:45 -07:00
Nikolaj Bjorner 73102cffcb fix #5589 2021-10-11 11:03:45 -07:00
Nikolaj Bjorner 75702c3631 na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-10-11 11:03:45 -07:00
Nikolaj Bjorner 0fc9f1d46a fix max/min length to handle concatenation
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-10-09 16:20:32 -07:00
Andrew V. Jones f1b8376739
Rename 'user' to 'user_solver' #5586 (#5587)
Issue #5586 reported that Android builds (targetting, e.g., x86) failed
to compile due to a conflict between:

* `struct user` in `sys/user.h`; and
* `namespace user` in z3's `user_solver.h`

This issue is resolved by renaming `namespace user` to `namespace
user_solver` (matching the header name) to avoid this conflict.

Reported-by: Jamie Collinson <jamiecollinson@gmail.com>

Signed-off-by: Andrew V. Jones <andrewvaughanj@gmail.com>
2021-10-09 15:07:37 -07:00
Nikolaj Bjorner bfa960c2ce fix internalize regression
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-10-08 14:48:17 -07:00
Margus Veanes 146f4621c5
Updated regex derivative engine (#5567)
* updated derivative engine

* some edit

* further improvements in derivative code

* more deriv code edits and re::to_str update

* optimized mk_deriv_accept

* fixed PR comments

* small syntax fix

* updated some simplifications

* bugfix:forgot to_re before reverse

* fixed PR comments

* more PR comment fixes

* more PR comment fixes

* forgot to delete

* deleting unused definition

* fixes

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

* fixes

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

Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-10-08 13:04:49 -07:00
Nikolaj Bjorner c0c3e685e7 disable all propagation until ematch incompleteness is fixed
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-10-05 11:25:35 -07:00
Nikolaj Bjorner 94cc4ead72 remove arith_lhs simplification from preamble tactic
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-10-05 10:55:38 -07:00
Nikolaj Bjorner 33f4e65fa9 redo bindings/fingerprints
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-10-05 10:15:56 -07:00
Nikolaj Bjorner 281fb67d88 unit propagate with fingerprints 2021-10-04 20:01:46 -07:00
Nikolaj Bjorner 8a85cfdb12 fix #5579 -
It is only possible to reach this case when new assertions are created.
2021-09-30 09:32:34 -07:00
Nikolaj Bjorner cbe7dd4a48 missing continue fixes unsound sat result from #5573 2021-09-29 14:26:09 -07:00
Nikolaj Bjorner ff723f15ff Update z3++.h 2021-09-29 12:19:02 -07:00
Nikolaj Bjorner 62fd22f555 disable macro finder tactic if there are recursive functions fix #5574 2021-09-29 09:33:52 -07:00
Nikolaj Bjorner 137e5c5263 fix tmp_eq
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-09-28 14:28:41 -07:00
Nikolaj Bjorner 67ae75bac7 fix tmp_eq
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-09-28 14:27:46 -07:00
Nikolaj Bjorner da124e4275 tune q-eval and q-ematch
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-09-28 13:41:37 -07:00
Nikolaj Bjorner 92c1b600c3 tuning eval 2021-09-28 09:56:00 -07:00
Nikolaj Bjorner 2e176a0e02 count lazy bindings 2021-09-28 08:27:46 -07:00
Nikolaj Bjorner 3abecc3428 add extra commands to API parser 2021-09-27 14:19:43 -07:00
Nikolaj Bjorner 6c71baf77b lifting iff to binary 2021-09-27 03:45:54 -07:00
Nikolaj Bjorner d174f87c5e #5532 2021-09-21 20:21:23 -07:00
Nikolaj Bjorner 18d1b368d1 #5532 2021-09-21 20:12:32 -07:00
Nikolaj Bjorner cabd5b10fa #5532 2021-09-21 18:56:55 -07:00
Nikolaj Bjorner de20bffafe import goodies from ps
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-09-21 11:13:03 -07:00
Nikolaj Bjorner 708602dfbb fix #5560 - add a throttle on maximal size of bignums created for propagate-value lemmas
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-09-21 08:56:13 -07:00
Nikolaj Bjorner 2e96557827 fix #5560 - add a throttle on maximal size of bignums created for propagate-value lemmas
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-09-21 08:55:28 -07:00
Nikolaj Bjorner 2c266a96c8 #5545 2021-09-20 13:57:34 -07:00
Nikolaj Bjorner 1352aa06f3 #5532 2021-09-20 12:08:04 -07:00
Nikolaj Bjorner 0170f1f461 #5532 2021-09-20 11:39:16 -07:00
Nikolaj Bjorner fd799089b7 fix build
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-09-20 11:19:26 -07:00
Nikolaj Bjorner 6f31d83633 fix #5541 2021-09-20 10:10:28 -07:00
Jamey Sharp 426306376f
CNF conversion refactoring (#5547)
* split sat2goal out of goal2sat

These two classes need different things out of the sat::solver class,
and separating them makes it easier to fiddle with their dependencies
independently.

I also fiddled with some headers to make it possible to include
sat_solver_core.h instead of sat_solver.h.

* limit solver_core methods to those needed by goal2sat

And switch sat2goal and sat_tactic over to relying on the derived
sat::solver class instead. There were no other uses of solver_core.

I'm hoping this makes it feasible to reuse goal2sat's CNF conversion
from places like the tseitin-cnf tactic, so they can be unified into a
single implementation.
2021-09-20 08:53:10 -07:00
Nikolaj Bjorner d36c3faf76 #4880 add interpreted versions of to_bv functions for MBQI quantifier models 2021-09-17 14:23:14 +01:00
Nikolaj Bjorner 1fc7b63a80 ...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-09-16 21:59:54 +01:00
Nikolaj Bjorner cef964fda3 fixes for model converter default case 2021-09-16 17:31:26 +01:00
Nikolaj Bjorner fe3f139eb2 na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-09-16 16:25:43 +01:00
Nikolaj Bjorner c3c5c14ead prepare for min/max i
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-09-16 16:23:10 +01:00
Nikolaj Bjorner 50375df8dc enforce idempotency
bug reported by Clemens
2021-09-15 15:36:20 +01:00
CEisenhofer c58b2f4a9c
Added character functions to API (#5549)
* Added character functions to API

* Changed names of c++ functions
2021-09-15 13:34:58 +01:00
Nikolaj Bjorner 9aad331699 #5546
try dampening
2021-09-14 10:32:53 +02:00
Nikolaj Bjorner f13ccf8969 bv2char and char2bv with Clemens
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-09-13 16:09:03 +02:00
Nikolaj Bjorner 34f878fb97 make it easier to debug parallel 2021-09-10 07:09:22 +02:00
Nikolaj Bjorner 3e6ff768a5 fix regression bug in mam reported by Aseem 2021-09-10 07:09:22 +02:00
CEisenhofer 47fdd6c060
Added 16 bit string-encoding (#5540) 2021-09-09 11:35:16 +02:00
Nikolaj Bjorner e70f501932 handle potential extra nodes from q_solver 2021-09-09 09:17:11 +02:00
Nikolaj Bjorner c4d0ded7b7 #5532 2021-09-08 06:19:49 +02:00
Nikolaj Bjorner 8c406c161e #5532 add blocking condition for recursion. 2021-09-07 12:28:18 +02:00
Nikolaj Bjorner 93415740b6 left over bugs #5532
disabling complete const rewriting (temporarily) as it can loop
2021-09-07 07:00:41 +02:00
Nikolaj Bjorner be4df46f6f #5532 remove unsound rewrite rule that was recently added 2021-09-07 06:42:24 +02:00
Nikolaj Bjorner 72f6271d82 #5532
bugs in:
- rewriting of 0-ary expressions was incomplete
- sharing annotations when a node has two theories attached it is shared
- sharing of const of an array

Remove unreadable part of pretty printer for lp solver.
2021-09-06 19:14:03 +02:00
Nikolaj Bjorner 3764eb1959 #5532
ensure re-internalization for predicates that are replayed.
Theory internalization is currently not considered in depth.
2021-09-05 00:24:34 -07:00
Nikolaj Bjorner 3021da87cf #5532 2021-09-04 21:10:26 -07:00
Nikolaj Bjorner 9c91698201 #5532 2021-09-04 18:03:15 -07:00
Nikolaj Bjorner 976c0a391c revisit as-array evaluation 2021-09-04 18:00:36 -07:00
Nikolaj Bjorner 38b82fa742 const rewriting revisited 2021-09-04 17:59:08 -07:00
Nikolaj Bjorner 051ede64e7 #5532 2021-09-04 09:48:46 -07:00
Nikolaj Bjorner 3de9162c7e handle null more gracefully 2021-09-04 09:42:45 -07:00
Nikolaj Bjorner 9c5ef79701 #5532 2021-09-04 09:05:49 -07:00
Nikolaj Bjorner 18e4546404 modernize parameter defaults
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-09-03 17:42:36 -07:00
Nikolaj Bjorner cdcfbeb6d8 #5532
remove "reflect" parameter from exposed options. It should be internal only.
2021-09-03 16:01:59 -07:00
Nikolaj Bjorner 0ddbbe9bd2 #5532 2021-09-03 15:41:52 -07:00
Nikolaj Bjorner 5633af76cc #5532 2021-09-03 15:25:50 -07:00
Nikolaj Bjorner a566c7307d #5532 2021-09-03 12:33:04 -07:00
Nikolaj Bjorner 87f5b9282f #5532 2021-09-03 12:20:23 -07:00
Nikolaj Bjorner c4158ebc33 #5532 2021-09-03 12:02:57 -07:00
Nikolaj Bjorner 20a259cfaa throw less #5519 2021-09-03 10:40:08 -07:00
Nikolaj Bjorner af5c6e43b9 #5528 2021-09-02 11:21:57 -07:00
Nikolaj Bjorner 55285b2193 make it easier to iterate over arguments of an application
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-09-02 09:51:59 -07:00
Nikolaj Bjorner e9a4a9a390 merge
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-09-02 09:23:59 -07:00
Nikolaj Bjorner edb26e7be7 Merge branch 'master' of https://github.com/z3prover/z3 2021-09-02 08:53:56 -07:00
Nikolaj Bjorner 02acc38c28 add extra checks that user-supplied assumptions are asserted
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-09-02 08:53:47 -07:00
Nikolaj Bjorner e05ef8ece9 account for updating scoped state by goal2sat #5528 2021-09-02 04:20:19 -07:00
Nikolaj Bjorner f4abe3db02 #5528 2021-09-02 03:13:46 -07:00
Nikolaj Bjorner 9e306e3b6e more useful diagnostics 2021-09-01 20:50:35 -07:00
Nikolaj Bjorner 968717a532 follow on fix from #5528
the same bug is also undetected in the main solver
2021-09-01 20:49:39 -07:00
Nikolaj Bjorner 6907d30717 #5528 2021-09-01 20:44:00 -07:00
Nikolaj Bjorner a74c01c8b9 #5528 2021-09-01 20:39:54 -07:00
Nikolaj Bjorner cf9e55fa96 #5516
expose ability to expand select/store and select/ite (lambdas are always expanded) during pre-processing for N.P. Lopes.
2021-09-01 17:44:17 -07:00
Nikolaj Bjorner ba68fba419 build 2021-09-01 17:10:23 -07:00
Nikolaj Bjorner 0c53c139da add to_string method to make it easier to use without << 2021-09-01 15:37:58 -07:00
Nikolaj Bjorner 7ce4be8455 #5528 2021-09-01 14:01:15 -07:00
Nikolaj Bjorner a7bc4719c0 fix #5526
when propagation claims progress, but is a no-op.
2021-09-01 11:45:21 -07:00
Nikolaj Bjorner 8bdc8d0e1a Update solver_subsumption_tactic.h
use naming convention with - instead of _ for tactics
2021-09-01 11:35:06 -07:00
Nikolaj Bjorner a3ba4e1366 #5528 2021-09-01 11:34:44 -07:00
Nikolaj Bjorner f91c3d9fd6 round-tripping escapes, again #5519 2021-08-31 20:36:38 -07:00
Nikolaj Bjorner 90f98d5791 fix part of #5519
generation of escape sequences for output was not handling non-printable character ranges correctly and also not offsetting hexadecimal characters right.
2021-08-31 20:06:06 -07:00
Nikolaj Bjorner 7c782a7ef8 #5518
patch a gaping hole in recfun
2021-08-31 19:49:18 -07:00
Nikolaj Bjorner 1426390aec #5518 2021-08-31 16:38:27 -07:00
Nikolaj Bjorner ab2baa764c #5518
@wintersteiger
This example exposes a bug in is_unique_value
```
(assert (= (fp.to_real ((_ to_fp 8 24) (_ bv4286579200 32))) (fp.to_real ((_ to_fp 8 24) (_ bv4286578944 32)))))
(check-sat)
```
It returns true for fp representations that map to NaN. It can only return true for fp values that are unique relative to having no other bit-vector representation so not corresponding to an equivalence class of values such as NaN.
I am having it return false. If there is a way to refine the test it will catch some earlier inferences.
2021-08-31 14:52:45 -07:00
Nikolaj Bjorner 34c8f598a5 #5518 2021-08-31 14:21:10 -07:00
Nikolaj Bjorner 07bbd026ac #5518 2021-08-31 13:02:54 -07:00
Nikolaj Bjorner 0b063f7903 #5518 2021-08-31 12:50:24 -07:00
Nikolaj Bjorner 535f442655 #5518
regression from adding lambdas in model
2021-08-31 12:13:27 -07:00
pcarbonn cd2701da0c
fix the use of ctx in Q() (#5521)
* fix #4956

* fix: use ctx in Q()
2021-08-31 10:01:47 -07:00
Nikolaj Bjorner 148cb83b0d #5482 fix default case for model construction
port mg_merge functionality from theory_array_base that ensures default values in arrays congruent modulo stores are the same
2021-08-29 17:30:39 -07:00
Nuno Lopes 9b5ec6d004 logging cleanup
move everything out-of-line as common path doesn't log
fix some race conditions on file ptr vs enable_logging vars
2021-08-29 12:24:19 +01:00
Nuno Lopes 9a172939e0 fix logging in Z3_fpa_get_[es]bits 2021-08-29 10:58:54 +01:00
Nikolaj Bjorner b1bc890992 fix #5515
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-08-28 18:05:51 -07:00
Nikolaj Bjorner e7fcbd9563 bail on first model validation failure
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-08-28 17:08:34 -07:00
Nikolaj Bjorner 4f064ee5d6 simplify based on comment from Jamie Sharp #5512 2021-08-28 17:08:34 -07:00
Nuno Lopes e5a2f08cc9 fix logging of Z3_mk_lambda and Z3_mk_lambda_const
In preparation of a bug report just for you @NikolajBjorner
2021-08-29 00:37:45 +01:00
Nikolaj Bjorner e3a83dd0dd Integrate fixes from #5512
Pull request #5512 identifies a in line 1139 where the const-case-multiplier constructor returns false and does useless work.
In this update we also remove mk_const_multiplier because code path is subsumed by mk_const_case_multiplier.
2021-08-28 10:46:45 -07:00
Nikolaj Bjorner 992daa6d2e #5482
remove overly permissive filter on select_store axiom
2021-08-27 21:03:30 -07:00
Nikolaj Bjorner e9a30385cf remove wtm and booth
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-08-27 15:32:06 -07:00
Jamey Sharp cd7a826083
bit_blaster unit tests for adder and multiplier (#5514)
These tests cover a mix of constant and non-constant input bits.
2021-08-27 14:19:12 -07:00
Nikolaj Bjorner 8f306c6a8f handle constants
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-08-27 11:59:41 -07:00
Nikolaj Bjorner 09696e989e add missing lambda defs per #5509
the result is now unknown because the nested expression contains exists, which doesn't get replaced by universal quantifier which is assumed by the legacy core.
The legacy core should not depend on universal quantifiers only, but fixing this is a risk. Workaround is to rewrite goals using forall only (replace exists by de-Morgan dual).
2021-08-27 11:57:26 -07:00
Nikolaj Bjorner 9790a8aa43 #5507
can't use auto-config if there are no assertions. Auto-config only works properly for one-shot mode since theories aren't loaded on demand in this solver.
2021-08-27 09:42:40 -07:00
Nikolaj Bjorner 828fc72754 types
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-08-26 18:55:53 -07:00
Nikolaj Bjorner d6848175eb re-add API for creating propagator from a context for "fresh" 2021-08-26 18:12:40 -07:00
Nikolaj Bjorner f7c1ed8273 missing this
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-08-26 10:41:37 -07:00
Nikolaj Bjorner 4d39af3d7b #5507 missing init 2021-08-26 09:37:06 -07:00
Nikolaj Bjorner 07c26208fa regressions from previous push 2021-08-25 18:30:50 -07:00
Nikolaj Bjorner 2daf569da6 update Bool rewriter to pull negations up 2021-08-25 17:50:49 -07:00
Nikolaj Bjorner e6264a80ff extend macro detection to negated equivalences #5496 2021-08-25 17:47:30 -07:00
Nikolaj Bjorner f03d756e08 missing rewrite exposed by #5498 2021-08-25 06:34:27 -07:00
Nikolaj Bjorner 17663acf75 #5482 other relevancy tracking 2021-08-25 05:59:42 -07:00
Nikolaj Bjorner e75b5e9513 don't copy "true" 2021-08-25 05:59:42 -07:00
Nikolaj Bjorner 037c93b258 #5482 2021-08-25 05:59:42 -07:00
Nikolaj Bjorner 7bae297297 #5482
add unit propagation
2021-08-24 11:24:31 -07:00
Nikolaj Bjorner 26db68bf2c #5482 2021-08-24 11:15:52 -07:00
Nikolaj Bjorner e5b6cd36f0 use datatype name instead of instantiation for cycle detection #5482 2021-08-24 11:14:41 -07:00
Nikolaj Bjorner e90ec457c3 #5482
non-termination (stack overflow) bug in recursive comparison
2021-08-24 09:49:36 -07:00
Nikolaj Bjorner 5fa1b0b09f update project description #5503 2021-08-24 09:48:33 -07:00
Nikolaj Bjorner 23b995d3b5 #5499
throw exception when dividing by a small 0
2021-08-24 08:52:20 -07:00
Nikolaj Bjorner dd91cfb47e #5482
update temp variables
2021-08-23 22:21:52 -07:00
Nikolaj Bjorner 592c53e46d char sort
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-08-23 20:45:26 -07:00
Nikolaj Bjorner 170ef1dcca add character sort to Python API and allchar function to API for ease. #5500 2021-08-23 20:02:50 -07:00
Nikolaj Bjorner 4b3b4b95d9 missing
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-08-23 10:03:34 -07:00
Nikolaj Bjorner 2a682e4b13 #5482
tricky one
2021-08-23 10:01:53 -07:00
Nikolaj Bjorner 1975e486ee finally expose some easier to use basics could be used in cases such as #5496 2021-08-21 21:22:54 -07:00
Nikolaj Bjorner aa05298950 fix #5491 2021-08-19 21:12:27 -07:00
Nikolaj Bjorner 15e3e81cb5 remove likely culprit for #5493
@zwimer: I had to remove a different move constructor before in the same API due to a different bug that the coverage tool exposed. I was unable to reproduce the bug reported in #5493 in my environment, but the interaction with reference counting and move constructors is sufficiently opaque that I rather not have to fix more bugs introduced with move constructors in the API. I am therefore removing also this use of && and maybe this fixes #5493
2021-08-19 21:08:20 -07:00
Nikolaj Bjorner d0e210849f #5454 again
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-08-19 03:06:23 -07:00
Nikolaj Bjorner adcdd11afc #5454 again 2021-08-18 13:32:51 -07:00
Nikolaj Bjorner 1db9f9a3b5 try vscode from github integration 2021-08-18 11:02:02 -07:00
Nikolaj Bjorner d980ee0533 fix regression in FPNumRef sign 2021-08-18 10:00:22 -07:00
Nikolaj Bjorner b3db9a1cd5 #5488 2021-08-18 08:30:08 -07:00
Nikolaj Bjorner 5c9f4dc4d7 #5486 - improve type elaboration by epsilon to make common cases parse without type annotation 2021-08-17 16:43:36 -07:00
Nikolaj Bjorner 7f88cfe727 build
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-08-17 10:10:20 -07:00
Nikolaj Bjorner 1884ad5b2f expose method for updating python model for constants
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-08-17 09:09:04 -07:00
Nikolaj Bjorner 34fc0276e9 Update array_axioms.cpp 2021-08-16 17:52:37 -07:00
Nikolaj Bjorner 749d1ab305 remove dependencies on stale component 2021-08-16 17:52:36 -07:00
Nikolaj Bjorner c8a83749dd #5484 2021-08-16 11:19:22 -07:00
Nikolaj Bjorner 904c6e21b1 modify #5454 2021-08-16 03:29:40 -07:00
Nikolaj Bjorner 429e5ed0cd #5454
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-08-15 19:07:37 -07:00
Nikolaj Bjorner 3d13c0335f #5454
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-08-15 18:40:05 -07:00
Nikolaj Bjorner 6a3ba64afe #5454
@wintersteiger: added code review comment to theory_fpa. The bug seen in #5454 doesn't surface with theory_fpa, though.
2021-08-15 16:48:28 -07:00
Nikolaj Bjorner fe4c48e14c reorder fields 2021-08-15 12:29:43 -07:00
Nikolaj Bjorner bebf2d6a52 na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-08-15 00:24:43 -07:00
Nikolaj Bjorner b7d4501bc3 widen scope of der #5480
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-08-15 00:22:34 -07:00
Nikolaj Bjorner 2704fb5fd5 expose n-ary xor 2021-08-14 10:52:09 -07:00
intrigus-lgtm 35698c650d
Add AssertSoft String overload for Java Api (#5475)
This adds a String overload for AssertSoft.
Previously only integer weights could have been used,
limiting the user. With Strings the user can now use
e.g. Java's BigInteger class converted to a String instead.
2021-08-12 09:18:18 -07:00
Nikolaj Bjorner b016465ad2 #5454 2021-08-11 20:31:53 -07:00
Nikolaj Bjorner fea14245a0 #5454 2021-08-11 19:43:42 -07:00
Nikolaj Bjorner 46107022f7 #5454 2021-08-11 17:06:42 -07:00
Nikolaj Bjorner fde8808a40 #5454 2021-08-11 16:59:46 -07:00
Nikolaj Bjorner 8faad26c3c #5454 2021-08-11 09:46:35 -07:00
Nikolaj Bjorner 178262fc12 #5454 2021-08-11 09:30:03 -07:00
Nikolaj Bjorner 496ec5f2b4 #5454
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-08-11 05:00:02 -07:00