Radhia Cousot

dblp:c/RCousot · DBLP profile ↗
← Back
34ranked-venue papers
2as first author
0since 2021 · last 2014
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 23 · 2 first-authorTheory of computation · 13Applied, interdisciplinary, general and emerging computing · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
15 papers
Program analysis · 58% Program verification · 21% Programming languages and type systems · 11%
Theoretical computer science
7 papers
Automated reasoning and model checking · 72% Logic in computer science · 27% Computational complexity · 1%

Topics — the 30 heaviest of 35, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Program analysis › static analysis
abstract interpretation
0.9112014
A Galois connection calculus for abstract interpretation · POPL 2014
Theories, solvers and static analysis by abstract interpretation · J. ACM 2012
An abstract interpretation framework for termination · POPL 2012
Program verification › annotation inference
contract inference
0.112012
An abstract interpretation framework for refactoring with application to extract methods with contracts · OOPSLA 2012
Software maintenance and evolution
refactoring
0.112012
An abstract interpretation framework for refactoring with application to extract methods with contracts · OOPSLA 2012
Program verification
termination analysis
0.112012
An abstract interpretation framework for termination · POPL 2012
Automated reasoning and model checking › satisfiability modulo theories
SMT solvers
0.112012
Theories, solvers and static analysis by abstract interpretation · J. ACM 2012
Program analysis
static analysis
0.162011
A static analyzer for large safety-critical software · PLDI 2003
A parametric segmentation functor for fully automatic and scalable array content analysis · POPL 2011
An abstract interpretation-based framework for software watermarking · POPL 2004
Programming languages and type systems › language semantics › formal semantics
operational semantics
0.112009
Bi-inductive structural semantics · Inf. Comput. 2009
Programming languages and type systems
type systems
0.112014
A Galois connection calculus for abstract interpretation · POPL 2014
Digital forensics and information hiding › watermarking
software watermarking
0.012004
An abstract interpretation-based framework for software watermarking · POPL 2004
Program verification
safety verification
0.012012
An abstract interpretation framework for termination · POPL 2012
Program analysis › static analysis › abstract interpretation
abstract domain
0.012003
A static analyzer for large safety-critical software · PLDI 2003
Program verification
abstraction-based verification
0.012002
On Abstraction in Software Verification · CAV 2002
Programming languages and type systems › language semantics
fixpoint semantics
0.012002
Systematic design of program transformation frameworks by abstract interpretation · POPL 2002
Compilers and program optimization
program transformation
0.012002
Systematic design of program transformation frameworks by abstract interpretation · POPL 2002
Logic in computer science › proof theory
inductive definitions
0.012009
Bi-inductive structural semantics · Inf. Comput. 2009
Automated reasoning and model checking
model checking
0.012000
Temporal Abstract Interpretation · POPL 2000
Automated reasoning and model checking › model checking
temporal logic model checking
0.012000
Temporal Abstract Interpretation · POPL 2000
Logic in computer science › formal semantics
compositional semantics
0.011995
Compositional and Inductive Semantic Definitions in Fixpoint, Equational, Constraint, Closure-condition, Rule-based and Game-Theoretic Form · CAV 1995
Logic in computer science
semantics
0.011995
Compositional and Inductive Semantic Definitions in Fixpoint, Equational, Constraint, Closure-condition, Rule-based and Game-Theoretic Form · CAV 1995
Embedded and real-time systems › critical systems
safety-critical software
0.012003
A static analyzer for large safety-critical software · PLDI 2003
Program analysis › data flow analysis
constant propagation
0.012002
Systematic design of program transformation frameworks by abstract interpretation · POPL 2002
Logic in computer science › domain theory
fixed points
0.011992
Inductive Definitions, Semantics and Abstract Interpretation · POPL 1992
Program verification › program logic
hoare logic
0.011989
A Language Independent Proof of the Soundness and Completeness of Generalized Hoare Logic · Inf. Comput. 1989
Logic in computer science
formal semantics
0.011995
Compositional and Inductive Semantic Definitions in Fixpoint, Equational, Constraint, Closure-condition, Rule-based and Game-Theoretic Form · CAV 1995
Logic in computer science › proof theory
soundness and completeness
0.011989
A Language Independent Proof of the Soundness and Completeness of Generalized Hoare Logic · Inf. Comput. 1989
Computational complexity
constraint satisfaction
0.011980
Semantic Analysis of Communicating Sequential Processes (Shortened Version) · ICALP 1980
Logic in computer science
process algebra
0.011980
Semantic Analysis of Communicating Sequential Processes (Shortened Version) · ICALP 1980
Logic in computer science
program semantics
0.011980
Semantic Analysis of Communicating Sequential Processes (Shortened Version) · ICALP 1980
Program analysis
data flow analysis
0.011979
Systematic Design of Program Analysis Frameworks · POPL 1979
Program analysis
program analysis infrastructure
0.011979
Systematic Design of Program Analysis Frameworks · POPL 1979

