mirror of
https://github.com/Z3Prover/z3
synced 2025-05-14 19:24:44 +00:00
review comments by Elffers
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
e593b5b2c8
commit
a9a26e5f2e
4 changed files with 54 additions and 2 deletions
|
@ -926,6 +926,8 @@ struct pb2bv_rewriter::imp {
|
|||
|
||||
void set_cardinality_encoding(sorting_network_encoding enc) { m_sort.cfg().m_encoding = enc; }
|
||||
|
||||
void set_min_arity(unsigned ma) { m_min_arity = ma; }
|
||||
|
||||
};
|
||||
|
||||
struct card2bv_rewriter_cfg : public default_rewriter_cfg {
|
||||
|
@ -940,6 +942,7 @@ struct pb2bv_rewriter::imp {
|
|||
void keep_cardinality_constraints(bool f) { m_r.keep_cardinality_constraints(f); }
|
||||
void set_pb_solver(symbol const& s) { m_r.set_pb_solver(s); }
|
||||
void set_cardinality_encoding(sorting_network_encoding enc) { m_r.set_cardinality_encoding(enc); }
|
||||
void set_min_arity(unsigned ma) { m_r.set_min_arity(ma); }
|
||||
|
||||
};
|
||||
|
||||
|
@ -952,6 +955,7 @@ struct pb2bv_rewriter::imp {
|
|||
void keep_cardinality_constraints(bool f) { m_cfg.keep_cardinality_constraints(f); }
|
||||
void set_pb_solver(symbol const& s) { m_cfg.set_pb_solver(s); }
|
||||
void set_cardinality_encoding(sorting_network_encoding e) { m_cfg.set_cardinality_encoding(e); }
|
||||
void set_min_arity(unsigned ma) { m_cfg.set_min_arity(ma); }
|
||||
void rewrite(bool full, expr* e, expr_ref& r, proof_ref& p) {
|
||||
expr_ref ee(e, m());
|
||||
if (m_cfg.m_r.mk_app(full, e, r)) {
|
||||
|
@ -982,6 +986,15 @@ struct pb2bv_rewriter::imp {
|
|||
return gparams::get_module("sat").get_sym("pb.solver", symbol("solver"));
|
||||
}
|
||||
|
||||
unsigned min_arity() const {
|
||||
params_ref const& p = m_params;
|
||||
unsigned r = p.get_uint("sat.pb.min_arity", UINT_MAX);
|
||||
if (r != UINT_MAX) return r;
|
||||
r = p.get_uint("pb.min_arity", UINT_MAX);
|
||||
if (r != UINT_MAX) return r;
|
||||
return gparams::get_module("sat").get_uint("pb.min_arity", 9);
|
||||
}
|
||||
|
||||
sorting_network_encoding cardinality_encoding() const {
|
||||
symbol enc = m_params.get_sym("cardinality.encoding", symbol());
|
||||
if (enc == symbol()) {
|
||||
|
@ -1011,6 +1024,7 @@ struct pb2bv_rewriter::imp {
|
|||
m_rw.keep_cardinality_constraints(keep_cardinality());
|
||||
m_rw.set_pb_solver(pb_solver());
|
||||
m_rw.set_cardinality_encoding(cardinality_encoding());
|
||||
m_rw.set_min_arity(min_arity());
|
||||
}
|
||||
|
||||
void collect_param_descrs(param_descrs& r) const {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue