About these lecture notes Lambda Calculusmax/lofo/01-lambda-calculus-handout-4.pdf · M. Colange...

19
Lambda Calculus Maximilien Colange [email protected] EPITA — École Pour l’Informatique et les Techniques Avancées March 17, 2017 About these lecture notes These slides were made by Akim Demaille. Many of these slides are largely inspired from Andrew D. Ker’s lecture notes [Ker, 2005a, Ker, 2005b]. Some slides are even straightforward copies. M. Colange Lambda Calculus 2 / 74 Lambda Calculus 1 λ-calculus 2 Reduction 3 λ-calculus as a Programming Language 4 Combinatory Logic M. Colange Lambda Calculus 3 / 74 λ-calculus 1 λ-calculus The Syntax of λ-calculus Substitution, Conversions 2 Reduction 3 λ-calculus as a Programming Language 4 Combinatory Logic M. Colange Lambda Calculus 4 / 74

Transcript of About these lecture notes Lambda Calculusmax/lofo/01-lambda-calculus-handout-4.pdf · M. Colange...

Page 1: About these lecture notes Lambda Calculusmax/lofo/01-lambda-calculus-handout-4.pdf · M. Colange Lambda Calculus 9 / 74 What is the -calculus? A mathematical theory of functions A

Lambda Calculus

Maximilien Colange [email protected]

EPITA — École Pour l’Informatique et les Techniques Avancées

March 17, 2017

About these lecture notes

These slides were made by Akim Demaille.Many of these slides are largely inspired from Andrew D. Ker’s lecture notes[Ker, 2005a, Ker, 2005b]. Some slides are even straightforward copies.

M. Colange Lambda Calculus 2 / 74

Lambda Calculus

1 λ-calculus

2 Reduction

3 λ-calculus as a Programming Language

4 Combinatory Logic

M. Colange Lambda Calculus 3 / 74

λ-calculus

1 λ-calculusThe Syntax of λ-calculusSubstitution, Conversions

2 Reduction

3 λ-calculus as a Programming Language

4 Combinatory Logic

M. Colange Lambda Calculus 4 / 74

Page 2: About these lecture notes Lambda Calculusmax/lofo/01-lambda-calculus-handout-4.pdf · M. Colange Lambda Calculus 9 / 74 What is the -calculus? A mathematical theory of functions A

Why the λ-calculus?

Church, CurryA theory of functions (1930s).

TuringA definition of effective computability (1930s).

Brouwer, Heyting, KolmogorovA representation of formal proofs (1920–).

McCarthy, Scott, . . .A basis for functional programming languages (1960s–).

Montague, . . .Semantics for natural language (1960s–).

M. Colange Lambda Calculus 5 / 74

λ-calculus

Alonzo Church (1903–1995)

M. Colange Lambda Calculus 6 / 74

λ-calculus

Haskell Brooks Curry (1900–1982)

M. Colange Lambda Calculus 7 / 74

λ-calculus

Alan Mathison Turing (1912–1954)

M. Colange Lambda Calculus 8 / 74

Page 3: About these lecture notes Lambda Calculusmax/lofo/01-lambda-calculus-handout-4.pdf · M. Colange Lambda Calculus 9 / 74 What is the -calculus? A mathematical theory of functions A

λ-calculus

Richard Merritt Montague (1930–1971)

M. Colange Lambda Calculus 9 / 74

What is the λ-calculus?

A mathematical theory of functionsA (functional) programming languageIt allows reasoning on operational semanticsMathematicians are more inclined to denotational semantics

M. Colange Lambda Calculus 10 / 74

The Syntax of λ-calculus

1 λ-calculusThe Syntax of λ-calculusSubstitution, Conversions

2 Reduction

3 λ-calculus as a Programming Language

4 Combinatory Logic

M. Colange Lambda Calculus 11 / 74

The Pure Untyped λ-calculus

The simplest λ-calculus:Variables x , y , z ...

Functions λx ·MApplication MN

NoBooleansNumbersTypes. . .

M. Colange Lambda Calculus 12 / 74

Page 4: About these lecture notes Lambda Calculusmax/lofo/01-lambda-calculus-handout-4.pdf · M. Colange Lambda Calculus 9 / 74 What is the -calculus? A mathematical theory of functions A

The λ-calculus Language

The λ-terms:M ::= x | (λx ·M) | (MM)

Conventions:Omit outer parentheses MN = (MN)

Application associates to the left MNL = (MN)L

Abstraction associates to the right λx ·MN = λx · (MN)

Multiple arguments as syntactic sugar λxy ·M = λx · λy ·M(Currying EN — Currification FR)

M. Colange Lambda Calculus 13 / 74

Notation

Usual x 7→ 2x + 1λ-calculus λx · 2x + 1Originally x · 2x + 1Inpiration x · x = y

Transition Λx · 2x + 1

M. Colange Lambda Calculus 14 / 74

Which abstract-syntax trees are correct?

app

Napp

app

x

abs

abs

var

y

y

x

app

Napp

Mabs

abs

var

x

M

x

app

NMabs

abs

var

y

y

x

app

var

v

app

var

u

abs

abs

var

y

y

x

M. Colange Lambda Calculus 15 / 74

Fully qualified form for λnfx · f (nfx)

3 (λn · (λf · (λx · (f ((nf )x)))))

7 (λx · (λf · (λn · (f ((nf )x)))))

7 (λn·)(λf ·)λx · (f ((nf )x))

7 (λx · (λf · (λn · f )))((nf )x))

M. Colange Lambda Calculus 16 / 74

Page 5: About these lecture notes Lambda Calculusmax/lofo/01-lambda-calculus-handout-4.pdf · M. Colange Lambda Calculus 9 / 74 What is the -calculus? A mathematical theory of functions A

The λ-calculus Language: Alternative Presentation

The set Λ of λ-terms:

x ∈ Vx ∈ Λ

M ∈ Λ N ∈ Λ

(MN) ∈ Λ

M ∈ Λx ∈ V

(λx ·M) ∈ Λ

For instance

x ∈ Λ

(λx · x) ∈ Λ y ∈ Λ

((λx · x)y) ∈ Λ z ∈ Λ

(((λx · x)y)z) ∈ Λ

(λz · (((λx · x)y)z)) ∈ Λ x ∈ Λ

(λz · (((λx · x)y)z))x ∈ Λ

M. Colange Lambda Calculus 17 / 74

Subterms

The set of subterms of M, sub(M):

sub(x) := xsub(λx ·M) := λx ·M ∪ sub(M)

sub(MN) := MN ∪ sub(M) ∪ sub(N)

M. Colange Lambda Calculus 18 / 74

Variables

The set of free variables of M, FV(M):

FV(x) := xFV(λx ·M) := FV(M) \ x

FV(MN) := FV(M) ∪ FV(N)

A variable is free or bound.A variable may have bound and free occurrences: xλx · x .A term with no free variable is closed.A combinator is a closed term.

M. Colange Lambda Calculus 19 / 74

Substitution, Conversions

1 λ-calculusThe Syntax of λ-calculusSubstitution, Conversions

2 Reduction

3 λ-calculus as a Programming Language

4 Combinatory Logic

M. Colange Lambda Calculus 20 / 74

Page 6: About these lecture notes Lambda Calculusmax/lofo/01-lambda-calculus-handout-4.pdf · M. Colange Lambda Calculus 9 / 74 What is the -calculus? A mathematical theory of functions A

α-Conversion

α-conversionM and N are α-convertible, M ≡ N, iff they differ only by renaming boundvariables without introducing captures.

λx · x ≡ λy · yxλx · x ≡ xλy · yxλx · x 6≡ yλy · y

λx · λy · xy 6≡ λx · λx · xx

From now on α-convertible terms are considered equal.

M. Colange Lambda Calculus 21 / 74

The Variable Convention

To avoid nasty capture issues, we will always silently α-convert terms sothat no bound variable of a term is a variable (bound or free) of another.

M. Colange Lambda Calculus 22 / 74

Substitution

The substitution of x by M in N is denoted [M/x ]N.It is a notation, not an operationIntuitively, all the free occurrences of x are replaced by M.For instance [λz · zz/x ]λy · xy = λy · (λz · zz)y .There are many notations for substitution:

[M/x ]N N[M/x ] N[x := M] N[x ← M]

and evenN[x/M]

M. Colange Lambda Calculus 23 / 74

Formal Definition of the Substitution

Substitution

[M/x ]x := M

[M/x ]y := y with x 6= y

[M/x ](NL) := ([M/x ]N)([M/x ]L)

[M/x ]λy · N := λy · [M/x ]N with x 6= y and y 6∈ FV(M)

The variable convention allows us to “require” that y 6∈ FV(M).Without it:

