mirror of
https://github.com/Z3Prover/z3
synced 2025-04-06 09:34:08 +00:00
updated release notes for merge
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
2e4fb8d356
commit
d088a1b9f6
|
@ -1,5 +1,36 @@
|
|||
RELEASE NOTES
|
||||
|
||||
Version 4.8.0
|
||||
=============
|
||||
|
||||
- New requirements:
|
||||
- A breaking change to the API is that parsers for SMT-LIB2 formulas return a vector of
|
||||
formulas as opposed to a conjunction of formulas. The vector of formulas correspond to
|
||||
the set of "assert" instructions in the SMT-LIB input.
|
||||
|
||||
- New features
|
||||
- A parallel mode is available for select theories, including QF_BV.
|
||||
By setting parallel.enable=true Z3 will spawn a number of worker threads proportional to the
|
||||
number of available CPU cores to apply cube and conquer solving on the goal.
|
||||
- The SAT solver by default handle cardinality and PB constraints using a custom plugin
|
||||
that operates directly on cardinality and PB constraints.
|
||||
- A "cube" interface is exposed over the solver API.
|
||||
- Model conversion is first class over the textual API, such that subgoals created from running a
|
||||
solver can be passed in text files and a model for the original formula can be recreated from the result.
|
||||
- This has also led to changes in how models are tracked over tactic subgoals. The API for
|
||||
extracting models from apply_result have been replaced.
|
||||
- An optional mode handles xor constraints using a custom xor propagator.
|
||||
It is off by default and its value not demonstrated.
|
||||
- The SAT solver includes new inprocessing technques that are available during simplification.
|
||||
It performs asymmetric tautology elimination by default, and one can turn on more powerful inprocessing techniques
|
||||
(known as ACCE, ABCE, CCE). Asymmetric branching also uses features introduced in Lingeling by exploiting binary implication graphs.
|
||||
Use sat.acce=true to enable the full repertoire of inprocessing methods. By default, clauses that are "eliminated" by acce are tagged
|
||||
as lemmas (redundant) and are garbage collected if their glue level is high.
|
||||
|
||||
- Removed features:
|
||||
- long deprecated API functions have been removed from z3_api.h
|
||||
|
||||
|
||||
Version 4.7.1
|
||||
=============
|
||||
|
||||
|
|
|
@ -1,27 +0,0 @@
|
|||
/*
|
||||
Copyright (c) 2017 Microsoft Corporation
|
||||
Author: Lev Nachmanson
|
||||
*/
|
||||
#pragma once
|
||||
#include "util/lp/lp_settings.h"
|
||||
namespace lp {
|
||||
class lar_solver;
|
||||
class bound_propagator {
|
||||
std::unordered_map<unsigned, unsigned> m_improved_low_bounds; // these maps map a column index to the corresponding index in ibounds
|
||||
std::unordered_map<unsigned, unsigned> m_improved_upper_bounds;
|
||||
lar_solver & m_lar_solver;
|
||||
public:
|
||||
vector<implied_bound> m_ibounds;
|
||||
public:
|
||||
bound_propagator(lar_solver & ls);
|
||||
column_type get_column_type(unsigned) const;
|
||||
const impq & get_low_bound(unsigned) const;
|
||||
const impq & get_upper_bound(unsigned) const;
|
||||
void try_add_bound(mpq v, unsigned j, bool is_low, bool coeff_before_j_is_pos, unsigned row_or_term_index, bool strict);
|
||||
virtual bool bound_is_interesting(unsigned vi,
|
||||
lp::lconstraint_kind kind,
|
||||
const rational & bval) {return true;}
|
||||
unsigned number_of_found_bounds() const { return m_ibounds.size(); }
|
||||
virtual void consume(mpq const& v, unsigned j) { std::cout << "doh\n"; }
|
||||
};
|
||||
}
|
Loading…
Reference in a new issue