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

Support for special Z3 relations #667

Open
fpoli opened this issue Apr 7, 2023 · 1 comment
Open

Support for special Z3 relations #667

fpoli opened this issue Apr 7, 2023 · 1 comment
Labels
enhancement New feature or request

Comments

@fpoli
Copy link
Member

fpoli commented Apr 7, 2023

With Z3 it's possible to declare special relations such as partial order, linear order, etc. The documentation explains that the decision procedure is efficient and avoids the quadratic number of quantifier instantiations of a naive axiomatization. These special relations would be very convenient in our axiomatization of mathematical data types (subset relations, contains relations, probably even equality relations etc).

With Z3 there is even a way to declare a "transitive closure" relation, which is not first-order axiomatizable.

I'm not sure what the limitations of these special relations are, but the potential benefits sound great.

@fpoli fpoli added the enhancement New feature or request label Apr 7, 2023
@mschwerhoff
Copy link
Contributor

Yes! 🕺 I saw these in PyZ3, but did not knew that they were usable via the SMT-LIB frontend. I'm curious to see how much they can improve performance.

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

No branches or pull requests

2 participants