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

Z3 4.8.10 #79

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open

Z3 4.8.10 #79

wants to merge 3 commits into from

Conversation

jad-hamza
Copy link

I removed getAbsFunDecl (and the corresponding test suite) which crashes because the AST kind is Z3UnknownAST. Is that ok?

@samarion
Copy link
Member

No, we need the absolute value fundecl it in Inox for the multiset encoding. Maybe it can be accessed differently though?

@jad-hamza
Copy link
Author

jad-hamza commented Apr 30, 2021

Oh I somehow missed that call in Z3Native.scala. Can't we make a lambda here?

https://github.com/epfl-lara/inox/blob/c37411dc0c693142f9bff1a68e617d4bfb5be277/src/main/scala/inox/solvers/z3/Z3Native.scala#L449-L458

@samarion
Copy link
Member

What do you mean by a "lambda"? Inox-level lambdas aren't available anymore at that point, we're directly communicating with the SMT solver here.

It might be possible to construct an abs function declaration though. I don't remember exactly how the Z3 API works, but I think we can construct simple non-recursive functions somehow and they might work in the SMT array map.

@samarion
Copy link
Member

This API might work:

def mkArrayMap(f: Z3FuncDecl, args: Z3AST*): Z3AST = {

@jad-hamza
Copy link
Author

@samarion
Copy link
Member

I would be worried they'll lead to quantifiers under the hood

@mario-bucev
Copy link
Contributor

#80 should address the problem with getAbsFunDecl

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

Successfully merging this pull request may close these issues.

4 participants