This fixes #821.
For some background, some special cases were added to equality engine and theory engine a few years ago to handle constants properly. As a result of these changes, a comment in the code was added about a HACK for getModelValue, but the code is completely reasonable looking to me (it says that the model value of a constant is itself). This PR removes that comment.
From what I can tell issue #821 can be closed.
}
Node TheoryEngine::getModelValue(TNode var) {
- if (var.isConst()) return var; // FIXME: HACK!!!
+ if (var.isConst())
+ {
+ // the model value of a constant must be itself
+ return var;
+ }
Assert(d_sharedTerms.isShared(var));
return theoryOf(Theory::theoryOf(var.getType()))->getModelValue(var);
}