Team Parsifal

Members
Overall Objectives
Scientific Foundations
Application Domains
Software
New Results
Other Grants and Activities
Dissemination
Bibliography

Section: Software

Bedwyr

Participants : David Baelde, Andrew Gacek, Dale Miller.

In order to provide some practical validation of the formal results mentioned above regarding the logic LINC and the quantifier $ \nabla$ , we picked a small but expressive subset of that logic for implementation. While that subset did not involve the proof rules for induction and co-induction (which are difficult to automate) the subset did allow for model-checking style computation. During 2006 and 2007, the Parsifal team, with contributions from our close colleagues at the University of Minnesota and the Australian National University, designed and implemented the Bedwyr system for doing proof search in that fragment of LINC. This system is organized as an open source project and is hosted on INRIA's GForge server. It has been described in the conference papers [56] and [25] . This systems, which is implemented in OCaml, has been download about 200 times since it was first released.

Bedwyr is a generalization of logic programming that allows model checking directly on syntactic expressions possibly containing bindings. This system, written in OCaml, is a direct implementation of two recent advances in the theory of proof search.

  1. It is possible to capture both finite success and finite failure in a sequent calculus. Proof search in such a proof system can capture both may and must behavior in operational semantics.

  2. Higher-order abstract syntax is directly supported using term-level $ \lambda$ -binders, the $ \nabla$ -quantifier, higher-order pattern unification, and explicit substitutions. These features allow reasoning directly on expressions containing bound variables.

Bedwyr has served well to validate the underlying theoretical considerations while at the same time providing a useful tool for exploring some applications. The distributed system comes with several example applications, including the finite $ \pi$ -calculus (operational semantics, bisimulation, trace analysis, and modal logics), the spi-calculus (operational semantics), value-passing CCS, the $ \lambda$ -calculus, winning strategies for games, and various other model checking problems.


previous
next

Logo Inria