English
Related papers

Related papers: Modularity, Code Specialization, and Zero-Cost Abs…

200 papers

Verified compilation of open modules (i.e., modules whose functionality depends on other modules) provides a foundation for end-to-end verification of modular programs ubiquitous in contemporary software. However, despite intensive…

Programming Languages · Computer Science 2023-11-21 Ling Zhang , Yuting Wang , Jinhua Wu , Jérémie Koenig , Zhong Shao

The increasing competition in the semiconductor industry has created significant pressure to reduce chip prices while maintaining quality and reliability. Functional verification, particularly for configurable IPs, is a major contributor to…

Hardware Architecture · Computer Science 2025-10-21 Shuhang Zhang , Jelena Radulovic , Thorsten Dworzak

Model checking temporal properties of software is algorithmically hard. To be practically feasible, it usually requires the creation of simpler, abstract models of the software, over which the properties are checked. However, creating…

Formal Languages and Automata Theory · Computer Science 2025-03-17 Jesper Amilon , Dilian Gurov

Software model checkers based on under-approximations and SMT solvers are very successful at verifying safety (i.e. reachability) properties. They combine two key ideas -- (a) "concreteness": a counterexample in an under-approximation is a…

Logic in Computer Science · Computer Science 2013-06-11 Anvesh Komuravelli , Arie Gurfinkel , Sagar Chaki , Edmund M. Clarke

Current static verification techniques support a wide range of programs. However, such techniques only support complete and detailed specifications, which places an undue burden on users. To solve this problem, prior work proposed gradual…

We present \synver{}, a novel synthesis and verification framework for C programs, that deploys a Large Language Model (LLM) to search for a candidate program that satisfies the given specification. Our key idea is to impose syntactic and…

Programming Languages · Computer Science 2025-10-21 Prasita Mukherjee , Benjamin Delaware

In the last three decades, memory safety issues in system programming languages such as C or C++ have been one of the significant sources of security vulnerabilities. However, there exist only a few attempts with limited success to cope…

Software Engineering · Computer Science 2021-07-05 Felipe R. Monteiro , Mikhail R. Gadelha , Lucas C. Cordeiro

Writing correct programs for weak memory models such as the C11 memory model is challenging because of the weak consistency guarantees these models provide. The first program logics for the verification of such programs have recently been…

Programming Languages · Computer Science 2018-02-20 Alexander J. Summers , Peter Müller

Proving only over source code that programs do not leak sensitive data leaves a gap between reasoning and reality that can only be filled by accounting for the behaviour of the compiler. Furthermore, software does not always have the luxury…

Programming Languages · Computer Science 2023-06-22 Robert Sison , Toby Murray

Formal verification offers a path to provably correct software, but writing verified code remains expensive enough that the technique is rarely used in production. Recent large language models can accelerate this work, and recent benchmarks…

Logic in Computer Science · Computer Science 2026-05-28 Leo Yao

When computation is outsourced, the data owner would like to be assured that the desired computation has been performed correctly by the service provider. In theory, proof systems can give the necessary assurance, but prior work is not…

Databases · Computer Science 2011-10-03 Graham Cormode , Justin Thaler , Ke Yi

This paper surveys recent work on applying analysis and transformation techniques that originate in the field of constraint logic programming (CLP) to the problem of verifying software systems. We present specialisation-based techniques for…

Logic in Computer Science · Computer Science 2021-08-03 Emanuele De Angelis , Fabio Fioravanti , John P. Gallagher , Manuel V. Hermenegildo , Alberto Pettorossi , Maurizio Proietti

Proponents of software verification have argued that simpler code is easier to verify: that is, that verification tools issue fewer false positives and require less human intervention when analyzing simpler code. We empirically validate…

Software Engineering · Computer Science 2023-11-01 Kobi Feldman , Martin Kellogg , Oscar Chaparro

The Message Passing Interface specification (MPI) defines a portable message-passing API used to program parallel computers. MPI programs manifest a number of challenges on what concerns correctness: sent and expected values in…

Programming Languages · Computer Science 2015-08-21 César Santos , Francisco Martins , Vasco Thudichum Vasconcelos

Automatic software verification tools help to find hard-to-detect faults in programs checked against specified requirements non-interactively. Besides, they can prove program correctness formally under certain assumptions. These…

Software Engineering · Computer Science 2023-09-29 Ilja Zakharov , Evgeny Novikov , Ilya Shchepetkov

Large Language Models (LLMs) typically excel at coding tasks involving high-level programming languages, as opposed to lower-level programming languages, such as assembly. We propose a synthetic data generation method named C-ing Clearly,…

Computation and Language · Computer Science 2025-12-17 Teodor Poncu , Ioana Pintilie , Marius Dragoi , Dragos Tantaru , Florin Brad

Static verification provides strong correctness guarantees for code; however, fully specifying programs for static verification is a complex, burdensome process for users. Gradual verification was introduced to make this process easier by…

Programming Languages · Computer Science 2025-07-21 Priyam Gupta

We propose a general framework to allow: (a) specifying the operational semantics of a programming language; and (b) stating and proving properties about program correctness. Our framework is based on a many-sorted system of hybrid modal…

Logic in Computer Science · Computer Science 2025-12-01 Ioana Leustean , Natalia Moanga , Traian Florin Serbanuta

Large language models trained on code have shown great potential to increase productivity of software developers. Several execution-based benchmarks have been proposed to evaluate functional correctness of model-generated code on simple…

Compilers are a prime target for formal verification, since compiler bugs invalidate higher-level correctness guarantees, but compiler changes may become more labor-intensive to implement, if they must come with proof patches. One appealing…

Programming Languages · Computer Science 2025-03-12 Jason Gross , Andres Erbsen , Jade Philipoom , Rajashree Agrawal , Adam Chlipala