SPS-VeriSpec
Zheng Wangyuan · Team SPS-VeriSpec
Submitted to The Secure Program Synthesis Hackathon. Sprint projects are early-stage work by participants, not Apart Research publications.
We implemented a complete pipeline from Python program to Datalog properties to test cases.
Reviews
I think it's a great idea to use Datalog-powered analysis for program understanding to create test cases, but the story of this tool doesn't hang together for me yet.
First, in the setting of secure program synthesis, why is it helpful to analyze a program to generate tests for it? Don't such tests merely reinforce the bugs already present in the program, sometimes perversely requiring that buggy behavior be replicated in later versions? I don't understand how Figure 1 can be seen as providing empirical evidence that the tool is useful, since it is trivial to generate test cases that a given program passes, if only by rejection sampling.
Second, the report is unclear on how Datalog analysis results are used to generate test cases. The report acknowledges that analysis so far mostly covers program structure rather than dynamic behavior, so where do useful tests even come from? Should we expect scalability of the underlying program analysis to much larger programs?
Read full reviewShow less
This projects has a mutation harness with named operators and it reports comparative kill rates, but most of the work is only in the repo and doesn't make it into the paper.
SPS-VeriSpec's three-tier scheme (most restrictive properties become unit tests, mid-range become hypothesis property-based tests and open/risky ones go to a manual-review report) makes sense as an organizing idea, and the pipeline is implemented across three targets of increasing difficulty .
The related-work section is candid that none of the components are new, and the literature is cited properly. A good design instinct is to set LLM-proposed rules and oracles as provenance-tainted review candidates, which is a right posture for secure synthesis.
A promising next step is the one the author identifies, which is to close the loop so that when a generated test fails, the Datalog relation that produced it is surfaced for a human to accept, reject, or refine, with the decision persisted into the next analysis round, turning the current one-way pipeline into an iterative formal/informal loop. Curious what metrics for grounding come out of this.
Read full reviewShow less
Cite this project
@misc{wangyuan2026spsverispec,
title = {{SPS-VeriSpec}},
author = {Zheng Wangyuan},
year = {2026},
month = may,
note = {Submitted to The Secure Program Synthesis Hackathon, an Apart Research Sprint},
howpublished = {\url{https://apartresearch.com/sprints/projects/spsverispec-sqhw}},
url = {https://apartresearch.com/sprints/projects/spsverispec-sqhw}
}More from The Secure Program Synthesis Hackathon
- View project: Vibe-Coding Specs: Eliciting, Editing, and Verifying Specifications for AI Coding Agents
Vibe-Coding Specs: Eliciting, Editing, and Verifying Specifications for AI Coding Agents
Lida Safety
Specifications for real systems do not exist as one-shot artifacts: the user's intent emerges as they discover edge cases, rewrite drafts, and react to failing tests. We present an iterative pipeline that takes this …
- View project: AgentSpecGap
AgentSpecGap
solo-team
This prototype extracts rules from system prompts, tool descriptions, and runtime config. Rules are classified into one of interface validation, authorization check, workflow ordering validation, runtime validation, …
- View project: SpecGap Arena
SpecGap Arena
Obligation Cartographers
SpecGap Arena is a benchmark and framework that exposes how incomplete specifications let plausible but incorrect code pass public tests. It synthesizes missing semantic obligations (security boundaries, invariants, …