3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-23 00:55:31 +00:00
Commit graph

19313 commits

Author SHA1 Message Date
Nikolaj Bjorner
1319b64bb0 fix #6692 2023-04-17 09:11:16 -07:00
Nikolaj Bjorner
97b66d13c0 fix soundness bug in disabled code 2023-04-15 17:09:05 -07:00
Nikolaj Bjorner
b75d81f3c2 fix #6690 2023-04-14 16:38:33 -07:00
Nikolaj Bjorner
624907823d add tests for distribution utility and fix loose ends 2023-04-13 11:19:06 -07:00
Nikolaj Bjorner
1a70ac75df fix #6687 2023-04-13 09:01:17 -07:00
Nikolaj Bjorner
b783879752 #6687 2023-04-13 08:45:17 -07:00
Nikolaj Bjorner
7cd8edce1f perf and memory smash fixes to internal node count routine 2023-04-12 21:01:05 -07:00
Nikolaj Bjorner
f0afbcbb87 fix #6686 2023-04-12 20:13:24 -07:00
Nikolaj Bjorner
eba0732629 fix #6675
disable remove_unused_defs from pb-solver until it is integrated with model reconstruction.
2023-04-12 19:50:13 -07:00
Nikolaj Bjorner
e8222433c3 count internal nodes, use to block expanding use of hoist, #6683 2023-04-12 19:40:31 -07:00
Nikolaj Bjorner
444238bc53 formatting updates 2023-04-12 19:40:31 -07:00
Nikolaj Bjorner
f61168cd53 module for maintaining probability distributions 2023-04-12 19:40:31 -07:00
Nikolaj Bjorner
0b5c38dea5 fix #6676 get rid of rem0 declare it to be mod0 semantics to simplify code paths 2023-04-11 16:46:43 -07:00
Nikolaj Bjorner
58a2a9c79c fix #6680 2023-04-11 14:42:47 -07:00
Nikolaj Bjorner
ccc4f2d382 fix #6682 2023-04-11 05:10:03 -07:00
Nikolaj Bjorner
368d60f553 add branch / cut selection heuristic from solver=2
disabled for testing.
2023-04-10 22:14:16 -07:00
Nikolaj Bjorner
bb44b91e45 fix #6677 2023-04-10 15:11:10 -07:00
Clemens Eisenhofer
98d3fabc24
Bugfix relevancy propagation + UP (old core) (#6678)
* Some UP bugfixes in the new core

* Bugfix relevancy propagation + UP (old core)

* Revert smt_context.cpp
2023-04-10 12:57:59 -07:00
Nikolaj Bjorner
4a142b0f81 fix #6623 2023-04-09 21:10:24 -07:00
Nikolaj Bjorner
e6ea81546e fix #6662 2023-04-08 17:14:39 -07:00
Nikolaj Bjorner
af9c760a68 fix #6670 2023-04-08 16:55:23 -07:00
Nikolaj Bjorner
ccb250c32b fix #6671 2023-04-08 16:39:40 -07:00
Clemens Eisenhofer
7b513b4a40
Some UP bugfixes in the new core (#6673) 2023-04-08 12:50:46 -07:00
Nikolaj Bjorner
7f3b518a71 bug fixes to bounds propagation
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-04-05 17:53:19 -07:00
Nikolaj Bjorner
00306731f6 cosmetic updates to bounds
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-04-05 16:40:18 -07:00
Nikolaj Bjorner
84b9204616 inherit and reset rlimit counter on children limits
addresses rlimit leak reported by @mtzguido
2023-04-05 16:39:21 -07:00
Nikolaj Bjorner
f8242c58dd fix regression from Grobner port
- scan_for_linear returns true if it finds a new linear equation. It then should break GB.
- if scan_for_linear returns false, it should still allow try_modify_eqs.
This behavior was masked by requiring scan_for_linear to always be true before
allowing try_to_modify_eqs.

based on repro from Guido Martinez @mtzguido
2023-04-04 22:29:22 -07:00
Nikolaj Bjorner
2f992a7c9f adjust bounds
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-04-04 09:28:44 -07:00
Nikolaj Bjorner
50630bf8f5 prep for bilinear adt
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-04-03 10:22:57 -07:00
Jakob Rath
9e1afc5916 Remove repropagate_units as well 2023-04-03 17:12:15 +02:00
Jakob Rath
21d315ba58 Fix try_ugt_z as well 2023-04-03 16:27:09 +02:00
Jakob Rath
76c18ee6e3 Fix try_ugt_y 2023-04-03 16:18:01 +02:00
Jakob Rath
c3c9883b0a Remove repropagate 2023-04-03 15:50:47 +02:00
Nikolaj Bjorner
9d751576bc add utility to count clauses 2023-04-02 16:12:26 -07:00
Nikolaj Bjorner
3302ab9dc5 fix bug introduced in is_valid() 2023-04-02 16:12:11 -07:00
Nikolaj Bjorner
ae57475483 fix bug in conflict::is_valid exposed by testing unit propagation 2023-04-02 14:54:20 -07:00
Nikolaj Bjorner
479f844200 fix #6661
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-04-02 11:14:20 -07:00
Nikolaj Bjorner
def83ed26e fix #6661
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-04-02 11:13:37 -07:00
Nikolaj Bjorner
5b385bd2fe fix #6665
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-04-02 10:58:21 -07:00
Hari Govind V K
6324db207b
Only print func-decl names for indexed parameters (#6663) 2023-04-02 10:39:13 -07:00
Nikolaj Bjorner
dcc87a682c disable assertion notification during shutdown 2023-04-01 14:59:35 -07:00
Nikolaj Bjorner
7b60c37ad8 remaining issue fixes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-04-01 10:30:49 -07:00
Nikolaj Bjorner
63ebd4fcba another unsoundness bug
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-03-31 16:13:46 -07:00
Nikolaj Bjorner
e0a066efa3 #6654
fix reflexivity for tree-order
2023-03-31 15:38:29 -07:00
Nikolaj Bjorner
7664429fda remove cast expression
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-03-31 12:51:23 -07:00
Nikolaj Bjorner
a62e4b2893 extract multi-patterns when pattern can be decomposed
deals with fluke regression for F* reported by Guido Martinez

Background:
The automatic pattern inference facility looks for terms that contains all bound variables of a quantifier. It may end up with a term that contains all bound variables but the extracted term can be simplified.

Example. The pattern

(ApplyTT (ApplyTT @x3!1 (ApplyTT @x4!0 (:var 1))) (ApplyTT @x4!0 (:var 0)))
can be decomposed into a multi-pattern
(ApplyTT @x4!0 (:var 1))) (ApplyTT @x4!0 (:var 0))
The multi-pattern may enable a quantifier instantiation while the original pattern does not. The multi-pattern should be preferred.

The regression showed up based on a change that should not be considered harmful but turned out to be noticeable.
The change was a simplification of and-or expressions based on sorting. This played with the case split queue used by F* (smt.case_split = 3) that uses a top-level case split of clauses to avoid redundant branches. The net effect was that without sorting, the benchmarks would always choose the opportune branch that enabled matching against the larger term. With sorting it would mostly choose inopportune branches.
2023-03-31 12:45:51 -07:00
Nikolaj Bjorner
a849a29b4f fix #6659 2023-03-31 10:31:18 -07:00
Nikolaj Bjorner
6aaaa3b015 fix #6660
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-03-31 09:58:28 -07:00
Nikolaj Bjorner
996e5b1755 fix #6655 2023-03-31 03:25:20 -07:00
Nikolaj Bjorner
b386b84f34 #6658 2023-03-31 02:56:44 -07:00