Add `deep-restart` option (#8644)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Fri, 22 Apr 2022 20:03:33 +0000 (15:03 -0500)
committerGitHub <noreply@github.com>
Fri, 22 Apr 2022 20:03:33 +0000 (15:03 -0500)
commitb8d319d520d877e9062ea771f8efe8eed1c81876
treec2b44643d269c50af4f462fdfdbcedb9e48732e5
parent017507462863ff79583df3ce5eb2b24ad0c75611
Add `deep-restart` option (#8644)

Adds the ability to have the SmtSolver automatically deep restart after a criteria is met (we have learned new top-level literals, and a threshold of time since the last learned literal has passed). This can be used for non-incremental satisfiability queries only.

By default, --deep-restart=input kicks in on 155 of our regressions, this adds 4 delta-debugged regressions that exercise the feature.
16 files changed:
src/options/base_options.toml
src/options/smt_options.toml
src/prop/theory_proxy.cpp
src/prop/zero_level_learner.cpp
src/prop/zero_level_learner.h
src/smt/set_defaults.cpp
src/smt/smt_solver.cpp
src/smt/smt_solver.h
src/smt/solver_engine.cpp
src/smt/solver_engine.h
test/regress/cli/CMakeLists.txt
test/regress/cli/regress0/deep-restart/dd.266.smt2 [new file with mode: 0644]
test/regress/cli/regress0/deep-restart/dd.fuzz21.smtv1.smt2 [new file with mode: 0644]
test/regress/cli/regress0/deep-restart/dd.issue4735.smt2 [new file with mode: 0644]
test/regress/cli/regress0/deep-restart/dd.wrong-sat-020322.smt2 [new file with mode: 0644]
test/regress/cli/regress0/printer/deep-restart-output.smt2 [new file with mode: 0644]