Matching Logic
Operational semantics are typically used to derive concrete program behaviours, but not to specify and prove properties about programs. The latter are traditionally done using axiomatic semantics. Unfortunately, axiomatic semantics of real languages are rather complex, so correctness proofs are necessary in order to trust the proven properties. Moreover, such proofs have to be maintained as the language changes, which is generally perceived as a burden. Ideally, we would like to have one language semantics, with that semantics used both for deriving program behaviours and for verifying programs.
Matching logic allows us to regard a language through both operational and axiomatic lenses at the same time, making no distinction between the two. A programming language is given a semantics as a set of rewrite rules. A language-independent proof system can then be used to derive both operational behaviours and formal properties of a program. In other words, one matching logic semantics fulfils the roles of both operational and axiomatic semantics in a uniform manner. The state structure plays a crucial role in matching logic semantics. Program states are represented as algebraic datatypes called (concrete) configurations, while program state specifications are represented as configuration terms, with variables and constraints over them, called (configuration) patterns. A pattern specifies those configurations that match it.
Quick Overview
- Latest:
PPTX
PDF
- The K and Matching Logic webpage at UIUC, which contains slides and an interview.
Download and Online Interface
We have implemented a proof-of-concept matching logic verifier for a fragment of C, called MatchC.
-
--- This link provides an online interface to running MatchC
- Download --- We recommend to first try it online (see the link above)
-
We have formalized the proof system in Coq, including the soundness proof and applications. The Coq latest files are available here.
Select Publications
Here are the most relevant publications on matching logic:
- The most recent indepth presentation of the mathematical foundations of matching logic.
- Matching logic
- Grigore Rosu
LMCS, Volume 13(4), pp 1-61. 2017
PDF, project, DOI, LMCS, BIB
- A language-independent proof system for all-path reachability, with soundness and relative completeness proofs
- All-Path Reachability Logic
- Andrei Stefanescu and Stefan Ciobaca and Radu Mereuta and Brandon Moore and Traian Florin Serbanuta and Grigore Rosu
RTA'14, LNCS 8560, pp 425-440. 2014
PDF, Slides(PPTX), Matching Logic, DOI, RTA'14, BIB
- A language-independent proof system for one-path reachability which supports semantics given with conditional rules (big-step and small-step), with soundness and relative completeness proofs
- One-Path Reachability Logic
- Grigore Rosu and Andrei Stefanescu and Stefan Ciobaca and Brandon Moore
LICS'13, IEEE, pp 358-367. 2013
PDF, Slides(PPTX), Reachability Logic, LICS'13, BIB
- A language-independent program verification framework, including the MatchC verifier:
- Checking Reachability using Matching Logic
- Grigore Rosu and Andrei Stefanescu
OOPSLA'12, ACM, pp 555-574. 2012
PDF, Slides(PPTX), Slides(PDF), Matching Logic, DOI, OOPSLA'12, BIB
- The relationship to Hoare logic, including a mechanical translation of Hoare logic proofs into matching logic proofs:
- From Hoare Logic to Matching Logic Reachability
- Grigore Rosu and Andrei Stefanescu
FM'12, LNCS 7436, pp 387-402. 2012
PDF, Slides(PPTX), Slides(PDF), Matching Logic, DOI, FM'12, BIB
Other
Older slides
Old implementations
Complete list of Publications (reverse chronological order)
- Matching mu-Logic
- Xiaohong Chen and Grigore Rosu
Technical Report http://hdl.handle.net/2142/102281, January 2019
PDF, Matching Logic, DOI, BIB- Program Verification by Coinduction
- Brandon Moore and Lucas Pena and Grigore Rosu
ESOP'18, Springer, pp 589-618. 2018
PDF, Matching Logic, DOI, ESOP'18, BIB- Matching logic
- Grigore Rosu
LMCS, Volume 13(4), pp 1-61. 2017
PDF, project, DOI, LMCS, BIB- K - A Semantic Framework for Programming Languages and Formal Analysis Tools
- Grigore Rosu
Marktoberdorf'16, NATO Science for Peace and Security. 2017. To appear
PDF, K, BIB- Semantics-Based Program Verifiers for All Languages
- Andrei Stefanescu and Daejun Park and Shijiao Yuwen and Yilong Li and Grigore Rosu
OOPSLA'16, ACM, pp 74-91. 2016
PDF, Slides(PDF), Matching Logic, DOI, OOPSLA'16, BIB- Finite-Trace Linear Temporal Logic: Coinductive Completeness
- Grigore Rosu
RV'16, LNCS 10012, pp 333-350. 2016
PDF, Slides(PPTX), Matching Logic, DOI, RV'16, BIB- RV-Match: Practical Semantics-Based Program Analysis
- Dwight Guth and Chris Hathhorn and Manasvi Saxena and Grigore Rosu
CAV'16, LNCS 9779, pp 447-453. 2016
PDF, RV-Match, DOI, CAV'16, BIB- A Language-Independent Proof System for Full Program Equivalence
- Stefan Ciobaca and Dorel Lucanu and Vlad Rusu and Grigore Rosu
J.FAOC, Volume 28(3), pp 469-497. 2016
PDF, Matching Logic, DOI, J.FAOC, BIB- Towards a Kool Future
- Dorel Lucanu and Traian Florin Serbanuta and Grigore Rosu
Boer's Festschrift, LNCS 9660, pp 325-343. 2016
PDF, K, DOI, Boer's Festschrift, BIB- From Rewriting Logic, to Programming Language Semantics, to Program Verification
- Grigore Rosu
Meseguer's Festschrift, LNCS 9200, pp 598-616. 2015
PDF, Slides(PPTX), K, DOI, Meseguer's Festschrift, BIB- Matching Logic --- Extended Abstract
- Grigore Rosu
RTA'15, Leibniz International Proceedings in Informatics (LIPIcs) 36, pp 5-21. 2015
PDF, Slides(PPTX), Matching Logic, DOI, RTA'15, BIB- Program Verification by Coinduction
- Brandon Moore and Grigore Rosu
Technical Report http://hdl.handle.net/2142/73177, February 2015
PDF, Matching Logic, DOI, BIB- K-Java: A Complete Semantics of Java
- Denis Bogdanas and Grigore Rosu
POPL'15, ACM, pp 445-456. 2015
PDF, Slides(PDF), K-Java, DOI, POPL'15, BIB- A Language-Independent Proof System for Mutual Program Equivalence
- Stefan Ciobaca and Dorel Lucanu and Vlad Rusu and Grigore Rosu
ICFEM'14, LNCS 8829, pp 75-90. 2014
PDF, Slides(PDF), Matching Logic, DOI, ICFEM'14, BIB- All-Path Reachability Logic
- Andrei Stefanescu and Stefan Ciobaca and Radu Mereuta and Brandon Moore and Traian Florin Serbanuta and Grigore Rosu
RTA'14, LNCS 8560, pp 425-440. 2014
PDF, Slides(PPTX), Matching Logic, DOI, RTA'14, BIB- Matching Logic: A Logic for Structural Reasoning
- Grigore Rosu
Technical Report http://hdl.handle.net/2142/47004, Jan 2014
PDF, Matching Logic, DOI, BIB- The Rewriting Logic Semantics Project: A Progress Report
- Jose Meseguer and Grigore Rosu
Information and Computation, Volume 231(1), pp 38-69. 2013
PDF, K, DOI, Information and Computation, BIB- One-Path Reachability Logic
- Grigore Rosu and Andrei Stefanescu and Stefan Ciobaca and Brandon Moore
LICS'13, IEEE, pp 358-367. 2013
PDF, Slides(PPTX), Reachability Logic, LICS'13, BIB- Low-Level Program Verification using Matching Logic Reachability
- Dwight Guth and Andrei Stefanescu and Grigore Rosu
LOLA'13. 2013
PDF, Slides(PDF), Matching Logic, LOLA'13, BIB- Checking Reachability using Matching Logic
- Grigore Rosu and Andrei Stefanescu
OOPSLA'12, ACM, pp 555-574. 2012
PDF, Slides(PPTX), Slides(PDF), Matching Logic, DOI, OOPSLA'12, BIB- From Hoare Logic to Matching Logic Reachability
- Grigore Rosu and Andrei Stefanescu
FM'12, LNCS 7436, pp 387-402. 2012
PDF, Slides(PPTX), Slides(PDF), Matching Logic, DOI, FM'12, BIB- Reachability Logic
- Grigore Rosu and Andrei Stefanescu and Stefan Ciobaca and Brandon Moore
Technical Report http://hdl.handle.net/2142/32952, Jul 2012
PDF, Reachability Logic, DOI, BIB- Towards a Unified Theory of Operational and Axiomatic Semantics
- Grigore Rosu and Andrei Stefanescu
ICALP'12, LNCS 7392, pp 351-363. 2012
PDF, Slides(PPTX), Slides(PDF), Matching Logic, DOI, ICALP'12, BIB- MatchC: A Matching Logic Reachability Verifier Using the K Framework
- Andrei Stefanescu
K'11, ENTCS 304. 2011
PDF, Matching Logic, DOI, BIB- The Rewriting Logic Semantics Project: A Progress Report
- Jose Meseguer and Grigore Rosu
FCT'11, Lecture Notes in Computer Science 6914, pp 1-37. 2011
PDF, K, DOI, FCT'11, BIB- Towards Semantics-Based WCET Analysis
- Mihail Asavoae and Dorel Lucanu and Grigore Rosu
WCET'11. 2011
PDF, Slides(PDF), Matching Logic, WCET'11, BIB- Matching Logic: A New Program Verification Approach (NIER Track)
- Grigore Rosu and Andrei Stefanescu
ICSE'11, ACM, pp 868-871. 2011
PDF, Slides(PPTX), Slides(PDF), Matching Logic, DOI, ICSE'11, BIB- Matching Logic: A New Program Verification Approach
- Grigore Rosu and Andrei Stefanescu
UV'10. 2010
Slides(PPTX), Slides(PDF), Matching Logic, UV'10- Matching Logic: An Alternative to Hoare/Floyd Logic
- Grigore Rosu and Chucky Ellison and Wolfram Schulte
AMAST'10, Springer, pp 142-162. 2010
PDF, Slides(PPTX), Slides(PDF), Matching Logic, DOI, AMAST'10, BIB- Matching Logic --- Extended Report
- Grigore Rosu and Wolfram Schulte
Technical Report http://hdl.handle.net/2142/10790, January 2009
PDF, Matching Logic, DOI, BIB- CS322 - Programming Language Design: Lecture Notes
- Grigore Rosu
Technical Report http://hdl.handle.net/2142/11385, December 2003
PDF, Matching Logic, DOI, BIB
- Matching Logic: An Alternative to Hoare/Floyd Logic
- Grigore Rosu, Chucky Ellison and Wolfram Schulte
AMAST'10, LNCS 6486, pp 142-162. 2010
PDF, Slides(PPT), Slides(PDF), LNCS, AMAST'10, BIB
Links
matching logic at UIUC.
K framework webpage.