1,309 research outputs found
Path-Based Program Repair
We propose a path-based approach to program repair for imperative programs.
Our repair framework takes as input a faulty program, a logic specification
that is refuted, and a hint where the fault may be located. An iterative
abstraction refinement loop is then used to repair the program: in each
iteration, the faulty program part is re-synthesized considering a symbolic
counterexample, where the control-flow is kept concrete but the data-flow is
symbolic. The appeal of the idea is two-fold: 1) the approach lazily considers
candidate repairs and 2) the repairs are directly derived from the logic
specification. In contrast to prior work, our approach is complete for programs
with finitely many control-flow paths, i.e., the program is repaired if and
only if it can be repaired at the specified fault location. Initial results for
small programs indicate that the approach is useful for debugging programs in
practice.Comment: In Proceedings FESCA 2015, arXiv:1503.0437
Efficient Symmetry Reduction and the Use of State Symmetries for Symbolic Model Checking
One technique to reduce the state-space explosion problem in temporal logic
model checking is symmetry reduction. The combination of symmetry reduction and
symbolic model checking by using BDDs suffered a long time from the
prohibitively large BDD for the orbit relation. Dynamic symmetry reduction
calculates representatives of equivalence classes of states dynamically and
thus avoids the construction of the orbit relation. In this paper, we present a
new efficient model checking algorithm based on dynamic symmetry reduction. Our
experiments show that the algorithm is very fast and allows the verification of
larger systems. We additionally implemented the use of state symmetries for
symbolic symmetry reduction. To our knowledge we are the first who investigated
state symmetries in combination with BDD based symbolic model checking
Sparsity-Sensitive Finite Abstraction
Abstraction of a continuous-space model into a finite state and input
dynamical model is a key step in formal controller synthesis tools. To date,
these software tools have been limited to systems of modest size (typically
6 dimensions) because the abstraction procedure suffers from an
exponential runtime with respect to the sum of state and input dimensions. We
present a simple modification to the abstraction algorithm that dramatically
reduces the computation time for systems exhibiting a sparse interconnection
structure. This modified procedure recovers the same abstraction as the one
computed by a brute force algorithm that disregards the sparsity. Examples
highlight speed-ups from existing benchmarks in the literature, synthesis of a
safety supervisory controller for a 12-dimensional and abstraction of a
51-dimensional vehicular traffic network
AbsSynthe: abstract synthesis from succinct safety specifications
In this paper, we describe a synthesis algorithm for safety specifications
described as circuits. Our algorithm is based on fixpoint computations,
abstraction and refinement, it uses binary decision diagrams as symbolic data
structure. We evaluate our tool on the benchmarks provided by the organizers of
the synthesis competition organized within the SYNT'14 workshop.Comment: In Proceedings SYNT 2014, arXiv:1407.493
Applying Formal Methods to Networking: Theory, Techniques and Applications
Despite its great importance, modern network infrastructure is remarkable for
the lack of rigor in its engineering. The Internet which began as a research
experiment was never designed to handle the users and applications it hosts
today. The lack of formalization of the Internet architecture meant limited
abstractions and modularity, especially for the control and management planes,
thus requiring for every new need a new protocol built from scratch. This led
to an unwieldy ossified Internet architecture resistant to any attempts at
formal verification, and an Internet culture where expediency and pragmatism
are favored over formal correctness. Fortunately, recent work in the space of
clean slate Internet design---especially, the software defined networking (SDN)
paradigm---offers the Internet community another chance to develop the right
kind of architecture and abstractions. This has also led to a great resurgence
in interest of applying formal methods to specification, verification, and
synthesis of networking protocols and applications. In this paper, we present a
self-contained tutorial of the formidable amount of work that has been done in
formal methods, and present a survey of its applications to networking.Comment: 30 pages, submitted to IEEE Communications Surveys and Tutorial
CrocoPat 2.1 Introduction and Reference Manual
CrocoPat is an efficient, powerful and easy-to-use tool for manipulating
relations of arbitrary arity, including directed graphs. This manual provides
an introduction to and a reference for CrocoPat and its programming language
RML. It includes several application examples, in particular from the analysis
of structural models of software systems.Comment: 19 pages + cover, 2 eps figures, uses llncs.cls and
cs_techrpt_cover.sty, for downloading the source code, binaries, and RML
examples, see http://www.software-systemtechnik.de/CrocoPat
- …