TY - GEN
T1 - Program verification using reachability logic
AU - Roşu, Grigore
AU - Ştefănescu, Andrei
AU - Ciobâcă, Ştefan
N1 - Publisher Copyright:
© Springer International Publishing Switzerland 2016.
PY - 2016
Y1 - 2016
N2 - Matching logic is a logic for reasoning about program configuration properties in a language-parametric manner. On top of matching logic we define reachability logic and equivalence logic. Reachability logic enables reasoning about the correctness of both deterministic programs (one-path reachability logic) and non-deterministic programs (all-path reachability logic). Equivalence logic enables reasoning about program equivalence. We introduce K, a semantics framework which has been used to define the operational semantics of real-world languages such as C, Java, and JavaScript. We show how the logics above are integrated in K. In particular, we show how the semantics of C, Java, and JavaScript yield automatic program verifiers for the respective languages. The verifiers can check the full functional correctness of challenging heap manipulation programs implementing the same data-structures in these languages (e.g. AVL trees). We also show how to reason about program equivalence using semantics defined in K.
AB - Matching logic is a logic for reasoning about program configuration properties in a language-parametric manner. On top of matching logic we define reachability logic and equivalence logic. Reachability logic enables reasoning about the correctness of both deterministic programs (one-path reachability logic) and non-deterministic programs (all-path reachability logic). Equivalence logic enables reasoning about program equivalence. We introduce K, a semantics framework which has been used to define the operational semantics of real-world languages such as C, Java, and JavaScript. We show how the logics above are integrated in K. In particular, we show how the semantics of C, Java, and JavaScript yield automatic program verifiers for the respective languages. The verifiers can check the full functional correctness of challenging heap manipulation programs implementing the same data-structures in these languages (e.g. AVL trees). We also show how to reason about program equivalence using semantics defined in K.
UR - http://www.scopus.com/inward/record.url?scp=84986230439&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84986230439&partnerID=8YFLogxK
M3 - Conference contribution
AN - SCOPUS:84986230439
SN - 9783319448015
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
BT - Rewriting Logic and Its Applications - 11th International Workshop, WRLA 2016 Held as a Satellite Event of ETAPS 2016, Revised Selected Papers
A2 - Lucanu, Dorel
PB - Springer
T2 - 11th International Workshop on Rewriting Logic and its Applications, WRLA 2016 held as a Satellite Event of European Joint Conferences on Theory and Practice of Software, ETAPS 2016
Y2 - 2 April 2016 through 3 April 2016
ER -