mirror of
https://github.com/Z3Prover/z3
synced 2025-11-02 04:27:52 +00:00
add option to validate result of PDR. Add PDR tactic. Add fixedpoint parsing
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
68ae5d434c
commit
50385e7e29
32 changed files with 836 additions and 393 deletions
|
|
@ -38,11 +38,12 @@ namespace datalog {
|
|||
substitution m_subst;
|
||||
unifier m_unif;
|
||||
bool m_ready;
|
||||
bool m_normalize;
|
||||
unsigned m_deltas[2];
|
||||
public:
|
||||
rule_unifier(context& ctx)
|
||||
: m(ctx.get_manager()), m_rm(ctx.get_rule_manager()), m_context(ctx),
|
||||
m_interp_simplifier(ctx), m_subst(m), m_unif(m), m_ready(false) {}
|
||||
m_interp_simplifier(ctx), m_subst(m), m_unif(m), m_ready(false), m_normalize(true) {}
|
||||
|
||||
/** Reset subtitution and unify tail tgt_idx of the target rule and the head of the src rule */
|
||||
bool unify_rules(rule const& tgt, unsigned tgt_idx, rule const& src);
|
||||
|
|
@ -60,6 +61,13 @@ namespace datalog {
|
|||
*/
|
||||
expr_ref_vector get_rule_subst(rule const& r, bool is_tgt);
|
||||
|
||||
/**
|
||||
Control if bound variables are normalized after unification.
|
||||
The default is 'true': bound variables are re-mapped to an
|
||||
initial segment of de-Bruijn indices.
|
||||
*/
|
||||
void set_normalize(bool n) { m_normalize = n; }
|
||||
|
||||
private:
|
||||
void apply(app * a, bool is_tgt, app_ref& res);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue