mirror of
https://github.com/Z3Prover/z3
synced 2025-10-09 17:31:57 +00:00
re-organize muz_qe into separate units
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
4597872be8
commit
0d56499e2d
131 changed files with 994 additions and 20069 deletions
81
src/muz/transforms/dl_transforms.cpp
Normal file
81
src/muz/transforms/dl_transforms.cpp
Normal file
|
@ -0,0 +1,81 @@
|
|||
/*++
|
||||
Copyright (c) 2013 Microsoft Corporation
|
||||
|
||||
Module Name:
|
||||
|
||||
dl_transforms.cpp
|
||||
|
||||
Abstract:
|
||||
|
||||
Default transformations.
|
||||
|
||||
Author:
|
||||
|
||||
Nikolaj Bjorner (nbjorner) 2013-08-28.
|
||||
|
||||
Revision History:
|
||||
|
||||
Extracted from dl_context
|
||||
|
||||
--*/
|
||||
|
||||
#include"dl_transforms.h"
|
||||
#include"dl_rule_transformer.h"
|
||||
#include"dl_mk_coi_filter.h"
|
||||
#include"dl_mk_filter_rules.h"
|
||||
#include"dl_mk_interp_tail_simplifier.h"
|
||||
#include"dl_mk_rule_inliner.h"
|
||||
#include"dl_mk_bit_blast.h"
|
||||
#include"dl_mk_array_blast.h"
|
||||
#include"dl_mk_karr_invariants.h"
|
||||
#include"dl_mk_magic_symbolic.h"
|
||||
#include"dl_mk_quantifier_abstraction.h"
|
||||
#include"dl_mk_quantifier_instantiation.h"
|
||||
#include"dl_mk_subsumption_checker.h"
|
||||
#include"dl_mk_scale.h"
|
||||
|
||||
namespace datalog {
|
||||
|
||||
void apply_default_transformation(context& ctx) {
|
||||
rule_transformer transf(ctx);
|
||||
ctx.ensure_closed();
|
||||
transf.reset();
|
||||
transf.register_plugin(alloc(datalog::mk_coi_filter, ctx));
|
||||
transf.register_plugin(alloc(datalog::mk_interp_tail_simplifier, ctx));
|
||||
|
||||
transf.register_plugin(alloc(datalog::mk_subsumption_checker, ctx, 35005));
|
||||
transf.register_plugin(alloc(datalog::mk_rule_inliner, ctx, 35000));
|
||||
transf.register_plugin(alloc(datalog::mk_coi_filter, ctx, 34990));
|
||||
transf.register_plugin(alloc(datalog::mk_interp_tail_simplifier, ctx, 34980));
|
||||
|
||||
//and another round of inlining
|
||||
transf.register_plugin(alloc(datalog::mk_subsumption_checker, ctx, 34975));
|
||||
transf.register_plugin(alloc(datalog::mk_rule_inliner, ctx, 34970));
|
||||
transf.register_plugin(alloc(datalog::mk_coi_filter, ctx, 34960));
|
||||
transf.register_plugin(alloc(datalog::mk_interp_tail_simplifier, ctx, 34950));
|
||||
|
||||
transf.register_plugin(alloc(datalog::mk_subsumption_checker, ctx, 34940));
|
||||
transf.register_plugin(alloc(datalog::mk_rule_inliner, ctx, 34930));
|
||||
transf.register_plugin(alloc(datalog::mk_subsumption_checker, ctx, 34920));
|
||||
transf.register_plugin(alloc(datalog::mk_rule_inliner, ctx, 34910));
|
||||
transf.register_plugin(alloc(datalog::mk_subsumption_checker, ctx, 34900));
|
||||
transf.register_plugin(alloc(datalog::mk_rule_inliner, ctx, 34890));
|
||||
transf.register_plugin(alloc(datalog::mk_subsumption_checker, ctx, 34880));
|
||||
|
||||
|
||||
if (ctx.get_params().quantify_arrays()) {
|
||||
transf.register_plugin(alloc(datalog::mk_quantifier_abstraction, ctx, 33000));
|
||||
transf.register_plugin(alloc(datalog::mk_array_blast, ctx, 32500));
|
||||
}
|
||||
transf.register_plugin(alloc(datalog::mk_quantifier_instantiation, ctx, 32000));
|
||||
|
||||
transf.register_plugin(alloc(datalog::mk_bit_blast, ctx, 35000));
|
||||
transf.register_plugin(alloc(datalog::mk_array_blast, ctx, 36000));
|
||||
transf.register_plugin(alloc(datalog::mk_karr_invariants, ctx, 36010));
|
||||
if (ctx.get_params().magic()) {
|
||||
transf.register_plugin(alloc(datalog::mk_magic_symbolic, ctx, 36020));
|
||||
}
|
||||
transf.register_plugin(alloc(datalog::mk_scale, ctx, 36030));
|
||||
ctx.transform_rules(transf);
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue