3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-23 17:15:31 +00:00
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2020-08-24 01:55:13 -07:00
parent 96587bf708
commit 65e6d942ac
23 changed files with 1338 additions and 39 deletions

View file

@ -23,6 +23,9 @@ Revision History:
#include <tuple>
namespace smt {
class context;
/**
\brief Matching Abstract Machine (MAM)
*/

View file

@ -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();

View file

@ -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 {

View file

@ -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;
}

View file

@ -26,6 +26,7 @@ Revision History:
namespace smt {
class conflict_resolution;
class context;
typedef ptr_vector<justification> justification_vector;

View file

@ -30,6 +30,7 @@ struct smt_params;
namespace smt {
class quantifier_manager_plugin;
class quantifier_stat;
class context;
class quantifier_manager {
struct imp;

View file

@ -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;