mirror of
https://github.com/Z3Prover/z3
synced 2025-04-29 11:55:51 +00:00
add bit-matrix, avoid flattening and/or after bit-blasting, split pdd_grobner into solver/simplifier, add xlin, add smtfd option for incremental mode logic
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
09dbacdf50
commit
1d0572354b
17 changed files with 991 additions and 386 deletions
|
@ -29,6 +29,7 @@
|
|||
namespace dd {
|
||||
|
||||
class solver {
|
||||
friend class simplifier;
|
||||
public:
|
||||
struct stats {
|
||||
unsigned m_simplified;
|
||||
|
@ -44,10 +45,14 @@ public:
|
|||
unsigned m_eqs_threshold;
|
||||
unsigned m_expr_size_limit;
|
||||
unsigned m_max_steps;
|
||||
unsigned m_random_seed;
|
||||
bool m_enable_exlin;
|
||||
config() :
|
||||
m_eqs_threshold(UINT_MAX),
|
||||
m_expr_size_limit(UINT_MAX),
|
||||
m_max_steps(UINT_MAX)
|
||||
m_max_steps(UINT_MAX),
|
||||
m_random_seed(0),
|
||||
m_enable_exlin(false)
|
||||
{}
|
||||
};
|
||||
|
||||
|
@ -160,20 +165,6 @@ private:
|
|||
void push_equation(eq_state st, equation& eq);
|
||||
void push_equation(eq_state st, equation* eq) { push_equation(st, *eq); }
|
||||
|
||||
struct compare_top_var;
|
||||
bool simplify_linear_step(bool binary);
|
||||
bool simplify_linear_step(equation_vector& linear);
|
||||
typedef vector<equation_vector> use_list_t;
|
||||
use_list_t get_use_list();
|
||||
void add_to_use(equation* e, use_list_t& use_list);
|
||||
void remove_from_use(equation* e, use_list_t& use_list);
|
||||
void remove_from_use(equation* e, use_list_t& use_list, unsigned except_v);
|
||||
|
||||
bool simplify_cc_step();
|
||||
bool simplify_elim_pure_step();
|
||||
bool simplify_elim_dual_step();
|
||||
bool simplify_leaf_step();
|
||||
|
||||
void invariant() const;
|
||||
struct scoped_process {
|
||||
solver& g;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue