mirror of
https://github.com/Z3Prover/z3
synced 2025-04-15 13:28:47 +00:00
add cut redundancies
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
ff3baffadc
commit
05158b3914
|
@ -111,6 +111,7 @@ namespace sat {
|
||||||
m_cut_xor = p.cut_xor();
|
m_cut_xor = p.cut_xor();
|
||||||
m_cut_npn3 = p.cut_npn3();
|
m_cut_npn3 = p.cut_npn3();
|
||||||
m_cut_dont_cares = p.cut_dont_cares();
|
m_cut_dont_cares = p.cut_dont_cares();
|
||||||
|
m_cut_redundancies = p.cut_redundancies();
|
||||||
m_cut_force = p.cut_force();
|
m_cut_force = p.cut_force();
|
||||||
m_lookahead_simplify = p.lookahead_simplify();
|
m_lookahead_simplify = p.lookahead_simplify();
|
||||||
m_lookahead_double = p.lookahead_double();
|
m_lookahead_double = p.lookahead_double();
|
||||||
|
|
|
@ -128,6 +128,7 @@ namespace sat {
|
||||||
bool m_cut_xor;
|
bool m_cut_xor;
|
||||||
bool m_cut_npn3;
|
bool m_cut_npn3;
|
||||||
bool m_cut_dont_cares;
|
bool m_cut_dont_cares;
|
||||||
|
bool m_cut_redundancies;
|
||||||
bool m_cut_force;
|
bool m_cut_force;
|
||||||
bool m_anf_simplify;
|
bool m_anf_simplify;
|
||||||
unsigned m_anf_delay;
|
unsigned m_anf_delay;
|
||||||
|
|
|
@ -599,12 +599,14 @@ namespace sat {
|
||||||
}
|
}
|
||||||
|
|
||||||
void cut_simplifier::add_dont_cares(vector<cut_set> const& cuts) {
|
void cut_simplifier::add_dont_cares(vector<cut_set> const& cuts) {
|
||||||
if (!s.m_config.m_cut_dont_cares)
|
if (s.m_config.m_cut_dont_cares) {
|
||||||
return;
|
cuts2bins(cuts);
|
||||||
cuts2bins(cuts);
|
bins2dont_cares();
|
||||||
bins2dont_cares();
|
dont_cares2cuts(cuts);
|
||||||
dont_cares2cuts(cuts);
|
}
|
||||||
// m_aig_cuts.simplify();
|
if (s.m_config.m_cut_redundancies) {
|
||||||
|
m_aig_cuts.simplify();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -81,6 +81,7 @@ def_module_params('sat',
|
||||||
('cut.xor', BOOL, False, 'extract xors from clauses for cut simplification'),
|
('cut.xor', BOOL, False, 'extract xors from clauses for cut simplification'),
|
||||||
('cut.npn3', BOOL, False, 'extract 3 input functions from clauses for cut simplification'),
|
('cut.npn3', BOOL, False, 'extract 3 input functions from clauses for cut simplification'),
|
||||||
('cut.dont_cares', BOOL, True, 'integrate dont cares with cuts'),
|
('cut.dont_cares', BOOL, True, 'integrate dont cares with cuts'),
|
||||||
|
('cut.redundancies', BOOL, True, 'integrate redundancy checking of cuts'),
|
||||||
('cut.force', BOOL, False, 'force redoing cut-enumeration until a fixed-point'),
|
('cut.force', BOOL, False, 'force redoing cut-enumeration until a fixed-point'),
|
||||||
('lookahead.cube.cutoff', SYMBOL, 'depth', 'cutoff type used to create lookahead cubes: depth, freevars, psat, adaptive_freevars, adaptive_psat'),
|
('lookahead.cube.cutoff', SYMBOL, 'depth', 'cutoff type used to create lookahead cubes: depth, freevars, psat, adaptive_freevars, adaptive_psat'),
|
||||||
# - depth: the maximal cutoff is fixed to the value of lookahead.cube.depth.
|
# - depth: the maximal cutoff is fixed to the value of lookahead.cube.depth.
|
||||||
|
|
Loading…
Reference in a new issue