Professional Documents
Culture Documents
Introduction To Lambda Calculus: Henk Barendregt Erik Barendsen Revised Edition December 1998, March 2000
Introduction To Lambda Calculus: Henk Barendregt Erik Barendsen Revised Edition December 1998, March 2000
Revised edition
December 1998, March 2000
Contents
1 Introduction 5
2 Conversion 9
4 Reduction 23
5 Type Assignment 33
6 Extensions 41
7 Reduction Systems 47
Bibliography 51
3
Chapter 1
Introduction
Some history
5
6 Introduction to Lambda Calculus
E[P ] E[P 0 ],
(7 + 4) (8 + 5 3) 11 (8 + 5 3)
11 (8 + 15)
11 23
253.
In this example the reduction rules consist of the tables of addition and of
multiplication on the numerals.
Also symbolic computations can be done by reduction. For example
The necessary rewrite rules for append and sort can be programmed easily
in a few lines. Functions like append given by some rewrite rules are called
combinators.
Reduction systems usually satisfy the Church-Rosser property, which states
that the normal form obtained is independent of the order of evaluation of
subterms. Indeed, the first example may be reduced as follows:
(7 + 4) (8 + 5 3) (7 + 4) (8 + 15)
11 (8 + 15)
11 23
253,
(7 + 4) (8 + 5 3) 11 (8 + 15)
11 23
253.
Introduction 7
Abstraction is said to bind the free variable x in M . E.g. we say that x.yx
has x as bound and y as free variable. Substitution [x := N ] is only performed
in the free occurrences of x:
yx(x.x)[x := N ] yN (x.x).
Rb
In calculus there is a similar variable binding. In a f (x, y)dx the variable x is
Rb
bound and y is free. It does not make sense to substitute 7 for x: a f (7, y)d7;
Rb
but substitution for y makes sense: a f (x, 7)dx.
For reasons of hygiene it will always be assumed that the bound variables
that occur in a certain expression are different from the free ones. This can be
fulfilled by renaming bound variables. E.g. x.x becomes y.y. Indeed, these
expressions act the same way:
(x.x)a = a = (y.y)a
and in fact they denote the same intended algorithm. Therefore expressions
that differ only in the names of bound variables are identified.
8 Introduction to Lambda Calculus
Then
(F x)y = Fx y = f (x, y). ()
This last equation shows that it is convenient to use association to the left for
iterated application:
F xy = f (x, y).
F = xy.f (x, y)
and () becomes
(xy.f (x, y))xy = f (x, y).
For n arguments we have
by using n times (). This last equation becomes in convenient vector notation
Conversion
xV x ,
M, N (M N ) ,
M , x V (xM ) .
In BN-form this is
v0 ;
(v 0 v);
(v(v 0 v));
((v(v 0 v))v 00 );
(((v(v 0 (v 0 v)))v 00 )v 000 ).
(xy)z (xy)z;
(xx)z (yy)z;
(xx)z 6 z;
(xx)z 6 (xy)z.
F M1 Mn (((F M1 )M2 ) Mn )
9
10 Introduction to Lambda Calculus
and
x1 xn .M x1 (x2 ( (xn (M )))).
y;
yx;
x.yx;
(x.yx)z;
(xy.yx)zw.
2.4. Definition. (i) The set of free variables of M , notation FV(M ), is de-
fined inductively as follows.
FV(x) = {x};
FV(M N ) = FV(M ) FV(N );
FV(x.M ) = FV(M ) {x}.
x[x := N ] N ;
y[x := N ] y, if x 6 y;
(M1 M2 )[x := N ] (M1 [x := N ])(M2 [x := N ]);
(y.M1 )[x := N ] y.(M1 [x := N ]).
xy.xyz.
Then x and y are bound variables and z is a free variable. The term xy.xxy
is closed.
Note that in the fourth clause of Definition 2.4 (iii) it is not needed to say
provided that y 6 x and y / FV(N ). By the variable convention this is the
case.
Now we can introduce the -calculus as formal theory.
Conversion 11
(x.M )N = M [x := N ] ()
for all M, N .
(ii) There are also the logical axioms and rules.
Equality:
M = M;
M =N N = M;
M = N, N = L M = L.
Compatibility rules:
M = M0 M Z = M 0 Z;
M = M0 ZM = ZM 0 ;
M = M0 x.M = x.M 0 . ()
M = N M = N .
` x.x((y.yy)x)x = x.x(xx)x.
2.8. Remark. We have identified terms that differ only in the names of bound
variables. An alternative is to add to the -calculus the following axiom scheme
We prefer our version of the theory in which the identifications are made on
syntactic level. These identifications are done in our mind and not on paper.
For implementations of the -calculus the machine has to deal with this so
called -conversion. A good way of doing this is provided by the name-free
notation of de Bruijn, see Barendregt (1984), Appendix C.
I x.x;
K xy.x;
K xy.y;
S xyz.xz(yz).
IM = M;
KM N = M;
K M N = N;
SM N L = M L(N L).
such that
F F (YF ) = YF.
X W W (x.F (xx))W = F (W W ) F X.
X GX = SGX Gx = SGx
G = x.SGx
G = (gx.Sgx)G
G Y(gx.Sgx).
In the lambda calculus one can define numerals and represent numeric func-
tions on them.
F 0 (M ) M ;
F n+1 (M ) F (F n (M )).
cn f x.f n(x).
A+ xypq.xp(ypq);
A xyz.x(yz);
Aexp xy.yx.
Aexp cn cm = cm cn
= x.(cn )m (x)
= x.c(nm ) x
= c(nm ) ,
Exercises
2.1. (i) Rewrite according to official syntax
M1 y(x.xy(zw.yz)).
` M1 = M2 ` M1 [x := N ] = M2 [x := N ].
(ii) Show
` M1 = M2 & ` N1 = N2 ` M1 [x := N1 ] = M2 [x := N2 ].
F M N = M (N M )N.
Conversion 15
F M N L = N (x.M )(yz.yLM ).
P ] Q + (P = Q) ` true = false,
We have seen that the function plus, times and exponentiation on N can be
represented in the -calculus using Churchs numerals. We will now show that
all computable (recursive) functions can be represented in the -calculus. In
order to do this we will use first a different system of numerals.
Truth values and a conditional can be represented in the -calculus.
can be represented by
BP Q.
Then
[M, N ]true = M,
[M, N ]false = N,
p0q I,
pn + 1q [false, pnq].
17
18 Introduction to Lambda Calculus
3.4. Lemma (Successor, predecessor, test for zero). There exist combinators S + ,
P , and Zero such that
S+ pnq = pn + 1q,
P pn + 1q = pnq,
Zerop0q = true,
Zeropn + 1q = false.
Proof. Take
S+ x.[false, x],
P x.x false,
Zero x.x true.
: Np N
m[P (m)]
denotes the least number m such that P (m) holds if there is such a number;
otherwise it is undefined.
3.11. Lemma. The -definable functions are closed under primitive recursion.
F = x~y .D(F, x, ~y )
= (f x~y .D(f, x, ~y ))F.
Now such an F can be found by the Fixedpoint Theorem and we are done.
F p~nq = Hp~nqp0q
= p0q if Gp~nqp0q = p0q
= Hp~nqp1q else
= p1q if Gp~nqp1q = p0q
= Hp~nqp2q else
= p2q if . . .
= ...
The converse also holds. So for numeric functions we have is recursive iff
is -definable. Moreover also for partial functions a notion of -definability
exists. If is a partial numeric function, then we have
3.14. Theorem. With respect to the Church numerals c n all recursive func-
tions can be -defined.
Proof. Define
S+
c xyz.y(xyz),
P
c xyz.x(pq.q(py))(Kz)I1 ,
Zeroc x.x(K false)true.
Then these terms represent the successor, predecessor and test for zero. Then
as before all recursive functions can be -defined.
T cn = pnq;
1
T pnq = cn .
T x.xS+ p0q.
T 1 = x.if Zero x then c0 else S+
c (T
1
(P x)).
X1 = F 1 X1 X n ,
..
.
Xn = F n X1 X n .
X1 = F 1 X1 X2 ,
X2 = F 2 X1 X2 .
1
Term found by J. Velmans.
22 Introduction to Lambda Calculus
Now define X1 Xtrue, X2 Xfalse. Then the result follows. This can be
generalized to arbitrary n.
Gxy = Hy(Kx),
Hx = G(xx)(S(H(xx))).
G = xy.Hy(Kx),
H = x.G(xx)(S(H(xx))),
Exercises
3.1. (i) Find a -term Mult such that for all m, n N
Multpnqpmq = pn mq.
Facpnq = pn!q.
(0, n) = n + 1,
(m + 1, 0) = (m, 1),
(m + 1, n + 1) = (m, (m + 1, n)).
M0 = x,
Mn+1 = Mn+2 Mn .
Reduction
(x.x2 + 1)3 = 10
can be interpreted as 10 is the result of computing (x.x 2 + 1)3, but not vice
versa. This computational aspect will be expressed by writing
(x.x2 + 1)3
10
M RN (ZM ) R (ZN ),
(M Z) R (N Z) and
(x.M ) R (x.N ).
23
24 Introduction to Lambda Calculus
(iii) 1. M N M = N ;
2. M = N N = M ;
3. M = N, N = L M = L.
These relations are pronounced as follows.
M
N : M -reduces to N ;
M N : M -reduces to N in one step;
M = N : M is -convertible to N.
By definition is compatible,
is a reduction relation and = is a con-
gruence relation.
x.xx,
.
Then .
(ii) KI
I.
Intuitively, M = N if M is connected to N via -arrows (disregarding
the directions of these). In a picture this looks as follows.
M
@ @
R
@ R
@ N
@ @ @
R
@ R
@ R
@
@
R
@
KI
@
R
@
(y.I) II
@
R@
I
4.5. Proposition. M = N ` M = N .
4.6. Definition. (i) A -redex is a term of the form (x.M )N . In this case
M [x := N ] is its contractum.
(ii) A -term M is a -normal form (-nf) if it does not have a -redex as
subexpression.
(iii) A term M has a -normal form if M = N and N is a -nf, for some
N.
Reduction 25
4.7. Example. (x.xx)y is not a -nf, but has as -nf the term yy.
M
N N M.
M
@
@
@
@
@
R@
R
N1 N2
.. .
.. ..
.. ...
.. .
.. ..
.. ...
R R.. .
.
N3
M
@ @
R
@ R
@ N
@ @ @
R
@ R
@ R
@
..
..
..
.. @ ...
R@ .
.. ..
..
.. . ...
RR .. . ...
. ..
..
..
..
..
.. ...
.
.. ..
.. ...
.. ..
.. ..
RR..
..
M N0 N
@ (IH) @ (IH)
@ @
@
R
@
R
@
R
@
R
L1 (CR) L2
.. ..
... ...
.. .
R .. ..
.
R . .
L
4.11. Corollary. (i) If M has N as -nf, then M
N .
(ii) A -term has at most one -nf.
xV x ,
M, N (M N ) ,
M , x V (x.M ) ,
M, N , x V ((x.M )N ) .
(x.M )N M [x := N ],
(x.M )N M [x := N ].
(x) x,
(M N ) (M )(N ),
(x.M ) x.(M ),
((x.M )N ) (M )[x := (N )].
In other words, contracts all redexes that are underlined, from the inside to
the outside.
M - N or M - N.
||
4.15. Lemma.
-- N0
M 0
|| || M 0 , N 0 ,
M, N .
? ?
M -
-N
28 Introduction to Lambda Calculus
(M [x := N ]) (M )[x := (N )].
(ii)
M -
-N
M, N .
? ?
-- (N )
(M )
4.17. Lemma.
M
@
|| @
@ M ,
@
@ N, L .
R
@
--L
N
M
H
@
I @H | |HH
@ HH
@ HH
0
.... HHH
N1 M
....
.... .... H
.... HHH
.... ....
....
....
..
....
.. j
H
j
.... .... N
. ....
....... .... .. 2
....
.... .. ..... @
. . . I @ ||
.... .. . .... @
jj.
.
.. jj..@
N3 N20
M
@
@
M1 @
.. @
..
..
.. @
.. @
.. .. @
. .. ..
.. .. .. @
..
..
.. .. @
.. . .. @
.. .. @
.. .. R
.. .. @
R
.. ..
N1 .. .. N2
.. .. ..
.. .. .. ...
.. .. R.. .
.
.. .. R . .
.. ..
.. ..
.. .. ..
.. .. . .
.. RR .. ..
..
..
..
.. ..
.. .
..
..
..
.. .
.. . ..
R R..
.
.
Ix
It can happen that a term M has a nf, but at the same time an infinite
reduction path. Let (x.xx)(x.xx). Then so KI
KI , and KI I. Therefore a so called strategy is necessary in
order to find the normal form. We state the following theorem; for a proof see
Barendregt (1984), Theorem 13.2.2.
KI (y.)I ,
reduction equations one can work with A.M. Turings fixedpoint combinator,
which has a different reduction behaviour.
Proof.
F AAF
(y.y(AAy))F
F (AAF )
F (F ).
4.26. Example. G X GX
X(XG). Indeed,
X GX
X(XG) G
x.x(xG)
G
(gx.x(xg))G
G (gx.x(xg)).
Also the Multiple Fixedpoint Theorem has a reducing variant.
Proof. As for the equational Multiple Fixedpoint Theorem 3.17, but now
using .
Exercises
4.1. Show M N [N in -nf and N I
M ].
4.2. Construct four terms M with G (M ) respectively as follows.
32 Introduction to Lambda Calculus
Type Assignment
33
34 Introduction to Lambda Calculus
Originally the implicit typing paradigm was introduced in Curry (1934) for the
theory of combinators. In Curry and Feys (1958) and Curry et al. (1972) the
theory was modified in a natural way to the lambda calculus assigning elements
of a given set T of types to type free lambda terms. For this reason these calculi
a la Curry are sometimes called systems of type assignment. If the type T
is assigned to the term M one writes ` M : , sometimes with a subscript
under ` to denote the particular system. Usually a set of assumptions is
needed to derive a type assignment and one writes ` M : (pronounce this
as yields M in ). A particular Curry type assignment system depends on
two parameters, the set T and the rules of type assignment. As an example we
Type Assignment 35
V T,
BB B T,
, T ( ) T (function space types).
1 2 n
stands for
(1 (2 (n1 n )));
that is, we use association to the right.
(ii) , , , . . . denote arbitrary type variables.
5.3. Definition. Type derivations in the system are built up from as-
sumptions x:, using the following inference rules.
x:
M : N : M :
MN : x.M :
`M :
The indices (1) and (2) are bookkeeping devices that indicate at which appli-
cation of a rule a particular assumption is being cancelled.
(ii) One has ` K : for any , T, which is demonstrated as
follows.
x : (1)
y.x :
(1)
xy.x :
(iii) Similarly one can show for all T
` I : .
y: ` Iy : .
Properties of
Several properties of type assignment in are valid. The first one analyses
how much of a basis is necessary in order to derive a type assignment.
` M : 0 ` M : .
The second property analyses how terms of a certain form get typed. It is
useful among other things to show that certain terms have no types.
The moral is: if M has a type, i.e. ` M : for some and , then every
subterm has a type as well.
The following result states that the set of M having a certain type in
is closed under reduction.
` M : ` M 0 : .
38 Introduction to Lambda Calculus
` (x.P )Q :
then it follows by the Generation Lemma that for some one has
` (x.P ) : ( ) and ` Q : .
, x: ` P : and ` Q :
` P [x := Q] : .
Terms having a type are not closed under expansion. For example,
See Exercise 5.1. One even has the following stronger failure of subject expan-
sion, as is observed in van Bakel (1992).
All typable terms have a normal form. In fact, the so-called strong nor-
malization property holds: if M is a typable term, then all reductions starting
from M are finite.
For the system of type assignment several questions may be asked. Note that
for = {x1 :1 , . . . , xn :n } one has
` M : ` (x1 :1 xn :n .M ) : (1 n ),
These three problems are called type checking, typability and inhabitation re-
spectively and are denoted by M : ?, M : ? and ? : .
Type checking and typability are decidable. This can be shown using the
following result, independently due to Curry (1969), Hindley (1969), and Milner
(1978).
Polymorphism
Exercises
5.1. (i) Give a derivation of
` SK : ()().
(ii) Give a derivation of
` KI : ().
(iii) Show that 6` SK : ().
(iv) Find a common -reduct of SK and KI. What is the most general type for
this term?
5.2. Show that x.xx and KI(x.xx) have no type in .
5.3. Find the most general types (if they exist) for the following terms.
(i) xy.xyy.
(ii) SII.
(iii) xy.y(z.z(yx)).
5.4. Find terms M, N such that the following hold in .
(i) ` M : ()()().
(ii) ` N : ((()))().
5.5. Find types in 2 for the terms in the exercises 5.2 and 5.3.
Chapter 6
Extensions
6.1. Definition. The set of lambda terms with constants, notation (C), is
defined inductively as follows.
CC C (C),
xV x (C),
M, N (C) (M N ) (C),
M (C), x V (x.M ) (C).
M1 Mk f (M1 , . . . , Mk ),
for M1 , . . . , Mk X.
41
42 Introduction to Lambda Calculus
Note that for a given function f this is not one contraction rule but in fact
a rule schema. The resulting extension of the -calculus is called . The
corresponding notion of (one step) reduction is denoted by ( )
.
6.4. Theorem. If M
N and N is in -nf, then M
` N .
Proof. Analogous to the proof of the theorem for -normal forms (4.22).
6.5. Example. One of the first versions of a -rule is in Church (1941). Here
X is the set of all closed normal forms and for M, N X we have
C M N true, if M N ;
C M N false, if M 6 N .
It follows that
ite true x y
x,
ite false x y
y.
Extensions 43
Z = {. . . , 2, 1, 0, 1, 2, . . .}.
6.7. Example. For each n Z a constant in C is selected and given the name
n. (We will express this as follows: for each n Z a constant n C is chosen.)
Moreover the following constants in C are selected:
plus n m n + m;
minus n m n m;
times n m n m;
divide n m n m, if m 6= 0;
divide n 0 error ;
equal n n true ;
equal n m false , if n 6= m.
6.8. Example. Let be some linearly ordered alphabet. For each symbol
s we choose a constant s C. Moreover we choose two constants and
= in C and formulate the following -rules.
C : .
44 Introduction to Lambda Calculus
For the system with integers this would result in the following. Let Z, B B
be basic type constants (with intended interpretation Z and booleans, respec-
tively). Then one adds the following typing axioms to .
true : B, false : B,
not : BB, and : BBB,
n : Z, error : Z,
plus : ZZZ, minus : ZZZ, times : ZZZ, divide : ZZZ,
equal : ZZB.
The Strong Normalization property for (plain) implies that not all re-
cursive functions are definable in the system. The same holds for the above
-calculus with integers. The following system of type assignment is such
that all computable functions are representable by a typed term. Indeed, the
system also assigns types to non-normalizing terms by introducing a primitive
fixedpoint combinator Y having type () for every .
Y f f (Y f ).
Y : ()
Because of the presence of Y , not all terms have a normal form. Without
proof we state the following.
One could also add Y to the system 2 using the (single) axiom
Y : .().
Exercises
6.1. Let kn be defined by k0 I and kn+1 K(k n ). Show that on the k n the
recursive functions can be represented by terms in the C -calculus.
6.2. Write down a -term F in the system of Example 6.7 such that
Fn
n! + n.
6.3. Write down a -term F in the system of Example 6.8 such that for s1 , s2 , t1 , t2
we have
F [s1 , t1 ][s2 , t2 ]
true, if (s1 , t1 ) precedes (s2 , t2 ) in the
lexicographical ordering of ;
f alse, otherwise.
6.4. Give suitable typing axioms (in and 2) for the constants in Example 6.6.
Chapter 7
Reduction Systems
7.1. Definition. Let C be a set of constants. The set of terms over C (notation
T = T (C)) is defined as follows.
xV xT,
C C, t1 . . . , tk T C(t1 , . . . , tn ) T ,
where n = arity(C).
C 1 (x1 , . . . , xn1 ) t1 ,
..
.
C k (x1 , . . . , xnk ) tk ,
is an RPS.
The -calculus is powerful enough to implement all these RPSs. We can
find -terms with the specified reduction behaviour.
47
48 Introduction to Lambda Calculus
7.2. Theorem. Each RPS can be represented in -calculus. For example (see
above), there are terms C and D such that
Cxy
D(Cxx)y,
Dxy
Cx(Dxy).
Proof. By the reducing variant 4.27 of the Multiple Fixedpoint Theorem.
Without proof we mention the following.
More general than the RPSs are the so called term rewrite systems (TRSs),
which use pattern matching in function definitions. A typical example is
A(0, y) y,
A(S(x), y) S(A(x, y)).
Then, for example, A(S(0), S(S(0))) S(S(S(0))).
The difference with RPSs is that in a TRS the arguments of a rewrite rule
may have some structure. A constant in a TRS that does not have a contraction
rule (i.e. no rewrite rule starts with that constant) is called a constructor . The
other constants are called functions.
Not all TRSs satisfy the Church-Rosser property. Consider the system
A(x) B,
A(B) C.
Then A(B) reduces both to B and to C. It is said that the two rules overlap.
The following rule overlaps with itself:
D(D(x)) E.
Then D(D(D(D))) reduces to E and to D(E).
See Klop (1992) for a survey and references on TRSs.
Combinatory logic (CL) is a reduction system related to -calculus. Terms
in CL consist of (applications of) constants I, K, S and variables, without
arity restrictions. The contraction rules are
Ix x,
Kxy x,
Sxyz xz(yz).
(Note that KI is a nf.) Then KII I, and SII(SII) has no normal
form. This CL can be represented as a TRS by considering I, K, S as (0-ary)
constructors, together with a function Ap with arity 2, as follows.
Ap (I, x) x,
Ap (Ap (K, x), y) x,
Ap (Ap (Ap (S, x), y), z) Ap (Ap (x, z), Ap (y, z)).
Reduction Systems 49
The CL-term SII(SII) is translated into Ap (, ) where Ap (Ap (S, I), I).
The Normalization Theorem does not extend to TRSs. Consider the above
TRS-version of CL, together with the rules
The expression
or (A, B)
or (, Ap (I, true ))
and
or (Ap (I, true ), ).
Even more general than TRSs are the combinatory reduction systems (CRS)
introduced in Klop (1980). These are TRSs together with arbitrary variable
binding operations. We have in fact
CRS
@
@
@
@
TRS
@
@
@
@
RPS
Exercises
7.1. (Toyama et al. (1989a), see also (1989b)) A TRS is called strongly normalizing
(SN) if there is no term that has an infinite reduction path. So (the TRS version
of) CL(S, K) is not SN, but CL(I, K) (with the obvious reduction rules) is.
Define the following two TRSs.
R1 :
1 2 3
@ @
@ @
@ @
? R @ R
@ ?
4 5 6
@
@
@
R
@ ?
7
R2 :
G(x, x, y) x,
G(x, y, x) x,
G(y, x, x) x.
Show that both R1 and R2 are SN, but the union R1 R2 is not.
Bibliography
Abramsky, S., D.M. Gabbay and T.S.E. Maibaum (eds.) (1992). Handbook of
Logic in Computer Science, Vol. II, Oxford University Press.
van Bakel, S.J. (1992). Complete restrictions of the intersection type discipline,
Theoretical Computer Science 102, pp. 135163.
Barendregt, H.P. (1984). The Lambda Calculus: Its Syntax and Semantics,
Studies in Logic 103, second, revised edition, North-Holland, Amsterdam.
Barendregt, H.P. (1992). Lambda calculi with types, in: Abramsky et al.
(1992), pp. 117309.
de Bruijn, N.G. (1970). The mathematical language automath, its usage and
some of its extensions, in: M. Laudet, D. Lacombe and M. Schuetzenberger
(eds.), Symposium on Automatic Demonstration, INRIA, Versailles, Lec-
ture Notes in Computer Science 125, Springer-Verlag, Berlin, pp. 2961.
Also in Nederpelt et al. (1994).
de Bruijn, N.G. (1980). A survey of the automath project, in: Hindley and
Seldin (1980), pp. 580606.
51
52 Bibliography
Curry, H.B., J.R. Hindley and J.P. Seldin (1972). Combinatory Logic, Vol. II,
North-Holland, Amsterdam.
Hindley, J.R. and J.P. Seldin (eds.) (1980). To H.B. Curry: Essays on Com-
binatory Logic, Lambda-Calculus and Formalism, Academic Press, New
York.
Klop, J.W. (1992). Term rewrite systems, in: Abramsky et al. (1992).
Milner, R. (1984). A proposal for standard ML, Proceedings of the ACM Sym-
posium on LISP and Functional Programming, Austin, pp. 184197.
Nederpelt, R.P., J.H. Geuvers and R.C. de Vrijer (eds.) (1994). Selected Papers
on Automath, Studies in Logic 133, North-Holland, Amsterdam.
Toyama, Y., J.W. Klop and H.P. Barendregt (1989a). Termination for the direct
sum of left-linear term rewriting systems, Proceedings of the 3rd Interna-
tional Conference on Rewriting Techniques and Applications, Chapel Hill,
Lecture Notes in Computer Science 355, Springer-Verlag, Berlin, pp. 477
491.
Toyama, Y., J.W. Klop and H.P. Barendregt (1989b). Termination for the di-
rect sum of left-linear term rewriting systems, Technical Report CS-R8923,
Centre for Mathematics and Computer Science (CWI), Amsterdam.