PPT - Programming Language Laboratory @ POSTECH

CSE-321 Programming Languages
Curry-Howard Isomorphism
박성우
POSTECH
June 12, 2006
Truth Table - Conjunction
2
Truth Table - Disjunction
3
Truth Table - Implication
4
Tautology
The computational meaning of
) Truth of A is not affected by truth of B.
5
Tautology
But what is the computational meaning of
6
Classical Logic
• Concerned with:
– "whether a given proposition is true or not."
• Every proposition is either true or false.
– Logic from God's point of view
– God is omniscient.
• Tautologies in classical logic
7
Outline
• Introduction to classical logic V
• Constructive Logic
– a.k.a intuitionistic logic
• Curry-Howard isomorphism
• Summary
8
Constructive Logic
• Logic from a human's point of view
– we know only what we can prove.
• e.g., P = NP
• Concerned with:
– "how a given proposition becomes true."
• Logic for Computer Science
– Cf. Classical logic = logic for mathematics
9
Truth Judgment in Constructive Logic
•
– "A is true."
• Not provable in constructive logic
10
Conjunction
11
Implication
12
Disjunction
13
Hypothetical Judgments
14
Inference Rules
15
Outline
•
•
•
•
Introduction to classical logic V
Constructive Logic V
Curry-Howard isomorphism
Summary
16
Proposition = Type
Proof = Proof term
17
Product Type
18
Hypothetical Judgment
19
Logic vs. Type System
20
-Reduction
21
-Reduction
22
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
23
Outline
•
•
•
•
Introduction to classical logic V
Constructive Logic V
Curry-Howard isomorphism V
Summary
24
Curry
25
Howard
26
Curry-Howard Isomorphism
=
27