Tutorial on Static Inference of Numeric Invariants by Abstract Interpretation

Tutorial on Static Inference of Numeric Invariants by Abstract Interpretation

Author: Antoine Min©♭

Publisher:

Published: 2017

Total Pages: 252

ISBN-13: 9781680833874

DOWNLOAD EBOOK

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.


Principles of Abstract Interpretation

Principles of Abstract Interpretation

Author: Patrick Cousot

Publisher: MIT Press

Published: 2021-09-21

Total Pages: 833

ISBN-13: 0262361523

DOWNLOAD EBOOK

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.


Verification, Model Checking, and Abstract Interpretation

Verification, Model Checking, and Abstract Interpretation

Author: Rayna Dimitrova

Publisher: Springer Nature

Published: 2023-12-29

Total Pages: 361

ISBN-13: 3031505247

DOWNLOAD EBOOK

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.


Static Analysis

Static Analysis

Author: Bor-Yuh Evan Chang

Publisher: Springer Nature

Published: 2019-10-05

Total Pages: 484

ISBN-13: 3030323048

DOWNLOAD EBOOK

This book constitutes the refereed proceedings of the 26th International Symposium on Static Analysis, SAS 2019, held in Porto, Portugal, in October 2019. The 20 regular papers presented in this book were carefully reviewed and selected from 50 submissions. The papers are grouped in topical sections on pointers and dataflow; languages and decidability; numerical; trends: assuring machine learning; synthesis and security; and temporal properties and termination.


Static Analysis

Static Analysis

Author: Gagandeep Singh

Publisher: Springer Nature

Published: 2022-12-01

Total Pages: 482

ISBN-13: 303122308X

DOWNLOAD EBOOK

This book constitutes the refereed proceedings of the 29th International Symposium on Static Analysis, SAS 2022, held in Auckland, New Zealand, in December 2022. The 18 full papers included in this book were carefully reviewed and selected from 43 submissions. Static analysis is widely recognized as a fundamental tool for program verification, bug detection, compiler optimization, program understanding, and software maintenance. The papers deal with theoretical, practical and application advances in the area.


Static Analysis

Static Analysis

Author: Manuel V. Hermenegildo

Publisher: Springer Nature

Published: 2023-10-23

Total Pages: 577

ISBN-13: 3031442458

DOWNLOAD EBOOK

This book constitutes the refereed proceedings of the 30th International Symposium on Static Analysis, SAS 2023, held in Lisbon, Portugal, in October 2023. The 20 full papers included in this book were carefully reviewed and selected from 40 submissions. Static analysis is widely recognized as a fundamental tool for program verification, bug detection, compiler optimization, program understanding, and software maintenance. The papers deal with theoretical, practical and application advances in the area.


Static Analysis

Static Analysis

Author: David Pichardie

Publisher: Springer Nature

Published: 2021-01-12

Total Pages: 391

ISBN-13: 3030654745

DOWNLOAD EBOOK

This book constitutes the refereed proceedings of the 27th International Symposium on Static Analysis, SAS 2020, held in Chicago, IL, USA, in November 2020. The 14 regular papers presented in this book together with 2 invited talks and 1 extended abstract, were carefully reviewed and selected from 34 submissions. The papers cover topics such as abstract domains; abstract interpretation; automated deduction; data flow analysis; debugging; deductive methods; emerging applications; model-checking; program transformations; predicate abstraction; security analysis; tool environments and architectures; and type checking. Due to the Corona pandemic this event was held virtually.


Foundations of Software Science and Computation Structures

Foundations of Software Science and Computation Structures

Author: Patricia Bouyer

Publisher: Springer Nature

Published: 2022-03-28

Total Pages: 471

ISBN-13: 3030992535

DOWNLOAD EBOOK

This open access book constitutes the proceedings of the 25th International Conference on Foundations of Software Science and Computational Structures, FOSSACS 2022, which was held during April 4-6, 2022, in Munich, Germany, as part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2022. The 23 regular papers presented in this volume were carefully reviewed and selected from 77 submissions. They deal with research on theories and methods to support the analysis, integration, synthesis, transformation, and verification of programs and software systems.


Challenges of Software Verification

Challenges of Software Verification

Author: Vincenzo Arceri

Publisher: Springer Nature

Published: 2023-09-04

Total Pages: 275

ISBN-13: 9811996016

DOWNLOAD EBOOK

This book provides an overview about the open challenges in software verification. Software verification is a branch of software engineering aiming at guaranteeing that software applications satisfy some requirements of interest. Over the years, the software verification community has proposed and considered several techniques: abstract interpretation, data-flow analysis, type systems, model checking are just a few examples. The theoretical advances have been always motivated by practical challenges that have led to an equal evolution of both these sides of software verification. Indeed, several verification tools have been proposed by the research community and any software application, in order to guarantee that certain software requirements are met, needs to integrate a verification phase in its life cycle, independently of the context of application or software size. This book is aimed at collecting contributions discussing recent advances in facing open challenges in software verification, relying on a broad spectrum of verification techniques. This book collects contributions ranging from theoretical to practical arguments, and it is aimed at both researchers in software verification and their practitioners.