Do not have quantifiers model inherit from theory model (#6493)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Wed, 5 May 2021 23:09:24 +0000 (18:09 -0500)
committerGitHub <noreply@github.com>
Wed, 5 May 2021 23:09:24 +0000 (18:09 -0500)
commit2283ee3b0327441c29caf26be977c1e4cd13c637
tree18bc8401f863fab8cb5f57d0c28a729650303d44
parentdde3aac0417c10cdd1f8217f653bcdf95d94290c
Do not have quantifiers model inherit from theory model (#6493)

This is work towards making the initialization of theory engine, theory models, quantifiers engine more flexible.

This makes it so that the specialized quantifiers models classes (FirstOrderModel) do not inherit from TheoryModel. There is no longer any reason for this, since FirstOrderModel does not have any override methods.

As a result of this PR, there is only one kind of TheoryModel and it is constructed immediately when ModelManager is constructed.

This required refactoring the initialization of when FirstOrderModel is constructed in ModelBuilder classes in quantifiers.

This also avoids the need for casting TheoryModel to FirstOrderModel.
21 files changed:
src/theory/combination_engine.cpp
src/theory/model_manager.cpp
src/theory/model_manager.h
src/theory/model_manager_distributed.cpp
src/theory/quantifiers/first_order_model.cpp
src/theory/quantifiers/first_order_model.h
src/theory/quantifiers/fmf/first_order_model_fmc.cpp
src/theory/quantifiers/fmf/first_order_model_fmc.h
src/theory/quantifiers/fmf/full_model_check.cpp
src/theory/quantifiers/fmf/full_model_check.h
src/theory/quantifiers/fmf/model_builder.cpp
src/theory/quantifiers/fmf/model_builder.h
src/theory/quantifiers/quantifiers_modules.cpp
src/theory/quantifiers/quantifiers_modules.h
src/theory/quantifiers/term_registry.cpp
src/theory/quantifiers/term_registry.h
src/theory/quantifiers/theory_quantifiers.cpp
src/theory/quantifiers_engine.cpp
src/theory/quantifiers_engine.h
src/theory/theory_model.cpp
src/theory/theory_model.h