TY - GEN
T1 - Matching logic - extended abstract
AU - Rosu, Grigore
N1 - Publisher Copyright:
© Grigore Roşu.
PY - 2015/6/1
Y1 - 2015/6/1
N2 - This paper presents matching logic, a first-order logic (FOL) variant for specifying and reasoning about structure by means of patterns and pattern matching. Its sentences, the patterns, are constructed using variables, symbols, connectives and quantifiers, but no difference is made between function and predicate symbols. In models, a pattern evaluates into a power-set domain (the set of values that match it), in contrast to FOL where functions and predicates map into a regular domain. Matching logic uniformly generalizes several logical frameworks important for program analysis, such as: propositional logic, algebraic specification, FOL with equality, and separation logic. Patterns can specify separation requirements at any level in any program configuration, not only in the heaps or stores, without any special logical constructs for that: the very nature of pattern matching is that if two structures are matched as part of a pattern, then they can only be spatially separated. Like FOL, matching logic can also be translated into pure predicate logic, at the same time admitting its own sound and complete proof system. A practical aspect of matching logic is that FOL reasoning remains sound, so off-the-shelf provers and SMT solvers can be used for matching logic reasoning. Matching logic is particularly well-suited for reasoning about programs in programming languages that have a rewrite-based operational semantics.
AB - This paper presents matching logic, a first-order logic (FOL) variant for specifying and reasoning about structure by means of patterns and pattern matching. Its sentences, the patterns, are constructed using variables, symbols, connectives and quantifiers, but no difference is made between function and predicate symbols. In models, a pattern evaluates into a power-set domain (the set of values that match it), in contrast to FOL where functions and predicates map into a regular domain. Matching logic uniformly generalizes several logical frameworks important for program analysis, such as: propositional logic, algebraic specification, FOL with equality, and separation logic. Patterns can specify separation requirements at any level in any program configuration, not only in the heaps or stores, without any special logical constructs for that: the very nature of pattern matching is that if two structures are matched as part of a pattern, then they can only be spatially separated. Like FOL, matching logic can also be translated into pure predicate logic, at the same time admitting its own sound and complete proof system. A practical aspect of matching logic is that FOL reasoning remains sound, so off-the-shelf provers and SMT solvers can be used for matching logic reasoning. Matching logic is particularly well-suited for reasoning about programs in programming languages that have a rewrite-based operational semantics.
KW - First-order logic
KW - Program logic
KW - Rewriting
KW - Verification
UR - http://www.scopus.com/inward/record.url?scp=84958976397&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84958976397&partnerID=8YFLogxK
U2 - 10.4230/LIPIcs.RTA.2015.5
DO - 10.4230/LIPIcs.RTA.2015.5
M3 - Conference contribution
AN - SCOPUS:84958976397
T3 - Leibniz International Proceedings in Informatics, LIPIcs
SP - 5
EP - 21
BT - 26th International Conference on Rewriting Techniques and Applications, RTA 2015
A2 - Fernandez, Maribel
PB - Schloss Dagstuhl- Leibniz-Zentrum fur Informatik GmbH, Dagstuhl Publishing
T2 - 26th International Conference on Rewriting Techniques and Applications, RTA 2015
Y2 - 29 June 2015 through 1 July 2015
ER -