## Formalising in Nominal Isabelle Crary’s Completeness Proof for Equivalence Checking (2007)

Venue: | LFMTP 2007 |

Citations: | 3 - 1 self |

### BibTeX

@MISC{Narboux07formalisingin,

author = {Julien Narboux and Christian Urban},

title = { Formalising in Nominal Isabelle Crary’s Completeness Proof for Equivalence Checking},

year = {2007}

}

### OpenURL

### Abstract

In the book on Advanced Topics in Types and Programming Languages, Crary illustrates the reasoning technique of logical relations in a case study about equivalence checking. He presents a type-driven equivalence checking algorithm and verifies its completeness with respect to a definitional characterisation of equivalence. We present in this paper a formalisation of Crary’s proof using Isabelle/HOL and the nominal datatype package.

### Citations

225 |
Intentional Interpretations of Functionals of Finite Type I
- Tait
- 1967
(Show Context)
Citation Context ...e/HOL, nominal logic work. 1 Introduction Logical relations are a powerful reasoning technique for establishing properties about programming languages. The idea of logical relations goes back to Tait =-=[8]-=- and is usually employed for showing strong normalisation results. However this technique has wide applicability. Crary illustrates this by using a logical relation argument to prove completeness of a... |

176 | Nominal logic, a first order theory of names and binding
- Pitts
(Show Context)
Citation Context ...formal proof is carried out in Isabelle/HOL and relies much on the infrastructure provided by the nominal datatype package [9,10,11]. This package uses many ideas from the nominal logic work by Pitts =-=[6]-=-. The ability to directly define in the nominal datatype package -equivalent terms and obtain automatically recursion combinators and strong induction principles that have the usual variable conventio... |

87 | Nominal Techniques in Isabelle/HOL - Urban, Tasson |

85 | Isar - A generic interpretative approach to readable formal proof documents
- WENZEL
- 1999
(Show Context)
Citation Context ... More specifically we can say that our formalisation follows a good deal the informal reasoning of Crary (see Figure 1 which shows the first fundamental lemma as an example in the Isar proof language =-=[12]-=-). The strong induction principles proved crucial in order to get the inductions through. Such strong induction principles are derived automatically for any nominal datatype (which can at the moment o... |

56 | Mechanizing metatheory in a logical framework - Harper, Licata |

46 | Pure Type Systems formalized
- McKinna, Pollack
- 1993
(Show Context)
Citation Context ...logic. We unfortunately do not know how convenient this style of reasoning is. We are also aware that Aydemir et al [2] use a locally nameless approach (which goes back to work by McKinna and Pollack =-=[5]-=-) to representing binders and work on formalising programming language theory. It would be interesting to compare in detail our formalisation and the approach taken by Aydemir et al. Our initial opini... |

21 | A Recursion Combinator for Nominal Datatypes Implemented in Isabelle/HOL
- Urban, Berghofer
- 2006
(Show Context)
Citation Context ... that our implementation captures the intended behaviour of these rules. Our formal proof is carried out in Isabelle/HOL and relies much on the infrastructure provided by the nominal datatype package =-=[9,10,11]-=-. This package uses many ideas from the nominal logic work by Pitts [6]. The ability to directly define in the nominal datatype package -equivalent terms and obtain automatically recursion combinators... |

21 | Barendregt’s variable convention in rule inductions
- Urban, Berghofer, et al.
- 2007
(Show Context)
Citation Context ...vers all cases that are required by the induction. We will show in this formalisation that there are a few places where one has to pay attention to this issue and that the strong induction principles =-=[10]-=- that have the variable convention already built in are quite convenient to get the formal arguments through. There have already been a number of formalisations of proofs involving logical relations. ... |

9 |
A Formalization of the Strong Normalisation Proof for System F
- Altenkirch
- 1993
(Show Context)
Citation Context ... convention already built in are quite convenient to get the formal arguments through. There have already been a number of formalisations of proofs involving logical relations. For example Altenkirch =-=[1]-=- formalises the usual strong normalisation proof for 1 Email: narboux(at)in.tum.de 2 Email: urbanc(at)in.tum.de This paper is electronically published in Electronic Notes in Theoretical Computer Scien... |

8 |
S.: Engineering aspects of formal metatheory
- Aydemir, Charguéraud, et al.
- 2007
(Show Context)
Citation Context ...nting an object logic in Twelf and coding the logical relation proof in this object logic. We unfortunately do not know how convenient this style of reasoning is. We are also aware that Aydemir et al =-=[2]-=- use a locally nameless approach (which goes back to work by McKinna and Pollack [5]) to representing binders and work on formalising programming language theory. It would be interesting to compare in... |

8 |
Logical Relations and a Case Study in Equivalence Checking
- Crary
- 2005
(Show Context)
Citation Context ...ing strong normalisation results. However this technique has wide applicability. Crary illustrates this by using a logical relation argument to prove completeness of an equivalence checking algorithm =-=[3]-=-. One reason for formalising proofs involving logical relations is that they are fairly intricate: First they require a logic that is sufficiently strong (see comment in [4, Page 58]). Also in the fin... |

4 |
Towards a judgemental reconstruction of logical relation proofs
- Schürmann, Sarnat
- 2007
(Show Context)
Citation Context ...ition of logical relations is not completely trivial like in the completeness proof we presented above. We are aware of work by Schürmann and Sarnat about formalising logical relation proofs in Twelf =-=[7]-=-. This involves a clever trick of implementing an object logic in Twelf and coding the logical relation proof in this object logic. We unfortunately do not know how convenient this style of reasoning ... |