Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Patrick Cousot is active.

Publication


Featured researches published by Patrick Cousot.


symposium on principles of programming languages | 1977

Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints

Patrick Cousot; Radhia Cousot

A 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, …).


Journal of Logic and Computation | 1992

Abstract Interpretation Frameworks

Patrick Cousot; Radhia Cousot

Interpretation Frameworks Patrick Cousot LIENS, Ecole Normale Superieure 45, rue d’Ulm 75230 Paris cedex 05 (France) [email protected] Radhia Cousot LIX, Ecole Polytechnique 91128 Palaiseau cedex (France) [email protected]


programming language design and implementation | 2003

A static analyzer for large safety-critical software

Bruno Blanchet; Patrick Cousot; Radhia Cousot; Jérôme Feret; Laurent Mauborgne; Antoine Miné; David Monniaux; Xavier Rival

We 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).


Journal of Logic Programming | 1992

Abstract interpretation and application to logic programs

Patrick Cousot; Radhia Cousot

interpretation is a theory of semantics approximation that is used for the construction of semantic-based program analysis algorithms (sometimes called “data flow analysis”), the comparison of formal semantics (e.g., construction of a denotational semantics from an operational one), design of proof methods, etc. Automatic program analysers are used for determining statistically conservative approximations of dynamic properties of programs. Such properties of the run-time behavior of programs are useful for debugging (e.g., type inference), code optimization (e.g., compile-time garbage collection, useless occur-check elimination), program transformation (e.g., partial evaluation, parallelization), and even program correctness proofs (e.g., termination proof). After a few simple introductory examples, we recall the classical framework for abstract interpretation of programs. Starting from a ground operational semantics formalized as a transition system, classes of program properties are first encapsulated in collecting semantics expressed as fixpoints on partial orders representing concrete program properties. We consider invariance properties characterizing descendants of the initial states (corresponding to top/down or forward analyses), ascendant states of the final states (corresponding to bottom/up or backward analyses) as well as a combination of the two. Then we choose specific approximate abstract properties to be gathered about program behaviors and express them as elements of a poset of abstract properties. The correspondence between concrete and abstract properties is established by a concretization and abstraction function that is a Galois connection formalizing the loss of information. We can then constructively derive the abstract program properties from the collecting semantics by a formal computation leading to a fixpoint expression in terms of abstract operators on the domain of abstract properties. The design of the abstract interpreter then involves the choice of a chaotic iteration strategy to solve this abstract fixpoint equation. We insist on the compositional design of this abstract interpreter, which is formalized by a series of propositions for designing Galois connections (such as Moore families, decomposition by partitioning, reduced product, down-set completion, etc.). Then we recall the convergence acceleration methods using widening and narrowing allowing for the use of very expressive infinite domains of abstract properties. We show that this classical formal framework can be applied in extenso to logic programs. For simplicity, we use a variant of SLD-resolution as the ground operational semantics. The first example is groundness analysis, which is a variant of Mellish mode analysis. It is extended to a combination of top/down and bottom/up analyses. The second example is the derivation of constraints among argument sizes, which involves an infinite abstract domain requiring the use of convergence accelaration methods. We end up with a short thematic guide to the literature on abstract interpretation of logic programs.


international symposium on programming language implementation and logic programming | 1992

Comparing the Galois Connection and Widening/Narrowing Approaches to Abstract Interpretation

Patrick Cousot; Radhia Cousot

The use of infinite abstract domains with widening and narrowing for accelerating the convergence of abstract interpretations is shown to be more powerful than the Galois connection approach restricted to finite lattices (or lattices satisfying the chain condition).


european symposium on programming | 2005

The ASTREÉ analyzer

Patrick Cousot; Radhia Cousot; Jérôme Feret; Laurent Mauborgne; Antoine Miné; David Monniaux; Xavier Rival

ASTREE is an abstract interpretation-based static program analyzer aiming at proving automatically the absence of run time errors in programs written in the C programming language. It has been applied with success to large embedded control-command safety critical real-time software generated automatically from synchronous specifications, producing a correctness proof for complex software without any false alarm in a few hours of computation.


ACM Computing Surveys | 1996

Abstract interpretation

Patrick Cousot

Interpretation


Theoretical Computer Science | 2002

Constructive design of a hierarchy of semantics of a transition system by abstract interpretation

Patrick Cousot

We construct a hierarchy of semantics by successive abstract interpretations. Starting from the maximal trace semantics of a transition system, we derive the big-step semantics, termination and nontermination semantics, Plotkins natural, Smyths demoniac and Hoares angelic relational semantics and equivalent nondeterministic denotational semantics (with alternative powerdomains to the Egli-Milner and Smyth constructions), D. Scotts deterministic denotational semantics, the generalized and Dijkstras conservative/liberal predicate transformer semantics, the generalized/total and Hoares partial correctness axiomatic semantics and the corresponding proof methods. All the semantics are presented in a uniform fixpoint form and the correspondences between these semantics are established through composable Galois connections, each semantics being formally calculated by abstract interpretation of a more concrete one using Kleene and/or Tarski fixpoint approximation transfer theorems. Copyright 2002 Elsevier Science B.V.


symposium on principles of programming languages | 1992

Inductive definitions, semantics and abstract interpretations

Patrick Cousot; Radhia Cousot

We introduce and illustrate a <italic>specification method</italic> 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. The specification method is illustrated by introducing G<supscrpt><inline-equation> <f> ∞ </f> </inline-equation></supscrpt>SOS, a structured operational semantics generalizing Plotkins [28] structured operational semantics (SOS) so as to describe the finite, as well as the infinite behaviors of programs in a uniform way and by constructively deriving inductive presentations of the other (relational, denotational, predicate transformers, …) semantics from G<supscrpt><inline-equation> <f> ∞ </f> </inline-equation></supscrpt>SOS by abstract interpretation.


verification model checking and abstract interpretation | 2005

Proving program invariance and termination by parametric abstraction, lagrangian relaxation and semidefinite programming

Patrick Cousot

In order to verify semialgebraic programs, we automatize the Floyd/Naur/Hoare proof method. The main task is to automatically infer valid invariants and rank functions. First we express the program semantics in polynomial form. Then the unknown rank function and invariants are abstracted in parametric form. The implication in the Floyd/Naur/Hoare verification conditions is handled by abstraction into numerical constraints by Lagrangian relaxation. The remaining universal quantification is handled by semidefinite programming relaxation. Finally the parameters are computed using semidefinite programming solvers. This new approach exploits the recent progress in the numerical resolution of linear or bilinear matrix inequalities by semidefinite programming using efficient polynomial primal/dual interior point methods generalizing those well-known in linear programming to convex optimization. The framework is applied to invariance and termination proof of sequential, nondeterministic, concurrent, and fair parallel imperative polynomial programs and can easily be extended to other safety and liveness properties.

Collaboration


Dive into the Patrick Cousot's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar

Antoine Miné

École Normale Supérieure

View shared research outputs
Top Co-Authors

Avatar

Laurent Mauborgne

École Normale Supérieure

View shared research outputs
Top Co-Authors

Avatar

David Monniaux

Centre national de la recherche scientifique

View shared research outputs
Top Co-Authors

Avatar

Julien Bertrane

École Normale Supérieure

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Jade Alglave

University College London

View shared research outputs
Top Co-Authors

Avatar

Eric Goubault

Université Paris-Saclay

View shared research outputs
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge