3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-27 19:05:51 +00:00
Commit graph

2054 commits

Author SHA1 Message Date
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
Jakob Rath
9b20f17f9c compile 2022-03-10 10:57:49 +01:00
Jakob Rath
22411f8b43 one more special case 2022-03-10 10:32:23 +01:00
Nikolaj Bjorner
1faccffd0d add smul over and underflow predicate
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-02-20 11:39:45 +02:00
Nikolaj Bjorner
dc3b921712 eq explain
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-02-16 19:00:24 +02:00
Nikolaj Bjorner
8c9835bca6 smul no overflow
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-02-16 18:55:07 +02:00
Nikolaj Bjorner
89d6f1c191 update mk_project
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-02-02 18:04:52 -08:00
Nikolaj Bjorner
4c4f916917 merge
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-02-02 08:24:58 -08:00
Nikolaj Bjorner
32edbfa28e two bugs: check for always false, adjust start of list was incorrect during re-insert 2022-02-02 07:37:35 -08:00
Nikolaj Bjorner
18291543d6 fixing corner cases for viable intervals 2022-02-01 13:21:51 -08:00
Nikolaj Bjorner
c48f14e537 updated conflict state
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-02-01 11:47:33 -08:00
Nikolaj Bjorner
486cc632d0 notes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-01-31 09:16:48 -08:00