English
Related papers

Related papers: Case studies of development of verified programs w…

200 papers

Formal methods yet advantageous, face challenges towards wide acceptance and adoption in software development practices. The major reason being presumed complexity. The issue can be addressed by academia with a thoughtful plan of teaching…

Software Engineering · Computer Science 2019-06-05 Mansur Khazeev , Manuel Mazzara , Daniel De Carvalho , Hamna Aslam

As software becomes more complex and assumes an even greater role in our lives, formal verification is set to become the gold standard in securing software systems into the future, since it can guarantee the absence of errors and entire…

Human-Computer Interaction · Computer Science 2021-11-17 Carolina Carreira , João F. Ferreira , Alexandra Mendes , Nicolas Christin

We review state-of-the-art formal methods applied to the emerging field of the verification of machine learning systems. Formal methods can provide rigorous correctness guarantees on hardware and software systems. Thanks to the availability…

Programming Languages · Computer Science 2021-04-22 Caterina Urban , Antoine Miné

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

This report presents the Dafny language and verifier, with a focus on describing the main features of the language, including pre- and postconditions, assertions, loop invariants, termination metrics, quantifiers, predicates and frames.…

Programming Languages · Computer Science 2014-12-16 Rachel Gauci

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

Existing informal language-based (e.g., human language) Large Language Models (LLMs) trained with Reinforcement Learning (RL) face a significant challenge: their verification processes, which provide crucial training signals, are neither…

Computation and Language · Computer Science 2025-10-14 Chuanhao Yan , Fengdi Che , Xuhan Huang , Xu Xu , Xin Li , Yizhi Li , Xingwei Qu , Jingzhe Shi , Chenghua Lin , Yaodong Yang , Binhang Yuan , Hang Zhao , Yu Qiao , Bowen Zhou , Jie Fu

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

The complexity of digital embedded systems has been increasing in different safety-critical applications such as industrial automation, process control, transportation, and medical digital devices. The correct operation of these systems…

Software Engineering · Computer Science 2022-04-28 Fayhaa Hameedi Khlaif , Shawkat Sabah Khairullah

Students in computing education increasingly use large language models (LLMs) such as ChatGPT. Yet, the role of LLMs in supporting cognitively demanding tasks, like deductive program verification, remains poorly understood. This paper…

Software Engineering · Computer Science 2025-09-09 Carolina Carreira , Álvaro Silva , Alexandre Abreu , Alexandra Mendes

This research idea paper proposes leveraging Large Language Models (LLMs) to enhance the productivity of Dafny developers. Although the use of verification-aware languages, such as Dafny, has increased considerably in the last decade, these…

Software Engineering · Computer Science 2024-01-03 Álvaro Silva , Alexandra Mendes , João F. Ferreira

Algorithmic and data refinement are well studied topics that provide a mathematically rigorous approach to gradually introducing details in the implementation of software. Program refinements are performed in the context of some programming…

Programming Languages · Computer Science 2016-06-08 Jason Koenig , K. Rustan M. Leino

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

Software reliability is critical in ensuring that the digital systems we depend on function correctly. In software development, increasing software reliability often involves testing. However, for complex and critical systems, developers…

Software Engineering · Computer Science 2025-09-09 Francisco Oliveira , Alexandra Mendes , Carolina Carreira

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…

Using large language models (LLMs) to generate source code from natural language prompts is a popular and promising idea with a wide range of applications. One of its limitations is that the generated code can be faulty at times, often in a…

Software Engineering · Computer Science 2025-01-14 Yue Chen Li , Stefan Zetzsche , Siva Somayyajula

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

Despite the vast body of research literature proposing algorithms with formal guarantees, the amount of verifiable code in today's systems remains minimal. This discrepancy stems from the inherent difficulty of verifying code, particularly…

Software Engineering · Computer Science 2025-01-10 Changjie Wang , Mariano Scazzariello , Marco Chiesa

The proliferation of decentralized financial (DeFi) systems and smart contracts has underscored the critical need for software correctness. Bugs in such systems can lead to catastrophic financial losses. Formal verification offers a path to…

Logic in Computer Science · Computer Science 2025-10-30 Evgeny Ukhanov

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