cse-321 programming languages curry-howard isomorphism

25
CSE-321 Programming Languages Curry-Howard Isomorphism POSTECH June 4, 2009 박박박

Upload: khuyen

Post on 23-Jan-2016

37 views

Category:

Documents


0 download

DESCRIPTION

CSE-321 Programming Languages Curry-Howard Isomorphism. 박성우. POSTECH June 4, 2009. ?. Truth Table. T = True, F = False. ???. Tautology. The computational meaning of. ) Truth of A is not affected by truth of B. Tautology. But what is the computational meaning of. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: CSE-321 Programming Languages Curry-Howard Isomorphism

CSE-321 Programming Languages

Curry-Howard Isomorphism

POSTECH

June 4, 2009

박성우

Page 2: CSE-321 Programming Languages Curry-Howard Isomorphism

2

Truth Table• T = True, F = False

????

Page 3: CSE-321 Programming Languages Curry-Howard Isomorphism

3

Tautology

The computational meaning of

) Truth of A is not affected by truth of B.

Page 4: CSE-321 Programming Languages Curry-Howard Isomorphism

4

Tautology

But what is the computational meaning of

Page 5: CSE-321 Programming Languages Curry-Howard Isomorphism

5

Classical Logic• Concerned with:

– "whether a given proposition is true or not."• Every proposition is either true or false.

– Logic from omniscient God's point of view

• Logic for mathematics

• Tautologies in classical logic

law of double-negation

Peirce's law

law of excluded middle

Page 6: CSE-321 Programming Languages Curry-Howard Isomorphism

6

Constructive Logic• Logic from a human's point of view

– we know only what we can prove.• Eg. P = NP

• Logic for computer science

• Not provable in constructive logic

Page 7: CSE-321 Programming Languages Curry-Howard Isomorphism

7

Classical vs. Constructive• Proposition: there exists a rational number ab

such that a and b are both irrational numbers.• Proof in classical logic

– let c = p2p2

• if c = p2p2 is rational,let a = b = p2 = irrational.

then ab = p2p2 = rational.• if c = p2p2 is irrational,

let a = c = p2p2 = irrational, b = p2 = irrational.then ab = (p2p2)p2 = p22 = 2 = rational.

– But what are a and b at all?

• Proof in constructive logic– more involved, but provides a and b.

Page 8: CSE-321 Programming Languages Curry-Howard Isomorphism

8

Constructive Conjunction

Page 9: CSE-321 Programming Languages Curry-Howard Isomorphism

9

Constructive Implication

Page 10: CSE-321 Programming Languages Curry-Howard Isomorphism

10

Disjunction

?

Page 11: CSE-321 Programming Languages Curry-Howard Isomorphism

11

Outline• Classical logic vs Constructive logic V• Curry-Howard isomorphism• Summary

Page 12: CSE-321 Programming Languages Curry-Howard Isomorphism

12

Curry-Howard Isomorphism

Logic Type System

proposition type

proof proof term (expression)

Page 13: CSE-321 Programming Languages Curry-Howard Isomorphism

13

Conjunction vs. Product Type

Page 14: CSE-321 Programming Languages Curry-Howard Isomorphism

14

Logic vs. Type System

Page 15: CSE-321 Programming Languages Curry-Howard Isomorphism

15

Reduction

Page 16: CSE-321 Programming Languages Curry-Howard Isomorphism

16

Reduction

Page 17: CSE-321 Programming Languages Curry-Howard Isomorphism

17

Curry-Howard Isomorphism

Logic Type System

propositional logic simply-type -calculus

first-order logic dependent types

second-order logic polymorphism

modal logic modal type system

classical logic continuations?

Page 18: CSE-321 Programming Languages Curry-Howard Isomorphism

18

Four Color Problem• "Every map can be colored with no more than 4 colors."

• Proposed in 1852• Computer-based solution published in 1976• Formalization of the proof in 1994

– theorem prover Coq

5 4

to be taught in LICS Fall 2009!

Page 19: CSE-321 Programming Languages Curry-Howard Isomorphism

19

Final Assignment in LICS 2009• Proof of the Pythagoras' theorem

Theorem even_is_even_times_even: forall (n : nat), even (n * n) -> even n.

Theorem main_thm: forall (n p : nat), n * n = double (p * p) -> p = 0.

Definition irrational (x : R) : Prop := forall (p : Z) (q : nat), q <> 0 -> x <> (p / q)%R.

Theorem irrational_sqrt_2: irrational (sqrt 2%nat).

Page 20: CSE-321 Programming Languages Curry-Howard Isomorphism

20

Outline• Classical logic vs Constructive logic V• Curry-Howard isomorphism V• Summary

Page 21: CSE-321 Programming Languages Curry-Howard Isomorphism

21

Curry

Page 22: CSE-321 Programming Languages Curry-Howard Isomorphism

22

Howard

Page 23: CSE-321 Programming Languages Curry-Howard Isomorphism

23

Curry-Howard Isomorphism

=

Page 24: CSE-321 Programming Languages Curry-Howard Isomorphism

Finally we will have ...

Page 25: CSE-321 Programming Languages Curry-Howard Isomorphism

25

Final Exam• 1.5 hours• Closed book• Covers all chapters.

June 2009Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 1314 15 16 17 18 19 2021 22 23 24 25 26 2728 29 30