3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-07-15 17:06:39 +00:00
Commit graph

322 commits

Author SHA1 Message Date
Arie Gurfinkel
92db639caf Use refutation to compute ground sat answer 2019-07-25 15:22:37 -04:00
Nuno Lopes
1827f98851 more fixes for mutexes in shell 2019-06-19 16:42:00 +01:00
Nikolaj Bjorner
e0d8cefde4 remove cooperate
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-06-12 20:15:46 -07:00
Nikolaj Bjorner
8893913c98 remove internal referenes to set_activity
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-05-30 16:06:05 -07:00
Nikolaj Bjorner
f00697cf95 fix #2155
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-03-03 22:33:28 -08:00
Nikolaj Bjorner
26921d1c9c fix #2155
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-03-03 22:32:50 -08:00
Nikolaj Bjorner
7aa8b4ac2a restrict idiv-bound checks to bounded terms
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-03-03 19:11:22 -08:00
Nikolaj Bjorner
89bf2d4368 add API for setting variable activity
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-02-15 12:05:24 -08:00
Nikolaj Bjorner
a76107e50d fix build
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-02-01 18:44:52 -08:00
Nikolaj Bjorner
8d20310758 adding trail/levels
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-01-29 14:45:51 -08:00
Nikolaj Bjorner
498864c582 adding dump facility for cancelation #2095, easing dimacs in/out
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-01-24 12:21:23 -08:00
Bruce Mitchener
e570940662 Prefer using empty rather than size comparisons. 2018-11-27 21:42:04 +07:00
Nikolaj Bjorner
72400f1869 fix #1927
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-11-12 03:43:04 -08:00
Arie Gurfinkel
d4e476d764 Work around unexpected behaviour in generalizer 2018-11-11 09:06:36 -05:00
Arie Gurfinkel
6cc6ffcde2 Fix display_certificate in spacer
This is expected to work now
(query q1 :print-certificate true)
2018-11-11 09:06:22 -05:00
Arie Gurfinkel
58d93d8907 Fix add external lemmas to solver even if use_bg_invs=false
spacer.use_bg_invs controls how user-supplied invariants are used.
However, the user expects them to be used independent of the option.
2018-11-11 08:41:22 -05:00
Nikolaj Bjorner
d7ecaa2ebb add stub for certificate #1926 2018-11-10 09:56:44 -08:00
Florian Pigorsch
326bf401b9 Fix some spelling errors (mostly in comments). 2018-10-20 17:07:41 +02:00
Michał Janiszewski
cfd0486582 Catch exceptions by const-reference
Exceptions caught by value incur needless cost in C++, most of them can
be caught by const-reference, especially as nearly none are actually
used. This could allow compiler generate a slightly more efficient code.
2018-10-16 19:16:07 +02:00
Nikolaj Bjorner
6704a4be02
Revert "Made Z3 compile for C++17 with MSVC" 2018-10-15 12:52:19 -07:00
Matthew Parkinson
01005a46f6 Made it more legal C++17 2018-10-15 17:25:34 +01:00
Bruce Mitchener
373b691709 Use 'override' where possible. 2018-10-02 10:26:38 +07:00
Bruce Mitchener
cdfc19a885 Use nullptr. 2018-10-02 09:11:19 +07:00
Arie Gurfinkel
f67346d16e Fix is_infty_level to treat 2^16-1 as infinity 2018-09-04 21:49:59 -04:00
Arie Gurfinkel
5d2f682f7a Enable proof mode in add_cover 2018-09-04 21:49:59 -04:00
Arie Gurfinkel
0035d9b8cb Background external invariants
Background external invariants are constraints that are assumed to be
true of the system. This commit introduces a mode in which
background invariants are used only duing inductive generalization
and lemma pushing, but not during predecessor computation.

It is believed that this will be more efficient used of background
external invariants since they will not be able to disturb how
predecessors are generalized and computed.