Methods — techniques the papers use, named apart from their topics

abstract interpretation · 1.0theorem proving · 0.3SMT solving · 0.3bi-induction · 0.2galois connection · 0.2fixpoint induction · 0.2variant functions · 0.1hoare logic · 0.1forward/backward analysis · 0.1reduced product · 0.1widening · 0.0octagon domain · 0.0ellipsoid domain · 0.0decision tree domain · 0.0mu-calculus · 0.0game-theoretic · 0.0fixpoint · 0.0equational · 0.0
YearPublicationVenuePosition
2014 A Galois connection calculus for abstract interpretation
abstract
We 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
POPL2
2013 Andromeda: Accurate and Scalable Security Analysis of Web Applications
Omer Tripp, Marco Pistoia, Patrick Cousot, Radhia Cousot, Salvatore Guarnieri
FASE4
2013 Automatic Inference of Necessary Preconditions
Patrick Cousot, Radhia Cousot, Manuel Fähndrich, Francesco Logozzo
VMCAI2
2012 An abstract interpretation framework for refactoring with application to extract methods with contracts
abstract
Method 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
OOPSLA2
2012 An abstract interpretation framework for termination
abstract
Proof, 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
POPL2
2012 Theories, solvers and static analysis by abstract interpretation
abstract
The 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. ACM2
2011 The Reduced Product of Abstract Domains and the Combination of Decision Procedures
Patrick Cousot, Radhia Cousot, Laurent Mauborgne
FoSSaCS2
2011 A parametric segmentation functor for fully automatic and scalable array content analysis
abstract
We 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
POPL2
2011 Precondition Inference from Intermittent Assertions and Application to Contracts on Collections
Patrick Cousot, Radhia Cousot, Francesco Logozzo
VMCAI2
2011 Grammar semantics, analysis and parsing by abstract interpretation
Patrick Cousot, Radhia Cousot
Theor. Comput. Sci.2
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.2
2009 Bi-inductive structural semantics
Patrick Cousot, Radhia Cousot
Inf. Comput.2
2009 Abstract interpretation of resolution-based semantics
Patrick Cousot, Radhia Cousot, Roberto Giacobazzi
Theor. Comput. Sci.2
2008 Abstract Interpretation of Non-monotone Bi-inductive Semantic Definitions
Radhia Cousot
VMCAI1
2007 Varieties of Static Analyzers: A Comparison with ASTREE
abstract
We 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
TASE2
2005 The ASTREÉ Analyzer
Patrick Cousot, Radhia Cousot, Jérôme Feret, Laurent Mauborgne, Antoine Miné, David Monniaux, Xavier Rival
ESOP2
2005 Static Analysis Symposium 2003
Radhia Cousot
Sci. Comput. Program.1
2004 An abstract interpretation-based framework for software watermarking
abstract
Software 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
POPL2
2003 A static analyzer for large safety-critical software
abstract
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).
Bruno Blanchet, Patrick Cousot, Radhia Cousot, Jérôme Feret, Laurent Mauborgne, Antoine Miné, David Monniaux, Xavier Rival
PLDI3
2003 Parsing as abstract interpretation of grammar semantics
Patrick Cousot, Radhia Cousot
Theor. Comput. Sci.2
2002 On Abstraction in Software Verification
Patrick Cousot, Radhia Cousot
CAV2
2002 Modular Static Program Analysis
Patrick Cousot, Radhia Cousot
CC2
2002 Systematic design of program transformation frameworks by abstract interpretation
abstract
We 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
POPL2
2000 Temporal Abstract Interpretation
abstract
We 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
POPL2
1999 Refining Model Checking by Abstract Interpretation
Patrick Cousot, Radhia Cousot
Autom. Softw. Eng.2
1995 Compositional and Inductive Semantic Definitions in Fixpoint, Equational, Constraint, Closure-condition, Rule-based and Game-Theoretic Form
Patrick Cousot, Radhia Cousot
CAV2
1993 "A la Burstall" Intermittent Assertions Induction Principles for Proving Inevitable Ability Properties of Programs
Patrick Cousot, Radhia Cousot
Theor. Comput. Sci.2
1992 Inductive Definitions, Semantics and Abstract Interpretation
abstract
We 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
POPL2
1992 Abstract Interpretation Frameworks
abstract
We 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.2
1989 A Language Independent Proof of the Soundness and Completeness of Generalized Hoare Logic
Patrick Cousot, Radhia Cousot
Inf. Comput.2
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 Informatica2
1980 Semantic Analysis of Communicating Sequential Processes (Shortened Version)
Patrick Cousot, Radhia Cousot
ICALP2
1979 Systematic Design of Program Analysis Frameworks
abstract
Semantic 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
POPL2
1977 Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints
abstract
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, …).
Patrick Cousot, Radhia Cousot
POPL2