statistics
synthresult
term
+ unknownexplanation
Class hierarchy
* class :ref:`api/cpp/datatypeselector:datatypeselector`
* class :ref:`api/cpp/driveroptions:driveroptions`
* class :ref:`api/cpp/grammar:grammar`
- * class :ref:`api/cpp/kind:kind`
* class :ref:`api/cpp/op:op`
* class :ref:`api/cpp/optioninfo:optioninfo`
* class :ref:`api/cpp/result:result`
-
- * enum :cpp:enum:`UnknownExplanation <cvc5::Result::UnknownExplanation>`
-
- * class :ref:`api/cpp/roundingmode:roundingmode`
* class :ref:`api/cpp/solver:solver`
* class :ref:`api/cpp/sort:sort`
* class :cpp:class:`Stat <cvc5::Stat>`
* class :cpp:class:`const_iterator <cvc5::Term::const_iterator>`
+ * enum :ref:`api/cpp/kind:kind`
+ * enum :ref:`api/cpp/roundingmode:roundingmode`
+ * enum :ref:`api/cpp/unknownexplanation:unknownexplanation`
* modes enums :ref:`api/cpp/modes:modes`
``}``
.. doxygenenum:: cvc5::RoundingMode
:project: cvc5
-
-.. doxygenstruct:: std::hash< cvc5::RoundingMode >
- :project: std
- :members:
- :undoc-members:
--- /dev/null
+UnknownExplanation
+==================
+
+.. doxygenenum:: cvc5::UnknownExplanation
+ :project: cvc5
+
Whenever certain parts of the solver execute, they instruct the resource manager to *spend* a resource.
As soon as the resource manager realizes that some limit is exhausted (either the resource limit or the per-check time limit is reached), it asynchronously instructs the core solver to interrupt the check.
To not invalidate the internal state of the solver, and allow to use it again after an interrupt, the solver continues its work until it reaches a safe point in one of the core solving components.
-Then, it returns `unknown` (with an :cpp:enum:`explanation <cvc5::Result::UnknownExplanation>`).
+Then, it returns `unknown` (with an :cpp:enum:`explanation <cvc5::UnknownExplanation>`).
The intention of a resource limit is to be a deterministic measure that grows (linearly, if possible) with actual running time.
Resources are spent when lemmas are generated and during a few select events like preprocessing, rewriting, decisions and restarts in the SAT solver, or theory checks.
-In case the resource spending does not properly reflect the running time, the weights of the individual resources can be modified using the :ref:`rweight <lbl-option-rweight>` option, for example with ``--rweight=RestartStep=5``.
\ No newline at end of file
+In case the resource spending does not properly reflect the running time, the weights of the individual resources can be modified using the :ref:`rweight <lbl-option-rweight>` option, for example with ``--rweight=RestartStep=5``.
*/
enum UnknownExplanation
{
+ /**
+ * Full satisfiability check required (e.g., if only preprocessing was
+ * performed).
+ */
REQUIRES_FULL_CHECK,
+ /** Incomplete theory solver. */
INCOMPLETE,
+ /** Time limit reached. */
TIMEOUT,
+ /** Resource limit reached. */
RESOURCEOUT,
+ /** Memory limit reached. */
MEMOUT,
+ /** Solver was interrupted. */
INTERRUPTED,
+ /** Unsupported feature encountered. */
UNSUPPORTED,
+ /** Other reason. */
OTHER,
+ /** No specific reason given. */
UNKNOWN_REASON
};