Michael Bernstein
August 20, 2015
1.5k

# Papers We Love NYC: "Propositions As Types" By Philip Wadler

August 20, 2015

## Transcript

“Propositions As Types”
Michael R. Bernstein
Papers We Love NYC / 2015.8.17 / New York, New York

2. Dedicated to:
James Lennon Engels Golick

3. 1. This paper’s contributions
2. My favorite parts
3. Discussion

4. “Propositions As Types”

5. Contributions

6. “Powerful insights
ﬁelds of study
previously thought
separate.”

7. The history of
Computer Science
is very short

8. The history of logic
and philosophy are
its pre-history

9. There is a mechanical
connection between
these ﬁelds

10. It can pretty much
be explained with
a dotted line

11. Propositions as Types is a
notion with many names and
many origins

12. Propositions as Types is a
notion with depth

13. Propositions as Types is a

14. Propositions as Types is a
notion with mystery

15. “Propositions as Types” is
exciting, and is excellent at
Propositions as Types

16. My Favorite Parts

17. Logic and Computation

18. Aristotle
Ockham
Leibniz

19. Boole
De Morgan
Frege
Peirce
Peano

20. Hilbert
Gödel
Church
Kleene
Turing

21. “Like busses: you wait
two thousand years for
a deﬁnition of
‘eﬀectively calculable,’
and then three come
along at once.”

22. Gentzen
Curry
Howard

23. “There may, indeed, be other
applications of the system
than its use as a logic.”
- Alonzo Church, on the Lambda Calculus

24. W. A. Howard.
“The formulae-as-types
notion of construction.”

25. Propositions as Types

26. 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.

27. 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.

28. 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.

29. 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.

30. Proofs are Programs

31. Normalization of proofs is
evaluation of programs

32. Logics & Languages

33. Intuitionistic Logic
&
Simply Typed Lambda
Calculus

34. Second Order Logic
&
Second Order Lambda
Calculus

35. Modal Logic
&

36. Linear Logic
&
Session Types

37. Mechanics

38. *exhale*

39. An Aside / Another Book

40. Friedman and Eastlund
“The Little Prover”

41. Axioms

42. (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))

43. Rewriting

44. * 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

45. Proof Language

46. (defun defun.first-of ()
(J-Bob/define (defun.pair)
'(((defun first-of (x)
(car x))
nil))))

47. (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))))))

48. Universality/Outer Space

49. “Propositions as Types
informs our view of the
universality of certain
programming languages.”

50. There is a thriving,
proven connection
between work in logic and
work in computation

51. Discussion

52. Works Cited
http://bit.ly/1DTWE8Q

53. *Thank You*
w michaelrbernste.in
t @mrb_bk