VLDB 2026 Research / reviewers in the wild / expert
Patrick Cousot
dblp:c/PCousot
· DBLP profile ↗
66ranked-venue papers
55as first author
4since 2021 · last 2025
0000-0003-0101-9953ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 51 · 40 first-author · 3 since 2021Theory of computation · 21 · 21 first-author · 1 since 2021Applied, interdisciplinary, general and emerging computing · 2 · 2 first-author
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2025 | Calculational Design of Hyperlogics by Abstract InterpretationabstractWe design various logics for proving hyper properties of iterative programs by application of abstract interpretation principles. In part I, we design a generic, structural, fixpoint abstract interpreter parameterized by an algebraic abstract domain describing finite and infinite computations that can be instantiated for various operational, denotational, or relational program semantics. Considering semantics as program properties, we define a post algebraic transformer for execution properties (e.g. sets of traces) and a Post algebraic transformer for semantic (hyper) properties (e.g. sets of sets of traces), we provide corresponding calculuses as instances of the generic abstract interpreter, and we derive under and over approximation hyperlogics. In part II, we define exact and approximate semantic abstractions, and show that they preserve the mathematical structure of the algebraic semantics, the collecting semantics post, the hyper collecting semantics Post, and the hyperlogics. Since proofs by sound and complete hyperlogics require an exact characterization of the program semantics within the proof, we consider in part III abstractions of the (hyper) semantic properties that yield simplified proof rules. These abstractions include the join, the homomorphic, the elimination, the principal ideal, the order ideal, the frontier order ideal, and the chain limit algebraic abstractions, as well as their combinations, that lead to new algebraic generalizations of hyperlogics, including the ∀ ∃ * , ∀ ∀ * , and ∃ ∀ * hyperlogics. Patrick Cousot, Jeffery Wang |
Proc. ACM Program. Lang. | 1 |
| 2024 | Calculational Design of [In]Correctness Transformational Program Logics by Abstract InterpretationabstractWe study transformational program logics for correctness and incorrectness that we extend to explicitly handle both termination and nontermination. We show that the logics are abstract interpretations of the right image transformer for a natural relational semantics covering both finite and infinite executions. This understanding of logics as abstractions of a semantics facilitates their comparisons through their respective abstractions of the semantics (rather that the much more difficult comparison through their formal proof systems). More importantly, the formalization provides a calculational method for constructively designing the sound and complete formal proof system by abstraction of the semantics. As an example, we extend Hoare logic to cover all possible behaviors of nondeterministic programs and design a new precondition (in)correctness logic. Patrick Cousot |
Proc. ACM Program. Lang. | 1 |
| 2022 | The Systematic Design of Responsibility Analysis by Abstract InterpretationabstractGiven a behavior of interest, automatically determining the corresponding responsible entity (i.e., the root cause) is a task of critical importance in program static analysis. In this article, a novel definition of responsibility based on the abstraction of trace semantics is proposed, which takes into account the cognizance of observer, which, to the best of our knowledge, is a new innovative idea in program analysis. Compared to current dependency and causality analysis methods, the responsibility analysis is demonstrated to be more precise on various examples. However, the concrete trace semantics used in defining responsibility is uncomputable in general, which makes the corresponding concrete responsibility analysis undecidable. To solve this problem, the article proposes a sound framework of abstract responsibility analysis, which allows a balance between cost and precision. Essentially, the abstract analysis builds a trace partitioning automaton by an iteration of over-approximating forward reachability analysis with trace partitioning and under/over-approximating backward impossible failure accessibility analysis, and determines the bounds of potentially responsible entities along paths in the automaton. Unlike the concrete responsibility analysis that identifies exactly a single action as the responsible entity along every concrete trace, the abstract analysis may lose some precision and find multiple actions potentially responsible along each automaton path. However, the soundness is preserved, and every responsible entity in the concrete is guaranteed to be also found responsible in the abstract. Chaoqiang Deng, Patrick Cousot |
ACM Trans. Program. Lang. Syst. | 2 |
| 2021 | Calculational design of a regular model checker by abstract interpretation
Patrick Cousot |
Theor. Comput. Sci. | 1 |
| 2019 | Calculational Design of a Regular Model Checker by Abstract Interpretation
Patrick Cousot |
ICTAC | 1 |
| 2019 | On Fixpoint/Iteration/Variant Induction Principles for Proving Total Correctness of Programs with Denotational Semantics
Patrick Cousot |
LOPSTR | 1 |
| 2019 | Syntactic and Semantic Soundness of Structural Dataflow Analysis
Patrick Cousot |
SAS | 1 |
| 2019 | Abstract Semantic Dependency
Patrick Cousot |
SAS | 1 |
| 2019 | Responsibility Analysis by Abstract Interpretation
Chaoqiang Deng, Patrick Cousot |
SAS | 2 |
| 2019 | Verifying Numerical Programs via Iterative Abstract Testing
Banghu Yin, Liqian Chen, Jiangchao Liu, Ji Wang 0001, Patrick Cousot |
SAS | 5 |
| 2019 | A²I: abstract² interpretationabstractThe fundamental idea of Abstract 2 Interpretation (A 2 I), also called meta-abstract interpretation, is to apply abstract interpretation to abstract interpretation-based static program analyses. A 2 I is generally meant to use abstract interpretation to analyse properties of program analysers. A 2 I can be either offline or online. Offline A 2 I is performed either before the program analysis, such as variable packing used by the Astrée program analyser, or after the program analysis, such as in alarm diagnosis. Online A 2 I is performed during the program analysis, such as Venet’s cofibred domains or Halbwachs et al.’s and Singh et al.’s variable partitioning techniques for fast polyhedra/numerical abstract domains. We formalize offline and online meta-abstract interpretation and illustrate this notion with the design of widenings and the decomposition of relational abstract domains to speed-up program analyses. This shows how novel static analyses can be extracted as meta-abstract interpretations to design efficient and precise program analysis algorithms. Patrick Cousot, Roberto Giacobazzi, Francesco Ranzato |
Proc. ACM Program. Lang. | 1 |
| 2018 | Program Analysis Is Harder Than Verification: A Computability PerspectiveabstractWe study from a computability perspective static program analysis, namely detecting sound program assertions, and verification, namely sound checking of program assertions. We first design a general computability model for domains of program assertions and corresponding program analysers and verifiers. Next, we formalize and prove an instantiation of Rice’s theorem for static program analysis and verification. Then, within this general model, we provide and show a precise statement of the popular belief that program analysis is a harder problem than program verification: we prove that for finite domains of program assertions, program analysis and verification are equivalent problems, while for infinite domains, program analysis is strictly harder than verification. Patrick Cousot, Roberto Giacobazzi, Francesco Ranzato |
CAV (2) | 1 |
| 2017 | Ogre and Pythia: an invariance proof method for weak consistency modelsabstractWe design an invariance proof method for concurrent programs parameterised by a weak consistency model. The calculational design of the invariance proof method is by abstract interpretation of a truly parallel analytic semantics. This generalises the methods by Lamport and Owicki-Gries for sequential consistency. We use cat as an example of language to write consistency specifications of both concurrent programs and machine architectures. Jade Alglave, Patrick Cousot |
POPL | 2 |
| 2015 | Verification by abstract interpretation, soundness and abstract inductionabstractAutomatic program verification tools have to cope with programming language and machine semantics, undecidability, and mathematical induction, and so are all complex and imperfect. The ins and outs of automatic program verification will be discussed in light of the theory and practice of abstract interpretation [18, 19, 22]. Patrick Cousot |
PPDP | 1 |
| 2015 | A Binary Decision Tree Abstract Domain Functor
Patrick Cousot |
SAS | 2 |
| 2015 | On Various Abstract Understandings of Abstract InterpretationabstractWe discuss several possible understandings and misunderstandings of Abstract Interpretation theory and practice at various levels of abstraction. Patrick Cousot |
TASE | 1 |
| 2015 | Abstracting Induction by Extrapolation and Interpolation
Patrick Cousot |
VMCAI | 1 |
| 2014 | A Galois connection calculus for abstract interpretationabstractWe introduce a Galois connection calculus for language independent specification of abstract interpretations used in programming language semantics, formal verification, and static analysis. This Galois connection calculus and its type system are typed by abstract interpretation. Patrick Cousot, Radhia Cousot |
POPL | 1 |
| 2013 | Andromeda: Accurate and Scalable Security Analysis of Web Applications
Omer Tripp, Marco Pistoia, Patrick Cousot, Radhia Cousot, Salvatore Guarnieri |
FASE | 3 |
| 2013 | Automatic Inference of Necessary Preconditions
Patrick Cousot, Radhia Cousot, Manuel Fähndrich, Francesco Logozzo |
VMCAI | 1 |
| 2012 | Probabilistic Abstract Interpretation
Patrick Cousot, Michael Monerau |
ESOP | 1 |
| 2012 | An abstract interpretation framework for refactoring with application to extract methods with contractsabstractMethod extraction is a common refactoring feature provided by most modern IDEs. It replaces a user-selected piece of code with a call to an automatically generated method. We address the problem of automatically inferring contracts (precondition, postcondition) for the extracted method. We require the inferred contract: (a) to be valid for the extracted method (validity); (b) to guard the language and programmer assertions in the body of the extracted method by an opportune precondition (safety); (c) to preserve the proof of correctness of the original code when analyzing the new method separately (completeness); and (d) to be the most general possible (generality). These requirements rule out trivial solutions (e.g., inlining, projection, etc). We propose two theoretical solutions to the problem. The first one is simple and optimal. It is valid, safe, complete and general but unfortunately not effectively computable (except for unrealistic finiteness/decidability hypotheses). The second one is based on an iterative forward/backward method. We show it to be valid, safe, and, under reasonable assumptions, complete and general. We prove that the second solution subsumes the first. All justifications are provided with respect to a new, set-theoretic version of Hoare logic (hence without logic), and abstractions of Hoare logic, revisited to avoid surprisingly unsound inference rules. Patrick Cousot, Radhia Cousot, Francesco Logozzo, Michael Barnett 0001 |
OOPSLA | 1 |
| 2012 | An abstract interpretation framework for terminationabstractProof, verification and analysis methods for termination all rely on two induction principles: (1) a variant function or induction on data ensuring progress towards the end and (2) some form of induction on the program structure. The abstract interpretation design principle is first illustrated for the design of new forward and backward proof, verification and analysis methods for safety. The safety collecting semantics defining the strongest safety property of programs is first expressed in a constructive fixpoint form. Safety proof and checking/verification methods then immediately follow by fixpoint induction. Static analysis of abstract safety properties such as invariance are constructively designed by fixpoint abstraction (or approximation) to (automatically) infer safety properties. So far, no such clear design principle did exist for termination so that the existing approaches are scattered and largely not comparable with each other. Patrick Cousot, Radhia Cousot |
POPL | 1 |
| 2012 | Theories, solvers and static analysis by abstract interpretationabstractThe algebraic/model theoretic design of static analyzers uses abstract domains based on representations of properties and pre-calculated property transformers. It is very efficient. The logical/proof theoretic approach uses SMT solvers/theorem provers and computation of property transformers on-the-fly. It is very expressive. We propose to unify both approaches, so that they can be combined to reach the sweet spot best adapted to a specific application domain in the precision/cost spectrum. We first give a new formalization of the proof theoretic approach in the abstract interpretation framework, introducing a semantics based on multiple interpretations to deal with the soundness of such approaches. Then we describe how to combine them with any other abstract interpretation-based analysis using an iterated reduction to combine abstractions. The key observation is that the Nelson-Oppen procedure, which decides satisfiability in a combination of logical theories by exchanging equalities and disequalities, computes a reduced product (after the state is enhanced with some new “observations” corresponding to alien terms). By abandoning restrictions ensuring completeness (such as disjointness, convexity, stably-infiniteness, or shininess, etc.), we can even broaden the application scope of logical abstractions for static analysis (which is incomplete anyway). Patrick Cousot, Radhia Cousot, Laurent Mauborgne |
J. ACM | 1 |
| 2011 | Linear Absolute Value Relation Analysis
Liqian Chen, Antoine Miné, Ji Wang 0001, Patrick Cousot |
ESOP | 4 |
| 2011 | The Reduced Product of Abstract Domains and the Combination of Decision Procedures
Patrick Cousot, Radhia Cousot, Laurent Mauborgne |
FoSSaCS | 1 |
| 2011 | A parametric segmentation functor for fully automatic and scalable array content analysisabstractWe introduce FunArray, a parametric segmentation abstract domain functor for the fully automatic and scalable analysis of array content properties. The functor enables a natural, painless and efficient lifting of existing abstract domains for scalar variables to the analysis of uniform compound data-structures such as arrays and collections. The analysis automatically and semantically divides arrays into consecutive non-overlapping possibly empty segments. Segments are delimited by sets of bound expressions and abstracted uniformly. All symbolic expressions appearing in a bound set are equal in the concrete. The FunArray can be naturally combined via reduced product with any existing analysis for scalar variables. The analysis is presented as a general framework parameterized by the choices of bound expressions, segment abstractions and the reduction operator. Once the functor has been instantiated with fixed parameters, the analysis is fully automatic. Patrick Cousot, Radhia Cousot, Francesco Logozzo |
POPL | 1 |
| 2011 | Precondition Inference from Intermittent Assertions and Application to Contracts on Collections
Patrick Cousot, Radhia Cousot, Francesco Logozzo |
VMCAI | 1 |
| 2011 | Grammar semantics, analysis and parsing by abstract interpretation
Patrick Cousot, Radhia Cousot |
Theor. Comput. Sci. | 1 |
| 2010 | An Abstract Domain to Discover Interval Linear Equalities
Liqian Chen, Antoine Miné, Ji Wang 0001, Patrick Cousot |
VMCAI | 4 |
| 2009 | Interval Polyhedra: An Abstract Domain to Infer Interval Linear Relationships
Liqian Chen, Antoine Miné, Ji Wang 0001, Patrick Cousot |
SAS | 4 |
| 2009 | Why does Astrée scale up?
Patrick Cousot, Radhia Cousot, Jérôme Feret, Laurent Mauborgne, Antoine Miné, Xavier Rival |
Formal Methods Syst. Des. | 1 |
| 2009 | Bi-inductive structural semantics
Patrick Cousot, Radhia Cousot |
Inf. Comput. | 1 |
| 2009 | Abstract interpretation of resolution-based semantics
Patrick Cousot, Radhia Cousot, Roberto Giacobazzi |
Theor. Comput. Sci. | 1 |
| 2008 | A Sound Floating-Point Polyhedra Abstract Domain
Liqian Chen, Antoine Miné, Patrick Cousot |
APLAS | 3 |
| 2007 | Proving the absence of run-time errors in safety-critical avionics codeabstractWe explain the design of the interpretation-based static analyzer ASTRÉE and its use to prove the absence of run-time errors in safety-critical codes. Patrick Cousot |
EMSOFT | 1 |
| 2007 | Fixpoint-Guided Abstraction Refinements
Patrick Cousot, Pierre Ganty, Jean-François Raskin |
SAS | 1 |
| 2007 | The Rôle of Abstract Interpretation in Formal MethodsabstractIn computer science and software engineering, formal methods are mathematically-based techniques for the specification, development and verification of software and hardware systems. They therefore establish the satisfaction of a specification by a system semantics. Abstract interpretation is a theory of sound approximation of mathematical structures, in particular those involved in the description of the behavior of computer systems. It allows the systematic derivation of sound methods and algorithms for approximating undecidable or highly complex problems in various areas of computer science (semantics, verification and proof, model- checking, static analysis, program transformation and optimization, typing, software steganography, etc.). Its main current application is on the safety and security of complex hardware and software computer systems. Patrick Cousot |
SEFM | 1 |
| 2007 | Varieties of Static Analyzers: A Comparison with ASTREEabstractWe discuss the characteristic properties of ASTREE, an automatic static analyzer for proving the absence of runtime errors in safety-critical real-time synchronous control command C programs, and compare it with a variety of other program analysis tools. Patrick Cousot, Radhia Cousot, Jérôme Feret, Antoine Miné, Laurent Mauborgne, David Monniaux, Xavier Rival |
TASE | 1 |
| 2005 | Integrating Physical Systems in the Static Analysis of Embedded Control Software
Patrick Cousot |
APLAS | 1 |
| 2005 | The ASTREÉ Analyzer
Patrick Cousot, Radhia Cousot, Jérôme Feret, Laurent Mauborgne, Antoine Miné, David Monniaux, Xavier Rival |
ESOP | 1 |
| 2005 | Proving Program Invariance and Termination by Parametric Abstraction, Lagrangian Relaxation and Semidefinite Programming
Patrick Cousot |
VMCAI | 1 |
| 2004 | An abstract interpretation-based framework for software watermarkingabstractSoftware watermarking consists in the intentional embedding of indelible stegosignatures or watermarks into the subject software and extraction of the stegosignatures embedded in the stegoprograms for purposes such as intellectual property protection. We introduce the novel concept of abstract software watermarking. The basic idea is that the watermark is hidden in the program code in such a way that it can only be extracted by an abstract interpretation of the (maybe non-standard) concrete semantics of this code. This static analysis-based approach allows the watermark to be recovered even if only a small part of the program code is present and does not even need that code to be executed. We illustrate the technique by a simple abstract watermarking protocol for methods of Java™ classes. The concept applies equally well to any other kind of software (including hardware originally specified by software). Patrick Cousot, Radhia Cousot |
POPL | 1 |
| 2003 | A static analyzer for large safety-critical softwareabstractWe show that abstract interpretation-based static program analysis can be made efficient and precise enough to formally verify a class of properties for a family of large programs with few or no false alarms. This is achieved by refinement of a general purpose static analyzer and later adaptation to particular programs of the family by the end-user through parametrization. This is applied to the proof of soundness of data manipulation operations at the machine level for periodic synchronous safety critical embedded software.The main novelties are the design principle of static analyzers by refinement and adaptation through parametrization (Sect. 3 and 7), the symbolic manipulation of expressions to improve the precision of abstract transfer functions (Sect. 6.3), the octagon (Sect. 6.2.2), ellipsoid (Sect. 6.2.3), and decision tree (Sect. 6.2.4) abstract domains, all with sound handling of rounding errors in oating point computations, widening strategies (with thresholds: Sect. 7.1.2, delayed: Sect. 7.1.3) and the automatic determination of the parameters (parametrized packing: Sect. 7.2). Bruno Blanchet, Patrick Cousot, Radhia Cousot, Jérôme Feret, Laurent Mauborgne, Antoine Miné, David Monniaux, Xavier Rival |
PLDI | 2 |
| 2003 | Automatic Verification by Abstract Interpretation
Patrick Cousot |
VMCAI | 1 |
| 2003 | Parsing as abstract interpretation of grammar semantics
Patrick Cousot, Radhia Cousot |
Theor. Comput. Sci. | 1 |
| 2002 | On Abstraction in Software Verification
Patrick Cousot, Radhia Cousot |
CAV | 1 |
| 2002 | Modular Static Program Analysis
Patrick Cousot, Radhia Cousot |
CC | 1 |
| 2002 | Systematic design of program transformation frameworks by abstract interpretationabstractWe introduce a general uniform language-independent framework for designing online and offline source-to-source program transformations by abstract interpretation of program semantics. Iterative source-to-source program transformations are designed constructively by composition of source-to-semantics, semantics-to-transformed semantics and semantics-to-source abstractions applied to fixpoint trace semantics. The correctness of the transformations is expressed through observational and performance abstractions. The framework is illustrated on three examples: constant propagation, program specialization by online and offline partial evaluation and static program monitoring. Patrick Cousot, Radhia Cousot |
POPL | 1 |
| 2002 | Constructive design of a hierarchy of semantics of a transition system by abstract interpretation
Patrick Cousot |
Theor. Comput. Sci. | 1 |
| 2001 | Design of Syntactic Program Transformations by Abstract Interpretation of Semantic Transformations
Patrick Cousot |
ICLP | 1 |
| 2000 | Temporal Abstract InterpretationabstractWe study the abstract interpretation of temporal calculi and logics in a general syntax, semantics and abstraction independent setting. This is applied to the @@@@-calculus, a generalization of the μ-calculus with new reversal and abstraction modalities as well as a new time-symmetric trace-based semantics. The more classical set-based semantics is shown to be an abstract interpretation of the trace-based semantics which leads to the understanding of model-checking and its application to data-flow analysis as incomplete temporal abstract interpretations. Soundness and incompleteness of the abstractions are discussed. The sources of incompleteness, even for finite systems, are pointed out, which leads to the identification of relatively complete sublogics, à la CTL. Patrick Cousot, Radhia Cousot |
POPL | 1 |
| 1999 | Refining Model Checking by Abstract Interpretation
Patrick Cousot, Radhia Cousot |
Autom. Softw. Eng. | 1 |
| 1997 | Types as Abstract InterpretationsabstractStarting from a denotational semantics of the eager untyped lambda-calculus with explicit runtime errors, the standard collecting semantics is defined as specifying the strongest program properties. By a first abstraction, a new sound type collecting semantics is derived in compositional fix-point form. Then by successive (semi-dual) Galois connection based abstractions, type systems and/or type inference algorithms are designed as abstract semantics or abstract interpreters approximating the type collecting semantics. This leads to a hierarchy of type systems, which is part of the lattice of abstract interpretations of the untyped lambda-calculus. This hierarchy includes two new a la Church/Curry polytype systems. Abstractions of this polytype semantics lead to classical Milner/Mycroft and Damas/Milner polymorphic type schemes, Church/Curry monotypes and Hindley principal typing algorithm. This shows that types are abstract interpretations. Patrick Cousot |
POPL | 1 |
| 1997 | Abstract Interpretation Based Static Analysis Parameterized by Semantics
Patrick Cousot |
SAS | 1 |
| 1995 | Compositional and Inductive Semantic Definitions in Fixpoint, Equational, Constraint, Closure-condition, Rule-based and Game-Theoretic Form
Patrick Cousot, Radhia Cousot |
CAV | 1 |
| 1993 | "A la Burstall" Intermittent Assertions Induction Principles for Proving Inevitable Ability Properties of Programs
Patrick Cousot, Radhia Cousot |
Theor. Comput. Sci. | 1 |
| 1992 | Inductive Definitions, Semantics and Abstract InterpretationabstractWe introduce and illustrate a specification method combining rule-based inductive definitions, well-founded induction principles, fixed-point theory and abstract interpretation for general use in computer science. Finite as well as infinite objects can be specified, at various levels of details related by abstraction. General proof principles are applicable to prove properties of the specified objects. Patrick Cousot, Radhia Cousot |
POPL | 1 |
| 1992 | Abstract Interpretation FrameworksabstractWe introduce abstract interpretation frameworks which are variations on the archetypal framework using Galois connections between concrete and abstract semantics, widenings and narrowings and are obtained by relaxation of the original hypotheses. We consider various ways of establishing the correctness of an abstract interpretation depending on how the relation between the concrete and abstract semantics is denned. We insist upon those correspondences allowing for the inducing of the approximate abstract semantics from the concrete one. Furthermore we study various notions of widening and narrowing as a means of obtaining convergence in the iterations used in abstract interpretation. Patrick Cousot, Radhia Cousot |
J. Log. Comput. | 1 |
| 1991 | Abstract Interpretation of Logic Programs
Patrick Cousot |
ICLP | 1 |
| 1989 | A Language Independent Proof of the Soundness and Completeness of Generalized Hoare Logic
Patrick Cousot, Radhia Cousot |
Inf. Comput. | 1 |
| 1987 | Sometime = Always + Recursion = Always on the Equivalence of the Intermittent and Invariant Assertions Methods for Proving Inevitability Properties of Programs
Patrick Cousot, Radhia Cousot |
Acta Informatica | 1 |
| 1980 | Semantic Analysis of Communicating Sequential Processes (Shortened Version)
Patrick Cousot, Radhia Cousot |
ICALP | 1 |
| 1979 | Systematic Design of Program Analysis FrameworksabstractSemantic analysis of programs is essential in optimizing compilers and program verification systems. It encompasses data flow analysis, data type determination, generation of approximate invariant assertions, etc. Patrick Cousot, Radhia Cousot |
POPL | 1 |
| 1978 | Automatic Discovery of Linear Restraints Among Variables of a ProgramabstractThe model of abstract interpretation of programs developed by Cousot and Cousot [2nd ISOP, 1976], Cousot and Cousot [POPL 1977] and Cousot [PhD thesis 1978] is applied to the static determination of linear equality or inequality invariant relations among numerical variables of programs. Patrick Cousot, Nicolas Halbwachs |
POPL | 1 |
| 1977 | Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of FixpointsabstractA program denotes computations in some universe of objects. Abstract interpretation of programs consists in using that denotation to describe computations in another universe of abstract objects, so that the results of abstract execution give some information on the actual computations. An intuitive example (which we borrow from Sintzoff [72]) is the rule of signs. The text -1515 * 17 may be understood to denote computations on the abstract universe {(+), (-), (±)} where the semantics of arithmetic operators is defined by the rule of signs. The abstract execution -1515 * 17 → -(+) * (+) → (-) * (+) → (-), proves that -1515 * 17 is a negative number. Abstract interpretation is concerned by a particular underlying structure of the usual universe of computations (the sign, in our example). It gives a summary of some facets of the actual executions of a program. In general this summary is simple to obtain but inaccurate (e.g. -1515 + 17 → -(+) + (+) → (-) + (+) → (±)). Despite its fundamentally incomplete results abstract interpretation allows the programmer or the compiler to answer questions which do not need full knowledge of program executions or which tolerate an imprecise answer, (e.g. partial correctness proofs of programs ignoring the termination problems, type checking, program optimizations which are not carried in the absence of certainty about their feasibility, …). Patrick Cousot, Radhia Cousot |
POPL | 1 |