Programming Language Aggregation with Applications in Equivalence Checking
Authors: Stefan Ciobaca, Dorel Lucanu, Vlad Rusu and Grigore Rosu
Paper Information
| Title: | Programming Language Aggregation with Applications in Equivalence Checking |
| Authors: | Stefan Ciobaca, Dorel Lucanu, Vlad Rusu and Grigore Rosu |
| Proceedings: | PAS 2014 Proceedings |
| Editors: | Dongming Wang, Tudor Jebelean and Wei Li |
| Keywords: | equivalence, partial correctness, semantics, aggregation, matching logic, formal methods, verification |
| Abstract: | ABSTRACT. We show that, given the operational semantics of two programming languages L and R, it is possible to construct an aggregate language, in which programs consist of pairs of programs from L and respectively R. In the aggregate language, a program P = (PL, PR) takes a step from either PL or PR. The main difficulty is how to aggregate the two languages so that data such as integers or booleans that are common to both languages has the same representation in the aggregate language. The aggregation is based on the pushout theorem, which allows us to construct a model of the aggregate language from models of the initial languages, while making sure that the interpretation of common data such as integers is the same. The main application of the aggregation result is in equivalence checking. It is possible to check for example that two programs PL and PR (written in L and respectively R) compute the same result by checking the partial correctness of the pair (PL,PR) in the aggregate language. |
| Pages: | 4 |
| Talk: | Jul 18 17:30 |
| Paper: | ![]() |
