Structural Temporal Logic for Mechanized Program Verification

Fuente: arXiv
Enregistré dans:
Détails bibliographiques
Auteurs principaux: Ioannidis, Eleftherios, Zakowski, Yannick, Zdancewic, Steve, Angel, Sebastian
Format: Preprint
Publié: 2024
Sujets:
Accès en ligne:
Tags: Ajouter un tag
Pas de tags, Soyez le premier à ajouter un tag!
_version_ 1866908497217585152
author Ioannidis, Eleftherios
Zakowski, Yannick
Zdancewic, Steve
Angel, Sebastian
author_facet Ioannidis, Eleftherios
Zakowski, Yannick
Zdancewic, Steve
Angel, Sebastian
contents Mechanized verification of liveness properties for infinite programs with effects and nondeterminism is challenging. Existing temporal reasoning frameworks operate at the level of models such as traces and automata. Reasoning happens at a very low-level, requiring complex nested (co-)inductive proof techniques and familiarity with proof assistant mechanics (e.g., the guardedness checker). Further, reasoning at the level of models instead of program constructs creates a verification gap that loses the benefits of modularity and composition enjoyed by structural program logics such as Hoare Logic. To address this verification gap, and the lack of compositional proof techniques for temporal specifications, we propose Ticl, a new structural temporal logic. Using ticl, we encode complex (co-)inductive proof techniques as structural lemmas and focus our reasoning on variants and invariants. We show that it is possible to perform compositional proofs of general temporal properties in a proof assistant, while working at a high level of abstraction. We demonstrate the benefits of Ticl by giving mechanized proofs of safety and liveness properties for programs with scheduling, concurrent shared memory, and distributed consensus, demonstrating a low proof-to-code ratio.
format Preprint
id arxiv_https___arxiv_org_abs_2410_14906
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Structural Temporal Logic for Mechanized Program Verification
Ioannidis, Eleftherios
Zakowski, Yannick
Zdancewic, Steve
Angel, Sebastian
Programming Languages
Logic in Computer Science
Mechanized verification of liveness properties for infinite programs with effects and nondeterminism is challenging. Existing temporal reasoning frameworks operate at the level of models such as traces and automata. Reasoning happens at a very low-level, requiring complex nested (co-)inductive proof techniques and familiarity with proof assistant mechanics (e.g., the guardedness checker). Further, reasoning at the level of models instead of program constructs creates a verification gap that loses the benefits of modularity and composition enjoyed by structural program logics such as Hoare Logic. To address this verification gap, and the lack of compositional proof techniques for temporal specifications, we propose Ticl, a new structural temporal logic. Using ticl, we encode complex (co-)inductive proof techniques as structural lemmas and focus our reasoning on variants and invariants. We show that it is possible to perform compositional proofs of general temporal properties in a proof assistant, while working at a high level of abstraction. We demonstrate the benefits of Ticl by giving mechanized proofs of safety and liveness properties for programs with scheduling, concurrent shared memory, and distributed consensus, demonstrating a low proof-to-code ratio.
title Structural Temporal Logic for Mechanized Program Verification
topic Programming Languages
Logic in Computer Science
url https://arxiv.org/abs/2410.14906