diff options
author | Andres Noetzli <andres.noetzli@gmail.com> | 2020-04-22 17:55:33 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-22 19:55:33 -0500 |
commit | 855143cfa1e4cf38f67ff99eba5d59e5a2786120 (patch) | |
tree | 4e955b1cd63826fd1f8334f1566e6546dd7363b2 | |
parent | d64143f8aec229a673db1ec7b38d94890134d3f5 (diff) |
Strings: Register skolems before sending lemma (#4381)
This commit fixes a performance regression introduced by commit 6255c03. The issue seems to be that registering terms manually after sending the lemma on the output channel is too late because the output channel processes the lemma eagerly.
-rw-r--r-- | src/theory/strings/inference_manager.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/theory/strings/inference_manager.cpp b/src/theory/strings/inference_manager.cpp index 42dc975fa..9fb1011ee 100644 --- a/src/theory/strings/inference_manager.cpp +++ b/src/theory/strings/inference_manager.cpp @@ -359,7 +359,6 @@ void InferenceManager::doPendingLemmas() // only keep stats if we process it here d_statistics.d_inferences << ii.d_id; ++(d_statistics.d_lemmasInfer); - d_out.lemma(lem); // Process the side effects of the inference info. // Register the new skolems from this inference. We register them here @@ -373,6 +372,8 @@ void InferenceManager::doPendingLemmas() d_termReg.registerTermAtomic(n, sks.first); } } + + d_out.lemma(lem); } // process the pending require phase calls for (const std::pair<const Node, bool>& prp : d_pendingReqPhase) |