Do not construct instantiation for checking propagating instantiations spurious ...
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Wed, 20 Oct 2021 20:34:33 +0000 (15:34 -0500)
committerGitHub <noreply@github.com>
Wed, 20 Oct 2021 20:34:33 +0000 (20:34 +0000)
commit51e438df97e12b7c893827fe36aca3832e3e1a07
tree39b3215e050c9175edfcc53edc2c6af955869c77
parent221f8b49844a0d65739393df9327de0338154ff2
Do not construct instantiation for checking propagating instantiations spurious (#7390)

This makes the check for when an instantiation is "propagating" faster by not constructing the substitution + rewriting of the entire formula, and instead threading the substitution through the entailment check utility's evaluateTerm utility.

On a handful of challenge Facebook benchmarks, we go 35 seconds -> 18 seconds with this change.

This also eliminates the argument exp to the evaluateTerm method, which is no longer used, and eliminates hasSubs from several methods, which is redundant.
src/theory/quantifiers/entailment_check.cpp
src/theory/quantifiers/entailment_check.h
src/theory/quantifiers/quant_conflict_find.cpp
src/theory/quantifiers/quant_conflict_find.h