11 research outputs found

    Polyhedra to the rescue of array interpolants

    No full text
    International audienceWe propose a new approach to the automated verification of the correctness of programs handling arrays. An abstract interpreter supplies auxiliary numeric invariants to an interpolation-based refinement procedure suited to array programs. Experiments show that this combination approach, implemented in an enhanced version of the Booster software model-checker, performs better than the pure interpolation-based approach, at no additional cost

    A simple abstraction of arrays and maps by program translation

    Full text link
    We present an approach for the static analysis of programs handling arrays, with a Galois connection between the semantics of the array program and semantics of purely scalar operations. The simplest way to implement it is by automatic, syntactic transformation of the array program into a scalar program followed analysis of the scalar program with any static analysis technique (abstract interpretation, acceleration, predicate abstraction,.. .). The scalars invariants thus obtained are translated back onto the original program as universally quantified array invariants. We illustrate our approach on a variety of examples, leading to the " Dutch flag " algorithm

    Cell morphing: from array programs to array-free Horn clauses

    Get PDF
    International audienceAutomatically verifying safety properties of programs is hard.Many approaches exist for verifying programs operating on Boolean and integer values (e.g. abstract interpretation, counterexample-guided abstraction refinement using interpolants), but transposing them to array properties has been fraught with difficulties.Our work addresses that issue with a powerful and flexible abstractionthat morphes concrete array cells into a finite set of abstractones. This abstraction is parametric both in precision and in theback-end analysis used.From our programs with arrays, we generate nonlinear Horn clauses overscalar variables only, in a common format with clear and unambiguouslogical semantics, for which there exist several solvers. We thusavoid the use of solvers operating over arrays, which are still veryimmature.Experiments with our prototype VAPHOR show that this approach can proveautomatically and without user annotationsthe functional correctness of several classical examples, including \emph{selection sort}, \emph{bubble sort}, \emph{insertion sort}, as well as examples from literature on array analysis

    Scaling Bounded Model Checking By Transforming Programs With Arrays

    Full text link
    Bounded Model Checking is one the most successful techniques for finding bugs in program. However, model checkers are resource hungry and are often unable to verify programs with loops iterating over large arrays.We present a transformation that enables bounded model checkers to verify a certain class of array properties. Our technique transforms an array-manipulating (ANSI-C) program to an array-free and loop-free (ANSI-C) program thereby reducing the resource requirements of a model checker significantly. Model checking of the transformed program using an off-the-shelf bounded model checker simulates the loop iterations efficiently. Thus, our transformed program is a sound abstraction of the original program and is also precise in a large number of cases - we formally characterize the class of programs for which it is guaranteed to be precise. We demonstrate the applicability and usefulness of our technique on both industry code as well as academic benchmarks

    An SMT-based verification framework for software systems handling arrays

    Get PDF
    Recent advances in the areas of automated reasoning and first-order theorem proving paved the way to the developing of effective tools for the rigorous formal analysis of computer systems. Nowadays many formal verification frameworks are built over highly engineered tools (SMT-solvers) implementing decision procedures for quantifier- free fragments of theories of interest for (dis)proving properties of software or hardware products. The goal of this thesis is to go beyond the quantifier-free case and enable sound and effective solutions for the analysis of software systems requiring the usage of quantifiers. This is the case, for example, of software systems handling array variables, since meaningful properties about arrays (e.g., "the array is sorted") can be expressed only by exploiting quantification. The first contribution of this thesis is the definition of a new Lazy Abstraction with Interpolants framework in which arrays can be handled in a natural manner. We identify a fragment of the theory of arrays admitting quantifier-free interpolation and provide an effective quantifier-free interpolation algorithm. The combination of this result with an important preprocessing technique allows the generation of the required quantified formulae. Second, we prove that accelerations, i.e., transitive closures, of an interesting class of relations over arrays are definable in the theory of arrays via Exists-Forall-first order formulae. We further show that the theoretical importance of this result has a practical relevance: Once the (problematic) nested quantifiers are suitably handled, acceleration offers a precise (not over-approximated) alternative to abstraction solutions. Third, we present new decision procedures for quantified fragments of the theories of arrays. Our decision procedures are fully declarative, parametric in the theories describing the structure of the indexes and the elements of the arrays and orthogonal with respect to known results. Fourth, by leveraging our new results on acceleration and decision procedures, we show that the problem of checking the safety of an important class of programs with arrays is fully decidable. The thesis presents along with theoretical results practical engineering strategies for the effective implementation of a framework combining the aforementioned results: The declarative nature of our contributions allows for the definition of an integrated framework able to effectively check the safety of programs handling array variables while overcoming the individual limitations of the presented techniques

    Occlusion points identification algorithm

    Get PDF
    In this paper a very simple and efficient algorithm is proposed, to calculate the invisible regions of a scene, or shadowed side of a body, when it is observed from a pre-set point. This is done by applying a deterministic numerical procedure to the portion of scene in the field of view, after having been projected in the observer reference frame. The great advantage of this approach is its generality and suitability for a wide number of applications. They span from real time renderings, to the simulation of different types of light sources, such as diffused or collimated, or simply to calculate the effective visible surface for a camera mounted on board of an aircraft, in order to optimize its trajectory if remote sensing or aerial mapping task should be carried out. Optimizing the trajectory, by minimizing at any time the occluded surface, is also a powerful solution for a search and rescue mission, because a wider area in a shorter time can be observed, particularly in situations where the time is a critical parameter, such as, during a forest fire or in case of avalanches. For its simplicity of implementation, the algorithm is suitable for real time applications, providing an extremely accurate solution in a fraction of a millisecond. In this paper, the algorithm has been tested by calculating the occluded regions of a very complex mountainous scenario, seen from a gimbal-camera mounted on board of a flying platform

    Vérification relationnelle pour des programmes avec des données entières

    Get PDF
    Les travaux présentés dans cette thèse sont lies aux problèmes de vérification de l'atteignabilité et de la terminaison de programmes qui manipulent des données entières non-bornées. On décrit une nouvelle méthode de vérification basée sur une technique d'accélération de boucle, qui calcule, de manière exacte, la clôture transitive d'une relation arithmétique. D'abord, on introduit un algorithme d'accélération de boucle qui peut calculer, en quelques secondes, des clôtures transitives pour des relations de l'ordre d'une centaine de variables. Ensuite, on présente une méthode d'analyse de l'atteignabilité, qui manipule des relations entre les variables entières d'un programme, et applique l'accélération pour le calcul des relations entrée-sortie des procédures, de façon modulaire. Une approche alternative pour l'analyse de l'atteignabilité, présentée également dans cette thèse, intègre l'accélération avec l'abstraction par prédicats, afin de traiter le problème de divergence de cette dernière. Ces deux méthodes ont été évaluées de manière pratique, sur un nombre important d'exemples, qui étaient, jusqu'a présent, hors de la portée des outils d'analyse existants. Dernièrement, on a étudié le problème de la terminaison pour certaines classes de boucles de programme, et on a montré la décidabilité pour les relations étudiées. Pour ces classes de relations arithmétiques, on présente un algorithme qui s'exécute en temps au plus polynomial, et qui calcule l'ensemble d'états qui peuvent générer une exécution infinie. Ensuite on a intégré cet algorithme dans une méthode d'analyse de la terminaison pour des programmes qui manipulent des données entières.This work presents novel methods for verification of reachability and termination properties of programs that manipulate unbounded integer data. Most of these methods are based on acceleration techniques which compute transitive closures of program loops. We first present an algorithm that accelerates several classes of integer relations and show that the new method performs up to four orders of magnitude better than the previous ones. On the theoretical side, our framework provides a common solution to the acceleration problem by proving that the considered classes of relations are periodic. Subsequently, we introduce a semi-algorithmic reachability analysis technique that tracks relations between variables of integer programs and applies the proposed acceleration algorithm to compute summaries of procedures in a modular way. Next, we present an alternative approach to reachability analysis that integrates predicate abstraction with our acceleration techniques to increase the likelihood of convergence of the algorithm. We evaluate these algorithms and show that they can handle a number of complex integer programs where previous approaches failed. Finally, we study the termination problem for several classes of program loops and show that it is decidable. Moreover, for some of these classes, we design a polynomial time algorithm that computes the exact set of program configurations from which non-terminating runs exist. We further integrate this algorithm into a semi-algorithmic method that analyzes termination of integer programs, and show that the resulting technique can verify termination properties of several non-trivial integer programs.SAVOIE-SCD - Bib.électronique (730659901) / SudocGRENOBLE1/INP-Bib.électronique (384210012) / SudocGRENOBLE2/3-Bib.électronique (384219901) / SudocSudocFranceF

    Advances in Robot Kinematics : Proceedings of the 15th international conference on Advances in Robot Kinematics

    Get PDF
    International audienceThe motion of mechanisms, kinematics, is one of the most fundamental aspect of robot design, analysis and control but is also relevant to other scientific domains such as biome- chanics, molecular biology, . . . . The series of books on Advances in Robot Kinematics (ARK) report the latest achievement in this field. ARK has a long history as the first book was published in 1991 and since then new issues have been published every 2 years. Each book is the follow-up of a single-track symposium in which the participants exchange their results and opinions in a meeting that bring together the best of world’s researchers and scientists together with young students. Since 1992 the ARK symposia have come under the patronage of the International Federation for the Promotion of Machine Science-IFToMM.This book is the 13th in the series and is the result of peer-review process intended to select the newest and most original achievements in this field. For the first time the articles of this symposium will be published in a green open-access archive to favor free dissemination of the results. However the book will also be o↵ered as a on-demand printed book.The papers proposed in this book show that robot kinematics is an exciting domain with an immense number of research challenges that go well beyond the field of robotics.The last symposium related with this book was organized by the French National Re- search Institute in Computer Science and Control Theory (INRIA) in Grasse, France

    Ahlfors circle maps and total reality: from Riemann to Rohlin

    Full text link
    This is a prejudiced survey on the Ahlfors (extremal) function and the weaker {\it circle maps} (Garabedian-Schiffer's translation of "Kreisabbildung"), i.e. those (branched) maps effecting the conformal representation upon the disc of a {\it compact bordered Riemann surface}. The theory in question has some well-known intersection with real algebraic geometry, especially Klein's ortho-symmetric curves via the paradigm of {\it total reality}. This leads to a gallery of pictures quite pleasant to visit of which we have attempted to trace the simplest representatives. This drifted us toward some electrodynamic motions along real circuits of dividing curves perhaps reminiscent of Kepler's planetary motions along ellipses. The ultimate origin of circle maps is of course to be traced back to Riemann's Thesis 1851 as well as his 1857 Nachlass. Apart from an abrupt claim by Teichm\"uller 1941 that everything is to be found in Klein (what we failed to assess on printed evidence), the pivotal contribution belongs to Ahlfors 1950 supplying an existence-proof of circle maps, as well as an analysis of an allied function-theoretic extremal problem. Works by Yamada 1978--2001, Gouma 1998 and Coppens 2011 suggest sharper degree controls than available in Ahlfors' era. Accordingly, our partisan belief is that much remains to be clarified regarding the foundation and optimal control of Ahlfors circle maps. The game of sharp estimation may look narrow-minded "Absch\"atzungsmathematik" alike, yet the philosophical outcome is as usual to contemplate how conformal and algebraic geometry are fighting together for the soul of Riemann surfaces. A second part explores the connection with Hilbert's 16th as envisioned by Rohlin 1978.Comment: 675 pages, 199 figures; extended version of the former text (v.1) by including now Rohlin's theory (v.2
    corecore