Verification of Common Interprocedural Compiler Optimizations Using Visibly Pushdown Kleene Algebra

Author(s):  
Claude Bolduc ◽  
Béchir Ktari
2022 ◽  
Vol 6 (POPL) ◽  
pp. 1-30
Author(s):  
Cheng Zhang ◽  
Arthur Azevedo de Amorim ◽  
Marco Gaboardi

Kleene algebra with tests (KAT) is a foundational equational framework for reasoning about programs, which has found applications in program transformations, networking and compiler optimizations, among many other areas. In his seminal work, Kozen proved that KAT subsumes propositional Hoare logic, showing that one can reason about the (partial) correctness of while programs by means of the equational theory of KAT. In this work, we investigate the support that KAT provides for reasoning about incorrectness, instead, as embodied by O'Hearn's recently proposed incorrectness logic. We show that KAT cannot directly express incorrectness logic. The main reason for this limitation can be traced to the fact that KAT cannot express explicitly the notion of codomain, which is essential to express incorrectness triples. To address this issue, we study Kleene Algebra with Top and Tests (TopKAT), an extension of KAT with a top element. We show that TopKAT is powerful enough to express a codomain operation, to express incorrectness triples, and to prove all the rules of incorrectness logic sound. This shows that one can reason about the incorrectness of while-like programs by means of the equational theory of TopKAT.


1994 ◽  
Vol 21 (1) ◽  
pp. 27-45 ◽  
Author(s):  
S. Hiranandani ◽  
K. Kennedy ◽  
C.W. Tseng

Author(s):  
Heikki Kultala ◽  
Timo Viitanen ◽  
Pekka Jaaskelainen ◽  
Janne Helkala ◽  
Jarmo Takala

2008 ◽  
Vol 36 (6) ◽  
pp. 571-591 ◽  
Author(s):  
Aart J. C. Bik ◽  
David L. Kreitzer ◽  
Xinmin Tian

Sign in / Sign up

Export Citation Format

Share Document