1 /********************* */
4 ** Original author: Morgan Deters
5 ** Major contributors: none
6 ** Minor contributors (to current version): none
7 ** This file is part of the CVC4 project.
8 ** Copyright (c) 2009-2014 New York University and The University of Iowa
9 ** See the file COPYING in the top-level source directory for licensing
10 ** information.\endverbatim
12 ** \brief [[ Add one-line brief description here ]]
14 ** [[ Add lengthier description here ]]
15 ** \todo document this file
18 #include "cvc4_public.h"
20 #ifndef __CVC4__DIVISIBLE_H
21 #define __CVC4__DIVISIBLE_H
24 #include "util/integer.h"
25 #include "util/exception.h"
30 * The structure representing the divisibility-by-k predicate.
32 struct CVC4_PUBLIC Divisible
{
35 Divisible(const Integer
& n
);
37 bool operator==(const Divisible
& d
) const {
41 bool operator!=(const Divisible
& d
) const {
44 };/* struct Divisible */
47 * Hash function for the Divisible objects.
49 struct CVC4_PUBLIC DivisibleHashFunction
{
50 size_t operator()(const Divisible
& d
) const {
53 };/* struct DivisibleHashFunction */
55 inline std::ostream
& operator <<(std::ostream
& os
, const Divisible
& d
) CVC4_PUBLIC
;
56 inline std::ostream
& operator <<(std::ostream
& os
, const Divisible
& d
) {
57 return os
<< "divisible-by-" << d
.k
;
62 #endif /* __CVC4__DIVISIBLE_H */