Closed Halbaroth closed 1 year ago
Actually in that case, we shouldn't print anything for 'g' : it's not a declared constant that needs a value; it is defined therefore its value is decided based on the values of the model.
You mean that we shouldn't do so according to the SMTLIB standard?
Yes, functions that are define
d but not declare
d should not be printed. I guess that's part of #706 technically but also not really (that one is actually about printing values, not terms, as definitions in the models).
The first step would be to understand how we can determine whether a function is define
d or declare
d, I think that we lose that information fairly early (maybe during typechecking?).
If we define a function in the input file, the model should print exactly the same function. For instance the input file:
produces the model:
The value for
f
is correct but AE gives a new definition forg
.I think Steven reported this bug, but didn't create an issue for it.