[M/x ]λy · N := λy · [M/x ]N if x 6= y and y 6∈ FV(M)

[M/x ]λy · N := λz · [M/x ][z/y ]N if x 6= y or y ∈ FV(M)

M. Colange Lambda Calculus 24 / 74

Page 7: About these lecture notes Lambda Calculusmax/lofo/01-lambda-calculus-handout-4.pdf · M. Colange Lambda Calculus 9 / 74 What is the -calculus? A mathematical theory of functions A

Substitution

[yy/z ](λxy · zy) ≡ λxu · (yy)u

M. Colange Lambda Calculus 25 / 74

β-Conversion

β-conversionThe β-convertibility between two terms is the relation β defined as:

(λx ·M)N β [N/x ]M

for any M,N ∈ Λ.

M. Colange Lambda Calculus 26 / 74

The λβ Formal System

It is the “standard” theory of λ-calculus.

The λβ Formal System

M = M

M = N

N = M

M = N N = L

M = L

M = M ′ N = N ′

MN = M ′N ′

M = N

λx ·M = λx · N

(λx ·M)N = [N/x ]M

M. Colange Lambda Calculus 27 / 74

Reduction

1 λ-calculus

2 Reductionβ-ReductionChurch-RosserReduction Strategies

3 λ-calculus as a Programming Language

4 Combinatory Logic

M. Colange Lambda Calculus 28 / 74

Page 8: About these lecture notes Lambda Calculusmax/lofo/01-lambda-calculus-handout-4.pdf · M. Colange Lambda Calculus 9 / 74 What is the -calculus? A mathematical theory of functions A

β-Reduction

1 λ-calculus

2 Reductionβ-ReductionChurch-RosserReduction Strategies

3 λ-calculus as a Programming Language

4 Combinatory Logic

M. Colange Lambda Calculus 29 / 74

Reduction

One step R-Reduction from a relation R

The relation →R

is the smallest relation such that:

(M,N) ∈ R

M →R

N

M →R

N

ML→R

NL

M →R

N

LM →R

LN

M →R

N

λx ·M →Rλx · N

R-Reduction: transitive, reflexive closure

The relation ∗→R

is the smallest relation such that:

M →R

N

M∗→R

N M∗→R

M

M∗→R

N N∗→R

L

M∗→R

L

M. Colange Lambda Calculus 30 / 74

β-Reduction

β-RedexA β-redex is term under the form (λx ·M)N.

One step β-Reduction

(λx ·M)N →β

[N/x ]M · · ·

β-Reduction

The relation ∗→β

is the transitive, reflexive closure of →β.

β-ConversionThe relation ≡

βis the transitive, reflexive, symmetric closure of →

β.

M. Colange Lambda Calculus 31 / 74

β-Reductions

(λx · x)y → y

(λx · xx)y → yy

(λx · xx)(λx · xx) → (λx · xx)(λx · xx)

(λx · x(xx))(λx · x(xx)) → (λx · x(xx))((λx · x(xx))(λx · x(xx))

)

Omega Combinators

ω ≡ λx · xx

Ω ≡ ωω

Ω ≡ λx · x(xx)

M. Colange Lambda Calculus 32 / 74

Page 9: About these lecture notes Lambda Calculusmax/lofo/01-lambda-calculus-handout-4.pdf · M. Colange Lambda Calculus 9 / 74 What is the -calculus? A mathematical theory of functions A

More β-Reductions

(λx · xyx)λz · z → (λz · z)y(λz · z)

(λx · x)((λy · y)x) → (λx · x)(x)

(λx · x)((λy · y)x) → ((λy · y)x)

(λx · x)((λy · y)x)∗→ x

(λx · xx)((λx · xx)y)∗→ yy(yy)

(λx · xx)((λx · x)y)∗→ yy

(λx · x)((λx · xx)y)∗→ yy

Therefore

