EDBT 2026 Demo / reviewers in the wild / expert
Radhia Cousot
dblp:c/RCousot
· DBLP profile ↗
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
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program analysis › static analysis
abstract interpretation |
0.9 | 11 | 2014 | 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.1 | 1 | 2012 | An abstract interpretation framework for refactoring with application to extract methods with contracts · OOPSLA 2012 |
Software maintenance and evolution
refactoring |
0.1 | 1 | 2012 | An abstract interpretation framework for refactoring with application to extract methods with contracts · OOPSLA 2012 |
Program verification
termination analysis |
0.1 | 1 | 2012 | An abstract interpretation framework for termination · POPL 2012 |
Automated reasoning and model checking › satisfiability modulo theories
SMT solvers |
0.1 | 1 | 2012 | Theories, solvers and static analysis by abstract interpretation · J. ACM 2012 |
Program analysis
static analysis |
0.1 | 6 | 2011 | 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.1 | 1 | 2009 | Bi-inductive structural semantics · Inf. Comput. 2009 |
Programming languages and type systems
type systems |
0.1 | 1 | 2014 | A Galois connection calculus for abstract interpretation · POPL 2014 |
Digital forensics and information hiding › watermarking
software watermarking |
0.0 | 1 | 2004 | An abstract interpretation-based framework for software watermarking · POPL 2004 |
Program verification
safety verification |
0.0 | 1 | 2012 | An abstract interpretation framework for termination · POPL 2012 |
Program analysis › static analysis › abstract interpretation
abstract domain |
0.0 | 1 | 2003 | A static analyzer for large safety-critical software · PLDI 2003 |
Program verification
abstraction-based verification |
0.0 | 1 | 2002 | On Abstraction in Software Verification · CAV 2002 |
Programming languages and type systems › language semantics
fixpoint semantics |
0.0 | 1 | 2002 | Systematic design of program transformation frameworks by abstract interpretation · POPL 2002 |
Compilers and program optimization
program transformation |
0.0 | 1 | 2002 | Systematic design of program transformation frameworks by abstract interpretation · POPL 2002 |
Logic in computer science › proof theory
inductive definitions |
0.0 | 1 | 2009 | Bi-inductive structural semantics · Inf. Comput. 2009 |
Automated reasoning and model checking
model checking |
0.0 | 1 | 2000 | Temporal Abstract Interpretation · POPL 2000 |
Automated reasoning and model checking › model checking
temporal logic model checking |
0.0 | 1 | 2000 | Temporal Abstract Interpretation · POPL 2000 |
Logic in computer science › formal semantics
compositional semantics |
0.0 | 1 | 1995 | 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.0 | 1 | 1995 | 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.0 | 1 | 2003 | A static analyzer for large safety-critical software · PLDI 2003 |
Program analysis › data flow analysis
constant propagation |
0.0 | 1 | 2002 | Systematic design of program transformation frameworks by abstract interpretation · POPL 2002 |
Logic in computer science › domain theory
fixed points |
0.0 | 1 | 1992 | Inductive Definitions, Semantics and Abstract Interpretation · POPL 1992 |
Program verification › program logic
hoare logic |
0.0 | 1 | 1989 | A Language Independent Proof of the Soundness and Completeness of Generalized Hoare Logic · Inf. Comput. 1989 |
Logic in computer science
formal semantics |
0.0 | 1 | 1995 | 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.0 | 1 | 1989 | A Language Independent Proof of the Soundness and Completeness of Generalized Hoare Logic · Inf. Comput. 1989 |
Computational complexity
constraint satisfaction |
0.0 | 1 | 1980 | Semantic Analysis of Communicating Sequential Processes (Shortened Version) · ICALP 1980 |
Logic in computer science
process algebra |
0.0 | 1 | 1980 | Semantic Analysis of Communicating Sequential Processes (Shortened Version) · ICALP 1980 |
Logic in computer science
program semantics |
0.0 | 1 | 1980 | Semantic Analysis of Communicating Sequential Processes (Shortened Version) · ICALP 1980 |
Program analysis
data flow analysis |
0.0 | 1 | 1979 | Systematic Design of Program Analysis Frameworks · POPL 1979 |
Program analysis
program analysis infrastructure |
0.0 | 1 | 1979 | 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
| Year | Publication | Venue | Position |
|---|---|---|---|
| 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 | 2 |
| 2013 | Andromeda: Accurate and Scalable Security Analysis of Web Applications
Omer Tripp, Marco Pistoia, Patrick Cousot, Radhia Cousot, Salvatore Guarnieri |
FASE | 4 |
| 2013 | Automatic Inference of Necessary Preconditions
Patrick Cousot, Radhia Cousot, Manuel Fähndrich, Francesco Logozzo |
VMCAI | 2 |
| 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 | 2 |
| 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 | 2 |
| 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 | 2 |
| 2011 | The Reduced Product of Abstract Domains and the Combination of Decision Procedures
Patrick Cousot, Radhia Cousot, Laurent Mauborgne |
FoSSaCS | 2 |
| 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 | 2 |
| 2011 | Precondition Inference from Intermittent Assertions and Application to Contracts on Collections
Patrick Cousot, Radhia Cousot, Francesco Logozzo |
VMCAI | 2 |
| 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 |
VMCAI | 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 | 2 |
| 2005 | The ASTREÉ Analyzer
Patrick Cousot, Radhia Cousot, Jérôme Feret, Laurent Mauborgne, Antoine Miné, David Monniaux, Xavier Rival |
ESOP | 2 |
| 2005 | Static Analysis Symposium 2003
Radhia Cousot |
Sci. Comput. Program. | 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 | 2 |
| 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 | 3 |
| 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 |
CAV | 2 |
| 2002 | Modular Static Program Analysis
Patrick Cousot, Radhia Cousot |
CC | 2 |
| 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 | 2 |
| 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 | 2 |
| 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 |
CAV | 2 |
| 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 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 | 2 |
| 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. | 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 Informatica | 2 |
| 1980 | Semantic Analysis of Communicating Sequential Processes (Shortened Version)
Patrick Cousot, Radhia Cousot |
ICALP | 2 |
| 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 | 2 |
| 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 | 2 |