ICFP 2018 (series) / Research Papers /
What's the Difference? A Functional Pearl on Subtracting Bijections
It is a straightforward exercise to write a program to “add” two bijections—resulting in a bijection between two sum types, which runs the first bijection on elements from the left summand and the second bijection on the right. It is much less obvious how to “subtract” one bijection from another. This problem has been studied in the context of combinatorics, with several computational principles known for producing the ``difference'' of two bijections. We consider the problem from a computational and algebraic perspective, showing how to construct such bijections at a high level, avoiding pointwise reasoning or being forced to construct the forward and backward directions separately—without sacrificing performance.
Wed 26 SepDisplayed time zone: Guadalajara, Mexico City, Monterrey change
Wed 26 Sep
Displayed time zone: Guadalajara, Mexico City, Monterrey change
10:30 - 12:00 | |||
10:30 22mTalk | Partially-Static Data as Free Extension of Algebras Research Papers Jeremy Yallop University of Cambridge, UK, Tamara von Glehn University of Cambridge, Ohad Kammar University of Oxford Link to publication DOI Pre-print | ||
10:52 22mTalk | Relational Algebra by Way of AdjunctionsDistinguished Paper Research Papers Jeremy Gibbons Department of Computer Science, University of Oxford, Fritz Henglein Department of Computer Science, University of Copenhagen (DIKU), Ralf Hinze Radboud University Nijmegen, Nicolas Wu University of Bristol, UK DOI | ||
11:15 22mTalk | Strict and Lazy Semantics for Effects: Layering Monads and Comonads Research Papers DOI | ||
11:37 22mTalk | What's the Difference? A Functional Pearl on Subtracting Bijections Research Papers DOI |