English
Related papers

Related papers: A Formalization of the Yul Language and Some Verif…

200 papers

We present the first formalization and metatheory of language soundness for a user-schedulable language, the widely used array processing language Halide. User-schedulable languages strike a balance between abstraction and control in…

Programming Languages · Computer Science 2022-10-31 Alex Reinking , Gilbert Louis Bernstein , Jonathan Ragan-Kelley

ACL2 provides a systems programming capability that allows one to write code that uses and extends ACL2 inside of ACL2. However, for soundness reasons, ACL2 bars the unrestricted use of certain kinds of programming constructs, like…

Logic in Computer Science · Computer Science 2022-05-25 Andrew T. Walter , Panagiotis Manolios

Blockchain is a distributed ledger technology that gained popularity for enabling the transformation of cryptocurrency among peers without mediation by a centralized third-party authority. Smart contracts expand the applications of…

Cryptography and Security · Computer Science 2023-10-09 Majd Soud , Gísli Hjálmtýsson , Mohammad Hamdaqa

The high rate of false alarms from static analysis tools and Large Language Models (LLMs) complicates vulnerability detection in Solidity Smart Contracts, demanding methods that can formally or empirically prove the presence of defects.…

Software Engineering · Computer Science 2025-09-17 Ştefan-Claudiu Susan , Andrei Arusoaie , Dorel Lucanu

OCaml is particularly well-fitted for formal verification. On one hand, it is a multi-paradigm language with a well-defined semantics, allowing one to write clean, concise, type-safe, and efficient code. On the other hand, it is a language…

Logic in Computer Science · Computer Science 2021-09-07 Mário Pereira , António Ravara

In our current work a library of formally verified software components is to be created, and assembled, using the Low-Level Virtual Machine (LLVM) intermediate form, into subsystems whose top-level assurance relies on the assurance of the…

Programming Languages · Computer Science 2014-06-09 David S. Hardin , Jennifer A. Davis , David A. Greve , Jedidiah R. McClurg

When blockchain systems are said to be trustless, what this really means is that all the trust is put into software. Thus, there are strong incentives to ensure blockchain software is correct -- vulnerabilities here cost millions and break…

Software Engineering · Computer Science 2025-10-20 Jan Corazza , Ivan Gavran , Gabriela Moreira , Daniel Neider

The Unified Modeling Language (UML) is a widely used general purpose modeling language. Together with the Object Constraint Language (OCL), formal models can be described by defining the structure and behavior with UML and additional OCL…

Human-Computer Interaction · Computer Science 2017-01-31 Frank Hilken , Martin Gogolla

Recursive Length Prefix (RLP) is used to encode a wide variety of data in Ethereum, including transactions. The work described in this paper provides a formal specification of RLP encoding and a verified implementation of RLP decoding,…

Logic in Computer Science · Computer Science 2020-09-30 Alessandro Coglio

Emin G\"un Sirer once said: It's clear that writing a robust, secure smart contract requires extreme amounts of diligence. It's more similar to writing code for a nuclear power reactor, than to writing loose web code [...] Yet the current…

Software Engineering · Computer Science 2019-08-05 Gustavo Betarte , Maximiliano Cristiá , Carlos Luna , Adrián Silveira , Dante Zanarini

We implement extraction of Coq programs to functional languages based on MetaCoq's certified erasure. We extend the MetaCoq erasure output language with typing information and use it as an intermediate representation, which we call…

Programming Languages · Computer Science 2021-08-21 Danil Annenkov , Mikkel Milo , Jakob Botsch Nielsen , Bas Spitters

Formal Methods (FMs) are currently essential for verifying the safety and reliability of software systems. However, the specification writing in formal methods tends to be complex and challenging to learn, requiring familiarity with various…

Software Engineering · Computer Science 2024-04-30 Jianyu Zhang , Long Zhang , Yixuan Wu , Feng Yang

This paper introduces WhylSon, a deductive verification tool for smart contracts written in Michelson, which is the low-level language of the Tezos blockchain. WhylSon accepts a formally specified Michelson contract and automatically…

Programming Languages · Computer Science 2020-06-01 Luís Pedro Arrojado da Horta , João Santos Reis , Mário Pereira , Simão Melo de Sousa

Scilla is a higher-order polymorphic typed intermediate level language for implementing smart contracts. In this talk, we describe a Scilla compiler targeting LLVM, with a focus on mapping Scilla types, values, and its functional language…

Programming Languages · Computer Science 2020-08-14 Vaivaswatha Nagaraj , Jacob Johannsen , Anton Trunov , George Pîrlea , Amrit Kumar , Ilya Sergey

Blockchain received a vast amount of attention in recent years and is still growing. The second generation of blockchain, such as Ethereum, allows execution of almost any program in Ethereum Virtual Machine (EVM), making it a global…

Cryptography and Security · Computer Science 2024-05-07 Robert Susik , Robert Nowotniak

Smart contracts - computer protocols that regulate the exchange of crypto-assets in trustless environments - have become popular with the spread of blockchain technologies. A landmark security property of smart contracts is liquidity: in a…

Cryptography and Security · Computer Science 2023-06-22 Massimo Bartoletti , Stefano Lande , Maurizio Murgia , Roberto Zunino

The Ethereum protocol implements a replicated state machine. The network participants keep track of the system state by: 1) agreeing on the sequence of transactions to be processed and 2) computing the state transitions that correspond to…

Logic in Computer Science · Computer Science 2023-03-02 Franck Cassez , Joanne Fuller , Milad K. Ghale , David J. Pearce , Horacio M. A. Quiles

Some blockchain programs (smart contracts) have included serious security vulnerabilities. Obsidian is a new typestate-oriented programming language that uses a strong type system to rule out some of these vulnerabilities. Although Obsidian…

Software Engineering · Computer Science 2020-10-19 Michael Coblenz , Jonathan Aldrich , Joshua Sunshine , Brad A. Myers

Over the last few years, there has been substantial research on automated analysis, testing, and debugging of Ethereum smart contracts. However, it is not trivial to compare and reproduce that research. To address this, we present…

Software Engineering · Computer Science 2020-07-13 João F. Ferreira , Pedro Cruz , Thomas Durieux , Rui Abreu

Programs executed on a blockchain - smart contracts - have high financial stakes; their correctness is crucial. We argue, that this correctness needs to be foundational: correctness needs to be based on the operational semantics of their…