blob: 38c49421942a836b79da67687f32c133e53aa68f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
/********************* */
/*! \file term_registry.cpp
** \verbatim
** Top contributors (to current version):
** Mudathir Mohamed, Morgan Deters, Dejan Jovanovic
** This file is part of the CVC4 project.
** Copyright (c) 2009-2021 by the authors listed in the file AUTHORS
** in the top-level source directory and their institutional affiliations.
** All rights reserved. See the file COPYING in the top-level source
** directory for licensing information.\endverbatim
**
** \brief Implementation of bags term registry object
**/
#include "theory/bags/term_registry.h"
using namespace std;
using namespace CVC4::kind;
namespace CVC4 {
namespace theory {
namespace bags {
TermRegistry::TermRegistry(SolverState& state, InferenceManager& im)
: d_im(im),
d_proxy(state.getUserContext()),
d_proxy_to_term(state.getUserContext())
{
}
Node TermRegistry::getEmptyBag(TypeNode tn)
{
std::map<TypeNode, Node>::iterator it = d_emptybag.find(tn);
if (it != d_emptybag.end())
{
return it->second;
}
Node n = NodeManager::currentNM()->mkConst(EmptySet(tn));
d_emptybag[tn] = n;
return n;
}
} // namespace bags
} // namespace theory
} // namespace CVC4
|