Tutorial On Static Inference Of Numeric Invariants By Abstract Interpretation


Download Tutorial On Static Inference Of Numeric Invariants By Abstract Interpretation PDF/ePub or read online books in Mobi eBooks. Click Download or Read Online button to get Tutorial On Static Inference Of Numeric Invariants By Abstract Interpretation book now. This website allows unlimited access to, at the time of writing, more than 1.5 million titles, including hundreds of thousands of titles in various foreign languages.

Download

Tutorial on Static Inference of Numeric Invariants by Abstract Interpretation


Tutorial on Static Inference of Numeric Invariants by Abstract Interpretation

Author: Antoine Min©♭

language: en

Publisher:

Release Date: 2017


DOWNLOAD





Born in the late 70s, Abstract Interpretation has proven an effective method to construct static analyzers. It has led to successful program analysis tools routinely used in avionic, automotive, and space industries to help ensuring the correctness of mission-critical software. This tutorial presents Abstract Interpretation and its use to create static analyzers that infer numeric invariants on programs. We first present the theoretical bases of Abstract Interpretation: how to assign a well-defined formal semantics to programs, construct computable approximations to derive effective analyzers, and ensure soundness, i.e., any property derived by the analyzer is true of all actual executions -- although some properties may be missed due to approximations, a necessary compromise to keep the analysis automatic, sound, and terminating when inferring uncomputable properties.We describe the classic numeric abstractions readily available to an analysis designer: intervals, polyhedra, congruences, octagons, etc., as well as domain combiners: the reduced product and various disjunctive completions. This tutorial focuses not only on the semantic aspect, but also on the algorithmic one, providing a description of the data-structures and algorithms necessary to effectively implement all our abstractions. We will encounter many trade-offs between cost on the one hand, and precision and expressiveness on the other hand. Invariant inference is formalized on an idealized, toy-language, manipulating perfect numbers, but the principles and algorithms we present are effectively used in analyzers for real industrial programs, although this is out of the scope of this tutorial. This tutorial is intended as an entry course in Abstract Interpretation, after which the reader should be ready to read the research literature on current advances in Abstract Interpretation and on the design of static analyzers for real languages.

Verification, Model Checking, and Abstract Interpretation


Verification, Model Checking, and Abstract Interpretation

Author: Rayna Dimitrova

language: en

Publisher: Springer Nature

Release Date: 2023-12-29


DOWNLOAD





The two-volume set LNCS 14499 and 14500 constitutes the proceedings of the 25th International Conference on Verification, Model Checking, and Abstract Interpretation, VMCAI 2024, which took place in London, Ontario, Canada, in January 2024. The 30 full papers presented in the proceedings were carefully reviewed and selected from 74 submissions. They were organized in topical sections as follows:Part I: Abstract interpretation; infinite-state systems; model checking and synthesis; SAT, SMT, and automated reasoning; Part II: Concurrency; neural networks; probabilistic and quantum programs; program and system verification; runtime verification; security and privacy.

Principles of Abstract Interpretation


Principles of Abstract Interpretation

Author: Patrick Cousot

language: en

Publisher: MIT Press

Release Date: 2021-09-21


DOWNLOAD





Introduction to abstract interpretation, with examples of applications to the semantics, specification, verification, and static analysis of computer programs. Formal methods are mathematically rigorous techniques for the specification, development, manipulation, and verification of safe, robust, and secure software and hardware systems. Abstract interpretation is a unifying theory of formal methods that proposes a general methodology for proving the correctness of computing systems, based on their semantics. The concepts of abstract interpretation underlie such software tools as compilers, type systems, and security protocol analyzers. This book provides an introduction to the theory and practice of abstract interpretation, offering examples of applications to semantics, specification, verification, and static analysis of programming languages with emphasis on calculational design. The book covers all necessary computer science and mathematical concepts--including most of the logic, order, linear, fixpoint, and discrete mathematics frequently used in computer science--in separate chapters before they are used in the text. Each chapter offers exercises and selected solutions. Chapter topics include syntax, parsing, trace semantics, properties and their abstraction, fixpoints and their abstractions, reachability semantics, abstract domain and abstract interpreter, specification and verification, effective fixpoint approximation, relational static analysis, and symbolic static analysis. The main applications covered include program semantics, program specification and verification, program dynamic and static analysis of numerical properties and of such symbolic properties as dataflow analysis, software model checking, pointer analysis, dependency, and typing (both for forward and backward analysis), and their combinations. Principles of Abstract Interpretation is suitable for classroom use at the graduate level and as a reference for researchers and practitioners.