3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-09-05 09:37:44 +00:00
z3/src/muz/base/dl_rule_subsumption_index.h
Nikolaj Bjorner fc30461828 unused variables
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-10-20 09:09:06 -07:00

61 lines
1.2 KiB
C++

/*++
Copyright (c) 2006 Microsoft Corporation
Module Name:
dl_rule_subsumption_index.h
Abstract:
Subsumption index for rules.
Currently an underapproximation (fails to identify some subsumptions).
Author:
Krystof Hoder (t-khoder) 2011-10-10.
Revision History:
--*/
#pragma once
#include "muz/base/dl_context.h"
namespace datalog {
class rule_subsumption_index {
typedef obj_hashtable<app> app_set;
ast_manager & m;
// context & m_context;
rule_ref_vector m_ref_holder;
obj_map<func_decl, app_set *> m_unconditioned_heads;
hashtable<rule *, rule_hash_proc, rule_eq_proc> m_rule_set;
void handle_unconditioned_rule(rule * r);
public:
rule_subsumption_index(context & ctx) :
m(ctx.get_manager()),
// m_context(ctx),
m_ref_holder(ctx.get_rule_manager()) {}
~rule_subsumption_index() {
reset_dealloc_values(m_unconditioned_heads);
}
rule_subsumption_index(rule_subsumption_index const&) = delete;
rule_subsumption_index& operator=(rule_subsumption_index const&) = delete;
void add(rule * r);
bool is_subsumed(rule * r);
bool is_subsumed(app * query);
};
};