We define a technique for analyzing updates of smart contracts balances due to transfers of digital assets. The analysis addresses a lightweight smart contract language and consists of a two-step translation. First, we define the input-output behaviours of smart contract functions by means of a simple functional language with static dispatch....
-
June 24, 2021 (v1)Journal articleUploaded on: December 4, 2022
-
June 23, 2016 (v1)Conference paper
We present a proof-of-concept prototype of a (constructive variant of an) HOL interactive theorem prover written in a Higher Order Logic Programming (HOLP) language, namely an extension of λProlog. The prototype is meant to support the claim, that we reinforce , that HOLP is the class of languages that provides the right abstraction level and...
Uploaded on: March 25, 2023 -
March 1, 2019 (v1)Journal article
In this paper we are interested in high-level programming languages to implement the core components of an interactive theorem prover for a dependently typed language: the kernel — responsible for type-checking closed terms — and the elaborator — that manipulates terms with holes or, equivalently, partial proof terms. In the first part of the...
Uploaded on: December 4, 2022 -
November 24, 2015 (v1)Conference paper
We present a new interpreter for λProlog that runs consistently faster than the byte code compiled by Teyjus, that is believed to be the best available implementation of λProlog. The key insight is the identification of a fragment of the language, which we call reduction-free fragment (L β λ), that occurs quite naturally in λProlog programs and...
Uploaded on: March 25, 2023 -
September 20, 2023 (v1)Conference paper
Several notions of reversibility exist in the literature. On the one hand, causal reversibility establishes that an action can be undone provided that all of its consequences have been undone already, thereby making it possible to bring a system back to a past consistent state. On the other hand, time reversibility stipulates that the...
Uploaded on: December 17, 2023 -
July 5, 2022 (v1)Conference paper
A relevant application of reversibility is causal-consistent reversible debugging, which allows one to explore concurrent computations backward and forward to find a bug. This approach has been put into practice in CauDEr, a causal-consistent reversible debugger for the Erlang programming language. CauDEr supports the functional, concurrent and...
Uploaded on: February 22, 2023 -
July 5, 2022 (v1)Report
A relevant application of reversibility is causal-consistent reversible debugging, which allows one to explore concurrent computations backward and forward to find a bug. This approach has been put into practice in CauDEr, a causal-consistent reversible debugger for the Erlang programming language. CauDEr supports the functional, concurrent and...
Uploaded on: December 3, 2022 -
May 2001 (v1)Conference paper
International audience
Uploaded on: March 25, 2023