English
Related papers

Related papers: Resource Specifications for Resource-Manipulating …

200 papers

Solidity smart contracts are programs that manage up to 2^160 users on a blockchain. Verifying a smart contract relative to all users is intractable due to state explosion. Existing solutions either restrict the number of users to…

Software Engineering · Computer Science 2021-09-02 Scott Wesley , Maria Christakis , Jorge A. Navas , Richard Trefler , Valentin Wüstholz , Arie Gurfinkel

Program refinement involves correctness-preserving transformations from formal high-level specification statements into executable programs. Traditional verification tool support for program refinement is highly interactive and lacks…

Software Engineering · Computer Science 2024-06-28 Yufan Cai , Zhe Hou , Xiaokun Luan , David Miguel Sanan Baena , Yun Lin , Jun Sun , Jin Song Dong

We present an approach to the verification of systems for whose description some elements - constants or functions - are underspecified and can be regarded as parameters, and, in particular, describe a method for automatically generating…

Logic in Computer Science · Computer Science 2023-10-30 Dennis Peuter , Philipp Marohn , Viorica Sofronie-Stokkermans

This paper presents a focused literature survey on the use of large language models (LLM) to assist in writing formal specifications for software. A summary of thirty-five key papers is presented, including examples for specifying programs…

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

Machine-learning models are becoming increasingly prevalent in our lives, for instance assisting in image-classification or decision-making tasks. Consequently, the reliability of these models is of critical importance and has resulted in…

Machine Learning · Computer Science 2022-06-14 Maria Christakis , Hasan Ferit Eniser , Jörg Hoffmann , Adish Singla , Valentin Wüstholz

We present the design, implementation, and foundation of a verifier for higher-order functional programs with generics and recursive data types. Our system supports proving safety and termination using preconditions, postconditions and…

Logic in Computer Science · Computer Science 2020-03-25 Jad Hamza , Nicolas Voirol , Viktor Kunčak

Robust modules guarantee to do only what they are supposed to do - even in the presence of untrusted, malicious clients, and considering not just the direct behaviour of individual methods, but also the emergent behaviour from calls to more…

Programming Languages · Computer Science 2022-09-20 Julian Mackay , Sophia Drossopoulou , James Noble , Susan Eisenbach

The overall problem addressed in this paper is the long-standing problem of program correctness, and in particular programs that describe systems of parallel executing processes. We propose a new method for proving correctness of parallel…

Programming Languages · Computer Science 2023-02-10 Frank S. de Boer , Einar Broch Johnsen , Violet Ka I Pun , Silvia Lizeth Tapia Tarifa

We consider formal verification of recursive programs with resource consumption. We introduce prefix replacement systems with non-negative integer counters which can be incremented and reset to zero as a formal model for such programs. In…

Logic in Computer Science · Computer Science 2015-07-01 Martin Lang , Christof Löding

AI agents have shown initial promise in automating mathematical theorem proving in proof assistants such as Lean. The same proof assistants can be used to verify the correctness of code by pairing code with specifications and proofs that…

Software Engineering · Computer Science 2024-10-11 Evan Lohn , Sean Welleck

Smart contracts are programs running on cryptocurrency (e.g., Ethereum) blockchains, whose popularity stem from the possibility to perform financial transactions, such as payments and auctions, in a distributed environment without need for…

Cryptography and Security · Computer Science 2018-04-24 Ilya Grishchenko , Matteo Maffei , Clara Schneidewind

Designing scalable concurrent objects, which can be efficiently used on multicore processors, often requires one to abandon standard specification techniques, such as linearizability, in favor of more relaxed consistency requirements.…

Logic in Computer Science · Computer Science 2016-07-22 Ilya Sergey , Aleksandar Nanevski , Anindya Banerjee , German Andres Delbianco

In program synthesis there is a well-known trade-off between concise and strong specifications: if a specification is too verbose, it might be harder to write than the program; if it is too weak, the synthesised program might not match the…

Programming Languages · Computer Science 2020-01-30 Andreea Costea , Amy Zhu , Nadia Polikarpova , Ilya Sergey

A workflow specification defines a set of steps and the order in which those steps must be executed. Security requirements may impose constraints on which groups of users are permitted to perform subsets of those steps. A workflow…

Cryptography and Security · Computer Science 2013-01-10 Jason Crampton , Gregory Gutin , Anders Yeo

When programming resource-scarce embedded smart devices, the designer often requires both the low-level system programming features of a language such as C and higher level capability typical of a language like Java. The choice of a…

Programming Languages · Computer Science 2019-10-09 Vincenzo De Florio , Chris Blondia

FormalSpecCpp is a dataset designed to fill the gap in standardized benchmarks for verifying formal specifications in C++ programs. To the best of our knowledge, this is the first comprehensive collection of C++ programs with well-defined…

Software Engineering · Computer Science 2025-02-24 Madhurima Chakraborty , Peter Pirkelbauer , Qing Yi

Modern blockchain systems support creation of smart contracts -- stateful programs hosted and executed on a blockchain. Smart contracts hold and transfer significant amounts of digital currency which makes them an attractive target for…

Software Engineering · Computer Science 2019-06-10 Dmitrii Suvorov , Vladimir Ulyantsev

State-of-the-art probabilistic model checkers perform verification on explicit-state Markov models defined in a high-level programming formalism like the PRISM modeling language. Typically, the low-level models resulting from such…

Logic in Computer Science · Computer Science 2021-11-15 Tobias Winkler , Johannes Lehmann , Joost-Pieter Katoen

Runtime verification, also known as runtime monitoring, consists of checking whether a system satisfies a given specification by observing the trace it produces during its execution. It is used as a lightweight verification technique to…

Logic in Computer Science · Computer Science 2025-06-09 Luca Aceto , Antonis Achilleos , Duncan Paul Attard , Léo Exibard , Adrian Francalanza , Anna Ingólfsdóttir , Karoliina Lehtinen

Refinement transforms an abstract system model into a concrete, executable program, such that properties established for the abstract model carry over to the concrete implementation. Refinement has been used successfully in the development…

Logic in Computer Science · Computer Science 2023-11-27 Aurel Bílý , João C. Pereira , Jan Schär , Peter Müller