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 …

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 …

Quantitative verification of scheduling heuristics

S Goel, B Mikek, J Aly, V Arun, A Saeed… - arXiv preprint arXiv …, 2023 - arxiv.org
Computer systems use many scheduling heuristics to allocate resources. Understanding
their performance properties is hard because it requires a representative workload and …

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 …

IRFuzzer: Specialized Fuzzing for LLVM Backend Code Generation

Y Rong, Z Yu, Z Weng, S Neuendorffer… - arXiv preprint arXiv …, 2024 - arxiv.org
Modern compilers, such as LLVM, are complex pieces of software. Due to their complexity,
manual testing is unlikely to suffice, yet formal verification is difficult to scale. End-to-end …

[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 …

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 …