Skip to content
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

Answers for get-model does not respect SMT-LIB 2 standard #162

Closed
AdrienChampion opened this issue Jan 4, 2020 · 4 comments
Closed

Answers for get-model does not respect SMT-LIB 2 standard #162

AdrienChampion opened this issue Jan 4, 2020 · 4 comments

Comments

@AdrienChampion
Copy link

When asked for a model, yices 2 (2.6.1) produces definitions as

(
    (= <ident> <value>)
    ...
)

But according to SMT-LIB 2.6 (page 47), models should look function symbol definitions, i.e.

(
    (define-fun <ident> ( <args_list> ) <sort> <value>)
    ...
)

Is this on purpose? Do you plan to produce models SMT-LIB-style in the future?

I am asking this as I am adding support for Yices 2 in the Rust SMT-LIB 2 crate rsmt2, where this discrepancy causes (relatively minor) problems.

@BrunoDutertre
Copy link
Member

Get the latest version from gitub then try command-line option --smt2-model-format.

@BrunoDutertre
Copy link
Member

And yes. It is on purpose. The yices format is much simpler, more compact,
less verbose, and easier to parse. The yices format also predates the 2.6 standard.

@AdrienChampion
Copy link
Author

I see, thank you :)

I'm curious how you print models for non-nullary function symbols though, do you use some kind of closure notation?

In any case, let me go ahead and close this.

@BrunoDutertre
Copy link
Member

That's documented in the Yices manual: https://yices.csl.sri.com/papers/manual.pdf

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants