All times are for Europe/Paris, which observes CEST (UTC+2). A calendar is available.
Sunday, 2020-07-05 Live Stream Day 1
10:00 - 11:00 | Session 1: SMT for Program Verification | chair: Stéphane Graham-Lengrand |
10:00 - 10:30 | SMT-Friendly Formalization of the Solidity Memory Model paper (presentation only) Ákos Hajdu and Dejan Jovanović
Solidity is the dominant programming language for Ethereum
smart contracts. This paper presents a high-level
formalization of the Solidity language with a focus on the
memory model. The presented formalization covers all
features of the language related to managing state and
memory. In addition, the formalization we provide is
effective: all but few features can be encoded in the
quantifier-free fragment of standard SMT theories. This
enables precise and efficient reasoning about the state of
smart contracts written in Solidity. The formalization is
implemented in the solc-verify verifier and we provide an
extensive set of tests that covers the breadth of the
required semantics. We also provide an evaluation on the
test set that validates the semantics and shows the novelty
of the approach compared to other Solidity-level contract
analysis tools.
|
|
10:30 - 11:00 | Towards an SMT-LIB Theory of Heap paper (presentation only) Zafer Esen and Philipp Rümmer
Constrained Horn Clauses (CHC) are a convenient intermediate
verification language that can be generated by several
verification tools, and that can be processed by several
mature and efficient Horn solvers. One of the main
challenges when using CHC in verification is the encoding of
program with heap-allocated data-structures: such
data-structures are today either represented explicitly
using the theory of arrays, or are transformed away with the
help of invariants or refinement types. Both approaches have
disadvantages: they are low-level, do not preserve the
structure of a program well, and leave little design choice
with respect to the handling of heap to the Horn
solver. This abstract presents ongoing work on the
definition of a high-level SMT-LIB theory of heap, which in
the context of CHC gives rise to standard interchange format
for programs with heap data-structures. The abstract
presents the signature and intuition behind the theory. A
preliminary version of the theory axioms can be found in the
appendix. The abstract is meant as a starting point for
discussion, and request for comments.
|
|
11:00 - 11:30 | FSCD/IJCAR virtual coffee break | |
11:30 - 13:00 | Session 2: SAT and Bit Vectors | chair: François Bobot |
11:30 - 12:00 | Lifting congruence closure with free variables to λ-free higher-order logic via SAT encoding extended abstract Sophie Tourret, Pascal Fontaine, Daniel El-Ouraoui and Haniel Barbosa
Recent work in extending SMT solvers to higher-order logic
(HOL) has not explored lifting quantifier instantiation
algorithms to perform higher-order unification. As a
consequence, widely used instantiation techniques, such as
trigger- and particularly conflict-based, can only be
applied in a limited manner. Congruence closure with free
variables (CCFV) is a decision procedure for the E-ground
(dis-)unification problem, which is at the heart of these
instantiation techniques. Here, as a first step towards
fully supporting trigger- and conflict-based instantiation
in HOL, we define the E-ground (dis-)unification problem in
λ-free higher-order logic (λfHOL), an extension of
first-order logic where function symbols may be partially
applied and functional variables may occur, and extend CCFV
to solve it. To improve scalability in the context of
handling higher-order variables, we rely on an encoding of
the CCFV search as a propositional formula. We present a
solution reconstruction procedure so that models for the
propositional formula lead to solutions for the E-ground
(dis-)unification problem. This is instrumental to port
trigger- and conflict-based instantiation to be fully
applied in λfHOL.
|
|
12:00 - 12:30 | An Empirical Evaluation of SAT Solvers on Bit-vector Problems paper Bruno Dutertre
Bit blasting is the main method for solving SMT problems in
the theory of fixed size bit vectors. It converts bit-vector
problems to equisatisfiable Boolean satisfiability problems
that are then solved by SAT solvers. We present an empirical
evaluation of state-of-the-art SAT solvers on problems
produced by bit blasting with the Yices SMT solver. The
results are quite different from common SAT solver
evaluations such as the SAT races and SAT competitions,
which argues for extending these evaluations to include
benchmarks derived from SMT problems.
|
|
12:30 - 13:00 | Structural Bit-Vector Model Counting extended abstract Seonmo Kim and Stephen McCamant Various approximate model counting techniques have been proposed and are used in many applications such as probabilistic inference and quantitative information-flow security. The hashing-based technique is a well-known approach and can be more scalable than exact model counting techniques. However, its performance is highly dependent on the performance of a decision procedure (SAT or SMT solver) and adding numerous hashing constraints to a formula might cause a solver to perform poorly. We propose a model counting technique which computes lower and upper bounds of the number of solutions to an SMT formula by analyzing the structure of the formula, which means this approach does not rely on a decision procedure. Our algorithm runs in polynomial time and gives firm lower and upper bounds unlike other approximate model counters that compute probabilistic bounds. We compare our algorithm with state-of-the- art model counters and our experiments show that our approach is faster than others and provides a trade-off between computational effort and the precision of results. |
|
13:00 - 14:00 | Lunch break | |
14:00 - 15:30 | Joint SC2 session | chair: Konstantin Korovin |
The papers in this session were accepted by the SC2 program committee for presentation at the SC2 workshop. SMT participants are invited to attend these presentations. | ||
14:00 - 14:30 | Computing Tropical Prevarieties with Satisfiability Modulo Theory (SMT) Solvers paper Christoph Lüders
A novel way to use SMT (Satisfiability Modulo Theories)
solvers to compute the tropical prevariety
(resp. equilibrium) of a polynomial system is presented. The
new method is benchmarked against a naive approach that uses
purely polyhedral methods. It turns out that the SMT
approach is faster than the polyhedral approach for models
that would otherwise take more than one minute to compute,
in many cases by a factor of 60 or more, and in the worst
case is only slower by a factor of two. Furthermore, the new
approach is an anytime algorithm, thus offering a way to
compute parts of the solution when the polyhedral approach
is infeasible.
|
|
14:30 - 15:00 | GeoGebra and the realgeom Reasoning Tool Robert Vajda and Zoltán Kovács
Reasoning tools for geometric equalities based on
elimination methods are already integrated in some dynamic
geometry systems (DGS), in particular in GeoGebra. However,
no reasoning tools in any popular DGS environments for
elementary inequalities exist yet. This paper investigates
if the generic real quantifier elimination (RQE) methods and
their existing implementations are mature enough from the
practical point of view to explore simple elementary
Euclidean triangle inequalities and the best possible
geometric constants occurring in the inequalities. It is
known, that from theoretical point, real geometry inequality
problems can be cast as RQE problems and can be solved by
RQE algorithms. Unfortunately, the computational complexity
of the RQE algorithms are rather high. The practical
question is, if the RQE problem formulations for the
investigated geometric inequality are tractable in a
reasonable time limit. If this is so, an RQE based geometry
inequality prover may be also an integral part of DGS. As a
first experimental step, we also implemented a real
reasoning tool for GeoGebra called realgeom which uses
Wolfram’s Mathematica poly-algorithmic RQE tool as an
external service for solving the semi-algebraic problem
associated to the geometric inequality exploration
problem. Finally, we show by an example that parametric real
root counting algorithms may be sufficient to attack certain
inequality exploration problems and they can be later
substitutes/alternatives for the general RQE tool in our
framework.
|
|
15:00 - 15:30 | New Opportunities for the Formal Proof of Computational Real Geometry? Erika Abraham, James H. Davenport, Matthew England, Gereon Kremer and Zak Tonks
The purpose of this paper is to explore the question “to
what extent could we produce formal, machine-verifiable,
proofs in real algebraic geometry?” The question has been
asked before but as yet the leading algorithms for answering
such questions have not been formalised. We present the
thesis that a new algorithm for ascertaining satisfiability
of formulae over the reals via Cylindrical Algebraic
Coverings might provide a trace and outputs that allow the
results to be more susceptible to machine verification than
those of competing algorithms.
|
|
15:30 - 16:00 | FSCD/IJCAR virtual coffee break | |
16:00 - 17:00 | Session 3 | chair: Haniel Barbosa |
16:00 - 17:00 | Invited talk: Solving String Constraints, Starting from the Beginning and from the End Philipp Rümmer
The recent years have seen a wealth of research on string solvers,
i.e., SMT solvers that can check satisfiability of quantifier-free
formulas over a background theory of strings and regular
expressions. String solvers can be applied in different verification
algorithms, for instance in symbolic execution to check path
feasibility, in software model checking to take care of implication
checks; a prime application area is security analysis for languages
like JavaScript and PHP, for instance to discover vulnerability to
injection attacks. To process constraints from those domains, it is
necessary for string solvers to handle a delicate combination of
(theoretically and practically) challenging operations: concatenation
in word equations, to model assignments in programs; regular
expressions or context-free grammars, to model properties or attack
patterns; string length, to express string manipulation in programs;
transduction, to express sanitisation, escape operations, and
replacement operations in strings; and others. This talk will give a
general introduction to string solving, and then present a solver
architecture based on the concept of pre-image computation that is
simple, yet turns out to be complete for an expressive fragment of
string constraints. The architecture has been implemented in our
solver OSTRICH (and is the result of joint work with many people).
|
Monday, 2020-07-06 Live Stream Day 2
10:00 - 11:00 | Session 1 | chair: Pascal Fontaine |
10:00 - 11:00 | Invited talk: Harnessing SMT Solvers for Verifying Low Level Programs Mooly Sagiv Smart contracts are positioned to revolutionize today's business processes by automating financial transactions, digital media distribution, medical record management, property ownership registration, and more. The vast majority of smart contracts are implemented using virtual machines such as EVM and WebAssembly which are very powerful. However, bugs in smart contracts lead to tremendous economic losses. I will describe our ongoing effort to leverage existing SMT solvers for verifying smart contracts and uncovering subtle bugs. We are developing SaaS technology demo.certora.com for smart contract verification. This technology is intended to be used as part of the CI/CD of smart contract development. Safety properties of smart contracts are described in a high level manner to enable reuse across different smart contracts. The EVM code is decompiled into an intermediate representation using static analysis and the SMT formula is generated and fed into SMT solvers. The formulas include nonlinear integer arithmetic with large constants, uninterpreted functions, quantifications. I will also describe some of the high level properties checked and bugs found using the SMT solvers. This is a joint work with Thomas Bernardi, Nurit Dor, Anastasia Fedotov, Shelly Grossman, Alexander Nutz, Lior Oppenheim, Or Pistiner, John A. Toman, and James R. Wilcox. |
|
11:00 - 11:30 | FSCD/IJCAR virtual coffee break | |
11:30 - 13:00 | Session 2: Learning for SMT | chair: Antti Hyvärinen |
11:30 - 12:00 | BanditFuzz: A Reinforcement-Learning based Performance Fuzzer for SMT Solvers (presentation only) Joseph Scott, Federico Mora and Vijay Ganesh
In this paper, we present a reinforcement-learning based
fuzzing system, BanditFuzz, that zeroes in on the
grammatical constructs of well-formed inputs that are the
root cause of performance slowdown in SMT
solvers. BanditFuzz takes the following as input: a grammar
G describing well-formed inputs to a set of distinct solvers
(say, a target solver T and a reference solver R) that
implement the same specification, and a fuzzing objective
(e.g., maximize the relative performance difference between
T and R). BanditFuzz outputs a list of grammatical
constructs that are ranked in descending order by how likely
they are to maximize performance differences between solvers
T and R. Using BanditFuzz, we constructed two benchmark
suites (with 400 floating- point and 300 string instances)
that expose performance issues in all considered solvers,
namely, Z3, CVC4, Colibri, MathSAT, Z3seq, and Z3str3. We
also performed a comparison of BanditFuzz against random,
mutation, and evolutionary fuzzing methods and observed up
to a 81% improvement based on PAR-2 scores used in SAT
competitions.
|
|
12:00 - 12:30 | MachSMT: A Machine Learning-based Algorithm Selector for SMT Solvers (presentation only) Joseph Scott, Aina Niemetz, Mathias Preiner and Vijay Ganesh
In this paper, we present MachSMT, an algorithm selection
tool for state-of-the-art Satisfiability Modulo Theories
(SMT) solvers. MachSMT supports the entirety of the logics
within the SMT-LIB initiative. MachSMT uses machine learning
to learn empirical hardness models (a mapping from SMT-LIB
instances to solvers) for state-of-the-art SMT solvers to
compute a ranking of which solver is most likely to solve a
particular instance the fastest. We analyzed the performance
of MachSMT on 102 logics/tracks of SMT-COMP 2019 and observe
that it improves on competition winners in 49 logics (with
up to 240% in perfor- mance for certain logics). MachSMT is
clearly not a replacement for any particular SMT solver, but
rather a tool that enables users to leverage the collective
strength of the diverse set of algorithms implemented as
part of these sophisticated solvers. Our MachSMT artifact is
available
at https://github.com/j29scott/MachSMT.
|
|
12:30 - 13:00 | Bayesian Optimisation of Solver Parameters in CBMC paper Chaitanya Mangla, Sean Holden and Lawrence Paulson
Satisfiability solvers can be embedded in applications to
perform specific formal reasoning tasks. CBMC, for example,
is a bounded model checker for C and C++ that embeds SMT and
SAT solvers to check internally generated formulae. Such
solvers will be solely used to evaluate the class of
formulae generated by the embedding application and
therefore may benefit from domain-specific parameter
tuning. We propose the use of Bayesian optimisation for this
purpose, which offers a principled approach to black-box
optimisation within limited resources. We demonstrate its
use for optimisation of the solver embedded in CBMC
specifically for a collection of test harnesses in active
industrial use, for which we have achieved a significant
improvement over the default parameters.
|
|
13:00 - 14:00 | Lunch break | |
14:00 - 15:30 | Session 3: SMT Solvers | chair: Giles Reger |
14:00 - 14:30 | Smt-Switch: a solver-agnostic C++ API for SMT solving extended abstract Makai Mann, Amalee Wilson, Cesare Tinelli and Clark Barrett
This extended abstract describes work in progress on
Smt-Switch, an open-source, solver-agnostic API for SMT
solving. Smt-Switch provides an abstract interface, which
can be implemented by different SMT solvers. Smt-Switch
provides simple, uniform, and high-performance access to SMT
solving for applications in areas such as automated
reasoning, planning, and formal verification. The interface
allows the user to create, traverse, and manipulate terms,
as well as to dynamically dispatch queries to different
underlying SMT solvers.
|
|
14:30 - 15:30 | SMT-COMP 2020 Report and Tool Presentations Haniel Barbosa, Jochen Hoenicke and Antti Hyvärinen |
|
15:30 - 16:00 | FSCD/IJCAR virtual coffee break | |
16:00 - 17:30 | Session 4 | chair: Tjark Weber |
16:00 - 16:45 | SMT-LIB Report Cesare Tinelli and Pascal Fontaine |
|
16:45 - 17:30 | Business meeting of the SMT Steering Committee |