summaryrefslogtreecommitdiff
path: root/src/theory/bags/solver_state.h
diff options
context:
space:
mode:
authormudathirmahgoub <mudathirmahgoub@gmail.com>2021-01-08 10:07:50 -0600
committerGitHub <noreply@github.com>2021-01-08 10:07:50 -0600
commit63d27f031f8942607d869080d0e2cfb6078d40b1 (patch)
tree0a29a6479a38d700a824951e343334c5d02d0183 /src/theory/bags/solver_state.h
parent819eedc38031d3befb9c3e855bbbfa0afa3bb3cc (diff)
Add bags inference generator (#5731)
This PR adds inference generator for basic bag rules.
Diffstat (limited to 'src/theory/bags/solver_state.h')
-rw-r--r--src/theory/bags/solver_state.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/theory/bags/solver_state.h b/src/theory/bags/solver_state.h
index 9a4bfdae7..8d70ee8f7 100644
--- a/src/theory/bags/solver_state.h
+++ b/src/theory/bags/solver_state.h
@@ -31,10 +31,24 @@ class SolverState : public TheoryState
public:
SolverState(context::Context* c, context::UserContext* u, Valuation val);
+ void registerClass(TNode n);
+
+ Node registerBagElement(TNode n);
+
+ std::set<Node>& getBags();
+
+ std::set<Node>& getElements(TypeNode t);
+
+ std::map<Node, Node>& getBagElements(Node B);
+
private:
/** constants */
Node d_true;
Node d_false;
+ std::set<Node> d_bags;
+ std::map<TypeNode, std::set<Node>> d_elements;
+ /** bag -> element -> multiplicity */
+ std::map<Node, std::map<Node, Node>> d_count;
}; /* class SolverState */
} // namespace bags
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback