Jesper Bengtson ; Joachim Parrow - Formalising the pi-calculus using nominal logic

lmcs:832 - Logical Methods in Computer Science, June 30, 2009, Volume 5, Issue 2 -
Formalising the pi-calculus using nominal logicArticle

Authors: Jesper Bengtson ; Joachim Parrow

    We formalise the pi-calculus using the nominal datatype package, based on ideas from the nominal logic by Pitts et al., and demonstrate an implementation in Isabelle/HOL. The purpose is to derive powerful induction rules for the semantics in order to conduct machine checkable proofs, closely following the intuitive arguments found in manual proofs. In this way we have covered many of the standard theorems of bisimulation equivalence and congruence, both late and early, and both strong and weak in a uniform manner. We thus provide one of the most extensive formalisations of a process calculus ever done inside a theorem prover. A significant gain in our formulation is that agents are identified up to alpha-equivalence, thereby greatly reducing the arguments about bound names. This is a normal strategy for manual proofs about the pi-calculus, but that kind of hand waving has previously been difficult to incorporate smoothly in an interactive theorem prover. We show how the nominal logic formalism and its support in Isabelle accomplishes this and thus significantly reduces the tedium of conducting completely formal proofs. This improves on previous work using weak higher order abstract syntax since we do not need extra assumptions to filter out exotic terms and can keep all arguments within a familiar first-order logic.

    Volume: Volume 5, Issue 2
    Published on: June 30, 2009
    Imported on: March 24, 2009
    Keywords: Computer Science - Logic in Computer Science,F.4.1


    Is referenced by
    Constructing weak simulations from linear implications for processes with private names
    • 1 ScholeXplorer

    16 Documents citing this article

    Consultation statistics

    This page has been seen 791 times.
    This article's PDF has been downloaded 295 times.