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

25ee17e694c4590abcc3c1e3c628724b?s=47 Michael Bernstein
August 20, 2015
1.3k

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

25ee17e694c4590abcc3c1e3c628724b?s=128

Michael Bernstein

August 20, 2015
Tweet

Transcript

  1. Philip Wadler “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. None
  4. None
  5. None
  6. None
  7. 1. This paper’s contributions 2. My favorite parts 3. Discussion

  8. “Propositions As Types”

  9. Contributions

  10. None
  11. “Powerful insights arise from linking two fields of study previously

    thought separate.”
  12. The history of Computer Science is very short

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

  14. There is a mechanical connection between these fields

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

  16. None
  17. Propositions as Types is a notion with many names and

    many origins
  18. Propositions as Types is a notion with depth

  19. Propositions as Types is a notion with breadth

  20. Propositions as Types is a notion with mystery

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

    you about Propositions as Types
  22. None
  23. None
  24. None
  25. None
  26. None
  27. My Favorite Parts

  28. Logic and Computation

  29. Aristotle Ockham Leibniz

  30. Boole De Morgan Frege Peirce Peano

  31. Hilbert Gödel Church Kleene Turing

  32. “Like busses: you wait two thousand years for a definition

    of ‘effectively calculable,’ and then three come along at once.”
  33. Gentzen Curry Howard

  34. “There may, indeed, be other applications of the system than

    its use as a logic.” - Alonzo Church, on the Lambda Calculus
  35. W. A. Howard. “The formulae-as-types notion of construction.”

  36. Propositions as Types

  37. 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.
  38. 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.
  39. 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.
  40. 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.
  41. Proofs are Programs

  42. Normalization of proofs is evaluation of programs

  43. Logics & Languages

  44. Intuitionistic Logic & Simply Typed Lambda Calculus

  45. Second Order Logic & Second Order Lambda Calculus

  46. Modal Logic & Monads

  47. Linear Logic & Session Types

  48. Mechanics

  49. None
  50. None
  51. None
  52. None
  53. None
  54. None
  55. None
  56. None
  57. *exhale*

  58. An Aside / Another Book

  59. Friedman and Eastlund “The Little Prover”

  60. Axioms

  61. (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))
  62. Rewriting

  63. * 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
  64. Proof Language

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

    nil))))
  66. (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))))))
  67. None
  68. Universality/Outer Space

  69. None
  70. “Propositions as Types informs our view of the universality of

    certain programming languages.”
  71. There is a thriving, proven connection between work in logic

    and work in computation
  72. Discussion

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

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