24 research outputs found
Formal Specification and Verification of JDK’s Identity Hash Map Implementation
Hash maps are a common and important data structure in efficient
algorithm implementations. Despite their wide-spread use, real-world
implementations are not regularly verified.
In this paper, we present the first case study of the \IHM class in
the Java JDK. We specified its behavior using the Java Modeling
Language (JML) and proved correctness for the main insertion and
lookup methods with \key, a semi-interactive theorem prover for
JML-annotated Java programs. Furthermore, we report how unit testing
and bounded model checking can be leveraged to find a suitable
specification more quickly. We also investigated where the
bottlenecks in the verification of hash maps lie for \key by
comparing required automatic proof effort for different hash map
implementations and draw conclusions for the choice of hash map
implementations regarding their verifiability
Synthesizing Functional Reactive Programs
Functional Reactive Programming (FRP) is a paradigm that has simplified the
construction of reactive programs. There are many libraries that implement
incarnations of FRP, using abstractions such as Applicative, Monads, and
Arrows. However, finding a good control flow, that correctly manages state and
switches behaviors at the right times, still poses a major challenge to
developers. An attractive alternative is specifying the behavior instead of
programming it, as made possible by the recently developed logic: Temporal
Stream Logic (TSL). However, it has not been explored so far how Control Flow
Models (CFMs), as synthesized from TSL specifications, can be turned into
executable code that is compatible with libraries building on FRP. We bridge
this gap, by showing that CFMs are indeed a suitable formalism to be turned
into Applicative, Monadic, and Arrowized FRP. We demonstrate the effectiveness
of our translations on a real-world kitchen timer application, which we
translate to a desktop application using the Arrowized FRP library Yampa, a web
application using the Monadic threepenny-gui library, and to hardware using the
Applicative hardware description language ClaSH.Comment: arXiv admin note: text overlap with arXiv:1712.0024
Contract-Based Specification Refinement and Repair for Mission Planning
We address the problem of modeling, refining, and repairing formal
specifications for robotic missions using assume-guarantee contracts. We show
how to model mission specifications at various levels of abstraction and
implement them using a library of pre-implemented specifications. Suppose the
specification cannot be met using components from the library. In that case, we
compute a proxy for the best approximation to the specification that can be
generated using elements from the library. Afterward, we propose a systematic
way to either 1) search for and refine the `missing part' of the specification
that the library cannot meet or 2) repair the current specification such that
the existing library can refine it. Our methodology for searching and repairing
mission requirements leverages the quotient, separation, composition, and
merging operations between contracts
Constructing Deterministic ?-Automata from Examples by an Extension of the RPNI Algorithm
The RPNI algorithm (Oncina, Garcia 1992) constructs deterministic finite automata from finite sets of negative and positive example words. We propose and analyze an extension of this algorithm to deterministic ?-automata with different types of acceptance conditions. In order to obtain this generalization of RPNI, we develop algorithms for the standard acceptance conditions of ?-automata that check for a given set of example words and a deterministic transition system, whether these example words can be accepted in the transition system with a corresponding acceptance condition. Based on these algorithms, we can define the extension of RPNI to infinite words. We prove that it can learn all deterministic ?-automata with an informative right congruence in the limit with polynomial time and data. We also show that the algorithm, while it can learn some automata that do not have an informative right congruence, cannot learn deterministic ?-automata for all regular ?-languages in the limit. Finally, we also prove that active learning with membership and equivalence queries is not easier for automata with an informative right congruence than for general deterministic ?-automata
Determinization of B\"uchi Automata: Unifying the Approaches of Safra and Muller-Schupp
Determinization of B\"uchi automata is a long-known difficult problem and
after the seminal result of Safra, who developed the first asymptotically
optimal construction from B\"uchi into Rabin automata, much work went into
improving, simplifying or avoiding Safra's construction. A different, less
known determinization construction was derived by Muller and Schupp and appears
to be unrelated to Safra's construction on the first sight. In this paper we
propose a new meta-construction from nondeterministic B\"uchi to deterministic
parity automata which strictly subsumes both the construction of Safra and the
construction of Muller and Schupp. It is based on a correspondence between
structures that are encoded in the macrostates of the determinization
procedures - Safra trees on one hand, and levels of the split-tree, which
underlies the Muller and Schupp construction, on the other. Our construction
allows for combining the mentioned constructions and opens up new directions
for the development of heuristics.Comment: Full version of ICALP 2019 pape