Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Michael Bernstein on Propositions as Types

Michael Bernstein on Propositions as Types

I’ll (Michael) be talking about Philip Wadler’s paper "Propositions as Types," which starts out with the following sentence:

"Powerful insights arise from linking two fields of study previously thought separate."

And just keeps on going from there. In less than 9 full pages, Wadler assembles an exuberant, hilarious take on the deep, meaningful connections between mathematics, philosophy, and computer science.

I’ll also be showing off some work from Daniel P. Friedman and Carl Eastlund’s recent book "The Little Prover," which implements a small theorem prover in Scheme, to demonstrate some of the connections Wadler discusses in his paper.

Papers_We_Love

August 17, 2015
Tweet

More Decks by Papers_We_Love

Other Decks in Technology

Transcript

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

    of ‘effectively calculable,’ and then three come along at once.”
  2. “There may, indeed, be other applications of the system than

    its use as a logic.” - Alonzo Church, on the Lambda Calculus
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. (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))
  8. * 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
  9. (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))))))