Recover from wrong use of get-info :reason-unknown (#2667)
authorAndres Noetzli <andres.noetzli@gmail.com>
Mon, 22 Oct 2018 16:12:47 +0000 (09:12 -0700)
committerGitHub <noreply@github.com>
Mon, 22 Oct 2018 16:12:47 +0000 (09:12 -0700)
commit8e58fec53e1bc9f1b9349a235e2ad76bda4d9dd9
treecad404d821e33fdaf7218584adc67b62b368380f
parent0b515de430771d9bdc15fc29d41b391f1cc7c1fd
Recover from wrong use of get-info :reason-unknown (#2667)

Fixes #2584. Currently, we are immediately terminating CVC4 if the user
issues a `(get-info :reason-unknown)` command if it didn't succeed a
`(check-sat)` call returning `unknown`. This commit changes the behavior
to return an `(error ...)` but continue executing afterwards. It turns
the `ModalException` thrown in this case into a
`RecoverableModalException` and adds a check in
`GetInfoCommand::invoke()` to turn it into a
`CommandRecoverableFailure`, which solves the issue.
src/smt/command.cpp
src/smt/smt_engine.cpp
test/regress/CMakeLists.txt
test/regress/regress0/smtlib/reason-unknown.smt2 [new file with mode: 0644]