 
Summary: Under consideration for publication in J. Functional Programming 1
FUNCTIONAL PEARLS
conversion is easy
THORSTEN ALTENKIRCH
School of Computer Science & Information Technology, University of Nottingham,
Nottingham, NG8 1BB, UK
(email: txa@cs.nott.ac.uk)
Abstract
We present a new and simple account of conversion suitable for formal reasoning. Our
main tool is to define conversion as a a structural congruence parametrized by a partial
bijection on free variables. We show a number of basic properties of substitution. e.g. that
substitution is monadic which entails all the usual substitution laws. Finally, we relate
equivalence classes to de Bruijn terms.
1 Introduction
When reasoning about terms we usually want to identify terms which only differ
in the names of bound variables, such as x.zx and y.zy. We say that these terms
are convertible and write x.zx y.zy. We want that all operations on terms
preserve . The first potential problem is substitution, if we naively substitute z
by x in the terms above we obtain (x.zx)[z x] = x.xx and (y.zy)[z x] =
y.xy but x.xx y.xy. To avoid this behaviour we introduce capture avoiding
