Synthesis of Parametric Programs using Genetic Programming and Model Checking
Gal Katz (Bar Ilan University), Doron Peled (Bar Ilan University)

TL;DR
This paper presents a heuristic method combining genetic programming with model checking and testing to synthesize programs from formal specifications, successfully addressing complex examples despite no guarantees of success.
Contribution
It introduces a novel hybrid approach for program synthesis that leverages genetic programming alongside formal verification tools, applied to sequential and concurrent systems.
Findings
Successfully synthesized nontrivial programs
Improved and corrected existing code
Addressed complex programming challenges
Abstract
Formal methods apply algorithms based on mathematical principles to enhance the reliability of systems. It would only be natural to try to progress from verification, model checking or testing a system against its formal specification into constructing it automatically. Classical algorithmic synthesis theory provides interesting algorithms but also alarming high complexity and undecidability results. The use of genetic programming, in combination with model checking and testing, provides a powerful heuristic to synthesize programs. The method is not completely automatic, as it is fine tuned by a user that sets up the specification and parameters. It also does not guarantee to always succeed and converge towards a solution that satisfies all the required properties. However, we applied it successfully on quite nontrivial examples and managed to find solutions to hard programming…
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.
Taxonomy
TopicsFormal Methods in Verification · Software Testing and Debugging Techniques · Evolutionary Algorithms and Applications
