Skip to content

Guarantees about makeVariable #421

Answered by kfriedberger
JohnnyJayJay asked this question in Q&A
Discussion options

You must be logged in to vote

The API guarantees:

  • creating a variable twice with same name and same sort returns the same symbol.
  • creating an uninterpreted function twice with same name and same sort (argument sorts and return sort) returns the same symbol.

It depends on the solver whether the following cases are supported:

  • creating variables with same name and different sorts.
  • creating uninterpreted functions with same namen and different sorts (in arguments and/or return sort).
  • creating a variable and an UF with the same name and different sorts.

Those cases are (still?) supported by some solvers, due to historic reason, and the solvers include Z3, Princess, and Bitwuzla. We aim for exception in those cases, but…

Replies: 1 comment 1 reply

Comment options

You must be logged in to vote
1 reply
@JohnnyJayJay
Comment options

Answer selected by JohnnyJayJay
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants