Programming Z3

N Bjørner, L de Moura, L Nachmanson… - … Software Systems: 4th …, 2019 - Springer
This tutorial provides a programmer's introduction to the Satisfiability Modulo Theories
Solver Z3. It describes how to use Z3 through scripts, provided in the Python scripting …

SIRO: empowering version compatibility in intermediate representations via program synthesis

B Zhang, W Chen, P Yao, C Wang, W Tang… - Proceedings of the 29th …, 2024 - dl.acm.org
This paper presents Siro, a new program transformation framework that translates between
different versions of Intermediate Representations (IR), aiming to better address the issue of …

Super-optimization of smart contracts

E Albert, P Gordillo, A Hernández-Cerezo… - ACM Transactions on …, 2022 - dl.acm.org
Smart contracts are programs deployed on a blockchain. They are executed for a monetary
fee paid in gas—a clear optimization target for smart contract compilers. Because smart …

An empirical study on bugs in python interpreters

Z Wang, D Bu, A Sun, S Gou, Y Wang… - IEEE Transactions on …, 2022 - ieeexplore.ieee.org
Python is an interpreted programming language that has been widely used in many fields.
The successful execution of a Python program depends on both the correctness of Python …

Abstract execution

D Steinhöfel, R Hähnle - International Symposium on Formal Methods, 2019 - Springer
We propose a new static software analysis principle called Abstract Execution, generalizing
Symbolic Execution: While the latter analyzes all possible execution paths of a specific …

REFINITY to model and prove program transformation rules

D Steinhöfel - Programming Languages and Systems: 18th Asian …, 2020 - Springer
Abstract is a workbench for modeling statement-level transformation rules on programs with
the aim to formally verify their correctness. It is based on Abstract Execution, a verification …

Completion for logically constrained rewriting

S Winkler, A Middeldorp - 3rd International Conference on Formal …, 2018 - drops.dagstuhl.de
We propose an abstract completion procedure for logically constrained term rewrite systems
(LCTRSs). This procedure can be instantiated to both standard Knuth-Bendix completion …

[HTML][HTML] Abstract execution: automatically proving infinitely many programs

D Steinhöfel - 2020 - tubiblio.ulb.tu-darmstadt.de
Abstract programs contain schematic placeholders representing potentially infinitely many
concrete programs. They naturally occur in multiple areas of computer science concerned …

Icarus: Trustworthy Just-In-Time Compilers with Symbolic Meta-Execution

N Smith, A Sharma, J Renner, D Thien… - Proceedings of the …, 2024 - dl.acm.org
Just-in-time (JIT) compilers make JavaScript run efficiently by replacing slow JavaScript
interpreter code with fast machine code. However, this efficiency comes at a cost: bugs in JIT …

Formally verified EVM block-optimizations

E Albert, S Genaim, D Kirchner… - … Conference on Computer …, 2023 - Springer
The efficiency and the security of smart contracts are their two fundamental properties, but
might come at odds: the use of optimizers to enhance efficiency may introduce bugs and …