name: synthesis-specification-language
description: Define specifications for program synthesis using various paradigms
allowed-tools:
- Bash
- Read
- Write
- Edit
- Glob
- Grep
metadata:
specialization: computer-science
domain: science
category: program-synthesis
phase: 6
graph:
domains: [domain:computer-science]
specializations: [specialization:theoretical-computer-science]
skillAreas: [skill-area:graph-algorithms, skill-area:mathematical-reasoning, skill-area:language-design]
workflows: [workflow:research-grant-lifecycle]
roles: [role:research-engineer, role:research-scientist]
Synthesis Specification Language
Purpose
Provides expert guidance on defining specifications for program synthesis using examples, logic, or sketches.
Capabilities
- Input-output example specification
- Logical specification (pre/post conditions)
- Sketch-based specification
- Natural language to specification
- Specification validation
- Ambiguity detection
Usage Guidelines
- Paradigm Selection: Choose specification paradigm
- Specification Writing: Write formal specification
- Validation: Validate specification for completeness
- Disambiguation: Resolve specification ambiguities
- Integration: Connect to synthesis engines
Tools/Libraries
- SyGuS format
- Sketch
- Rosette
- FlashFill