Matching Logic

From FSL

Jump to: navigation, search

Matching logic is an alternative to Hoare logics in which the state structure plays a crucial role. Program states are represented as algebraic datatypes called (concrete) configurations, and program state specifications are represented as configuration terms with variables and constraints on them called (configuration) patterns. A pattern specifies those configurations that match it. Patterns can bind variables to their scope, allowing both for pattern abstraction and for expressing loop invariants.

[edit] Theory

[edit] Implementation

  • Download 25px-Zip_icon.png first prototype Info_circle.png (Implemented in Maude)
    • This version comes with the Schorr-Waite algorithm as well as programs using lists, queues, and trees.
  • Download 25px-Zip_icon.png latest prototype Info_circle.png (Implemented in K-Maude)
    • This version is a complete rewrite using our new K-Maude tool. The zip contains over 100 example programs written in HIMP including many typical Hoare-level programs (sum to n, fibonacci, factorial) as well as some linked list programs (append, reverse, and length).
  • Download 25px-Zip_icon.png language pack Info_circle.png
    • This includes executable definitions of the IMP, HIMP, and KernelC languages written in K-Maude, together with example programs for each.
Views
Personal tools