4,792 research outputs found
Automatic Repair of Infinite Loops
Research on automatic software repair is concerned with the development of
systems that automatically detect and repair bugs. One well-known class of bugs
is the infinite loop. Every computer programmer or user has, at least once,
experienced this type of bug. We state the problem of repairing infinite loops
in the context of test-suite based software repair: given a test suite with at
least one failing test, generate a patch that makes all test cases pass.
Consequently, repairing infinites loop means having at least one test case that
hangs by triggering the infinite loop. Our system to automatically repair
infinite loops is called . We develop a technique to manipulate
loops so that one can dynamically analyze the number of iterations of loops;
decide to interrupt the loop execution; and dynamically examine the state of
the loop on a per-iteration basis. Then, in order to synthesize a new loop
condition, we encode this set of program states as a code synthesis problem
using a technique based on Satisfiability Modulo Theory (SMT). We evaluate our
technique on seven seeded-bugs and on seven real-bugs. is able to
repair all of them, within seconds up to one hour on a standard laptop
configuration
Proving Safety with Trace Automata and Bounded Model Checking
Loop under-approximation is a technique that enriches C programs with
additional branches that represent the effect of a (limited) range of loop
iterations. While this technique can speed up the detection of bugs
significantly, it introduces redundant execution traces which may complicate
the verification of the program. This holds particularly true for verification
tools based on Bounded Model Checking, which incorporate simplistic heuristics
to determine whether all feasible iterations of a loop have been considered.
We present a technique that uses \emph{trace automata} to eliminate redundant
executions after performing loop acceleration. The method reduces the diameter
of the program under analysis, which is in certain cases sufficient to allow a
safety proof using Bounded Model Checking. Our transformation is precise---it
does not introduce false positives, nor does it mask any errors. We have
implemented the analysis as a source-to-source transformation, and present
experimental results showing the applicability of the technique
Guided Unfoldings for Finding Loops in Standard Term Rewriting
In this paper, we reconsider the unfolding-based technique that we have
introduced previously for detecting loops in standard term rewriting. We
improve it by guiding the unfolding process, using distinguished positions in
the rewrite rules. This results in a depth-first computation of the unfoldings,
whereas the original technique was breadth-first. We have implemented this new
approach in our tool NTI and compared it to the previous one on a bunch of
rewrite systems. The results we get are promising (better times, more
successful proofs).Comment: Pre-proceedings paper presented at the 28th International Symposium
on Logic-Based Program Synthesis and Transformation (LOPSTR 2018), Frankfurt
am Main, Germany, 4-6 September 2018 (arXiv:1808.03326
Linear Encodings of Bounded LTL Model Checking
We consider the problem of bounded model checking (BMC) for linear temporal
logic (LTL). We present several efficient encodings that have size linear in
the bound. Furthermore, we show how the encodings can be extended to LTL with
past operators (PLTL). The generalised encoding is still of linear size, but
cannot detect minimal length counterexamples. By using the virtual unrolling
technique minimal length counterexamples can be captured, however, the size of
the encoding is quadratic in the specification. We also extend virtual
unrolling to Buchi automata, enabling them to accept minimal length
counterexamples.
Our BMC encodings can be made incremental in order to benefit from
incremental SAT technology. With fairly small modifications the incremental
encoding can be further enhanced with a termination check, allowing us to prove
properties with BMC. Experiments clearly show that our new encodings improve
performance of BMC considerably, particularly in the case of the incremental
encoding, and that they are very competitive for finding bugs. An analysis of
the liveness-to-safety transformation reveals many similarities to the BMC
encodings in this paper. Using the liveness-to-safety translation with
BDD-based invariant checking results in an efficient method to find shortest
counterexamples that complements the BMC-based approach.Comment: Final version for Logical Methods in Computer Science CAV 2005
special issu
Arbitrarily Large Continuous-Variable Cluster States from a Single Quantum Nondemolition Gate
We present a compact experimental design for producing an arbitrarily large
optical continuous-variable cluster state using just one single-mode vacuum
squeezer and one quantum nondemolition gate. Generating the cluster state and
computing with it happen simultaneously: more entangled modes become available
as previous modes are measured, thereby making finite the requirements for
coherence and stability even as the computation length increases indefinitely.Comment: (v2) 5 pages, 4 color figures, added brief mention of fault
tolerance, version accepted for publication (note: actual published version
is edited slightly for space); (v1) 4 pages, 4 color figure
Enabling Correct Interest Forwarding and Retransmissions in a Content Centric Network
We show that the mechanisms used in the name data networking (NDN) and the
original content centric networking (CCN) architectures may not detect Interest
loops, even if the network in which they operate is static and no faults occur.
Furthermore, we show that no correct Interest forwarding strategy can be
defined that allows Interest aggregation and attempts to detect Interest
looping by identifying Interests uniquely. We introduce SIFAH (Strategy for
Interest Forwarding and Aggregation with Hop-Counts), the first Interest
forwarding strategy shown to be correct under any operational conditions of a
content centric network. SIFAH operates by having forwarding information bases
(FIBs) store the next hops and number of hops to named content, and by having
each Interest state the name of the requested content and the hop count from
the router forwarding an Interest to the content. We present the results of
simulation experiments using the ndnSIM simulator comparing CCN and NDN with
SIFAH. The results of these experiments illustrate the negative impact of
undetected Interest looping when Interests are aggregated in CCN and NDN, and
the performance advantages of using SIFAH
Generating Schemata of Resolution Proofs
Two distinct algorithms are presented to extract (schemata of) resolution
proofs from closed tableaux for propositional schemata. The first one handles
the most efficient version of the tableau calculus but generates very complex
derivations (denoted by rather elaborate rewrite systems). The second one has
the advantage that much simpler systems can be obtained, however the considered
proof procedure is less efficient
Loops under Strategies ... Continued
While there are many approaches for automatically proving termination of term
rewrite systems, up to now there exist only few techniques to disprove their
termination automatically. Almost all of these techniques try to find loops,
where the existence of a loop implies non-termination of the rewrite system.
However, most programming languages use specific evaluation strategies, whereas
loop detection techniques usually do not take strategies into account. So even
if a rewrite system has a loop, it may still be terminating under certain
strategies.
Therefore, our goal is to develop decision procedures which can determine
whether a given loop is also a loop under the respective evaluation strategy.
In earlier work, such procedures were presented for the strategies of
innermost, outermost, and context-sensitive evaluation. In the current paper,
we build upon this work and develop such decision procedures for important
strategies like leftmost-innermost, leftmost-outermost,
(max-)parallel-innermost, (max-)parallel-outermost, and forbidden patterns
(which generalize innermost, outermost, and context-sensitive strategies). In
this way, we obtain the first approach to disprove termination under these
strategies automatically.Comment: In Proceedings IWS 2010, arXiv:1012.533
- …