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

add some code review comments, stubs for ule

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2021-04-16 12:43:23 -07:00
parent 9df7e9a029
commit 572197aede
6 changed files with 15 additions and 16 deletions

View file

@ -5,10 +5,6 @@ Module Name:
polysat constraints
Abstract:
Polynomial constriants
Author:
Nikolaj Bjorner (nbjorner) 2021-03-19

View file

@ -105,6 +105,13 @@ namespace polysat {
}
void eq_constraint::narrow(solver& s) {
// NSB code review:
// This should also use the current assignment so be similar to propagate.
// The idea is that narrow is invoked when the constraint is first added
// and also when the constraint is used in a conflict.
// When it is used in a conflict, there could be a partial assignment in s.m_search
// that fixes variables in p().
//
(void)try_narrow_with(p(), s);
}

View file

@ -3,15 +3,12 @@ Copyright (c) 2021 Microsoft Corporation
Module Name:
polysat constraints
Abstract:
Polynomial equality constriants
polysat equality constraints
Author:
Nikolaj Bjorner (nbjorner) 2021-03-19
Jakob Rath 2021-04-6
--*/
#pragma once

View file

@ -495,8 +495,10 @@ namespace polysat {
backjump(m_justification[v].level()-1);
for (unsigned i = m_cjust[v].size(); i < just.size(); ++i)
push_cjust(v, just[i]);
for (constraint* c : m_conflict)
for (constraint* c : m_conflict) {
push_cjust(v, c);
c->narrow(*this);
}
m_conflict.reset();
push_viable(v);
m_viable[v] = viable;

View file

@ -3,7 +3,7 @@ Copyright (c) 2021 Microsoft Corporation
Module Name:
polysat ule_constraints
polysat unsigned <= constraints
Author:

View file

@ -3,15 +3,12 @@ Copyright (c) 2021 Microsoft Corporation
Module Name:
polysat constraints
Abstract:
Polynomial equality constriants
polysat unsigned <= constraint
Author:
Nikolaj Bjorner (nbjorner) 2021-03-19
Jakob Rath 2021-04-6
--*/
#pragma once