ultimate-pa / ultimate

The Ultimate program analysis framework.
https://ultimate-pa.org/
200 stars 41 forks source link

Inconsistent results in Hoare triple checker #599

Open martin-neuhaeusser opened 2 years ago

martin-neuhaeusser commented 2 years ago

Basic Info

Description

Running a verification on the command line utility (I presume the command line version that is built with default settings does not do expensive assertion checks) proves the LTL formula:

Ultimate -tc LTLAutomizerWithoutInlining.xml -s LTLAutomizer.epf -i Obfuscated-erc20-transfer-revert-zero.bpl

Running the same verification in Ultimate Automizer's debug UI (which presumably checks more assertions) results in the following assertion violation:

[2022-09-30 12:54:56,864 INFO  L198             ResultUtil]:   - ExceptionOrErrorResult: AssertionError: HoareTripleChecker results differ between SdHoareTripleChecker (result: INVALID) and MonolithicHoareTripleChecker (result: VALID)
[2022-09-30 12:54:56,864 INFO  L202             ResultUtil]:     de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer: AssertionError: HoareTripleChecker results differ between SdHoareTripleChecker (result: INVALID) and MonolithicHoareTripleChecker (result: VALID): de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.hoaretriple.ChainingHoareTripleChecker$ReviewedProtectedHtc.createAssertionError(ChainingHoareTripleChecker.java:391)

It seems that there is some inconsistency that is only detected by some internal assertions.

Heizmann commented 2 years ago

Thanks. It seems to me that this is an issue that I am working no with @maul-esel. If this is the case the issue does not affect soundness, but it affects the performance and lets Automizer do unnecessarily many iterations.