Co-Developing Programs and Their Proof of Correctness

Roderick Chapman,Claire Dross,Stuart Matthews,Yannick Moy
DOI: https://doi.org/10.1145/3624728
IF: 22.7
2024-02-24
Communications of the ACM
Abstract:Proving preservation is typically harder, as the loop invariant expression should not only hold at the corresponding program point, but it should be inductive with respect to the loop body. The elephant in the room is that the VC may contain less information than what the user assumes regarding variables read or written in the loop. A frequently forgotten part of the loop invariant is the so-called frame condition , which denotes the parts of a modified variable preserved inside the loop. While the SPARK analyzer has heuristics to generate the frame condition, this is not sufficient in all cases.
computer science, theory & methods, software engineering, hardware & architecture
What problem does this paper attempt to address?