mirror of
https://github.com/Z3Prover/z3
synced 2025-04-23 17:15:31 +00:00
add another baseline heuristic for string equalities, add cases for array axioms.
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
e5f8327483
commit
8f5658b77d
6 changed files with 340 additions and 29 deletions
|
@ -619,7 +619,7 @@ namespace lp {
|
|||
|
||||
bool lar_solver::solve_for(unsigned j, lar_term& t, mpq& coeff) {
|
||||
t.clear();
|
||||
IF_VERBOSE(10, verbose_stream() << column_is_fixed(j) << " " << is_base(j) << "\n");
|
||||
IF_VERBOSE(10, verbose_stream() << "j " << j << " is fixed " << column_is_fixed(j) << " is-base " << is_base(j) << "\n");
|
||||
if (column_is_fixed(j)) {
|
||||
coeff = get_value(j);
|
||||
return true;
|
||||
|
@ -627,8 +627,8 @@ namespace lp {
|
|||
if (!is_base(j)) {
|
||||
for (const auto & c : A_r().m_columns[j]) {
|
||||
lpvar basic_in_row = r_basis()[c.var()];
|
||||
IF_VERBOSE(10, verbose_stream() << "c.var() = " << c.var() << " basic_in_row = " << basic_in_row << "\n");
|
||||
pivot(j, basic_in_row);
|
||||
IF_VERBOSE(10, verbose_stream() << "is base " << is_base(j) << " c.var() = " << c.var() << " basic_in_row = " << basic_in_row << "\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -643,6 +643,8 @@ namespace lp {
|
|||
else
|
||||
t.add_monomial(-c.coeff(), c.var());
|
||||
}
|
||||
IF_VERBOSE(10, verbose_stream() << "j = " << j << " t = ";
|
||||
print_term(t, verbose_stream()) << " coeff = " << coeff << "\n");
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue