English
Related papers

Related papers: Formal Verification of `Programming to Interfaces'…

200 papers

This paper is a brief introduction to our recently initiated project named VERIFAI: Traceability and verification of natural language requirements. The project addresses the challenges in the traceability and verification of formal…

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

The correct use of a Hardware Abstraction Layer (HAL) interface in embedded applications is crucial to prevent malfunctions, crashes, or even hardware damage. Software model checking has been successfully applied to check interface…

Logic in Computer Science · Computer Science 2025-12-19 Manuel Bentele , Onur Altinordu , Jan Körner , Andreas Podelski , Axel Sikora

The traditional abstract domain framework for imperative programs suffers from several shortcomings; in particular it does not allow precise symbolic abstractions. To solve these problems, we propose a new abstract interpretation framework,…

Software Engineering · Computer Science 2018-01-01 Matthieu Lemerre , Sébastien Bardin

Many security and software testing applications require checking whether certain properties of a program hold for any possible usage scenario. For instance, a tool for identifying software vulnerabilities may need to rule out the existence…

Software Engineering · Computer Science 2018-05-03 Roberto Baldoni , Emilio Coppa , Daniele Cono D'Elia , Camil Demetrescu , Irene Finocchi

Formal verification techniques have been playing an important role in pre-silicon validation processes. One of the most important points considered in performing formal verification is to define good verification scopes; we should define…

Logic in Computer Science · Computer Science 2011-11-09 Yasushi Umezawa , Takeshi Shimizu

Formal specifications have numerous benefits for both designers and users of network protocols. They provide clear, unambiguous representations, which are useful as documentation and for testing. They can help reveal disagreements about…

Networking and Internet Architecture · Computer Science 2025-09-17 David Basin , Nate Foster , Kenneth L. McMillan , Kedar S. Namjoshi , Cristina Nita-Rotaru , Jonathan M. Smith , Pamela Zave , Lenore D. Zuck

We show how to systematically implement an algorithm in any imperative or functional programming language. The method is based on the premise that it is easy to write down how an algorithm proceeds on a concrete input. This…

Software Engineering · Computer Science 2020-04-28 Maurice Chandoo

Specifications for modular program verifiers are expressed as constraints on program states (e.g. preconditions) and relations on program states (e.g. postconditions). For programs whose domain is managing resources of any kind (e.g.…

Programming Languages · Computer Science 2024-04-19 Zachary Grannan , Alexander J. Summers

We present a method for verifying partial correctness properties of imperative programs that manipulate integers and arrays by using techniques based on the transformation of constraint logic programs (CLP). We use CLP as a metalanguage for…

Programming Languages · Computer Science 2013-09-23 Emanuele De Angelis , Fabio Fioravanti , Alberto Pettorossi , Maurizio Proietti

Formal methods were frequently shown to be effective and, perhaps because of that, practitioners are interested in using them more often. Still, these methods are far less applied than expected, particularly, in critical domains where they…

Software Engineering · Computer Science 2023-08-23 Mario Gleirscher , Jaco van de Pol , Jim Woodcock

Optimizing compilers have become a cornerstone for high-performance program generation in research and industry. Optimizations, including those implemented manually by a user and those target-specific and non-target-specific, are used to…

Programming Languages · Computer Science 2026-05-05 Emily Tucker , Louis-Noël Pouchet , Erika Hunhoff , Stephen Neuendorffer , Erwei Wang

Software verification is a complex problem, and verification tools need significant tuning to achieve high performance. Due to this, many verifiers choose to specialize on reachability properties, or invest the time to implement known…

Programming Languages · Computer Science 2025-01-28 Dirk Beyer , Marek Jankola , Marian Lingsch-Rosenfeld , Tian Xia , Xiyue Zheng

The Curry-Howard correspondence is about a relationship between types and programs on the one hand and propositions and proofs on the other. The implications for programming language design and program verification is an active field of…

Programming Languages · Computer Science 2015-09-15 Jørgen Steensgaard-Madsen

The concept of functionality oriented programming is proposed, and some of its aspects are discussed, such as: (1) implementation independent basic types and generic collection types; (2) syntax requirements and recommendations for…

Programming Languages · Computer Science 2011-02-21 Chengpu Wang

Interactive proof assistants are computer programs carefully constructed to check a human-designed proof of a mathematical claim with high confidence in the implementation. However, this only validates truth of a formal claim, which may…

Programming Languages · Computer Science 2022-05-17 Colin S. Gordon , Sergey Matskevich

A program verifier is a tool that can be used to verify that a "contract" for a program holds - i.e. given a precondition the program guarantees that a given postcondition holds - by only working at the level of the annotated program. An…

Software Engineering · Computer Science 2014-06-12 Gudmund Grov

Software correctness is ensured mathematically through formal verification, which involves the resources of generating formal requirement specifications and having an implementation that must be verified. Tools such as model-checkers and…

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

Formal software verification uses mathematical techniques to establish that software has certain properties. For example, that the behaviour of a software system satisfies certain logically-specified properties. Formal methods have a long…

Software Engineering · Computer Science 2019-03-12 Michael Winikoff

To develop trustworthy distributed systems, verification techniques and formal methods, including lightweight and practical approaches, have been employed to certify the design or implementation of security protocols. Lightweight formal…

Cryptography and Security · Computer Science 2024-11-28 Rémi Garcia , Paolo Modesti

Modern Systems-on-Chip (SoC) designs are increasingly heterogeneous and contain specialized semi-programmable accelerators in addition to programmable processors. In contrast to the pre-accelerator era, when the ISA played an important role…

Hardware Architecture · Computer Science 2019-01-29 Bo-Yuan Huang , Hongce Zhang , Pramod Subramanyan , Yakir Vizel , Aarti Gupta , Sharad Malik