diff options
author | Kshitij Bansal <kshitij@cs.nyu.edu> | 2013-09-09 14:47:53 -0400 |
---|---|---|
committer | Kshitij Bansal <kshitij@cs.nyu.edu> | 2014-02-21 07:25:13 -0500 |
commit | 50c26544c83a71e87efa487e4af063b1b5647c0f (patch) | |
tree | 82d4f3b2632a2cf06aff70550f37f80dc80d9543 /src/theory/sets/theory_sets.cpp | |
parent | 53b8499f48a00dc876d56c76fbc79aafe5803529 (diff) |
add new theory (sets)
Specification (smt2) -- as per this commit, subject to change
- Parameterized sort Set, e.g. (Set Int)
- Empty set constant (typed), use with "as" to specify the type, e.g.
(as emptyset (Set Int))
- Create a singleton set
(setenum X (Set X)) : creates singleton set
- Functions/operators
(union (Set X) (Set X) (Set X))
(intersection (Set X) (Set X) (Set X))
(setminus (Set X) (Set X) (Set X))
- Predicates
(in X (Set X) Bool) : membership
(subseteq (Set X) (Set X) Bool) : set containment
Diffstat (limited to 'src/theory/sets/theory_sets.cpp')
-rw-r--r-- | src/theory/sets/theory_sets.cpp | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/src/theory/sets/theory_sets.cpp b/src/theory/sets/theory_sets.cpp new file mode 100644 index 000000000..91195e67e --- /dev/null +++ b/src/theory/sets/theory_sets.cpp @@ -0,0 +1,55 @@ +/********************* */ +/*! \file theory_sets.cpp + ** \verbatim + ** Original author: Kshitij Bansal + ** Major contributors: none + ** Minor contributors (to current version): none + ** This file is part of the CVC4 project. + ** Copyright (c) 2013-2014 New York University and The University of Iowa + ** See the file COPYING in the top-level source directory for licensing + ** information.\endverbatim + ** + ** \brief Sets theory. + ** + ** Sets theory. + **/ + +#include "theory/sets/theory_sets.h" +#include "theory/sets/theory_sets_private.h" + +namespace CVC4 { +namespace theory { +namespace sets { + +TheorySets::TheorySets(context::Context* c, + context::UserContext* u, + OutputChannel& out, + Valuation valuation, + const LogicInfo& logicInfo) : + Theory(THEORY_SETS, c, u, out, valuation, logicInfo), + d_internal(new TheorySetsPrivate(*this, c, u)) { +} + +TheorySets::~TheorySets() { + delete d_internal; +} + +void TheorySets::check(Effort e) { + d_internal->check(e); +} + +void TheorySets::propagate(Effort e) { + d_internal->propagate(e); +} + +Node TheorySets::explain(TNode node) { + return d_internal->explain(node); +} + +void TheorySets::preRegisterTerm(TNode node) { + return d_internal->preRegisterTerm(node); +} + +}/* CVC4::theory::sets namespace */ +}/* CVC4::theory namespace */ +}/* CVC4 namespace */ |