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
Internal variables in proofs #5073
Comments
I will not have bandwidth to dig into this. You are welcome to investigate further. |
this one does not repro with internal constants. Generally, the solver is permitted to introduce fresh functions/constants and the proof mode or checker would need to be fixed/adapted. |
Interesting. As far as I know, this behavior is not mentioned anywhere, including in the latest reconstruction for Z3 proofs, namely KeY from 2021. Thanks a lot for digging into that issue! |
For the sake of documentation: according to bisecting, this seems to have been fixed by
|
On the following input file:
z3 produces a proof with two new variables
k!00
andk!10
.From the proof step
(rewrite (= $x36 $x58))
(namely((a$ ∧ b$) ∨ (c$ ∧ d$)) = (k!00 ∨ k!10)
), I assume thatk!00
andk10
are internal variables (maybe to achieve lazy CNF transformation?). Would it be possible to introduce them withlet
and produce a proper definition?The text was updated successfully, but these errors were encountered: