Closed IamYJLee closed 1 month ago
Ok, so what happened is that an assertion failed in Z3. Can you try the latest version of Z3 to see if it still happens?
If it does, then try running with -smt-log
. That records all interactions with Z3 in a file so we can replicate the issue without Alive2 (running z3 -log file.log
should replicate the crash).
Thanks for your advice.
I got a different error, as shown below, when trying with the latest version of Z3 (https://github.com/Z3Prover/z3/releases/tag/z3-4.13.0).
Transformation doesn't verify! (not unsound)
ERROR: SMT Error: unclassified exception
We really need more information in order to debug this. Either send me the input you're giving to alive or the z3 log.
Please confirm the log of z3.
I tried to running z3 -v:5 -log z3_log.txt
and the log is z3_log_log.txt.zip
And i tried to run z3 -v:10000 -log z3_log.txt
and can see the message as below.
This is probably caused by exceeding resource limits. (in z3 source code)
(tactic-exception "canceled")
max. heap size : 218.646 Mbytes
time : 5848.15
This is what I get when running the log:
nuno@Laptop:~$ z3 -log z3_log.txt
Alive2 36dd875a-dirty
[z3 exception]: expecting object at position 1 but got uint64
[z3 exception]: expecting object at position 1 but got string
[z3 exception]: invalid argument reference
[z3 exception]: invalid argument reference
[z3 exception]: invalid argument reference
[z3 exception]: expecting object at position 1 but got string
[z3 exception]: invalid argument reference
Segmentation fault
Are you running on a 32-bit machine?
No, I am running on a 64-bit machine. Here is the kernel information of my machine.
Darwin YoungJunui-MacBookPro.local 23.4.0 Darwin Kernel Version 23.4.0: Wed Feb 21 21:45:49 PST 2024; root:xnu-10063.101.15~2/RELEASE_ARM64_T6020 arm64
I also confirmed the same error (Segmentation fault). This error occurred while running Z3 version 4.12.2 using a Z3 log that was created with version 4.13.0. However, the Z3 log works correctly when executed with Z3 version 4.13.0.
Attached are the Z3 logs, which were created by their respective versions of Z3. z3_log_4.12.2.txt.zip z3_log_4.13.0.txt.zip
This log is just too big. I left it running for an hour and didn't finish. Please reduce the input (use llvm-reduce or something like that). Also, comment the checks in tools/transforms.cpp and leave just the check that triggers the model validation failure. Without further steps on your side, I'm afraid I can't help; it's just impractical to debug something this big.
So I fixed a small bug in Z3 when printing stats. But the log you provide doesn't trigger the model converter issue. I really need another log to be able to debug this.
Following your guide, I am trying to reduce the size of the log. How is the fixed printing stats problem(https://github.com/Z3Prover/z3/commit/18a95d89c6b16994ff07d31e5059e79b007f6c4e) related to this issue?
And I am not sure which version of Z3 I should use.
Because the results differ between Z3 v4.12.2 and v4.13.0 when the opt_smt_verbose
option is turned off.
On the v4.12.2
Transformation doesn't verify! (unsound)
ERROR: Source is more defined than target
On the v4.13.0
Transformation doesn't verify! (not unsound)
ERROR: SMT Error: unclassified exception
Following your guide, I am trying to reduce the size of the log. How is the fixed printing stats problem(Z3Prover/z3@18a95d8) related to this issue?
Replaying your log would crash in debug mode. That's all. But that's a minor issue.
And I am not sure which version of Z3 I should use. Because the results differ between Z3 v4.12.2 and v4.13.0 when the
opt_smt_verbose
option is turned off.
Ideally the latest from git. The issue you're seeing with the model converter may have been fixed already.
I have confirmed normal operation under the following conditions.
Transformation seems to be correct!
I confirmed that the model converter has already been fixed. Thank you for your advice.
[ Environments ]
[ Error ]
[ Descriptions ]
I tried to see an SMT query on a verification failure case below, but I received an error and cannot see an SMT query. I would like to know why this error is occurs. Also, is there any resource I can refer to on how to understand the logs when a verification failure occurs?