English
Related papers

Related papers: Reducing the Number of Annotations in a Verificati…

200 papers

Automated software verification of concurrent programs is challenging because of exponentially large state spaces with respect to the number of threads and number of events per thread. Verification techniques such as model checking need to…

Programming Languages · Computer Science 2020-04-15 Patrick Metzler , Habib Saissi , Péter Bokor , Neeraj Suri

Loop invariants play a central role in the verification of imperative programs. However, finding these invariants is often a difficult and time-consuming task for the programmer. We have previously shown how program transformation can be…

Logic in Computer Science · Computer Science 2017-08-25 G. W. Hamilton

A reliable technique for deductive program verification should be proven sound with respect to the semantics of the programming language. For each different language, the construction of a separate soundness proof is often a laborious…

Programming Languages · Computer Science 2021-08-05 Ximeng Li , Qianying Zhang , Guohui Wang , Zhiping Shi , Yong Guan

Assertion checking is an invaluable programmer's tool for finding many classes of errors or verifying their absence in dynamic languages such as Prolog. For Prolog programmers this means being able to have relevant properties such as modes,…

Formal verification provides a rigorous and systematic approach to ensure the correctness and reliability of software systems. Yet, constructing specifications for the full proof relies on domain expertise and non-trivial manpower. In view…

Software Engineering · Computer Science 2024-04-03 Cheng Wen , Jialun Cao , Jie Su , Zhiwu Xu , Shengchao Qin , Mengda He , Haokun Li , Shing-Chi Cheung , Cong Tian

Despite the plethora of powerful software to spot bugs, identify performance bottlenecks or simply improve the overall quality of code, programming languages remain the first and most important tool of a developer. Therefore, appropriate…

Programming Languages · Computer Science 2019-07-29 Dimitri Racordon , Didier Buchs

In deductive verification and software model checking, dealing with certain specification language constructs can be problematic when the back-end solver is not sufficiently powerful or lacks the required theories. One way to deal with this…

Logic in Computer Science · Computer Science 2024-12-10 Jesper Amilon , Zafer Esen , Dilian Gurov , Christian Lidström , Philipp Rümmer , Marten Voorberg

Dynamic languages are praised for their flexibility and expressiveness, but static analysis often yields many false positives and verification is cumbersome for lack of structure. Hence, unit testing is the prevalent incomplete method for…

Programming Languages · Computer Science 2015-02-06 Robert Jakob , Peter Thiemann

This paper describes a new modelling language for the effective design of Java annotations. Since their inclusion in the 5th edition of Java, annotations have grown from a useful tool for the addition of meta-data to play a central role in…

Programming Languages · Computer Science 2019-10-02 Irene Córdoba , Juan de Lara

Recent work has shown that Large Language Models (LLMs) are not only a suitable tool for code generation but also capable of generating annotation-based code specifications. Scaling these methodologies may allow us to deduce provable…

Software Engineering · Computer Science 2025-06-26 Samuel Teuber , Bernhard Beckert

Generating low-level robot task plans from high-level natural language instructions remains a challenging problem. Although large language models have shown promising results in generating plans, the accuracy of the output remains…

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

In this work, we propose a novel method named \textbf{Auto}mated \textbf{P}rocess-\textbf{S}upervised \textbf{V}erifier (\textbf{\textsc{AutoPSV}}) to enhance the reasoning capabilities of large language models (LLMs) by automatically…

Computation and Language · Computer Science 2024-10-25 Jianqiao Lu , Zhiyang Dou , Hongru Wang , Zeyu Cao , Jianbo Dai , Yingjia Wan , Zhijiang Guo

This paper presents the Soda language for verifying multi-agent systems. Soda is a high-level functional and object-oriented language that supports the compilation of its code not only to Scala, a strongly statically typed high-level…

Programming Languages · Computer Science 2025-03-11 Julian Alfredo Mendez , Timotheus Kampik

In this paper we report the experience of using AutoProof to statically verify a small object oriented program. We identified the problems that emerged by this activity and we classified them according to their nature. In particular, we…

Software Engineering · Computer Science 2017-06-20 Mansur Khazeev , Victor Rivera , Manuel Mazzara , Leonard Johard

Test or prove? These two approaches to software verification have long been presented as opposites. One is dynamic, the other static: a test executes the program, a proof only analyzes the program text. A different perspective is emerging,…

Software Engineering · Computer Science 2026-02-10 Li Huang , Bertrand Meyer , Manuel Oriol

The system PL permits the translation of abstract proofs of program correctness into programs in a variety of programming languages. A programming language satisfying certain axioms may be the target of such a translation. The system PL…

Software Engineering · Computer Science 2007-05-23 David A. Plaisted

Some approaches to increasing program reliability involve a disciplined use of programming languages so as to minimise the hazards introduced by error-prone features. This is realised by writing code that is constrained to a subset of the a…

Programming Languages · Computer Science 2007-11-06 Guillem Marpons-Ucero , Julio Mariño , Ángel Herranz , Lars-Åke Fredlund , Manuel Carro , Juan José Moreno-Navarro

Interactive theorem provers (ITPs) are powerful tools for the formal verification of mathematical proofs down to the axiom level. However, their lack of a natural language interface remains a significant limitation. Recent advancements in…

Logic in Computer Science · Computer Science 2025-07-01 Xiaolin Hu , Qinghua Zhou , Bogdan Grechuk , Ivan Y. Tyukin

Automated verification tools based on SMT solvers have made significant progress in verifying complex software systems. However, these tools face a fundamental tension between automation and performance when dealing with quantifier…

Software Engineering · Computer Science 2025-12-04 Alexander Y. Bai , Chris Hawblitzel , Andrea Lattuada