English
Related papers

Related papers: Verifying Functional Correctness Properties At the…

200 papers

Static analysis is a powerful technique for automatic verification of programs but raises major engineering challenges when developing a full-fledged analyzer for a realistic language such as Java. This paper describes the Sawja library: a…

Ensuring that a program operates correctly is a difficult task in large, complex systems. Enshrining invariants -- desired properties of correct execution -- in code or comments can support maintainability and help sustain correctness.…

Software Engineering · Computer Science 2019-03-19 Vincent J. Hellendoorn , Premkumar T. Devanbu , Oleksandr Polozov , Mark Marron

Copy & paste is a widespread practice when developing software and, thus, duplicated and subsequently modified code occurs frequently in software projects. Since such code clones, i.e., identical or similar fragments of code, can bloat…

Software Engineering · Computer Science 2026-02-03 Thomas S. Heinze , André Schäfer , Wolfram Amme

Binary-level pointer analysis can be of use in symbolic execution, testing, verification, and decompilation of software binaries. In various such contexts, it is crucial that the result is trustworthy, i.e., it can be formally established…

Software Engineering · Computer Science 2025-01-30 Freek Verbeek , Ali Shokri , Daniel Engel , Binoy Ravindran

The TransCoder system translates source code between Java, C++, and Python 3. The test set that was used to evaluate its quality is missing important features of Java, including the ability to define and use classes and the ability to call…

Computation and Language · Computer Science 2020-08-04 Ernest Davis

With today's quantum processors venturing into regimes beyond the capabilities of classical devices [1-3], we face the challenge to verify that these devices perform as intended, even when we cannot check their results on classical…

A class of two-bit bit flipping algorithms for decoding low-density parity-check codes over the binary symmetric channel was proposed in [1]. Initial results showed that decoders which employ a group of these algorithms operating in…

Information Theory · Computer Science 2012-05-22 Dung Viet Nguyen , Bane Vasic , Michael W. Marcellin

Microservice systems are becoming increasingly adopted due to their scalability, decentralized development, and support for continuous integration and delivery (CI/CD). However, this decentralized development by separate teams and…

Software Engineering · Computer Science 2025-12-01 Connor Wojtak , Darek Gajewski , Tomas Cerny

A verification code is an automated test method used to distinguish between humans and computers. Humans can easily identify verification codes, whereas machines cannot. With the development of convolutional neural networks, automatically…

Cryptography and Security · Computer Science 2019-02-13 Dongliang Xu , Bailing Wang , XiaoJiang Du , Xiaoyan Zhu , zhitao Guan , Xiaoyan Yu , Jingyu Liu

Motivated by experience in programming and in the teaching of programming, we make another assault on the longstanding problem of debugging. Having explored why debuggers are not used as widely as one might expect, especially in functional…

Programming Languages · Computer Science 2024-11-04 John Whitington

This paper introduces several techniques that improve the scalability of the deductive verification of data-level programs working on arrays and matrices. First of all, we introduce a technique to rewrite expressions with (nested)…

Software Engineering · Computer Science 2026-05-14 Lars B. van den Haak , Anton Wijs , Marieke Huisman

Software testing and verification are critical for ensuring the reliability and security of modern software systems. Traditionally, formal verification techniques, such as model checking and theorem proving, have provided rigorous…

Software Engineering · Computer Science 2025-03-17 Norbert Tihanyi , Tamas Bisztray , Mohamed Amine Ferrag , Bilel Cherif , Richard A. Dubniczky , Ridhi Jain , Lucas C. Cordeiro

Realizing the full potential of quantum computation requires quantum error correction (QEC), with most recent breakthrough demonstrations of QEC using the surface code. QEC codes use multiple noisy physical qubits to encode information in…

Debugging formal verification (FV) failures represents one of the most time-consuming bottlenecks in modern hardware design workflows. When properties fail, engineers must manually trace through complex counter-examples spanning multiple…

Hardware Architecture · Computer Science 2025-10-21 Yunsheng Bai , Ghaith Bany Hamad , Chia-Tung Ho , Syed Suhaib , Haoxing Ren

Testing has become an indispensable activity of software development, yet writing good and relevant tests remains a quite challenging task. One well-known problem is that it often is impossible or unrealistic to test for every outcome, as…

Programming Languages · Computer Science 2017-08-18 Dimitri Racordon , Didier Buchs

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

Utilizing third party software components in the development of new systems became somewhat unfavourable approach among many organizations nowadays. This reluctance is primarily built due to the lack of support to verify the quality…

Software Engineering · Computer Science 2012-10-16 Basem Y. Alkazemi

Latency-insensitive design mitigates increasing interconnect delay and enables productive component reuse in complex digital systems. This design style has been adopted in high-level design flows because untimed functional blocks connected…

Logic in Computer Science · Computer Science 2021-02-19 Steve Dai , Alicia Klinefelter , Haoxing Ren , Rangharajan Venkatesan , Ben Keller , Nathaniel Pinckney , Brucek Khailany

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

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