Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of...

43
Lecture 20: λ Calculus λ Calculus & Computabili ty Yan Huang Dept. of Comp. Sci. University of Virginia

Transcript of Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of...

Page 1: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

Lecture 20: λ Calculus

λ Calculus & Computability

Yan Huang

Dept. of Comp. Sci.

University of Virginia

Page 2: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

2Lecture 20: λ Calculus

• Formalism • Abstract Problems• Language Problems• Computation• Computability vs. Decidability

Review of the Turing Machine

(Q;¡ ;§ ;±;qstar t;qaccept;qr ej ect)

Today we are looking at a completely different formal computation model – the λ-Calculus!

Page 3: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

3Lecture 20: λ Calculus

Calculus

• What is calculus?– Calculus is a branch of mathematics that

includes the study of limits, derivatives, integrals, and infinite series.

• Examples

The product rule

The chain rule

Page 4: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

4Lecture 20: λ Calculus

Real Definition

• Calculus is just a bunch of rules for manipulating symbols.

• People can give meaning to those symbols, but that’s not part of the calculus.

• Differential calculus is a bunch of rules for manipulating symbols. There is an interpretation of those symbols corresponds with physics, geometry, etc.

Page 5: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

5Lecture 20: λ Calculus

λ Calculus Formalism (Grammar)

• Key words: λ . ( ) terminals

• term → variable

| ( term )

| λ variable . term

| term term

Humans can give meaning to those symbols in a way that corresponds to computations.

Page 6: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

6Lecture 20: λ Calculus

λ Calculus Formalism (rules)

• Rules

-reduction (renaming)

y. M v. (M [y v])

where v does not occur in M.

-reduction (substitution)

(x. M)N M [ x N ]

Replace all x’s in Mwith N

Try Example 1, 2, & 3 on the notes now!

Page 7: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

7Lecture 20: λ Calculus

Free and Bound variables

• In λ Calculus all variables are local to function definitions

• Examples– λx.xy

x is bound, while y is free;

– (λx.x)(λy.yx) x is bound in the first function, but free in the second function

– λx.(λy.yx) x and y are both bound variables. (it can be abbreviated as

λxy.yx )

Page 8: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

8Lecture 20: λ Calculus

Be careful about -Reduction

• (x. M)N M [ x N ]

Replace all x’s in Mwith N

If the substitution would bring a free variable of N in an expression where this variable occurs bound, we rename the bound variable before the substitution.

Try Example 4 on the notes now!

Page 9: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

9Lecture 20: λ Calculus

Computing Model for Calculus• redex: a term of the form (x. M)N

Something that can be -reduced

• An expression is in normal form if it contains no redexes (redices).

• To evaluate a lambda expression, keep doing reductions until you get to normal form.

-Reduction represents all the computation capability of Lambda calculus.

Page 10: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

10Lecture 20: λ Calculus

Another exercise

( f. (( x. f (xx)) ( x. f (xx)))) (z.z)

Page 11: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

11Lecture 20: λ Calculus

Possible Answer

( f. (( x.f (xx)) ( x. f (xx)))) (z.z)

(x.(z.z)(xx)) ( x. (z.z)(xx))

(z.z) ( x.(z.z)(xx)) ( x.(z.z)(xx))

(x.(z.z)(xx)) ( x.(z.z)(xx))

(z.z) ( x.(z.z)(xx)) ( x.(z.z)(xx))

(x.(z.z)(xx)) ( x.(z.z)(xx))

...

Page 12: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

12Lecture 20: λ Calculus

Alternate Answer

( f. (( x.f (xx)) ( x. f (xx)))) (z.z)

(x.(z.z)(xx)) ( x. (z.z)(xx))

(x.xx) (x.(z.z)(xx))

(x.xx) (x.xx)

(x.xx) (x.xx)

...

Page 13: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

13Lecture 20: λ Calculus

Be Very Afraid!

• Some -calculus terms can be -reduced forever!

• The order in which you choose to do the reductions might change the result!

Page 14: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

14Lecture 20: λ Calculus

Take on Faith• All ways of choosing reductions that reduce

a lambda expression to normal form will produce the same normal form (but some might never produce a normal form).

• If we always apply the outermost lambda first, we will find the normal form if there is one.– This is normal order reduction – corresponds to

normal order (lazy) evaluation

Page 15: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

