Parallel program design: a foundation
Parallel program design: a foundation
Predicate calculus and program semantics
Predicate calculus and program semantics
Enhancing model checking in verification by AI techniques
Artificial Intelligence
Automatically validating temporal safety properties of interfaces
SPIN '01 Proceedings of the 8th international SPIN workshop on Model checking of software
A Discipline of Programming
From symptom to cause: localizing errors in counterexample traces
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Synthesis of fault-tolerant concurrent programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Logic in Computer Science: Modelling and Reasoning about Systems
Logic in Computer Science: Modelling and Reasoning about Systems
Fate and free will in error traces
International Journal on Software Tools for Technology Transfer (STTT) - Special section on tools and algorithms for the construction and analysis of systems
Programming by sketching for bit-streaming programs
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Error explanation with distance metrics
International Journal on Software Tools for Technology Transfer (STTT)
Combinatorial sketching for finite programs
Proceedings of the 12th international conference on Architectural support for programming languages and operating systems
CTL model update for system modifications
Journal of Artificial Intelligence Research
Software verification with BLAST
SPIN'03 Proceedings of the 10th international conference on Model checking software
Fault localization and correction with QBF
SAT'07 Proceedings of the 10th international conference on Theory and applications of satisfiability testing
Repair of boolean programs with an application to c
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
CAV'05 Proceedings of the 17th international conference on Computer Aided Verification
CHARME'05 Proceedings of the 13 IFIP WG 10.5 international conference on Correct Hardware Design and Verification Methods
Revising UNITY programs: possibilities and limitations
OPODIS'05 Proceedings of the 9th international conference on Principles of Distributed Systems
Evolutionary repair of faulty software
Applied Soft Computing
A formal approach to fixing bugs
SBMF'11 Proceedings of the 14th Brazilian conference on Formal Methods: foundations and Applications
NFM'12 Proceedings of the 4th international conference on NASA Formal Methods
Automated model repair for distributed programs
ACM SIGACT News
Modular and verified automatic program repair
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
CAV'13 Proceedings of the 25th international conference on Computer Aided Verification
Combining mutation and fault localization for automated program debugging
Journal of Systems and Software
Hi-index | 0.00 |
Automatic techniques for software verification focus on obtaining witnesses of program failure. Such counterexamples often fail to localize the precise cause of an error and usually do not suggest a repair strategy. We present an efficient algorithm to automatically generate a repair for an incorrect sequential Boolean program where program correctness is specified using a pre-condition and a post-condition. Our approach draws on standard techniques from predicate calculus to obtain annotations for the program statements. These annotations are then used to generate a synthesis query for each program statement, which if successful, yields a repair. Furthermore, we show that if a repair exists for a given program under specified conditions, our technique is always able to find it.