Reasoning about the garden of forking paths (artifact)
Description
This is the artifact for the ICFP'21 paper Reasoning about the garden of forking paths.
The source file as the artifact can be found at: https://github.com/lastland/ClairvoyanceMonad
The artifact contains two files: the source Coq files (ClairvoyanceSrc.tar.gz
) and a QEMU-based VM image that contains everything you need to run the proof scripts (ClairvoyanceVM.tar.gz
). Detailed instructions on how to use them can be found in a README file within each individual package.
The abstract of the paper:
Lazy evaluation is a powerful tool for functional programmers. It enables the concise expression of on-demand computation and a form of compositionality not available under other evaluation strategies. However, the stateful nature of lazy evaluation makes it hard to analyze a program's computational cost, either informally or formally. In this work, we present a novel and simple framework for formally reasoning about lazy computation costs based on a recent model of lazy evaluation: clairvoyant call-by-value. The key feature of our framework is its simplicity, as expressed by our definition of the clairvoyance monad. This monad is both simple to define (around 20 lines of Coq) and simple to reason about. We show that this monad can be effectively used to mechanically reason about the computational cost of lazy functional programs written in Coq.
Notes
Files
Files
(1.3 GB)
Name | Size | Download all |
---|---|---|
md5:b9a222cdb25e07aa556ea34ece9ecff8
|
26.2 kB | Download |
md5:dd164f47794b1a609bd49f34e9fcad40
|
1.3 GB | Download |
Additional details
Related works
- Is derived from
- Software: https://github.com/lastland/ClairvoyanceMonad (URL)
- Is supplement to
- Journal article: 10.1145/3473585 (DOI)
Funding
- U.S. National Science Foundation
- Collaborative Research: Expeditions in Computing: The Science of Deep Specification 1521539