AI for software engineering: from probable to provable
This addresses the problem of unreliable AI-generated code for software developers, offering a foundational shift towards provable correctness.
The paper tackles the challenges of AI in software engineering, specifically the difficulty of specifying goals and hallucination in AI-generated code, by proposing a combination of AI creativity with formal specification and verification methods to ensure program correctness.
Vibe coding, the much-touted use of AI techniques for programming, faces two overwhelming obstacles: the difficulty of specifying goals ("prompt engineering" is a form of requirements engineering, one of the toughest disciplines of software engineering); and the hallucination phenomenon. Programs are only useful if they are correct or very close to correct. The solution? Combine the creativity of artificial intelligence with the rigor of formal specification methods and the power of formal program verification, supported by modern proof tools.