mirror of
https://github.com/Z3Prover/z3
synced 2025-04-15 21:38:44 +00:00
fix assertions (#83)
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
d913a55dfb
commit
2b18627fa1
|
@ -3262,6 +3262,10 @@ public:
|
|||
|
||||
void init_model(model_generator & mg) {
|
||||
init_variable_values();
|
||||
DEBUG_CODE(
|
||||
for (auto const& kv : m_variable_values) {
|
||||
SASSERT(!m_solver->var_is_int(kv.first) || kv.second.is_int() || m.canceled());
|
||||
});
|
||||
m_factory = alloc(arith_factory, m);
|
||||
mg.register_factory(m_factory);
|
||||
TRACE("arith", display(tout););
|
||||
|
@ -3322,7 +3326,7 @@ public:
|
|||
else {
|
||||
rational r = get_value(v);
|
||||
TRACE("arith", tout << "v" << v << " := " << r << "\n";);
|
||||
SASSERT(!a.is_int(o) || r.is_int());
|
||||
SASSERT("integer variables should have integer values: " && (!a.is_int(o) || r.is_int() || m.canceled()));
|
||||
if (a.is_int(o) && !r.is_int()) r = floor(r);
|
||||
return alloc(expr_wrapper_proc, m_factory->mk_value(r, m.get_sort(o)));
|
||||
}
|
||||
|
|
|
@ -60,6 +60,12 @@ struct ineq {
|
|||
typedef vector<ineq> lemma;
|
||||
|
||||
class int_solver {
|
||||
struct validate_model {
|
||||
int_solver& s;
|
||||
lia_move& r;
|
||||
validate_model(int_solver& s, lia_move& r): s(s), r(r) {}
|
||||
~validate_model();
|
||||
};
|
||||
public:
|
||||
// fields
|
||||
lar_solver *m_lar_solver;
|
||||
|
|
Loading…
Reference in a new issue