-
Notifications
You must be signed in to change notification settings - Fork 33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Recursive functions in models #791
Comments
In any case, correct me if I'm wrong, but I don't think the solver is able to generate recursive functions atm, so this looks much more involved than printing issues (unless there is support in #776 maybe)? |
I meant Sure, the solver cannot produce recursive functions yet. I wrote a function to produce dummy values in many cases. If I add the case of recursive functions, the solver should print it with the appropriate SMT-LIB statement. |
There is no support in #776 for recursive functions. |
Can you point me to a page in the standard? I can't find
I don't understand why we want to have support for printing values we cannot produce. Why can't we deal with this when (if) we add support for producing recursive functions? |
When I opened this issue, I thought we could have to produce dummy values for recursive functions but in fact, the only case where we could produce them easily is when there is no constraint at all on the value. But recursiveness is a constraint... So we can always produce non-recursive function for dummy values! For the standard, looks for |
Yeah, there is no need to build recursive functions for dummy values.
|
.. I meant |
Of course, you cannot declare uninterpreted symbol in the model ;) |
The SMT-LIB standard allows only three statements in models:
declare-fun
,declare-fun-rec
anddeclare-funs-rec
for respectively non-recursive functions, recursive functions and mutually recursive functions. Currently, Alt-Ergo prints all its declarations withdeclare-fun
only.We could print everything with
declare-fun-rec
but it would neater to recognize recursive values.The text was updated successfully, but these errors were encountered: