Article Dans Une Revue Proceedings of the ACM on Programming Languages Année : 2025

Structural Temporal Logic for Mechanized Program Verification

Résumé

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.

Fichier principal
Vignette du fichier
ticl.pdf (789.16 Ko) Télécharger le fichier
Origine Fichiers éditeurs autorisés sur une archive ouverte
Licence

Dates et versions

hal-05308634 , version 1 (10-10-2025)

Licence

Identifiants

Citer

Eleftherios Ioannidis, Yannick Zakowski, Steve Zdancewic, Sebastian Angel. Structural Temporal Logic for Mechanized Program Verification. Proceedings of the ACM on Programming Languages, 2025, 9 (OOPSLA2), pp.1148-1175. ⟨10.1145/3763091⟩. ⟨hal-05308634⟩

Collections

46 Consultations
107 Téléchargements

Altmetric

Partager

  • More