English
Related papers

Related papers: Baking for Dafny: A CakeML Backend for Dafny

200 papers

This paper describes the formal verification of two Turing machines using the program verifier Dafny. Both machines are deciders, so we prove total correctness. They are typical first examples of Turing machines used in any course of…

Logic in Computer Science · Computer Science 2026-01-22 Edgar F. A. Lederer

Large language models show great promise in many domains, including programming. A promise is easy to make but hard to keep, and language models often fail to keep their promises, generating erroneous code. A promising avenue to keep models…

Software Engineering · Computer Science 2024-06-12 Md Rakib Hossain Misu , Cristina V. Lopes , Iris Ma , James Noble

Device driver bugs are the leading cause of OS compromises, and their formal verification is therefore highly desirable. To the best of our knowledge, no realistic and performant driver has been verified for a non-trivial device. We propose…

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

Although formal methods are capable of producing reliable software, they have seen minimal adoption in everyday programming. Automatic code generation using large language models is becoming increasingly widespread, but it rarely considers…

Software Engineering · Computer Science 2025-03-19 Aleksandr Shefer , Igor Engel , Stanislav Alekseev , Daniil Berezun , Ekaterina Verbitskaia , Anton Podkopaev

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

Formal software verification techniques are widely used to specify and prove the functional correctness of programs. However, nonfunctional properties such as time complexity are usually carried out with pen and paper. Inefficient code in…

Software Engineering · Computer Science 2021-08-09 Shiri Morshtein , Ran Ettinger , Shmuel Tyszberowicz

Recent verification tools aim to make formal verification more accessible to software engineers by automating most of the verification process. However, annotating conventional programs with the formal specification and verification…

Software Engineering · Computer Science 2026-01-21 João Pascoal Faria , Emanuel Trigo , Vinicius Honorato , Rui Abreu

This paper presents a focused literature survey on the use of large language models (LLM) to assist in writing formal specifications for software. A summary of thirty-five key papers is presented, including examples for specifying programs…

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

This article describes the development and formal verification (proof of semantic preservation) of a compiler back-end from Cminor (a simple imperative intermediate language) to PowerPC assembly code, using the Coq proof assistant both for…

Logic in Computer Science · Computer Science 2009-11-14 Xavier Leroy

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

We report our experience in the formal verification of the reference implementation of the Beacon Chain. The Beacon Chain is the backbone component of the new Proof-of-Stake Ethereum 2.0 network: it is in charge of tracking information…

Programming Languages · Computer Science 2021-10-26 Franck Cassez , Joanne Fuller , Aditya Asgaonkar

Software testing plays a critical role in ensuring that systems behave as intended. However, existing automated testing approaches struggle to match the capabilities of human engineers due to key limitations such as test locality, lack of…

Software Engineering · Computer Science 2025-06-16 Kangping Xu , Yifan Luo , Yang Yuan , Andrew Chi-Chih Yao

In verification-aware languages, such as Dafny, despite their critical role, specifications are as prone to error as implementations. Flaws in specifications can result in formally verified programs that deviate from the intended behavior.…

Software Engineering · Computer Science 2026-04-14 Isabel Amaral , Alexandra Mendes , José Campos

An important step toward adoption of formal methods in software development is support for mainstream programming languages. Unfortunately, these languages are often rather complex and come with substantial standard libraries. However, by…

Software Engineering · Computer Science 2018-06-01 Vladimír Štill , Petr Ročkai , Jiří Barnat

Neural networks are often susceptible to minor perturbations in input that cause them to misclassify. A recent solution to this problem is the use of globally-robust neural networks, which employ a function to certify that the…

Programming Languages · Computer Science 2025-05-13 James Tobler , Hira Taqdees Syeda , Toby Murray

The Ethereum protocol implements a replicated state machine. The network participants keep track of the system state by: 1) agreeing on the sequence of transactions to be processed and 2) computing the state transitions that correspond to…

Logic in Computer Science · Computer Science 2023-03-02 Franck Cassez , Joanne Fuller , Milad K. Ghale , David J. Pearce , Horacio M. A. Quiles

Formal methods for software correctness are critical to the future of software engineering - and so must be an essential part of software engineering education. Unfortunately, formal methods are often resisted by students due to perceived…

Software Engineering · Computer Science 2022-05-03 James Noble , David Streader , Isaac Oscar Gariano , Miniruwani Samarakoon

We introduce DafnyCOMP, a benchmark for evaluating large language models (LLMs) on compositional specification generation in Dafny. Unlike prior benchmarks that focus on single-function tasks, DafnyCOMP targets programs composed of multiple…

Programming Languages · Computer Science 2025-09-30 Xu Xu , Xin Li , Xingwei Qu , Jie Fu , Binhang Yuan

Highly automated theorem provers like Dafny allow users to prove simple properties with little effort, making it easy to quickly sketch proofs. The drawback is that such provers leave users with little control about the proof search,…

Programming Languages · Computer Science 2024-01-30 Son Ho , Clément Pit-Claudel