activity
20162021
most citedInteraction Trees: Representing Recursive and Impure Programs in Coq

131 citations · 190 across the 5 of their papers we have counts for

collaborators

5 papers

cs.PL2021★ 7 cited

Reasoning about the garden of forking paths

Yao Li, Li-yao Xia, Stephanie Weirich

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 e…

cs.PL2019★ 131 cited

Interaction Trees: Representing Recursive and Impure Programs in Coq

Li-yao Xia, Yannick Zakowski, Paul He +4

"Interaction trees" (ITrees) are a general-purpose data structure for representing the behaviors of recursive programs that interact with their environments. A coinductive variant…

cs.PL2019★ 1 cited

Composing bidirectional programs monadically (with appendices)

Li-yao Xia, Dominic Orchard, Meng Wang

Software frequently converts data from one representation to another and vice versa. Naively specifying both conversion directions separately is error prone and introduces conceptu…

cs.PL2018★ 47 cited

From C to Interaction Trees: Specifying, Verifying, and Testing a Networked Server

Nicolas Koh, Yao Li, Yishuai Li +6

We present the first formal verification of a networked server implemented in C. Interaction trees, a general structure for representing reactive computations, are used to tie toge…

cs.PL2016★ 4 cited

Beginner's Luck: A Language for Property-Based Generators

Leonidas Lampropoulos, Diane Gallois-Wong, Catalin Hritcu +3

Property-based random testing a la QuickCheck requires building efficient generators for well-distributed random data satisfying complex logical predicates, but writing these gener…