mirror of
https://github.com/Z3Prover/z3
synced 2025-07-03 19:35:42 +00:00
add some code review comments, stubs for ule
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
9df7e9a029
commit
572197aede
6 changed files with 15 additions and 16 deletions
|
@ -5,10 +5,6 @@ Module Name:
|
||||||
|
|
||||||
polysat constraints
|
polysat constraints
|
||||||
|
|
||||||
Abstract:
|
|
||||||
|
|
||||||
Polynomial constriants
|
|
||||||
|
|
||||||
Author:
|
Author:
|
||||||
|
|
||||||
Nikolaj Bjorner (nbjorner) 2021-03-19
|
Nikolaj Bjorner (nbjorner) 2021-03-19
|
||||||
|
|
|
@ -105,6 +105,13 @@ namespace polysat {
|
||||||
}
|
}
|
||||||
|
|
||||||
void eq_constraint::narrow(solver& s) {
|
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);
|
(void)try_narrow_with(p(), s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,15 +3,12 @@ Copyright (c) 2021 Microsoft Corporation
|
||||||
|
|
||||||
Module Name:
|
Module Name:
|
||||||
|
|
||||||
polysat constraints
|
polysat equality constraints
|
||||||
|
|
||||||
Abstract:
|
|
||||||
|
|
||||||
Polynomial equality constriants
|
|
||||||
|
|
||||||
Author:
|
Author:
|
||||||
|
|
||||||
Nikolaj Bjorner (nbjorner) 2021-03-19
|
Nikolaj Bjorner (nbjorner) 2021-03-19
|
||||||
|
Jakob Rath 2021-04-6
|
||||||
|
|
||||||
--*/
|
--*/
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
|
@ -495,8 +495,10 @@ namespace polysat {
|
||||||
backjump(m_justification[v].level()-1);
|
backjump(m_justification[v].level()-1);
|
||||||
for (unsigned i = m_cjust[v].size(); i < just.size(); ++i)
|
for (unsigned i = m_cjust[v].size(); i < just.size(); ++i)
|
||||||
push_cjust(v, just[i]);
|
push_cjust(v, just[i]);
|
||||||
for (constraint* c : m_conflict)
|
for (constraint* c : m_conflict) {
|
||||||
push_cjust(v, c);
|
push_cjust(v, c);
|
||||||
|
c->narrow(*this);
|
||||||
|
}
|
||||||
m_conflict.reset();
|
m_conflict.reset();
|
||||||
push_viable(v);
|
push_viable(v);
|
||||||
m_viable[v] = viable;
|
m_viable[v] = viable;
|
||||||
|
|
|
@ -3,7 +3,7 @@ Copyright (c) 2021 Microsoft Corporation
|
||||||
|
|
||||||
Module Name:
|
Module Name:
|
||||||
|
|
||||||
polysat ule_constraints
|
polysat unsigned <= constraints
|
||||||
|
|
||||||
Author:
|
Author:
|
||||||
|
|
||||||
|
|
|
@ -3,15 +3,12 @@ Copyright (c) 2021 Microsoft Corporation
|
||||||
|
|
||||||
Module Name:
|
Module Name:
|
||||||
|
|
||||||
polysat constraints
|
polysat unsigned <= constraint
|
||||||
|
|
||||||
Abstract:
|
|
||||||
|
|
||||||
Polynomial equality constriants
|
|
||||||
|
|
||||||
Author:
|
Author:
|
||||||
|
|
||||||
Nikolaj Bjorner (nbjorner) 2021-03-19
|
Nikolaj Bjorner (nbjorner) 2021-03-19
|
||||||
|
Jakob Rath 2021-04-6
|
||||||
|
|
||||||
--*/
|
--*/
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue