Slide 1

Slide 1 text

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.

Slide 41

Slide 41 text

Proofs are Programs

Slide 42

Slide 42 text

Normalization of proofs is evaluation of programs

Slide 43

Slide 43 text

Logics & Languages

Slide 44

Slide 44 text

Intuitionistic Logic & Simply Typed Lambda Calculus

Slide 45

Slide 45 text

Second Order Logic & Second Order Lambda Calculus

Slide 46

Slide 46 text

Modal Logic & Monads

Slide 47

Slide 47 text

Linear Logic & Session Types

Slide 48

Slide 48 text

Mechanics

Slide 49

Slide 49 text

No content

Slide 50

Slide 50 text

No content

Slide 51

Slide 51 text

No content

Slide 52

Slide 52 text

No content

Slide 53

Slide 53 text

No content

Slide 54

Slide 54 text

No content

Slide 55

Slide 55 text

No content

Slide 56

Slide 56 text

No content

Slide 57

Slide 57 text

*exhale*

Slide 58

Slide 58 text

An Aside / Another Book

Slide 59

Slide 59 text

Friedman and Eastlund “The Little Prover”

Slide 60

Slide 60 text

Axioms

Slide 61

Slide 61 text

(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

Slide 64

Slide 64 text

Proof Language

Slide 65

Slide 65 text

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

Slide 66

Slide 66 text

(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

Slide 72

Slide 72 text

Discussion

Slide 73

Slide 73 text

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

Slide 74

Slide 74 text

*Thank You* w michaelrbernste.in t @mrb_bk