Alexander Nutz
University of Freiburg
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Alexander Nutz.
international workshop on model checking software | 2012
Jürgen Christ; Jochen Hoenicke; Alexander Nutz
Craig interpolation is an active research topic and has become a powerful technique in verification. We present SMTInterpol, an interpolating SMT solver for the quantifier-free fragment of the combination of the theory of uninterpreted functions and the theory of linear arithmetic over integers and reals. SMTInterpol is SMTLIB 2 compliant and available under an open source software license (LGPL v3).
tools and algorithms for construction and analysis of systems | 2013
Jürgen Christ; Jochen Hoenicke; Alexander Nutz
Craig interpolation in SMT is difficult because, e. g., theory combination and integer cuts introduce mixed literals, i. e., literals containing local symbols from both input formulae. In this paper, we present a scheme to compute Craig interpolants in the presence of mixed literals. Contrary to existing approaches, this scheme neither limits the inferences done by the SMT solver, nor does it transform the proof tree before extracting interpolants. Our scheme works for the combination of uninterpreted functions and linear arithmetic but is extendable to other theories. The scheme is implemented in the interpolating SMT solver SMTInterpol.
tools and algorithms for construction and analysis of systems | 2013
Matthias Heizmann; Jürgen Christ; Daniel Dietsch; Evren Ermis; Jochen Hoenicke; Markus Lindenmann; Alexander Nutz; Christian Schilling; Andreas Podelski
UltimateAutomizer is an automatic software verification tool for C programs. This tool is the first implementation of trace abstraction, which is an automata-theoretic approach to software verification. The implemented algorithm uses nested interpolants in its interprocedural program analysis. The interpolating SMT solver SMTInterpol is used to compute Craig interpolants.
tools and algorithms for construction and analysis of systems | 2015
Alexander Nutz; Daniel Dietsch; Mostafa Mahmoud Mohamed; Andreas Podelski
Ultimate Kojak is a symbolic software model checker implemented in the Ultimate framework. It follows the CEGAR approach and uses Craig interpolants to refine an overapproximation of the program until it can either prove safety or has found a real counterexample. This years version features a new refinement algorithm, a precise treatment of heap memory, which allows us to deal with pointer aliasing and to participate in the memsafety category, and an improved interpolants generator.
tools and algorithms for construction and analysis of systems | 2017
Matthias Heizmann; Yu-Wen Chen; Daniel Dietsch; Marius Greitschus; Alexander Nutz; Betim Musa; Claus Schätzle; Christian Schilling; Frank Schüssele; Andreas Podelski
Ultimate Automizer is a software verifier that implements an automata-based approach for the verification of safety and liveness properties. A central new feature that speeded up the abstraction refinement of the tool is an on-demand construction of Floyd-Hoare automata.
tools and algorithms for construction and analysis of systems | 2017
Marius Greitschus; Daniel Dietsch; Matthias Heizmann; Alexander Nutz; Claus Schätzle; Christian Schilling; Frank Schüssele; Andreas Podelski
Ultimate Taipan is a software model checker for C programs. It is based on a CEGAR variant, trace abstractioni¾?[7], where program abstractions, counterexample selection and abstraction refinement are based on automata. Ultimate Taipan constructs path programs from counterexamples and computes fixpoints for those path programs using abstract interpretation. If the fixpoints are strong enough to prove the path program to be correct, they are guaranteed to be loop invariants for the path program. If they are not strong enough, Ultimate Taipan uses an interpolating SMT solver to obtain state assertions from the original counterexample, thus guaranteeing progress.
foundations of software engineering | 2017
Daniel Dietsch; Matthias Heizmann; Betim Musa; Alexander Nutz; Andreas Podelski
Ever since the seminal work on SLAM and BLAST, software model checking with counterexample-guided abstraction refinement (CEGAR) has been an active topic of research. The crucial procedure here is to analyze a sequence of program statements (the counterexample) to find building blocks for the overall proof of the program. We can distinguish two approaches (which we name Craig and Newton) to implement the procedure. The historically first approach, Newton (named after the tool from the SLAM toolkit), is based on symbolic execution. The second approach, Craig, is based on Craig interpolation. It was widely believed that Craig is substantially more effective than Newton. In fact, 12 out of the 15 CEGAR-based tools in SV-COMP are based on Craig. Advances in software model checkers based on Craig, however, can go only lockstep with advances in SMT solvers with Craig interpolation. It may be time to revisit Newton and ask whether Newton can be as effective as Craig. We have implemented a total of 11 variants of Craig and Newton in two different state-of-the-art software model checking tools and present the outcome of our experimental comparison.
tools and algorithms for construction and analysis of systems | 2018
Daniel Dietsch; Marius Greitschus; Matthias Heizmann; Jochen Hoenicke; Alexander Nutz; Andreas Podelski; Christian Schilling; Tanja Schindler
Ultimate Taipan is a software model checker that uses trace abstraction and abstract interpretation to prove correctness of programs. In contrast to previous versions, Ultimate Taipan now uses dynamic block encoding to obtain the best precision possible when evaluating transition formulas of large block encoded programs.
tools and algorithms for construction and analysis of systems | 2018
Matthias Heizmann; Yu-Fang Chen; Daniel Dietsch; Marius Greitschus; Jochen Hoenicke; Yong Li; Alexander Nutz; Betim Musa; Christian Schilling; Tanja Schindler; Andreas Podelski
Ultimate Automizer is a software verifier that generalizes proofs for traces to proofs for larger parts for the program. In recent years the portfolio of proof producers that are available to Ultimate has grown continuously. This is not only because more trace analysis algorithms have been implemented in Ultimate but also due to the continuous progress in the SMT community. In this paper we explain how Ultimate Automizer dynamically selects trace analysis algorithms and how the tool decides when proofs for traces are “good” enough for using them in the abstraction refinement.
tools and algorithms for construction and analysis of systems | 2013
Matthias Heizmann; Jürgen Christ; Daniel Dietsch; Evren Ermis; Jochen Hoenicke; Markus Lindenmann; Alexander Nutz; Christian Schilling; Andreas Podelski