15Lecture 20: λ Calculus

Alonzo Church (1903~1995)

Lambda Calculus

Church-Turing thesis

If an algorithm (a procedure that terminates) exists then there is an equivalent Turing Machine or applicable λ-function for that algorithm.

Page 16: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

16Lecture 20: λ Calculus

Alan M. Turing (1912~1954)

• Turing Machine• Turing Test• Head of Hut 8

Advisor: Alonzo Church

Page 17: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

17Lecture 20: λ Calculus

Equivalence in Computability

• λ Calculus ↔ Turing Machine– (1) Everything computable by λ Calculus can

be computed using the Turing Machine.– (2) Everything computable by the Turing

Machine can be computed with λ Calculus.

Page 18: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

18Lecture 20: λ Calculus

Simulate λ Calculus with TM

• The initial tape is filled with the initial λ expression

• Finite number of reduction rules can be implemented by the finite state automata in the Turing Machine

• Start the Turing Machine; it either stops – ending with the λ expression on tape in normal form, or continues forever – the -reductions never ends.

Page 19: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

19Lecture 20: λ Calculus

WPI hacker implemented it on Z8 microcontroller

On Zilog Z8 Encore

Page 20: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

20Lecture 20: λ Calculus

Calculus in a Can

• Project LambdaCan

Refer to http://alum.wpi.edu/~tfraser/Software/Arduino/lambdacan.html for instructions to build your own -can!

Page 21: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

21Lecture 20: λ Calculus

Equivalence in Computability

• λ Calculus ↔ Turing Machine– (1) Everything computable by λ Calculus can

be computed using the Turing Machine.– (2) Everything computable by the Turing

Machine can be computed with λ Calculus.

Page 22: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

22Lecture 20: λ Calculus

Simulate TM with λ Calculus

• Simulating the Universal Turing Machinez z z z z z z z z z z z z zz z z z

1

Start

HALT

), X, L

2: look for (

#, 1, -

), #, R

(, #, L

(, X, R

#, 0, -

Finite State Machine

Read/Write Infinite TapeMutable Lists

Finite State MachineNumbers

ProcessingWay to make decisions (if)Way to keep going

Page 23: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

23Lecture 20: λ Calculus

Making Decisions

• What does decision mean?– Choosing different strategies depending on

the predicate

• What does True mean?– True is something that when used as the first

operand of if, makes the value of the if the value of its second operand:

if T M N Mif F M N N

Page 24: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

24Lecture 20: λ Calculus

Finding the Truth

if pca . pca

T xy. x

F xy. y

if T M N ((pca . pca) (xy. x)) M N

(ca . (xy. x) ca)) M N

(xy. x) M N

(y. M )) N M

Try out reducing (if F T F) on your notes now!

Page 25: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

25Lecture 20: λ Calculus

and and or?

• and xy.(if x y F)

xy.((pca.pca) x y F)

xy.(x y F)

xy.(x y (uv.v))

• or xy.(if x T y)

much more human-readable!

Page 26: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

26Lecture 20: λ Calculus

Simulate TM with λ Calculus

• Simulating the Universal Turing Machinez z z z z z z z z z z z z zz z z z

1

Start

HALT

), X, L

2: look for (

#, 1, -

), #, R

(, #, L

(, X, R

#, 0, -

Finite State Machine

Read/Write Infinite TapeMutable Lists

Finite State MachineNumbers

ProcessingWay to make decisions (if)Way to keep going

X

Page 27: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

27Lecture 20: λ Calculus

What is 11?

eleven

11

elf

十一

одиннадцать

أحد عش

once

イレブン

onze

undici

XI

Page 28: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

28Lecture 20: λ Calculus

Numbers

• The natural numbers had their origins in the words used to count things

• Numbers as abstractions

pred (succ N) Nsucc (pred N) Npred (0) 0succ (zero) 1

Page 29: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

29Lecture 20: λ Calculus

Defining Numbers

• In Church numerals, n is represented as a function that maps any function f to its n-fold composition.

• 0 ≡ λ f x. x• 1 ≡ λ f x. f (x)

• 2 ≡ λ f x. f (f (x))

Page 30: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

30Lecture 20: λ Calculus

Defining succ and pred

• succ ≡ λ n f x. f (n f x)

• pred ≡ λ n f x. n (λgh. h (g f )) (λu. x) (λu. u)

• succ 1 ? We’ll see later how to deduce the term for pred using knowledge about pairs.

Page 31: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

31Lecture 20: λ Calculus

Simulate TM with λ Calculus

• Simulating the Universal Turing Machinez z z z z z z z z z z z z zz z z z

1

Start

HALT

), X, L

2: look for (

#, 1, -

), #, R

(, #, L

(, X, R

#, 0, -

Finite State Machine

Read/Write Infinite TapeMutable Lists

Finite State MachineNumbers

ProcessingWay to make decisions (if)Way to keep going

X

X

Page 32: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

32Lecture 20: λ Calculus

Defining List

• List is either– (1) null; or– (2) a pair whose second element is a list.

How to define null and pair then?

Page 33: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

33Lecture 20: λ Calculus

null, null?, pair, first, rest

null? null Tnull? ( pair M N ) F

first ( pair M N ) Mrest ( pair M N) N

Page 34: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

34Lecture 20: λ Calculus

null and null?

• null x.T

• null? x.(x yz.F)

• null? null (x.(x yz.F)) (x. T)

(x. T)(yz.F)

T

Page 35: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

35Lecture 20: λ Calculus

Defining Pair

• A pair [a, b] = (pair a b) is represented as λ z .z a b

• first ≡ λp.p T• rest ≡ λp.p F• pair ≡ λ x y z .z x y• first (cons M N) ( λp.p T ) (pair M N) (pair M N) T (λ z .z M N) T T M N M

Page 36: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

36Lecture 20: λ Calculus

Defining pred

• C ≡ λpz.(z (succ ( first p )) ( first p ) ) Obviously, C [n, n-1] [n+1, n], i.e., C

turns a pair [n, n-1] to be [n+1, n].

• pred ≡ rest (λn . n C (λz.z 0 0))

Page 37: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

37Lecture 20: λ Calculus

Simulate TM with λ Calculus

• Simulating the Universal Turing Machinez z z z z z z z z z z z z zz z z z

1

Start

HALT

), X, L

2: look for (

#, 1, -

), #, R

(, #, L

(, X, R

#, 0, -

Finite State Machine

Read/Write Infinite TapeMutable Lists

Finite State MachineNumbers

ProcessingWay to make decisions (if)Way to keep going

X

X

X

Page 38: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

38Lecture 20: λ Calculus

Simulate Recursion

( f. (( x.f (xx)) ( x. f (xx)))) (z.z)

(x.(z.z)(xx)) ( x. (z.z)(xx))

(z.z) ( x.(z.z)(xx)) ( x.(z.z)(xx))

(x.(z.z)(xx)) ( x.(z.z)(xx))

(z.z) ( x.(z.z)(xx)) ( x.(z.z)(xx))

(x.(z.z)(xx)) ( x.(z.z)(xx))

...This should give you some belief that we might be able to do it. We won’t cover the details of why this works in this class.

Page 39: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

39Lecture 20: λ Calculus

Simulate TM with λ Calculus

• Simulating the Universal Turing Machinez z z z z z z z z z z z z zz z z z

1

Start

HALT

), X, L

2: look for (

#, 1, -

), #, R

(, #, L

(, X, R

#, 0, -

Finite State Machine

Read/Write Infinite TapeMutable Lists

Finite State MachineNumbers

ProcessingWay to make decisions (if)Way to keep going

X

X

X

X

Page 40: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

40Lecture 20: λ Calculus

Introducing Scheme

• Scheme is a dialect of LISP programming language

• Computation in Scheme is a little higher level than in -Calculus in the sense that the more “human-readable” primitives (like T, F, if, natural numbers, null, null?, and cons, etc) have already been defined for you.

• The basic reduction rules are exactly the same.

Page 41: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

41Lecture 20: λ Calculus

A Turing simulator in Scheme

Page 42: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

42Lecture 20: λ Calculus

TM Simulator demonstration

A Turing Machine recognizing anbn Encoding of theFSM in Scheme.

Page 43: Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.

43Lecture 20: λ Calculus

Summary: TM and λ Calculus

• λ Calculus emphasizes the use of transformation rules and does not care about the actual machine implementing them.

• It is an approach more related to software than to hardware

Many slides and examples are adapted from materials developed for Univ. of Virginia CS150 by David Evans.