3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-24 09:35:32 +00:00

pareto take 3

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2014-01-02 01:35:31 -08:00
parent 8883234647
commit a307bd67e0
4 changed files with 37 additions and 57 deletions

View file

@ -152,8 +152,12 @@ public:
SASSERT(g->is_well_sorted());
pc = 0; core = 0;
// TBD: bail out if cores are enabled.
// TBD: bail out if proofs are enabled/add proofs.
if (g->unsat_core_enabled()) {
throw tactic_exception("pb-preprocess does not support cores");
}
if (g->proofs_enabled()) {
throw tactic_exception("pb-preprocess does not support proofs");
}
pb_preproc_model_converter* pp = alloc(pb_preproc_model_converter, m);
mc = pp;
@ -166,6 +170,7 @@ public:
bool simplify(goal_ref const& g, pb_preproc_model_converter& mc) {
reset();
normalize(g);
decompose(g);
if (g->inconsistent()) {
return false;
}
@ -300,6 +305,14 @@ private:
}
}
void decompose(goal_ref const& g) {
for (unsigned i = 0; !g->inconsistent() && i < g->size(); ++i) {
expr* e = g->form(i);
if (pb.is_ge(e) && to_app(e)->get_num_args() > 20) {
// TBD: decompose inequality int smaller ones.
}
}
}
void process_vars(unsigned i, goal_ref const& g) {
expr* r, *e;