English
Related papers

Related papers: Correctness Witnesses with Function Contracts

200 papers

Static analyzers are typically complex tools and thus prone to contain bugs themselves. To increase the trust in the verdict of such tools, witnesses encode key reasoning steps underlying the verdict in an exchangeable format, enabling…

Witnesses record automated program analysis results and make them exchangeable. To validate correctness witnesses through abstract interpretation, we introduce a novel abstract operation unassume. This operator incorporates witness…

Programming Languages · Computer Science 2025-03-06 Simmo Saan , Michael Schwarz , Julian Erhard , Helmut Seidl , Sarah Tilscher , Vesal Vojdani

In the past two decades, significant research and development effort went into the development of verification tools for individual languages, such asC, C++, and Java. Many of the used verification approaches are in fact language-agnostic…

Programming Languages · Computer Science 2025-11-27 Dirk Beyer , Gidon Ernst , Martin Jonáš , Marian Lingsch-Rosenfeld

Formal verification entails testing software to ensure it operates as specified. Smart contracts are self-executing contracts with the terms of the agreement directly written into lines of code. They run on blockchain platforms and…

Software Engineering · Computer Science 2025-10-22 Rene Davila , Everardo Barcenas , Rocio Aldeco-Perez

Nowadays, smart contracts have become increasingly popular and, as with software development in general, testing is the standard method for verifying their correctness. However, smart contracts require a higher level of certainty regarding…

Software Engineering · Computer Science 2023-07-06 Alexandre Mota , Fei Yang , Cristiano Teixeira

The functional properties of a program are often specified by providing a contract for each of its functions. A contract of a function consists of a pair of formulas, called a precondition and a postcondition, which, respectively, should…

Logic in Computer Science · Computer Science 2022-11-23 Emanuele De Angelis , Fabio Fioravanti , Alberto Pettorossi , Maurizio Proietti

Witness functions have recently been introduced in cryptographic protocols' literature as a new powerful way to prove protocol correctness with respect to secrecy. In this paper, we extend them to the property of authentication. We show how…

Cryptography and Security · Computer Science 2019-03-15 Jaouhar Fattahi , Mohamed Mejri , Emil Pricop

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

The goal of this paper is to help mainstream programmers routinely use formal verification on their smart contracts by 1) proposing a new YAML-format for writing general-purpose formal specifications, 2) demonstrating how a formal…

Programming Languages · Computer Science 2019-12-09 Suhabe Bugrara

Software contracts allow programmers to state rich program properties using the full expressive power of an object language. However, since they are enforced at runtime, monitoring contracts imposes significant overhead and delays error…

Programming Languages · Computer Science 2017-11-13 Phuc C. Nguyen , Thomas Gilray , Sam Tobin-Hochstadt , David Van Horn

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 smart contract is a computer program which allows users to automate their actions on the blockchain platform. Given the significance of smart contracts in supporting important activities across industry sectors including supply chain,…

Software Engineering · Computer Science 2021-04-20 Palina Tolmach , Yi Li , Shang-Wei Lin , Yang Liu , Zengxiang Li

Formal verification plays a crucial role in making smart contracts safer, being able to find bugs or to guarantee their absence, as well as checking whether the business logic is correctly implemented. For Solidity, even though there…

Cryptography and Security · Computer Science 2025-11-18 Massimo Bartoletti , Silvia Crafa , Enrico Lipparini

Abstract interpreters are complex pieces of software: even if the abstract interpretation theory and companion algorithms are well understood, their implementations are subject to bugs, that might question the soundness of their…

Programming Languages · Computer Science 2021-10-19 Lucas Franceschino , David Pichardie , Jean-Pierre Talpin

For engineering software with formal correctness proofs it is crucial that proofs can be efficiently reused in case the software or its specification is changed. Unfortunately, in reality even slight changes in the code or its specification…

Software Engineering · Computer Science 2015-01-20 Maria Pelevina

ACL2 has long supported user-defined simplifiers, so-called metafunctions and clause processors, which are installed when corresponding rules of class :meta or :clause-processor are proved. Historically, such simplifiers could access the…

Logic in Computer Science · Computer Science 2017-05-04 Matt Kaufmann , Sol Swords

Automatic software verifiers have become increasingly effective at the task of checking software against (formal) specifications. Yet, their adoption in practice has been hampered by the lack of such specifications in real world code. Large…

Software Engineering · Computer Science 2025-10-15 Cedric Richter , Heike Wehrheim

Our scientific knowledge is increasingly built on software output. User code which defines data analysis pipelines and computational models is essential for research in the natural and social sciences, but little is known about how to…

Software Engineering · Computer Science 2020-03-16 Maxwell Shinn

The use of function contracts to specify the behavior of functions often remains limited to the scope of a single function call. Relational properties link several function calls together within a single specification. They can express more…

Software Engineering · Computer Science 2022-05-18 Lionel Blatter , Nikolai Kosmatov , Virgile Prevosto , Pascale Le Gall

Deductive verification has become a mature paradigm for the verification of industrial software. Applying deductive verification, however, requires that every function in the code base is annotated with a function contract specifying its…

Logic in Computer Science · Computer Science 2025-01-22 Jesper Amilon , Dilian Gurov , Christian Lidström , Mattias Nyberg , Gustav Ung , Ola Wingbrant
‹ Prev 1 2 3 10 Next ›