Benjamin Weiß

Learn More
ion, i.e, the process of simplifying away unnecessary details while keeping something’s essence, is a fundamental concept in computer science. In software development, abstraction is crucial because software systems are usually too complex to be conceived or understood by a human mind in their entirety at any point in time. Abstraction allows us to focus on(More)
In this paper we present a realisation of the concept of dynamic frames in a dynamic logic for verifying Java programs. This is achieved by treating sets of heap locations as first class citizens in the logic. Syntax and formal semantics of the logic are presented, along with sound proof rules for modularly reasoning about method calls and heap dependent(More)
Predicate abstraction is a form of abstract interpretation where the abstract domain is constructed from a finite set of predicates over the variables of the program. This paper explores a way to integrate predicate abstraction into a calculus for deductive program verification based on symbolic execution, where it allows us to infer loop invariants(More)
Interpretation of Symbolic Execution with Explicit State Updates Richard Bubel, Reiner Hähnle, and Benjamin Weiß 1 Department of Computer Science and Engineering, Chalmers University of Technology and Göteborg University {bubel,reiner}@chalmers.se 2 Institute for Theoretical Computer Science, University of Karlsruhe bweiss@ira.uka.de Abstract. Systems for(More)
In this paper we propose a method for inferring invariants for loops in Java programs. An example of a simple while loop is used throughout the paper to explain our approach. The method is based on a combination of symbolic execution and computing fixed points via predicate abstraction. It reuses the axiomatisation of the Java semantics of the KeY system.(More)
For modular verification of object-oriented programs, it is necessary to constrain what may be changed by a method in addition to how it is changed. Doing so with the classical means of preand postconditions is cumbersome, and even impossible if the program context is not entirely known. Therefore, specifications make use of an additional construct, known(More)
We present here a universal estimation scheme for the problem of estimating the residual waiting time until the next occurrence of a zero after observing the first n outputs of a stationary and ergodic binary process. The scheme will involve estimating only at carefully selected stopping times but will be almost surely consistent. In case the process(More)