Computation Tree Logic Guided Program Repair
Yu Liu, Yahui Song, Martin Mirchev, Abhik Roychoudhury

TL;DR
This paper introduces a CTL-guided program repair framework using Datalog, capable of repairing infinite-state programs and avoiding overfitting, with significant improvements over existing methods.
Contribution
It extends Datalog-based analysis to support CTL properties and handles infinite computations, enabling more accurate and reliable program repairs.
Findings
Analysis accuracy of 56.6% on small benchmarks
Analysis accuracy of 88.5% on real-world benchmarks
Successfully repairs all detected bugs in experiments
Abstract
Temporal logics like Computation Tree Logic (CTL) have been widely used as expressive formalisms to capture rich behavioral specifications. CTL can express properties such as reachability, termination, invariants and responsiveness, which are difficult to test. This paper suggests a mechanism for the automated repair of infinite-state programs guided by CTL properties. Our produced patches avoid the overfitting issue that occurs in test-suite-guided repair, where the repaired code may not pass tests outside the given test suite. To realize this vision, we propose a repair framework based on Datalog, a widely used domain-specific language for program analysis, which readily supports nested fixed-point semantics of CTL via stratified negation. Specifically, our framework encodes the program and CTL properties into Datalog facts and rules and performs the repair by modifying the facts to…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
