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