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

19323 commits

Author SHA1 Message Date
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
Nikolaj Bjorner
5e0db02753 reset conflict after unsat core
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-03-30 17:27:55 -07:00
Nikolaj Bjorner
9614e428a6 wip: enabling reinit approach
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-03-30 08:41:22 -07:00
Nikolaj Bjorner
bee3320ff6 put reinit-stack code path under ENALBE_REINIT_STACK macro
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-03-29 13:03:00 -07:00
Nikolaj Bjorner
8cefa02b0d Merge branch 'polysat' of https://github.com/z3prover/z3 into polysat 2023-03-29 09:58:46 -07:00
Nikolaj Bjorner
c0f43b9206 expose watch/unwatch
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-03-29 09:58:44 -07:00
Jakob Rath
f9147a7dc0 remove old code/notes 2023-03-29 16:14:01 +02:00
Jakob Rath
5e16a17f90 alternative bor 2023-03-29 15:57:15 +02:00
Jakob Rath
0704f90e9f fix log in release mode 2023-03-29 15:56:50 +02:00
Jakob Rath
67a4480410 comments, minor 2023-03-29 15:53:22 +02:00
Jakob Rath
1f58a906ed no more unassigned constraints in value propagation 2023-03-29 15:49:31 +02:00
Jakob Rath
d7930b3997 Find more undetected bool/eval conflicts in viable::resolve_interval 2023-03-29 15:47:10 +02:00
Jakob Rath
810a68ace9 disable some debug output 2023-03-29 15:40:17 +02:00
Jakob Rath
64e452e086 Add some clause names 2023-03-29 15:30:05 +02:00
Jakob Rath
c516d6fe0c get_watch_level: prefer true literals at lower search index 2023-03-29 15:23:43 +02:00
권승완
6670807103
update ocaml binding to support more string apis (#6656) 2023-03-29 05:49:33 -07:00
Nikolaj Bjorner
2a11be5c39 reorder
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-03-28 16:27:08 -07:00
Nikolaj Bjorner
2a8c7a7cd7 build issue for linux/clang
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-03-28 16:02:09 -07:00
Nikolaj Bjorner
d0e016c35d elaborate on clause reinitialization code path
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-03-28 12:57:34 -07:00
Nikolaj Bjorner
67efd6531b add stubs for reinit_clauses
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-03-28 12:34:09 -07:00
Lev Nachmanson
130400d76e
Remove non feasible costs (#6653)
* before rm lu

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* rm get_column_in_lu_mode

* rm lu

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* rm lu

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* rm_lp

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* rm_lu

* rm lu

* rm lu

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* rm lu

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* rm lu

* rm lu

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* rm lu

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* rm lu

* cleanup

* rm breakpoints

* rm dealing with doubles

* Revert "rm dealing with doubles"

This reverts commit 547254abe7.

* rm lu

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* rm lu

* rm lu

* rm scaler

* rm square_sparse_matrix

* more cleanup

* rm dead code

* rp precise

* remove many methods dealing with double

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* rm lu related fields from lp_core_solver_base.h

* remove dead code

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* more dead code removal

* remove more dead code

* more dead code

* rm dead code

* more dead code

* fix lp_tst

* more dead code

* replace lp_assert(false) with UNREACHABLE

* rm non feas costs

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* fix the build

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

---------

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2023-03-28 08:55:52 -07:00
Nikolaj Bjorner
a82408e89b add int-blast experiment
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-03-27 16:40:22 -07:00
Nikolaj Bjorner
fe348b84c9 fix #6652 2023-03-27 16:20:33 -07:00
Nikolaj Bjorner
adec937296 fix #6650 2023-03-27 14:02:23 -07:00
Nikolaj Bjorner
f366772f0c use field 'm' for streamlined representation 2023-03-27 14:02:22 -07:00
Patrick LaFontaine
0a59617bac
Fix Ocaml bindings FuncEntry to_string (#6639)
Hello, I was looking at the different api string conversions for FuncEntry and I believe that the ml version is incorrect? Clearly we want the argument(`c`) to be comma separated from the accumulated string `p`. The current implementation just so happens to have most of the arguments separated, but the order is flipped and one of the commas is misplaced.
2023-03-27 13:04:32 -07:00
Nikolaj Bjorner
ce09c2ea6d fix build 2023-03-27 09:56:09 -07:00
Nikolaj Bjorner
b4ad747e0b fix #6644 2023-03-27 09:00:38 -07:00
Nikolaj Bjorner
8a3a3dc91b fix #6648 2023-03-26 15:31:37 -07:00
Nikolaj Bjorner
ce501e0b6e #6646
- always enable special-relations theory to deal with default setting and push
- fix bugs related to equality and transitivity.
2023-03-25 17:37:59 -07:00
Nikolaj Bjorner
cd2ea6b703 add parameter access to C++ API 2023-03-25 18:14:08 +01:00
Nikolaj Bjorner
9ca0faa091 enable interactive example 2023-03-25 18:13:44 +01:00
Jakob Rath
3796770e46 Fix subsumption (need to check whether entry is valid) 2023-03-23 14:46:04 +01:00
Jakob Rath
4f7a25eb73 fix IF_LOGGING macro 2023-03-23 14:16:48 +01:00
Jakob Rath
73b97f3a32 unsat core validity check works only if m_conflict.m_dep.is_null() 2023-03-23 14:15:17 +01:00
Jakob Rath
df82d9b0f9 unsat core dbg 2023-03-23 13:53:13 +01:00
Jakob Rath
f364ba8c8a remove unused code 2023-03-23 13:40:19 +01:00
Jakob Rath
50814c952a nicer output 2023-03-23 13:39:01 +01:00
Jakob Rath
f0ac81a149 remove output (related bug has been fixed) 2023-03-23 09:53:47 +01:00
Jakob Rath
095dfb2115 minor, debug output 2023-03-23 09:49:00 +01:00
Jakob Rath
d2397deb8d propagate before push 2023-03-23 09:35:10 +01:00