DryadSynth

A SyGuS Solver for Advanced Program Synthesis

DryadSynth is an open-source, state-of-the-art syntax-guided synthesis (SyGuS) engine developed at Purdue University. It leverages a novel cooperative synthesis framework that seamlessly integrates enumerative search and deductive synthesis.

About DryadSynth

DryadSynth is designed to automatically generate programs that satisfy both semantic specifications and user–defined syntactic constraints. By combining the strengths of enumerative and deductive techniques, DryadSynth employs a divide-and-conquer strategy that:

  • Splits complex synthesis problems into manageable subproblems: Using innovative fixed-height enumeration and tailored deductive rules, the engine gradually builds up solutions.
  • Supports concurrent synthesis: Its concurrent framework (see our string sub-solver "Synthphonia") coordinates asynchronous deduction and enumeration to overcome exponential search spaces.
  • Is versatile across multiple domains: DryadSynth effectively supports synthesis for conditional linear integer arithmetic (CLIA), bit-vectors, and string transformations.

Based on our research published at PLDI 2020, POPL 2024, and PLDI 2025 (Conditional Accepted) , DryadSynth represents a significant step forward in scaling synthesis to problems previously deemed unsolvable.

Features

Hybrid Synthesis Approach

Combines enumerative search with deductive synthesis to explore program spaces efficiently.

Cooperative Divide-and-Conquer

Uses novel strategies to break down synthesis tasks into subproblems that can be solved independently and later recombined.

Concurrent Synthesis Engine

Integrates asynchronous deduction with a versatile enumerator (as seen in our string synthesis module, Synthphonia) for faster convergence.

Domain Versatility

Supports multiple synthesis tracks including CLIA, bit-vectors, and string transformations.

Lightweight and Extensible

Implemented in approximately 11K lines of Java leveraging the power of Z3, DryadSynth is both easy to understand and extend.

Open Source & MIT Licensed

Freely available for both research and commercial applications.

Documentation

DryadSynth is published on crates.io, the Rust package registry. Explore our packages:

For further details on installation, usage, and design, please refer to ourREADME.

Publications

Reconciling Enumerative and Deductive Program Synthesis

Kangjing Huang, Xiaokang Qiu, Peiyuan Shen, Yanjun Wang.

In Proc. 41st ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI '20).

Enhanced Enumeration Techniques for Syntax-Guided Synthesis

Yuantian Ding, Xiaokang Qiu.

In Proc. 51st ACM SIGPLAN Symposium on Principles of Programming Languages (POPL '24).

A Concurrent Approach to String Transformation Synthesis

Yuantian Ding, Xiaokang Qiu.

Conditional Accepted at 46th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI '25).

Purdue CAP Team

DryadSynth is developed by the Purdue Computer-Aided Programming (CAP) research group, focusing on program synthesis, verification, and automated reasoning.

Xiaokang Qiu Logo

Xiaokang Qiu

Principal Investigator

Yuantian Ding Logo

Yuantian Ding

Current Maintainer

Downloads

Get the latest version of DryadSynth from our GitHub repository: