diff options
author | Morgan Deters <mdeters@cs.nyu.edu> | 2014-10-23 03:11:18 -0400 |
---|---|---|
committer | Morgan Deters <mdeters@cs.nyu.edu> | 2014-10-23 19:40:41 -0400 |
commit | c6436566dec99c0ed6794fa34b9b67a7e47918b0 (patch) | |
tree | 5555462cd38a49a9b6bed760d7af728d59371ee4 /src/util/language.h | |
parent | 1c8d1d7c5831baebc0a59a7dcf36f942504e5556 (diff) |
Parsing and infrastructure support for SMT-LIBv2.5 input and output languages.
* support for new commands meta-info, declare-const, echo, get-model,
reset, and reset-assertions
* support for set-option :global-declarations
* support for set-option :produce-assertions
* support for set-option :reproducible-resource-limit
* support for get-info :assertion-stack-levels
* support for set-info :smt-lib-version 2.5
* ascribe types for abstract values (the new 2.5 standard clarifies that
this is required)
* SMT-LIB v2.5 string literals (we still support 2.0 string literals when
in 2.0 mode)
What's still to do:
* check-sat-assumptions/get-unsat-assumptions (still being hotly debated).
Also set-option :produce-unsat-assumptions.
* define-fun-rec doesn't allow mutual recursion
* All options should be restored to defaults with (reset) command.
(Currently :incremental and maybe others get "stuck" due to late driver
integration.)
Diffstat (limited to 'src/util/language.h')
-rw-r--r-- | src/util/language.h | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/src/util/language.h b/src/util/language.h index be962bf3e..abde0b509 100644 --- a/src/util/language.h +++ b/src/util/language.h @@ -45,8 +45,12 @@ enum CVC4_PUBLIC Language { /** The SMTLIB v1 input language */ LANG_SMTLIB_V1 = 0, - /** The SMTLIB v2 input language */ - LANG_SMTLIB_V2, + /** The SMTLIB v2.0 input language */ + LANG_SMTLIB_V2_0, + /** The SMTLIB v2.5 input language */ + LANG_SMTLIB_V2_5, + /** Backward-compatibility for enumeration naming */ + LANG_SMTLIB_V2 = LANG_SMTLIB_V2_5, /** The TPTP input language */ LANG_TPTP, /** The CVC4 input language */ @@ -70,8 +74,11 @@ inline std::ostream& operator<<(std::ostream& out, Language lang) { case LANG_SMTLIB_V1: out << "LANG_SMTLIB_V1"; break; - case LANG_SMTLIB_V2: - out << "LANG_SMTLIB_V2"; + case LANG_SMTLIB_V2_0: + out << "LANG_SMTLIB_V2_0"; + break; + case LANG_SMTLIB_V2_5: + out << "LANG_SMTLIB_V2_5"; break; case LANG_TPTP: out << "LANG_TPTP"; @@ -107,7 +114,11 @@ enum CVC4_PUBLIC Language { /** The SMTLIB v1 output language */ LANG_SMTLIB_V1 = input::LANG_SMTLIB_V1, - /** The SMTLIB v2 output language */ + /** The SMTLIB v2.0 output language */ + LANG_SMTLIB_V2_0 = input::LANG_SMTLIB_V2_0, + /** The SMTLIB v2.5 output language */ + LANG_SMTLIB_V2_5 = input::LANG_SMTLIB_V2_5, + /** Backward-compatibility for enumeration naming */ LANG_SMTLIB_V2 = input::LANG_SMTLIB_V2, /** The TPTP output language */ LANG_TPTP = input::LANG_TPTP, @@ -134,8 +145,11 @@ inline std::ostream& operator<<(std::ostream& out, Language lang) { case LANG_SMTLIB_V1: out << "LANG_SMTLIB_V1"; break; - case LANG_SMTLIB_V2: - out << "LANG_SMTLIB_V2"; + case LANG_SMTLIB_V2_0: + out << "LANG_SMTLIB_V2_0"; + break; + case LANG_SMTLIB_V2_5: + out << "LANG_SMTLIB_V2_5"; break; case LANG_TPTP: out << "LANG_TPTP"; |