3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-10-06 16:01:55 +00:00
Commit graph

2465 commits

Author SHA1 Message Date
Arie Gurfinkel
7f62fa2b66
Sparse matrix kernel (#6035)
* Subtle bug in kernel computation

Coefficient was being passed by reference and, therefore, was
being changed indirectly.

In the process, updated the code to be more generic to avoid rational
computation in the middle of matrix manipulation.

* sparse_matrix: fixed handling of 0 in add_var() and add()

particularly in add_var(), without the fix the user is responsible for checking
coefficients for 0.
2022-05-13 17:30:35 -07:00
Nikolaj Bjorner
6deb4dee37 disable normalize
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-11 13:30:50 -07:00
Nikolaj Bjorner
5aec9b32bd check zero
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-11 10:13:07 -07:00
Nikolaj Bjorner
860d904699 check zero
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-11 10:11:17 -07:00
Nikolaj Bjorner
361155685c ensure abs
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-11 09:09:00 -07:00
Nikolaj Bjorner
cbaa16df57 lcm normalization
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-11 09:03:57 -07:00
Nikolaj Bjorner
5ca3bc3212 kernel
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-10 15:48:06 -07:00
Nikolaj Bjorner
2928cc261c fix
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-10 13:17:25 -07:00
Nikolaj Bjorner
805443c8ab wip
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-10 11:17:34 -07:00
Nikolaj Bjorner
0557d72d1c na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-10 07:42:32 -07:00
Nikolaj Bjorner
6a8ac5f9b1 adding K
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-09 16:47:26 -07:00
Nikolaj Bjorner
ad2445e423 gauss jordan
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-09 16:33:15 -07:00
Jakob Rath
6bf897aad8 backtrack_fi 2022-04-25 17:39:07 +02:00
Jakob Rath
fc2633c964 don't saturate immediately after forbidden intervals 2022-04-25 17:39:07 +02:00
Nikolaj Bjorner
3533bf486f merge with master
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-04-16 18:30:03 +02:00
Nikolaj Bjorner
f1b10b0ea4 Merge branch 'polysat' of https://github.com/z3prover/z3 into polysat 2022-04-13 12:22:49 +02:00
Nikolaj Bjorner
da168cad2d track _all_ interval end-points for propagation (in fact only need end-points at unit location, not the others so this can be tuned
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-04-13 12:22:43 +02:00
Jakob Rath
88a17ef33e print more 2022-04-13 11:42:41 +02:00
Jakob Rath
be488f75ab Add some fi info 2022-04-13 09:34:59 +02:00
Jakob Rath
9fa5096776 conflict logging 2022-04-12 16:06:20 +02:00
Jakob Rath
00fa4b3320 Better search stack printing 2022-04-12 14:13:20 +02:00
Nikolaj Bjorner
59f2603a3a add parameter class for polysat
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-04-12 10:36:01 +02:00
Nikolaj Bjorner
afa7162ab1 add parameter class for polysat
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-04-12 10:35:23 +02:00
Nikolaj Bjorner
f2b9c27ed6 use simpler looking for loop
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-04-12 10:13:44 +02:00
Jakob Rath
d98a93bcc8 Remove bdecide 2022-04-11 15:55:41 +02:00
Jakob Rath
63031548cb Store only literals in the conflict state 2022-04-11 15:00:06 +02:00
Nikolaj Bjorner
fde78f99c3 fix propagation when variables are assigned
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-04-07 13:27:36 +02:00
Nikolaj Bjorner
704a41ee36 disable polysat inside of recursive solver 2022-04-06 13:40:40 +02:00
Nikolaj Bjorner
1cba5fd55e merge
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-04-06 11:11:26 +02:00
Nikolaj Bjorner
d97bb7c6ad merge
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-04-06 05:46:36 +02:00
Nikolaj Bjorner
a623865a82 na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-04-06 05:44:31 +02:00
Nikolaj Bjorner
4b495e4b96 nits 2022-04-02 17:50:45 -07:00
Nikolaj Bjorner
6d836e7e2f expose model update 2022-03-19 09:23:08 -07:00
Jakob Rath
613b0db4cc fix refcount issue 2022-03-19 04:19:16 +01:00
Jakob Rath
d41d3fa6ea fix some bugs 2022-03-18 16:05:51 +01:00
Jakob Rath
fd353bff17 unsat core 2022-03-18 15:49:44 +01:00
Jakob Rath
509a007ed7 Integrate univariate solver in polysat 2022-03-18 15:43:06 +01:00
Jakob Rath
9d47d7959d helper functions to add constraints to univariate_solver 2022-03-17 14:08:00 +01:00
Jakob Rath
edeba9b56a support op_constraint in univariate solver 2022-03-17 14:03:42 +01:00
Jan Vraný
bdf7de1703
Care for root index being undefine while calling Z3_algebraic_get_i() (#5888)
In some cases, Z3_algebraic_get_i() returned 0. For example, in the following
Python snippet, the last assert would fail:

    import z3
    x = z3.Real('x')
    s = z3.Solver()
    s.add( (x * x) - 2 == 0, x <= 0)
    s.check()
    val_x = s.model().get_interp(x)
    assert val_x.index() == 1

The problem was that `algebraic_numbers::manager:👿:get_i()` did not
check whether the root index was properly initialized.

This commit fixes this issue by checking whether root index is initialized
the same way various other routines do.

Fixes issue #5807.

Signed-off-by: Jan Vrany <jan.vrany@labware.com>
2022-03-16 19:28:03 -07:00
Jakob Rath
c4370eb7e6 univariate solver seems to work 2022-03-11 18:06:32 +01:00
Jakob Rath
1de51da67e get univariate coefficients 2022-03-11 18:03:39 +01:00
Jakob Rath
74281fa830 compile 2022-03-11 08:33:10 +01:00
Jakob Rath
8b1f1d0e11 begin univariate solver impl 2022-03-10 17:58:37 +01:00
Jakob Rath
78028bedae use solver_factory 2022-03-10 16:57:08 +01:00
Jakob Rath
4a86c3fb67 looks like QF_BV is handled by inc_sat_solver 2022-03-10 16:19:35 +01:00
Jakob Rath
c648b57493 forbidden intervals only used by viable 2022-03-10 16:12:13 +01:00
Jakob Rath
afc711d6ec move into separate component 2022-03-10 16:10:56 +01:00
Jakob Rath
d4a28d4553 implementation stub 2022-03-10 11:13:06 +01:00
Jakob Rath
6aee62ef2f Univariate solver interface 2022-03-10 11:01:57 +01:00