-
Notifications
You must be signed in to change notification settings - Fork 47
Open
Description
When running Ultimate Automizer (0.3.0-dev-8447f03 with OpenJDK 21.0.8) with Java assertions enabled on the input program-3dfs-sb17-program-20.c, the following error occurs in the FloydHoareValidityCheck during the computation of the Hoare annotation to output a YAML verification witness:
Transition L20651 call #t~ret2002.base, #t~ret2002.offset := Cy_GPIO_PortToAddr((if ~pin % 256 % 4294967296 <= 2147483647 then ~pin % 256 % 4294967296 else ~pin % 256 % 4294967296 - 4294967296) / 8 % 256); $Ultimate##0 not inductive
The Plugin de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction has thrown an exception:
java.lang.AssertionError: inductivity violated
at de.uni_freiburg.informatik.ultimate.lib.proofs.floydhoare.FloydHoareValidityCheck.evaluateInductivityResult(FloydHoareValidityCheck.java:248)
at de.uni_freiburg.informatik.ultimate.lib.proofs.floydhoare.FloydHoareValidityCheck.checkInductivity(FloydHoareValidityCheck.java:215)
at de.uni_freiburg.informatik.ultimate.lib.proofs.floydhoare.FloydHoareValidityCheck.checkInductivity(FloydHoareValidityCheck.java:183)
at de.uni_freiburg.informatik.ultimate.lib.proofs.floydhoare.FloydHoareValidityCheck.performCheck(FloydHoareValidityCheck.java:117)
It looks like there's a bug in the implementation of the program analysis or the computation of the Hoare annotation. It's very unlikely that the error lies in the program. Even if the C translation is faulty, it shouldn't have a major impact on this error, because the analysis takes place on the control flow graph. Therefore, it's of secondary importance here whether the control flow graph correctly represents the C program.