Make skolem definition manager robust to definitions for already asserted skolems...
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Wed, 18 May 2022 13:42:48 +0000 (08:42 -0500)
committerGitHub <noreply@github.com>
Wed, 18 May 2022 13:42:48 +0000 (13:42 +0000)
commit7f5e1dab306669d09fe1c6a13dc181d07c2af358
treee4cf03ee91c04108b75a00186b91e587d7aa2599
parent6d886ae8bb345dae281b95ec152aee2106137831
Make skolem definition manager robust to definitions for already asserted skolems (#8749)

It makes the skolem definition manager more robust so that skolem definitions can be added for skolems that have already appeared in asserted literals. This was the initial motivation for the change in ordering. As a result, fixes #8347 and fixes cvc5/cvc5-projects#512. It also optimizes this class in a few ways.

It also comments more on the change to PropEngine introduced here: #8301 which led to performance degradation on a set of string benchmarks of interest.
src/prop/prop_engine.cpp
src/prop/skolem_def_manager.cpp
src/prop/skolem_def_manager.h
src/prop/theory_proxy.cpp
test/regress/cli/CMakeLists.txt
test/regress/cli/regress0/quantifiers/proj-issue512-has-skolem.smt2 [new file with mode: 0644]
test/regress/cli/regress1/strings/issue8347-has-skolem.smt2 [new file with mode: 0644]