mirror of
https://github.com/Z3Prover/z3
synced 2025-04-23 09:05:31 +00:00
fixes to Euclidean solver, fixes #100
Signed-off-by: Nikolaj Bjorner <nbjorner@hotmail.com>
This commit is contained in:
commit
e483efd3f4
38 changed files with 1017 additions and 563 deletions
|
@ -44,7 +44,8 @@ def_module_params(module_name='smt',
|
|||
('arith.branch_cut_ratio', UINT, 2, 'branch/cut ratio for linear integer arithmetic'),
|
||||
('arith.int_eq_branch', BOOL, False, 'branching using derived integer equations'),
|
||||
('arith.ignore_int', BOOL, False, 'treat integer variables as real'),
|
||||
('arith.dump_lemmas', BOOL, False, 'dump arithmetic theory lemmas to files'),
|
||||
('arith.dump_lemmas', BOOL, False, 'dump arithmetic theory lemmas to files'),
|
||||
('arith.greatest_error_pivot', BOOL, False, 'Pivoting strategy'),
|
||||
('pb.conflict_frequency', UINT, 1000, 'conflict frequency for Pseudo-Boolean theory'),
|
||||
('pb.learn_complements', BOOL, True, 'learn complement literals for Pseudo-Boolean theory'),
|
||||
('pb.enable_compilation', BOOL, True, 'enable compilation into sorting circuits for Pseudo-Boolean'),
|
||||
|
|
|
@ -308,7 +308,8 @@ namespace smt {
|
|||
simple_justification(r, num_lits, lits),
|
||||
m_num_eqs(num_eqs) {
|
||||
m_eqs = new (r) enode_pair[num_eqs];
|
||||
memcpy(m_eqs, eqs, sizeof(enode_pair) * num_eqs);
|
||||
if (num_eqs != 0)
|
||||
memcpy(m_eqs, eqs, sizeof(enode_pair) * num_eqs);
|
||||
DEBUG_CODE({
|
||||
for (unsigned i = 0; i < num_eqs; i++) {
|
||||
SASSERT(eqs[i].first->get_root() == eqs[i].second->get_root());
|
||||
|
|
|
@ -2789,7 +2789,6 @@ namespace smt {
|
|||
tout << " --> ";
|
||||
ctx.display_detailed_literal(tout, l);
|
||||
tout << "\n";);
|
||||
SASSERT(false);
|
||||
if (ante.lits().size() < small_lemma_size() && ante.eqs().empty()) {
|
||||
literal_vector & lits = m_tmp_literal_vector2;
|
||||
lits.reset();
|
||||
|
|
|
@ -777,8 +777,8 @@ namespace smt {
|
|||
// u += ncoeff * lower_bound(v).get_rational();
|
||||
u.addmul(ncoeff, lower_bound(v).get_rational());
|
||||
}
|
||||
lower(v)->push_justification(ante, numeral::zero(), coeffs_enabled());
|
||||
upper(v)->push_justification(ante, numeral::zero(), coeffs_enabled());
|
||||
lower(v)->push_justification(ante, it->m_coeff, coeffs_enabled());
|
||||
upper(v)->push_justification(ante, it->m_coeff, coeffs_enabled());
|
||||
}
|
||||
else if (gcds.is_zero()) {
|
||||
gcds = abs_ncoeff;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue