diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2021-04-22 10:02:05 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-22 15:02:05 +0000 |
commit | ccd0e7fdf1484d72b0a2565fefd0259fe7557b0c (patch) | |
tree | 5713dd6c821f13151e6ba71f519d5d2394a316c6 /src/preprocessing/preprocessing_pass_context.cpp | |
parent | bc928d24d7454d81f39006b4129a29286fcd10eb (diff) |
Fix models for sygus-inference, bv2int, real2int (#6421)
In each case, previously we were generating a define-fun, what we needed was to do a model substitution.
This actually meant that check-models was giving false positives. The model was incorrect but check-models succeeded due to its use of expand definitions.
Diffstat (limited to 'src/preprocessing/preprocessing_pass_context.cpp')
-rw-r--r-- | src/preprocessing/preprocessing_pass_context.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/preprocessing/preprocessing_pass_context.cpp b/src/preprocessing/preprocessing_pass_context.cpp index 22cc15a97..4be6b4aac 100644 --- a/src/preprocessing/preprocessing_pass_context.cpp +++ b/src/preprocessing/preprocessing_pass_context.cpp @@ -63,6 +63,15 @@ void PreprocessingPassContext::addModelSubstitution(const Node& lhs, lhs, d_smt->expandDefinitions(rhs, false)); } +void PreprocessingPassContext::addSubstitution(const Node& lhs, + const Node& rhs, + ProofGenerator* pg) +{ + d_topLevelSubstitutions.addSubstitution(lhs, rhs, pg); + // also add as a model substitution + addModelSubstitution(lhs, rhs); +} + ProofNodeManager* PreprocessingPassContext::getProofNodeManager() { return d_pnm; |