Fix issue involving dropped purification lemmas for transcendental functions (#8198)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Tue, 1 Mar 2022 21:14:16 +0000 (15:14 -0600)
committerGitHub <noreply@github.com>
Tue, 1 Mar 2022 21:14:16 +0000 (21:14 +0000)
commit64583f8e57492e8499f681dae333c93efaf7bb79
treea578e1442b8ac178b2cf6bf8e82a7f0b6eeffc8f
parent2b62f6384a550ee961455e6b354e615cb134411c
Fix issue involving dropped purification lemmas for transcendental functions (#8198)

Fixes #4693.
Fixes #8181 (which now times out).

The issue was caused by purification lemmas being dropped, often in incremental mode. This meant that we were replacing sin(t) by sin(k) when checking models, but not having any information about sin(k).

We now are more robust and send the purification lemmas for transcendental functions based on checking whether it is necessary to do so.
src/theory/arith/nl/transcendental/exponential_solver.cpp
src/theory/arith/nl/transcendental/exponential_solver.h
src/theory/arith/nl/transcendental/sine_solver.cpp
src/theory/arith/nl/transcendental/sine_solver.h
src/theory/arith/nl/transcendental/transcendental_solver.cpp
src/theory/arith/nl/transcendental/transcendental_state.cpp
src/theory/arith/nl/transcendental/transcendental_state.h
test/regress/CMakeLists.txt
test/regress/regress0/nl/nta/issue4693-4-inc-purify-sat.smt2 [new file with mode: 0644]
test/regress/regress0/nl/nta/issue4693-5-inc-purify.smt2 [new file with mode: 0644]
test/regress/regress0/nl/nta/issue4693-inc-purify.smt2 [new file with mode: 0644]