Skip to main navigation Skip to search Skip to main content

The Search for Constrained Random Generators

  • Harrison Goldstein
  • , Hila Peleg
  • , Cassia Torczon
  • , Daniel Sainati
  • , Leonidas Lampropoulos
  • , Benjamin C. Pierce
  • University of Pennsylvania
  • University of Maryland, College Park

Research output: Contribution to journalArticlepeer-review

Abstract

Among the biggest challenges in property-based testing (PBT) is the constrained random generation problem: given a predicate on program values, randomly sample from the set of all values, and only values, satisfying that predicate. Efficient solutions to this problem are critical, since the executable specifications used by PBT often have preconditions that input values must satisfy in order to be valid test cases, and satisfying values are often sparsely distributed. We propose a novel approach to this problem using deductive program synthesis. We present a set of synthesis rules, based on a denotational semantics of generators, that give rise to an automatic procedure for synthesizing correct generators. Our system handles recursive predicates by rewriting them as catamorphisms and then matching with appropriate anamorphisms; this is theoretically simpler than other approaches to synthesis for recursive functions, yet still extremely expressive. Our implementation, Palamedes, is an extensible library for the Lean theorem prover. The synthesis algorithm itself is built out of standard proof-search tactics, reducing implementation burden and allowing the algorithm to benefit from further advances in Lean proof automation.

Original languageEnglish
Article number251
JournalProceedings of the ACM on Programming Languages
Volume10
DOIs
StatePublished - Jun 2026

Keywords

  • Lean
  • program synthesis
  • Property-based testing

Fingerprint

Dive into the research topics of 'The Search for Constrained Random Generators'. Together they form a unique fingerprint.

Cite this