Philip Wadler
“Propositions As Types”
Michael R. Bernstein
Papers We Love NYC / 2015.8.17 / New York, New York
Slide 2
Slide 2 text
Dedicated to:
James Lennon Engels Golick
Slide 3
Slide 3 text
No content
Slide 4
Slide 4 text
No content
Slide 5
Slide 5 text
No content
Slide 6
Slide 6 text
No content
Slide 7
Slide 7 text
1. This paper’s contributions
2. My favorite parts
3. Discussion
Slide 8
Slide 8 text
“Propositions As Types”
Slide 9
Slide 9 text
Contributions
Slide 10
Slide 10 text
No content
Slide 11
Slide 11 text
“Powerful insights
arise from linking two
fields of study
previously thought
separate.”
Slide 12
Slide 12 text
The history of
Computer Science
is very short
Slide 13
Slide 13 text
The history of logic
and philosophy are
its pre-history
Slide 14
Slide 14 text
There is a mechanical
connection between
these fields
Slide 15
Slide 15 text
It can pretty much
be explained with
a dotted line
Slide 16
Slide 16 text
No content
Slide 17
Slide 17 text
Propositions as Types is a
notion with many names and
many origins
Slide 18
Slide 18 text
Propositions as Types is a
notion with depth
Slide 19
Slide 19 text
Propositions as Types is a
notion with breadth
Slide 20
Slide 20 text
Propositions as Types is a
notion with mystery
Slide 21
Slide 21 text
“Propositions as Types” is
exciting, and is excellent at
teaching you about
Propositions as Types
Slide 22
Slide 22 text
No content
Slide 23
Slide 23 text
No content
Slide 24
Slide 24 text
No content
Slide 25
Slide 25 text
No content
Slide 26
Slide 26 text
No content
Slide 27
Slide 27 text
My Favorite Parts
Slide 28
Slide 28 text
Logic and Computation
Slide 29
Slide 29 text
Aristotle
Ockham
Leibniz
Slide 30
Slide 30 text
Boole
De Morgan
Frege
Peirce
Peano
Slide 31
Slide 31 text
Hilbert
Gödel
Church
Kleene
Turing
Slide 32
Slide 32 text
“Like busses: you wait
two thousand years for
a definition of
‘effectively calculable,’
and then three come
along at once.”
Slide 33
Slide 33 text
Gentzen
Curry
Howard
Slide 34
Slide 34 text
“There may, indeed, be other
applications of the system
than its use as a logic.”
- Alonzo Church, on the Lambda Calculus
Slide 35
Slide 35 text
W. A. Howard.
“The formulae-as-types
notion of construction.”
Slide 36
Slide 36 text
Propositions as Types
Slide 37
Slide 37 text
Conjunction A ∧ B corresponds to cartesian product A x B,
Disjunction A ∨ B corresponds to a disjoint sum A + B
Implication A ⊃ B corresponds to function space A → B. A
proof of the proposition A ⊃ B consists of a procedure that given
a proof of A yields a proof of B.
Slide 38
Slide 38 text
Conjunction A ∧ B corresponds to cartesian product A x B,
Disjunction A ∨ B corresponds to a disjoint sum A + B
Implication A ⊃ B corresponds to function space A → B. A
proof of the proposition A ⊃ B consists of a procedure that given
a proof of A yields a proof of B.
Slide 39
Slide 39 text
Conjunction A ∧ B corresponds to cartesian product A x B,
Disjunction A ∨ B corresponds to a disjoint sum A + B
Implication A ⊃ B corresponds to function space A → B. A
proof of the proposition A ⊃ B consists of a procedure that given
a proof of A yields a proof of B.
Slide 40
Slide 40 text
Conjunction A ∧ B corresponds to cartesian product A x B,
Disjunction A ∨ B corresponds to a disjoint sum A + B
Implication A ⊃ B corresponds to function space A → B. A
proof of the proposition A ⊃ B consists of a procedure that given
a proof of A yields a proof of B.
(dethm if-true (x y)
(equal (if 't x y) x))
(dethm if-false (x y)
(equal (if 'nil x y) y))
(dethm if-same (x y)
(equal (if x y y) y))
Slide 62
Slide 62 text
Rewriting
Slide 63
Slide 63 text
* Replace a function application with
its body
* Replace expressions according to
axioms
* Prove that a function is total
* Leverage homoiconic language for
maximum theorem proving fun
(defun dethm.first-of-pair ()
(J-Bob/define (defun.second-of)
'(((dethm first-of-pair (a b)
(equal (first-of (pair a b)) a))
nil
((1 1) (pair a b))
((1) (first-of (cons a (cons b '()))))
((1) (car/cons a (cons b '())))
(() (equal-same a))))))
Slide 67
Slide 67 text
No content
Slide 68
Slide 68 text
Universality/Outer Space
Slide 69
Slide 69 text
No content
Slide 70
Slide 70 text
“Propositions as Types
informs our view of the
universality of certain
programming languages.”
Slide 71
Slide 71 text
There is a thriving,
proven connection
between work in logic and
work in computation