Fix getModelValue for arithmetic (#8316)
[cvc5.git] / src / theory / arith / constraint_forward.h
1 /******************************************************************************
2 * Top contributors (to current version):
3 * Tim King, Mathias Preiner
4 *
5 * This file is part of the cvc5 project.
6 *
7 * Copyright (c) 2009-2021 by the authors listed in the file AUTHORS
8 * in the top-level source directory and their institutional affiliations.
9 * All rights reserved. See the file COPYING in the top-level source
10 * directory for licensing information.
11 * ****************************************************************************
12 *
13 * Forward declarations of the ConstraintValue and ConstraintDatabase
14 * classes.
15 *
16 * This is the forward declarations of the ConstraintValue and
17 * ConstraintDatabase and the typedef for Constraint.
18 * This is used to break circular dependencies and minimize interaction
19 * between header files.
20 */
21
22 #ifndef CVC5__THEORY__ARITH__CONSTRAINT_FORWARD_H
23 #define CVC5__THEORY__ARITH__CONSTRAINT_FORWARD_H
24
25 #include <vector>
26
27 #include "cvc5_private.h"
28
29 namespace cvc5 {
30 namespace theory {
31 namespace arith {
32
33 class Constraint;
34 typedef Constraint* ConstraintP;
35 typedef const Constraint* ConstraintCP;
36
37 static constexpr ConstraintP NullConstraint = nullptr;
38
39 class ConstraintDatabase;
40
41 typedef std::vector<ConstraintCP> ConstraintCPVec;
42
43 typedef std::vector<Rational> RationalVector;
44 typedef RationalVector* RationalVectorP;
45 typedef const RationalVector* RationalVectorCP;
46 static constexpr RationalVectorCP RationalVectorCPSentinel = nullptr;
47 static constexpr RationalVectorP RationalVectorPSentinel = nullptr;
48
49 } // namespace arith
50 } // namespace theory
51 } // namespace cvc5
52
53 #endif /* CVC5__THEORY__ARITH__CONSTRAINT_FORWARD_H */