With recent advances, programs can be compiled to efficiently respond to incremental input changes. However, there is no language-level support for reasoning about the time complexity of incremental updates. Motivated by this gap, we present CostIt, a higher-order functional language with a lightweight refinement type system for compositionally proving upper bounds on incremental computation time. Type refinements specify which parts of inputs and outputs may change, as well as dynamic stability, a measure of time required to propagate changes to a program’s execution trace, given modified inputs. We prove our type system sound using a new step-indexed cost semantics for change propagation and demonstrate the precision and generality of our technique through examples.
Wed 15 AprDisplayed time zone: Azores change
14:00 - 16:00 | |||
14:00 30mTalk | Making Random Judgments: Automatically Generating Well-Typed Terms from the Definition of a Type-System ESOP Burke Fetscher Northwestern University, Koen Claessen Chalmers University of Technology, Michał Pałka Chalmers University of Technology, John Hughes Chalmers University of Technology, Robert Bruce Findler Northwestern University | ||
14:30 30mTalk | Refinement Types for Incremental Computational Complexity ESOP | ||
15:00 30mTalk | Monotonic References for Efficient Gradual Typing ESOP Jeremy G. Siek Indiana University, Michael M. Vitousek Indiana University, Matteo Cimini Indiana University, Sam Tobin-Hochstadt Indiana University, Ronald Garcia University of British Columbia | ||
15:30 30mTalk | Inter-procedural Two-Variable Herbrand Equalities ESOP Stefan Schulze Frielinghaus Technische Universität München, Michael Petter Technische Universität München, Helmut Seidl Technische Universität München |