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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
/******************************************************************************
* Top contributors (to current version):
* Andrew Reynolds
*
* This file is part of the cvc5 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.
* ****************************************************************************
*
* Incompleteness enumeration.
*/
#include "cvc4_private.h"
#ifndef CVC5__THEORY__INCOMPLETE_ID_H
#define CVC5__THEORY__INCOMPLETE_ID_H
#include <iosfwd>
namespace cvc5 {
namespace theory {
/**
* Reasons for incompleteness in CVC4.
*/
enum class IncompleteId
{
// the non-linear arithmetic solver was disabled
ARITH_NL_DISABLED,
// the non-linear arithmetic solver was incomplete
ARITH_NL,
// incomplete due to lack of a complete quantifiers strategy
QUANTIFIERS,
// we failed to verify the correctness of a candidate solution in SyGuS
QUANTIFIERS_SYGUS_NO_VERIFY,
// incomplete due to counterexample-guided instantiation not being complete
QUANTIFIERS_CEGQI,
// incomplete due to finite model finding not being complete
QUANTIFIERS_FMF,
// incomplete due to explicitly recorded instantiations
QUANTIFIERS_RECORDED_INST,
// incomplete due to separation logic
SEP,
// relations were used in combination with set cardinality constraints
SETS_RELS_CARD,
// we skipped processing a looping word equation
STRINGS_LOOP_SKIP,
// we could not simplify a regular expression membership
STRINGS_REGEXP_NO_SIMPLIFY,
// HO extensionality axiom was disabled
UF_HO_EXT_DISABLED,
// UF+cardinality solver was disabled
UF_CARD_DISABLED,
// UF+cardinality solver used in an incomplete mode
UF_CARD_MODE,
//-------------------------------------- unknown
UNKNOWN
};
/**
* Converts an incompleteness id to a string.
*
* @param i The incompleteness identifier
* @return The name of the incompleteness identifier
*/
const char* toString(IncompleteId i);
/**
* Writes an incompleteness identifier to a stream.
*
* @param out The stream to write to
* @param i The incompleteness identifier to write to the stream
* @return The stream
*/
std::ostream& operator<<(std::ostream& out, IncompleteId i);
} // namespace theory
} // namespace cvc5
#endif /* CVC5__THEORY__INCOMPLETE_ID_H */
|