English
Related papers

Related papers: Verified VCG and Verified Compiler for Dafny

200 papers

Formal verification is the next frontier for ensuring the correctness of code generated by Large Language Models (LLMs). While methods that co-generate code and formal specifications in formal languages, like Dafny, can, in principle, prove…

Programming Languages · Computer Science 2026-04-21 Lingfei Zeng , Fengdi Che , Xuhan Huang , Fei Ye , Xu Xu , Binhang Yuan , Jie Fu

OCaml is particularly well-fitted for formal verification. On one hand, it is a multi-paradigm language with a well-defined semantics, allowing one to write clean, concise, type-safe, and efficient code. On the other hand, it is a language…

Logic in Computer Science · Computer Science 2021-09-07 Mário Pereira , António Ravara

Program verifiers such as Dafny automate proofs by outsourcing them to an SMT solver. This automation is not perfect, however, and the solver often requires hints in the form of assertions, creating a burden for the proof engineer. In this…

Logic in Computer Science · Computer Science 2025-03-05 Eric Mugnier , Emmanuel Anaya Gonzalez , Ranjit Jhala , Nadia Polikarpova , Yuanyuan Zhou

Software correctness is ensured mathematically through formal verification, which involves the resources of generating formal requirement specifications and having an implementation that must be verified. Tools such as model-checkers and…

Software Engineering · Computer Science 2025-08-29 Arshad Beg , Diarmuid O'Donoghue , Rosemary Monahan

The Dafny verifier provides strong correctness guarantees but often requires numerous manual helper assertions, creating a significant barrier to adoption. We investigate the use of Large Language Models (LLMs) to automatically infer…

Software Engineering · Computer Science 2025-11-04 Álvaro Silva , Alexandra Mendes , Ruben Martins

Common programming tools, like compilers, debuggers, and IDEs, crucially rely on the ability to analyse program code to reason about its behaviour and properties. There has been a great deal of work on verifying compilers and static…

Programming Languages · Computer Science 2019-07-15 Jan Stolarek , James Cheney

We present and test the largest benchmark for vericoding, LLM-generation of formally verified code from formal specifications - in contrast to vibe coding, which generates potentially buggy code from a natural language description. Our…

Program verification tools are often implemented as front-end translations of an input program into an intermediate verification language (IVL) such as Boogie, GIL, Viper, or Why3. The resulting IVL program is then verified using an…

Programming Languages · Computer Science 2024-12-23 Thibault Dardinier , Michael Sammler , Gaurav Parthasarathy , Alexander J. Summers , Peter Müller

Large language models have become proficient at generating functional code, but ensuring the output truly matches the programmer's intent remains difficult. Testing improves trust, yet for safety-critical applications, formal verification…

Software Engineering · Computer Science 2026-02-03 Mantas Baksys , Stefan Zetzsche , Olivier Bouissou , Remi Delmas , Soonho Kong , Sean B. Holden

Automated program verifiers are typically implemented using an intermediate verification language (IVL), such as Boogie or Why3. A verifier front-end translates the input program and specification into an IVL program, while the back-end…

Programming Languages · Computer Science 2024-05-13 Gaurav Parthasarathy , Thibault Dardinier , Benjamin Bonneau , Peter Müller , Alexander J. Summers

Formal verification of complex algorithms is challenging. Verifying their implementations goes beyond the state of the art of current automatic verification tools and usually involves intricate mathematical theorems. Certifying algorithms…

Logic in Computer Science · Computer Science 2013-02-01 Eyad Alkassar , Sascha Böhme , Kurt Mehlhorn , Christine Rizkallah

The formal verification of traditional software has been revolutionised by verification-orientated languages such as Dafny and F* which enable developers to write high-level specifications that are automatically compiled down to low-level…

Logic in Computer Science · Computer Science 2026-02-13 Matthew L. Daggitt , Wen Kokke , Robert Atkey

Machine learning techniques often lack formal correctness guarantees, evidenced by the widespread adversarial examples that plague most deep-learning applications. This lack of formal guarantees resulted in several research efforts that aim…

Machine Learning · Computer Science 2024-06-11 Anahita Baninajjar , Ahmed Rezine , Amir Aminifar

VeriFast is a prototype tool based on separation logic for modular verification of C and Java programs. We are in the process of adding support for C++. In this report, we describe the features of C++ for which we added support so far, as…

Logic in Computer Science · Computer Science 2022-12-29 Niels Mommen , Bart Jacobs

Vericoding refers to the generation of formally verified code from rigorous specifications. Recent AI models show promise in vericoding, but a unified methodology for cross-paradigm evaluation is lacking. Existing benchmarks test only…

Software Engineering · Computer Science 2026-02-11 Haoyu Zhao , Ziran Yang , Jiawei Li , Deyuan He , Zenan Li , Chi Jin , Venugopal V. Veeravalli , Aarti Gupta , Sanjeev Arora

Abstract interpreters are complex pieces of software: even if the abstract interpretation theory and companion algorithms are well understood, their implementations are subject to bugs, that might question the soundness of their…

Programming Languages · Computer Science 2021-10-19 Lucas Franceschino , David Pichardie , Jean-Pierre Talpin

Cogent is a restricted functional language designed to reduce the cost of developing verified systems code. Because of its sometimes-onerous restrictions, such as the lack of support for recursion and its strict uniqueness type system,…

Programming Languages · Computer Science 2021-12-22 Louis Cheung , Liam O'Connor , Christine Rizkallah

Cogent is a restricted functional language designed to reduce the cost of developing verified systems code. Because of its sometimes-onerous restrictions, such as the lack of support for recursion and its strict uniqueness type system,…

Programming Languages · Computer Science 2021-12-24 Louis Cheung , Liam O'Connor , Christine Rizkallah

Debugging and repairing faults when programs fail to formally verify can be complex and time-consuming. Automated Program Repair (APR) can ease this burden by automatically identifying and fixing faults. However, traditional APR techniques…

Software Engineering · Computer Science 2025-09-10 Valentina Wu , Alexandra Mendes , Alexandre Abreu

Cyber-physical systems (CPS) such as autonomous cars, aircraft, and robots are often also safety-critical; thus it is imperative that they operate as intended with a high degree of certainty. Formal verification has been employed to verify…

Programming Languages · Computer Science 2026-05-07 Serra Z. Dane , Jiawei Chen , Marc Pouzet , Jean-Baptiste Jeannin