mirror of
https://github.com/Z3Prover/z3
synced 2025-04-23 17:15:31 +00:00
euf
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
96587bf708
commit
65e6d942ac
23 changed files with 1338 additions and 39 deletions
|
@ -23,6 +23,9 @@ Revision History:
|
|||
#include <tuple>
|
||||
|
||||
namespace smt {
|
||||
|
||||
class context;
|
||||
|
||||
/**
|
||||
\brief Matching Abstract Machine (MAM)
|
||||
*/
|
||||
|
|
|
@ -623,7 +623,10 @@ namespace smt {
|
|||
*/
|
||||
void context::reinsert_parents_into_cg_table(enode * r1, enode * r2, enode * n1, enode * n2, eq_justification js) {
|
||||
enode_vector & r2_parents = r2->m_parents;
|
||||
for (enode * parent : enode::parents(r1)) {
|
||||
enode_vector & r1_parents = r1->m_parents;
|
||||
unsigned num_r1_parents = r1_parents.size();
|
||||
for (unsigned i = 0; i < num_r1_parents; ++i) {
|
||||
enode* parent = r1_parents[i];
|
||||
if (!parent->is_marked())
|
||||
continue;
|
||||
parent->unset_mark();
|
||||
|
|
|
@ -57,11 +57,7 @@ Revision History:
|
|||
// the case that each context only references a few expressions.
|
||||
// Using a map instead of a vector for the literals can compress space
|
||||
// consumption.
|
||||
#ifdef SPARSE_MAP
|
||||
#define USE_BOOL_VAR_VECTOR 0
|
||||
#else
|
||||
#define USE_BOOL_VAR_VECTOR 1
|
||||
#endif
|
||||
|
||||
namespace smt {
|
||||
|
||||
|
|
|
@ -44,21 +44,7 @@ namespace smt {
|
|||
referencing few nodes from a large ast manager. There is some
|
||||
unknown performance penalty for this. */
|
||||
|
||||
// #define SPARSE_MAP
|
||||
|
||||
#ifndef SPARSE_MAP
|
||||
typedef ptr_vector<enode> app2enode_t; // app -> enode
|
||||
#else
|
||||
class app2enode_t : public u_map<enode *> {
|
||||
public:
|
||||
void setx(unsigned x, enode *val, enode *def){
|
||||
if (val == 0)
|
||||
erase(x);
|
||||
else
|
||||
insert(x,val);
|
||||
}
|
||||
};
|
||||
#endif
|
||||
|
||||
class tmp_enode;
|
||||
|
||||
|
@ -111,7 +97,6 @@ namespace smt {
|
|||
enode * m_args[0]; //!< Cached args
|
||||
|
||||
friend class context;
|
||||
friend class euf_manager;
|
||||
friend class conflict_resolution;
|
||||
friend class quantifier_manager;
|
||||
|
||||
|
@ -245,12 +230,6 @@ namespace smt {
|
|||
|
||||
const_args get_const_args() const { return const_args(this); }
|
||||
|
||||
// args get_args() { return args(this); }
|
||||
|
||||
// unsigned get_id() const {
|
||||
// return m_id;
|
||||
// }
|
||||
|
||||
unsigned get_class_size() const {
|
||||
return m_class_size;
|
||||
}
|
||||
|
|
|
@ -26,6 +26,7 @@ Revision History:
|
|||
namespace smt {
|
||||
|
||||
class conflict_resolution;
|
||||
class context;
|
||||
|
||||
typedef ptr_vector<justification> justification_vector;
|
||||
|
||||
|
|
|
@ -30,6 +30,7 @@ struct smt_params;
|
|||
namespace smt {
|
||||
class quantifier_manager_plugin;
|
||||
class quantifier_stat;
|
||||
class context;
|
||||
|
||||
class quantifier_manager {
|
||||
struct imp;
|
||||
|
|
|
@ -47,8 +47,6 @@ namespace smt {
|
|||
typedef std::pair<enode *, enode *> enode_pair;
|
||||
typedef svector<enode_pair> enode_pair_vector;
|
||||
|
||||
class context;
|
||||
|
||||
class theory;
|
||||
|
||||
class justification;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue