Published June 21, 2022 | Version 1.1.1
Software Open

Program Adverbs and Tlön Embeddings (artifact)

  • 1. University of Pennsylvania

Description

This is the artifact for the ICFP'22 paper Program Adverbs and Tlön Embeddings.

The source file as the artifact can be found at: https://github.com/lastland/ProgramAdverbs/tree/v1.1.1

The artifact contains two files: the source Coq files (ProgramAdverbSrc.tar) and a QEMU-based VM image that contains everything you need to run the proof scripts (ProgramAdverbVM.tar.xz). Detailed instructions on how to use them can be found in a README file within each individual package.

In the source file and inside the VM, there are  v1.1.1.PATCH that detail all the changes compared with v1.1.0.

The abstract of the paper:

Free monads (and their variants) have become a popular general-purpose tool for representing the semantics of effectful programs in proof assistants. These data structures support the compositional definition of semantics parameterized by uninterpreted events, while admitting a rich equational theory of equivalence. But monads are not the only way to structure effectful computation, why should we limit ourselves?

In this paper, inspired by applicative functors, selective functors, and other structures, we define a collection of data structures and theories, which we call program adverbs, that capture a variety of computational patterns. Program adverbs are themselves composable, allowing them to be used to specify the semantics of languages with multiple computation patterns. We use program adverbs as the basis for a new class of semantic embeddings called Tlön embeddings. Compared with embeddings based on free monads, Tlön embeddings allow more flexibility in computational modeling of effects, while retaining more information about the program’s syntactic structure.

Notes

The artifact contains two files: the source Coq files (ProgramAdverbSrc.tar) and a QEMU-based VM image that contains everything you need to run the proof scripts (ProgramAdverbVM.tar.xz). Detailed instructions on how to use them can be found in a README file within each individual package.

Files

Files (1.1 GB)

Name Size Download all
md5:b25f5817cbc7b9d52eb085527b2981ba
412.7 kB Download
md5:a5563c5a71ec6fcf7f7736d08b023fa2
1.1 GB Download

Additional details

Funding

U.S. National Science Foundation
Collaborative Research: Expeditions in Computing: The Science of Deep Specification 1521539
U.S. National Science Foundation
SHF: Medium: Collaborative Research: The Theory and Practice of Dependent Types in Haskell 1703835