Stuff written by other people (that I liked)
Phil Wadler's excellent Advice on circumventing the disadvantages of laziness in Haskell. This focuses mainly on the unpredictability of space complexity; the other major disadvantage to lazy-by-default (as I see it) is the lack of anything like a “stack trace” to include with runtime errors. John Ousterhout's Fortnight Milestones How to get Proof General to invoke coq with -fimpredicative-set; with newer versions of Proof General you need to put this at the end of your script:
(*
*** Local Variables: *** *** coq-prog-name: "coqtop" *** *** coq-prog-args: ("-I" "." "-emacs" "-impredicative-set") *** *** End: *** *)
William Wulf's
Phil Wadler's law of language design
Some objections to XML which resonate with me: C2 Wiki and IBM. Dan Bernstein's has a great analysis of IPv6. Did you know that Don Knuth invented indentation-based subexpressions?
The Two Cultures of Mathematics explains the subtle divide between “combinatorics” and logicians in some math cultures. I used to use darcs but recently switched to git. Nice quote by Norman Ramsey: “The highly touted 'theory of patches' is not published anywhere in any form that can be understood and checked by anyone with a little bit of mathematics (e.g., group theory or algebra).” Random Type Theory LinksAn example of a practical use for weakly positive (positive but not strictly-positive) types in System F.
Frank Pfenning's research on subtyping and intersection types is essential reading; although he has many papers on this subject, it seems that only Hurkens ParadoxIn the Calculus of Constructions, there is a very delicate relationship between proof-irrelevance, excluded middle, and various weak axioms of choice. This relationship is most succinctly revealed by the Hurkens Paradox. There are numerous papers on this topic, but I've found only one that's approachable for a beginner: Barbanera and Berardi's Proof-irrelevance out of Excluded-middle and Choice in the Calculus of Constructions. In particular, this paper explains how excluded middle and a strong choice axiom force proof-irrelevance. The extraction principles in Set can be viewed as a weak form of choice (definite description), and excluded middle lets one case-discriminate on whether or not a type is inhabited; this gives some intuition for the reason why -impredicative-set is incompatible with classical reasoning. Unfortunately this article is in Volume 6 of the Journal of Functional Programming, whose online archives only include Volume 7 and later.
|