mirror of
https://github.com/Z3Prover/z3
synced 2025-10-08 00:41:56 +00:00
outline
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
f5c28a0b76
commit
fae67b79b7
2 changed files with 37 additions and 0 deletions
22
src/math/lp/nla_mul_saturate.cpp
Normal file
22
src/math/lp/nla_mul_saturate.cpp
Normal file
|
@ -0,0 +1,22 @@
|
|||
/*++
|
||||
Copyright (c) 2025 Microsoft Corporation
|
||||
|
||||
given a monic m = x * y * z ... with evaluation val(m) != val(x) * val(y) * val(z) ...
|
||||
|
||||
saturate constraints with respect to m
|
||||
in other words, if a constraint contains x*y + p >= 0,
|
||||
then include the constraint z >= 0 => x*y*z + z*p >= 0
|
||||
assuming current value of z is non-negative.
|
||||
Check if the system with new constraints is LP feasible.
|
||||
If it is not, then produce a lemma that explains the infeasibility.
|
||||
|
||||
--*/
|
||||
|
||||
#include "math/lp/nla_mul_saturate.h"
|
||||
#include "math/lp/nla_core.h"
|
||||
|
||||
namespace nla {
|
||||
|
||||
mul_saturate::mul_saturate(core* core) : common(core) {}
|
||||
|
||||
}
|
15
src/math/lp/nla_mul_saturate.h
Normal file
15
src/math/lp/nla_mul_saturate.h
Normal file
|
@ -0,0 +1,15 @@
|
|||
/*++
|
||||
Copyright (c) 2025 Microsoft Corporation
|
||||
|
||||
--*/
|
||||
#pragma once
|
||||
|
||||
namespace nla {
|
||||
|
||||
class core;
|
||||
class mul_saturate : common {
|
||||
public:
|
||||
mul_saturate(core* core);
|
||||
};
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue