6 citations · 9 across the 6 of their papers we have counts for
6 papers
Proving and Computing: The Infinite Pigeonhole Principle and Countable Choice
Zena M. Ariola, Paul Downen, Hugo Herbelin
Structural recursion is a common technique used by programmers in modern languages and is taught to introductory computer science students. But what about its dual, structural core…
Controlling Copatterns: There and Back Again (Extended Version)
Paul Downen
Copatterns give functional programs a flexible mechanism for responding to their context, and composition can greatly enhance their expressiveness. However, that same expressive po…
Classical (Co)Recursion: Mechanics
Paul Downen, Zena M. Ariola
Primitive recursion is a mature, well-understood topic in the theory and practice of programming. Yet its dual, primitive corecursion, is underappreciated and still seen as exotic.…
Classical (Co)Recursion: Programming
Paul Downen, Zena M. Ariola
Our aim here is to illustrate how the benefits of structural corecursion can be found in a broader swath of the programming landscape than previously thought. Beginning from a tuto…
Compiling With Classical Connectives
Paul Downen, Zena M. Ariola
The study of polarity in computation has revealed that an "ideal" programming language combines both call-by-value and call-by-name evaluation; the two calling conventions are each…
First Class Call Stacks: Exploring Head Reduction
Philip Johnson-Freyd, Paul Downen, Zena M. Ariola
Weak-head normalization is inconsistent with functional extensionality in the call-by-name -calculus. We explore this problem from a new angle via the conflict between extension…