λβ ` (λx · xx)((λx · x)y) = (λx · x)((λx · xx)y)

M. Colange Lambda Calculus 33 / 74

Other rules

η-reduction

λx ·Mx →η

M

η-expansion

M →ηexp

λx ·Mx

M. Colange Lambda Calculus 34 / 74

Church-Rosser

1 λ-calculus

2 Reductionβ-ReductionChurch-RosserReduction Strategies

3 λ-calculus as a Programming Language

4 Combinatory Logic

M. Colange Lambda Calculus 35 / 74

Normal Forms

Given R , a relation on terms.

R-Normal Form (R-NF)A term M is in R-Normal Form if there is no N such that M →

RN.

R-Normalizable TermA term M is R-Normalizable (or has an R-Normal Form) if there exists aterm N in R-NF such that M

∗→R

N.

R-Strongly Normalization TermA term M is R-Strongly Normalizable there is no infinite one-stepreduction sequence starting from M. I.e., any one-step reduction sequencestarting from M ends (on a R-NF term).

M. Colange Lambda Calculus 36 / 74

Page 10: About these lecture notes Lambda Calculusmax/lofo/01-lambda-calculus-handout-4.pdf · M. Colange Lambda Calculus 9 / 74 What is the -calculus? A mathematical theory of functions A

β-Normal Terms

I = λx · x is in β-NFII has a β-NFβ-reduces to I

II is β-strongly normalizingΩ is not (weakly) normalizableΩ = (λx · xx)(λx · xx)→ (λx · xx)(λx · xx) = Ω

KI Ω is weakly normalizable (K = λx · (λy · x))KI Ω→ I

KI Ω is not strongly normalizableKI Ω→ KI Ω

M. Colange Lambda Calculus 37 / 74

Normalizing Relation

Normalizing RelationR is weakly normalizing if every term is R-normalizable.R is strongly normalizing if every term is R-strongly normalizable.

M. Colange Lambda Calculus 38 / 74

β-Reduction

Ω is not weakly normalizable

β-reduction is not weakly normalizing!

M. Colange Lambda Calculus 39 / 74

Reduction Strategy

With a weakly normalizing relation that is not strongly normalizing:some terms are not weakly normalizable but not stronglyi.e., some terms can be reduced if you reduce them “properly”

Reduction StrategyA reduction strategy is a function specifying what is the next one-stepreduction to perform.

M. Colange Lambda Calculus 40 / 74

Page 11: About these lecture notes Lambda Calculusmax/lofo/01-lambda-calculus-handout-4.pdf · M. Colange Lambda Calculus 9 / 74 What is the -calculus? A mathematical theory of functions A

Confluence

Given R , a relation on terms.

Diamond property→R

satisfies the diamond property if M →R

N1,M →R

N2 implies the

existence of L such that N1 →R

L,N2 →R

L.

Church-Rosser

→R

is Church-Rosser if ∗→R

satisfies the diamond property.

→R

is Church-Rosser if M∗→R

N1,M∗→R

N2 implies the existence of L such

that N1∗→R

L,N2∗→R

L.

M. Colange Lambda Calculus 41 / 74

Confluence

Given R , a relation on terms.

Unique Normal Form Property

→R

has the unique normal form property if M∗→R

N1,M∗→R

N2 with N1,N2

in normal form, implies N1 ≡ N2.

M. Colange Lambda Calculus 42 / 74

Properties

The diamond property implies Church-Rosser.If R is Church-Rosserthen M =

RN iff there exists L such that M

∗→R

L and N∗→R

L.

If R is Church-Rosser then it has the unique normal form property.

M. Colange Lambda Calculus 43 / 74

λ-calculus has the Church-Rosser Property

β-reduction is Church-Rosser.

Any term has (at most) a unique NF.

M. Colange Lambda Calculus 44 / 74

Page 12: About these lecture notes Lambda Calculusmax/lofo/01-lambda-calculus-handout-4.pdf · M. Colange Lambda Calculus 9 / 74 What is the -calculus? A mathematical theory of functions A

Reduction Strategies

1 λ-calculus

2 Reductionβ-ReductionChurch-RosserReduction Strategies

3 λ-calculus as a Programming Language

4 Combinatory Logic

M. Colange Lambda Calculus 45 / 74

Reduction Strategy

Reduction StrategyA reduction strategy is a (partial) function from term to term.

If → is a reduction strategy, then any term has a unique maximal reductionsequence.

M. Colange Lambda Calculus 46 / 74

Head Reduction

Head Reduction

The head reduction h→ on terms is defined by:

λ~x · (λy ·M)N~Lh→ λ~x · [N/y ]M~L

λx1 . . . xn · (λy ·M)NL1 . . . Lmh→ λx1 . . . xn · [N/y ]ML1 . . . Lm n,m ≥ 0

Note that any term has one of the following forms:

λ~x · (λy ·M)~L λ~x · y~L

M. Colange Lambda Calculus 47 / 74

Head Reduction

KI Ωh→ I

K ΩIh→ ΩI

h→ II

h→ I

xIx 6 h→ xx

Normal terms have the form:

λ~x · y~L

M. Colange Lambda Calculus 48 / 74

Page 13: About these lecture notes Lambda Calculusmax/lofo/01-lambda-calculus-handout-4.pdf · M. Colange Lambda Calculus 9 / 74 What is the -calculus? A mathematical theory of functions A

Leftmost Reduction

Leftmost Reduction

The leftmost reduction l→ performs a single step of β-conversion on theleftmost λx ·M.

Any head reduction is a leftmost reduction (but not conversly).

Leftmost reduction is normalizing.

M. Colange Lambda Calculus 49 / 74

λ-calculus as a Programming Language

1 λ-calculus

2 Reduction

3 λ-calculus as a Programming LanguageBooleansNatural NumbersPairsRecursion

4 Combinatory Logic

M. Colange Lambda Calculus 50 / 74

Booleans

1 λ-calculus

2 Reduction

3 λ-calculus as a Programming LanguageBooleansNatural NumbersPairsRecursion

4 Combinatory Logic

M. Colange Lambda Calculus 51 / 74

Booleans

How would you code Booleans in λ-calculus?How would you translate if M then N else L?ifMNL

Do we need if?What if Booleans were the if?MNL

What is true?What is false?

M. Colange Lambda Calculus 52 / 74

Page 14: About these lecture notes Lambda Calculusmax/lofo/01-lambda-calculus-handout-4.pdf · M. Colange Lambda Calculus 9 / 74 What is the -calculus? A mathematical theory of functions A

Boolean Combinators

Boolean Combinators (Church Booleans)

T := λxy · xF := λxy · y

M. Colange Lambda Calculus 53 / 74

Natural Numbers

1 λ-calculus

2 Reduction

3 λ-calculus as a Programming LanguageBooleansNatural NumbersPairsRecursion

4 Combinatory Logic

M. Colange Lambda Calculus 54 / 74

Church’s IntegersIntegers

n := λf · λx · f nx = λf · λx · (f · · · (f︸ ︷︷ ︸n times

x ) · · · )︸ ︷︷ ︸n times

2 = λf · λx · f (fx)

3 = λf · λx · f (f (fx))

M. Colange Lambda Calculus 55 / 74

Church’s IntegersOperations

succ

succ := λn · λf · λx · f (nfx)

plus

plus := λm · λn · λf · λx ·mf (nfx)

plus := λm · λn · n succ m

plus := λn · n succ

M. Colange Lambda Calculus 56 / 74

Page 15: About these lecture notes Lambda Calculusmax/lofo/01-lambda-calculus-handout-4.pdf · M. Colange Lambda Calculus 9 / 74 What is the -calculus? A mathematical theory of functions A

Pairs

1 λ-calculus

2 Reduction

3 λ-calculus as a Programming LanguageBooleansNatural NumbersPairsRecursion

4 Combinatory Logic

M. Colange Lambda Calculus 57 / 74

Church’s pairs

Pairs

pair := λxy · λf · fxy

first := λp · pT

second := λp · pF

M. Colange Lambda Calculus 58 / 74

Recursion

1 λ-calculus

2 Reduction

3 λ-calculus as a Programming LanguageBooleansNatural NumbersPairsRecursion

4 Combinatory Logic

M. Colange Lambda Calculus 59 / 74

Fixed point Combinators

Curry’s Y Combinator

Y := λf · (λx · f (xx))(λx · f (xx))

Turing’s Θ Combinator

Θ := (λxy · y(xxy))(λxy · y(xxy))

There are infinitely many fixed-point combinators.

M. Colange Lambda Calculus 60 / 74

Page 16: About these lecture notes Lambda Calculusmax/lofo/01-lambda-calculus-handout-4.pdf · M. Colange Lambda Calculus 9 / 74 What is the -calculus? A mathematical theory of functions A

Reduction strategies in Programming Languages

Full beta reductionsReduce any redex.

Applicative orderThe leftmost, innermost redex is always reduced first. Intuitivelyreduce function “arguments” before the function itself. Applicativeorder always attempts to apply functions to normal forms, even whenthis is not possible.

Normal orderThe leftmost, outermost redex is reduced first.

M. Colange Lambda Calculus 61 / 74

Reduction strategies in Programming Languages

Call by nameAs normal order, but no reductions are performed inside abstractions.λx · (λx · x)x is in NF.

Call by valueOnly the outermost redexes are reduced: a redex is reduced only whenits right hand side has reduced to a value (variable or lambdaabstraction).

Call by needAs normal order, but function applications that would duplicate termsinstead name the argument, which is then reduced only “when it isneeded”. Called in practical contexts “lazy evaluation”.

M. Colange Lambda Calculus 62 / 74

λ-calculus as a Programming Language

Lisp (xkcd 224)

M. Colange Lambda Calculus 63 / 74

Combinatory Logic

1 λ-calculus

2 Reduction

3 λ-calculus as a Programming Language

4 Combinatory Logic

M. Colange Lambda Calculus 64 / 74

Page 17: About these lecture notes Lambda Calculusmax/lofo/01-lambda-calculus-handout-4.pdf · M. Colange Lambda Calculus 9 / 74 What is the -calculus? A mathematical theory of functions A

Moses Ilyich Schönfinkel (1889–1942)

Russian logician and mathematician.Member of David Hilbert’s group atthe University of Göttingen.Mentally ill and in a sanatorium in1927.His papers were burned by hisneighbors for heating.

M. Colange Lambda Calculus 65 / 74

Combinatory Logic

λ-reductionis complexits implementation is full of subtle pitfallsinvented in 1936 by Alonzo Church

Combinatory Logica simpler alternativeinvented by Moses Schönfinkel in 1920’sdeveloped by Haskell Curry in 1925

M. Colange Lambda Calculus 66 / 74

Combinators

Classic Combinators

S := (λx · (λy · (λz · ((xz)(yz)))))

K := (λx · (λy · x))

I := (λx · x)

We no longer need λ!

SXYZ → XZ (YZ )

KXY → X

IX → X

M. Colange Lambda Calculus 67 / 74

Combinators

The Combinator I

I := (λx · x)

IX → X

SKKX → KX (KX )→ X

I = SKK

M. Colange Lambda Calculus 68 / 74

Page 18: About these lecture notes Lambda Calculusmax/lofo/01-lambda-calculus-handout-4.pdf · M. Colange Lambda Calculus 9 / 74 What is the -calculus? A mathematical theory of functions A

Combinatory Logic

S SXYZ → XZ (YZ )(λx · (λy · (λz · ((xz)(yz)))))

K KXY → X(λx · (λy · x))

I IX → X(λx · x)

M. Colange Lambda Calculus 69 / 74

Combinatory Logic

Combination is left-associative:

SKKX = (((SK )K )X )→ KX (KX )→ X

I.e., I = SKK : two symbols and two rules suffice.Same expressive power as λ-calculus.

M. Colange Lambda Calculus 70 / 74

Boolean Combinators

Boolean Combinators

T = K

F = KI

TXY → X

FXY → Y

KIXY = (((KI )X )Y )→ IY → Y

M. Colange Lambda Calculus 71 / 74

The Y Combinator in SKI

Y = S(K (SII ))(S(S(KS)K )(K (SII )))

The simplest fixed point combinator in SK

Y = SSK (S(K (SS(S(SSK ))))K

by Jan Willem Klop:

Yk = (LLLLLLLLLLLLLLLLLLLLLLLLLLLL)

where:

L = λabcdefghijklmnopqstuvwxyzr(r(thisisafixedpointcombinator))

M. Colange Lambda Calculus 72 / 74

Page 19: About these lecture notes Lambda Calculusmax/lofo/01-lambda-calculus-handout-4.pdf · M. Colange Lambda Calculus 9 / 74 What is the -calculus? A mathematical theory of functions A

Bibliography Notes

[Ker, 2005a] Complete and readable lecture notes on λ-calculus. Usesconventions different from ours.

[Ker, 2005b] Additional information, including slides.[Barendregt and Barendsen, 2000] A classical introduction to λ-calculus.

M. Colange Lambda Calculus 73 / 74

Bibliography I

Barendregt, H. and Barendsen, E. (2000).Introduction to lambda calculus.http://www.cs.ru.nl/~erikb/onderwijs/T3/materiaal/lambda.pdf.

Ker, A. D. (2005a).Lambda calculus and types.http://web.comlab.ox.ac.uk/oucl/work/andrew.ker/lambda-calculus-notes-full-v3.pdf.

Ker, A. D. (2005b).Lambda calculus notes.http://web.comlab.ox.ac.uk/oucl/work/andrew.ker/.

M. Colange Lambda Calculus 74 / 74