Based on a patch by Jorge Navas
2018-09-04 21:49:59 -04:00
Arie Gurfinkel
533e9c5837 Expand equality literals when eq_prop is disabled
When equality propagation is disabled for arithmetic,
equality atoms are expanded into inequality for potentially
better generalization with interpolation
2018-09-04 21:49:59 -04:00
Nikolaj Bjorner
84c7df75d6 record statistics setting in config_params so that fp engine can access them, fix serialization bug when check-assumptions returns unsat
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-08-06 16:21:27 -07:00
Arie Gurfinkel
6d75c31468 First draft of elim_term_ite xform. Not working. 2018-07-02 17:09:56 -04:00
Arie Gurfinkel
7acea2791d -tr:spacer.expand-add --> -tr:spacer_progress 2018-07-02 17:09:56 -04:00
Nikolaj Bjorner
c4d893dfad fix compiler warnings
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-06-30 06:10:09 -07:00
Arie Gurfinkel
9b578083f5 Avoid non-linear arithmetic in qgen 2018-06-28 16:50:43 -04:00
Arie Gurfinkel
bd63458778 Shuffle assumptions on every call
Order of assumptions appears to make a huge difference on what lemmas
are discovered. Shuffling the assumptions ensures that the solver
is never stuck with any bad order.
2018-06-28 15:38:51 -04:00
Arie Gurfinkel
6422fa3739 Fix arithmetic equality solver in qgen 2018-06-28 15:38:51 -04:00
Arie Gurfinkel
41a05e9d58 Add methods to print pob 2018-06-28 15:38:51 -04:00
Arie Gurfinkel
a63e4b48ca Fix order of arguments when normalizing a conjunction 2018-06-28 15:38:51 -04:00
Arie Gurfinkel
a8c9e3a837 Bug fix in qgen 2018-06-28 15:38:50 -04:00
Arie Gurfinkel
e8e27f0daf Don't simplify bounds when normalizing a lemma 2018-06-28 15:38:50 -04:00
Arie Gurfinkel
0e5434ce0c Debug prints 2018-06-27 22:49:36 -04:00
Arie Gurfinkel
7c924c49f6 Do not evaluate quantified formulas in a model 2018-06-27 22:49:36 -04:00
Arie Gurfinkel
704c19920d Only 10 levels of weakness 2018-06-27 22:49:35 -04:00
Arie Gurfinkel
4339722e98 Fix segfaults in qgen 2018-06-27 22:49:35 -04:00
Arie Gurfinkel
49e9480928 Fix lemma_as_cti option
Use negation of a lemma as a proof obligation. This speeds up discovering
bad lemmas that do not contain some reachable states.
2018-06-27 22:49:35 -04:00
Arie Gurfinkel
d7234dc039 Inactive debug code 2018-06-27 22:49:35 -04:00
Arie Gurfinkel
2b4d92821a Avoid crashing on cancel 2018-06-27 22:49:35 -04:00
Arie Gurfinkel
f6dcc6fc72 API to find pob in pob_manager 2018-06-27 22:49:35 -04:00
Arie Gurfinkel
5bc57238a6 Track whether pob is in pob_queue
pob_queue is a priority queue. Changing a pob while it is in the queue might change
the priority. This is a source of subtle bugs. The flag is ment to help defend
against this issues in the future.

As a side-effect, a pob that is already in the queue will be silently not added
to it, and a new version of a pob might be created if a version being looked
for is already in the queue.
2018-06-27 22:49:35 -04:00
Arie Gurfinkel
c00c6b4285 Pobs are always managed
Removed options to allow unmanaged pobs.
Other minor cleanups.
2018-06-27 22:49:35 -04:00
Arie Gurfinkel
1910b4c87c Rename pobs into pob_manager 2018-06-27 22:49:35 -04:00
Arie Gurfinkel
d9100437ce Weakness of the lemma independent of the pob
Lemma inherits its weakness score from the pob. However,
pob's weakness might be reset or changed for some other reason.

To avoid affecting the lemma, the weakness is copied on
construction.
2018-06-27 22:49:35 -04:00