Do not apply unconstrained simplification when quantifiers are present (#4532)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Wed, 3 Jun 2020 13:47:46 +0000 (08:47 -0500)
committerGitHub <noreply@github.com>
Wed, 3 Jun 2020 13:47:46 +0000 (08:47 -0500)
commit6c8702ab5eb08466bf954e202241df39de680081
tree3feb6e0f2dc64619ce131006f479350eb8e275fd
parent0a960638857ae4682162cf19b47801bc19dd94c3
Do not apply unconstrained simplification when quantifiers are present (#4532)

Fixes #4437.

This is a simpler fix that aborts the preprocessing pass when a quantifier is encountered.

It also updates our smt2 parser to throw a logic exception when forall/exists is used in non-quantified logics. This is required to ensure that unconstrained simplification does not throw an exception to a user as a result of accidentally setting the wrong logic.
src/options/smt_options.toml
src/parser/smt2/Smt2.g
src/preprocessing/passes/unconstrained_simplifier.cpp
src/preprocessing/passes/unconstrained_simplifier.h
test/regress/CMakeLists.txt
test/regress/regress0/quantifiers/issue4437-unc-quant.smt2 [new file with mode: 0644]
test/regress/regress0/unconstrained/4481.smt2
test/regress/regress0/unconstrained/4484.smt2 [deleted file]
test/regress/regress0/unconstrained/4486.smt2 [deleted file]
test/regress/regress1/strings/norn-ab.smt2