@mastersthesis{Monniaux1,
author = {David Monniaux},
title = {R\'eduction de r\'eseaux et factorisation},
school = {\'Ecole normale sup\'erieure de Lyon},
year = 1996,
type = {rapport de stage de premi\`ere ann\'ee de magist\`ere},
note = {French},
dvi = {http://www-verimag.imag.fr/~monniaux/biblio/David_Monniaux_1.ps.gz}
}
@mastersthesis{Monniaux2,
author = {David Monniaux},
title = {M\'ethodes formelles et cryptographie},
school = {\'Ecole normale sup\'erieure de Lyon},
year = 1997,
type = {rapport de stage de seconde ann\'ee de magist\`ere},
note = {French (introduction), English (scientific matters)},
dvi = {http://www-verimag.imag.fr/~monniaux/biblio/David_Monniaux_2.dvi.gz},
pdf = {http://www-verimag.imag.fr/~monniaux/biblio/David_Monniaux_2.pdf}
}
@mastersthesis{Monniaux3,
author = {David Monniaux},
title = {R\'ealisation m\'ecanis\'ee d'interpr\'eteurs abstraits},
school = {Universit\'e Paris VII},
year = 1998,
type = {Rapport de {DEA}},
note = {French},
dvi = {http://www-verimag.imag.fr/~monniaux/biblio/David_Monniaux_3.dvi.gz},
pdf = {http://www-verimag.imag.fr/~monniaux/biblio/David_Monniaux_3.pdf}
}
@inproceedings{Monniaux_CSFW12,
author = {David Monniaux},
title = {Decision Procedures for the Analysis of
Cryptographic Protocols by Logics of Belief},
booktitle = {12th Computer Security Foundations Workshop},
publisher = {IEEE},
year = 1999,
pdf = {http://www-verimag.imag.fr/~monniaux/biblio/Monniaux_CSFW12.pdf},
ps = {http://www-verimag.imag.fr/~monniaux/biblio/Monniaux_CSFW12.ps.gz},
isbn = {0-7695-0201-6},
pages = {44--54},
annote = {Decision procedures for BAN-like logics of belief
are not new. Mao and Boyd (IEEE CSFW, 1993) describe
a tableau-based procedure. Kindred and Wing (USENIX
Workshop on Electronic Commerce, 1996) describe a
decision procedure that uses forward chaining and
backward chaining. David's approach uses only
forward chaining. Some automatic transformations of
the proof system are used to make all rules suitable
for forward chaining. David considered trying to use
only backward chaining, but that seemed more
difficult. Cathy Meadows asked how decidability of
such proof systems relates to undecidability results
such as that in the paper by Cervesato et
al. (described next). David replied that the
undecidability results apply to semantic models of
authentication protocols, and there is no good such
semantics for belief logics.},
abstract = {Belief-logic deductions are used in the analysis of
cryptographic protocols. We show a new method to
decide such logics. In addition to the familiar BAN
logic, it is also applicable to the more advanced
versions of protocol security logics, and GNY in
particular; and it employs an efficient
forward-chaining algorithm the completeness and
termination of which are proved. Theoretic proofs,
implementation decisions and results are discussed.},
category = {intc}
}
@inproceedings{Monniaux_SAS99,
author = {David Monniaux},
title = {Abstracting cryptographic protocols with tree
automata},
booktitle = {Sixth International Static Analysis Symposium
(SAS'99)},
publisher = {Springer Verlag},
year = 1999,
series = {Lecture Notes in Computer Science},
number = 1694,
pages = {149--163},
pdf = {http://www-verimag.imag.fr/~monniaux/biblio/Monniaux_SAS99.pdf},
ps = {http://www-verimag.imag.fr/~monniaux/biblio/Monniaux_SAS99.ps.gz},
abstract = {Cryptographic protocols have so far been analyzed
for the most part by means of testing (which does
not yield proofs of secrecy) and theorem proving
(costly). We propose a new approach, based on
abstract interpretation and using regular tree
languages. The abstraction we use seems fine-grained
enough to be able to certify some protocols. Both
the concrete and abstract semantics of the protocol
description language and implementation issues are
discussed in the paper.},
category = {intc}
}
@inproceedings{Monniaux_SAS00,
author = {David Monniaux},
title = {Abstract Interpretation of Probabilistic Semantics},
booktitle = {Seventh International Static Analysis Symposium
(SAS'00)},
series = {Lecture Notes in Computer Science},
year = 2000,
publisher = {Springer Verlag},
number = 1824,
pages = {322--339},
pdf = {http://www-verimag.imag.fr/~monniaux/biblio/Monniaux_SAS00.pdf},
ps = {http://www-verimag.imag.fr/~monniaux/biblio/Monniaux_SAS00.ps.gz},
note = {Extended version on the author's web site.},
abstract = {Following earlier models, we lift standard
deterministic and nondeterministic semantics of
imperative programs to probabilistic semantics. This
semantics allows for random external inputs of known
or unknown probability and random number
generators. We then propose a method of analysis of
programs according to this semantics, in the general
framework of abstract interpretation. This method
lifts an ``ordinary'' abstract lattice, for
non-probabilistic programs, to one suitable for
probabilistic programs. Our construction is highly
generic. We discuss the influence of certain
parameters on the precision of the analysis, basing
ourselves on experimental results.},
category = {intc}
}
@inproceedings{Monniaux_POPL01,
author = {David Monniaux},
title = {An Abstract {M}onte-{C}arlo Method for the Analysis
of Probabilistic Programs (extended abstract)},
booktitle = {28th Symposium on Principles of Programming
Languages (POPL '01)},
year = 2001,
organization = {Association for Computer Machinery},
pages = {93--101},
ps = {http://www-verimag.imag.fr/~monniaux/biblio/Monniaux_POPL01.ps.gz},
pdf = {http://www-verimag.imag.fr/~monniaux/biblio/Monniaux_POPL01.pdf},
abstract = {We introduce a new method, combination of random
testing and abstract interpretation, for the
analysis of programs featuring both probabilistic
and non-probabilistic nondeterminism. After
introducing ``ordinary'' testing, we show how to
combine testing and abstract interpretation and give
formulas linking the precision of the results to the
number of iterations. We then discuss complexity and
optimization issues and end with some experimental
results.},
category = {intc}
}
@inproceedings{Monniaux_ESOP01,
author = {David Monniaux},
title = {Backwards abstract interpretation of probabilistic
programs},
booktitle = {European Symposium on Programming Languages and
Systems (ESOP '01)},
series = {Lecture Notes in Computer Science},
number = 2028,
year = 2001,
pages = {367--382},
publisher = {Springer Verlag},
pdf = {http://www-verimag.imag.fr/~monniaux/biblio/Monniaux_ESOP01.pdf},
ps = {http://www-verimag.imag.fr/~monniaux/biblio/Monniaux_ESOP01.ps.gz},
abstract = {We introduce an extension of the framework of
backwards abstract interpretation to probabilistic
programs. This extension is proved to be sound with
respect to a semantics that we introduce and prove
to be equivalent to the standard semantics of
probabilistic programs. We then propose a generic
construction lifting ordinary abstract
interpretation lattices to probabilistic programs.},
category = {intc}
}
@inproceedings{Monniaux_SAS01,
author = {David Monniaux},
title = {An Abstract Analysis of the Probabilistic
Termination of Programs},
booktitle = {8th International Static Analysis Symposium
(SAS'01)},
series = {Lecture Notes in Computer Science},
year = 2001,
publisher = {Springer Verlag},
number = 2126,
pages = {111--126},
pdf = {http://www-verimag.imag.fr/~monniaux/biblio/Monniaux_SAS01.pdf},
ps = {http://www-verimag.imag.fr/~monniaux/biblio/Monniaux_SAS01.ps.gz},
abstract = {It is often useful to introduce probabilistic
behavior in programs, either because of the use of
internal random generators (probabilistic
algorithms), either because of some external devices
(networks, physical sensors) with known statistics
of behavior. Previous works on probabilistic
abstract interpretation have addressed safety
properties, but somehow neglected probabilistic
termination. In this paper, we propose a method to
automatically prove the probabilistic termination of
programs using exponential bounds on the tail of the
distribution. We apply this method to an example and
give some directions as to how to implement it. We
also show that this method can also be applied to
make unsound statistical methods on average running
times sound.},
category = {intc}
}
@phdthesis{Monniaux_these,
author = {David Monniaux},
title = {Analyse de programmes probabilistes par
interpr\'etation abstraite},
school = {Universit\'e {P}aris {IX} {D}auphine},
year = 2001,
type = {Th\`ese de doctorat},
note = {R\'esum\'e \'etendu en fran\,cais. Contents in English.},
pdf = {http://www-verimag.imag.fr/~monniaux/biblio/Monniaux_these.pdf},
abstract = {The study of probabilistic programs is of
considerable interest for the validation of
networking protocols, embedded systems, or simply
for compiling optimizations. It is also a difficult
matter, due to the undecidability of properties on
infinite-state deterministic programs, as well as
the difficulties arising from probabilistic
aspects.
In this thesis, we propose a formulaic
language for the specification of trace properties
of probabilistic, nondeterministic transition
systems, encompassing those that can be specified
using deterministic Büchi automata. Those properties
are in general undecidable on infinite
processes.
This language has both a concrete
semantics in terms of sets of traces, as well as an
abstract semantics in terms of measurable
functions. We then apply abstract
interpretation-based techniques to give upper bounds
on the worst-case probability of the studied
property. We propose an enhancement of this
technique when the state space is partitioned ---
for instance along the program points ---, allowing
the use of faster iteration methods. We propose two
abstract domains suitable for this analysis, one
parameterized by an abstract domain suitable for
nondeterministic (but not probabilistic) abstract
interpretation, one modeling extended normal
distributions.
An alternative method to get such
upper bounds works is to apply forward abstract
interpretation on measures. We propose two abstract
domains suitable for this analysis, one
parameterized by an abstract domain suitable for
nondeterministic abstract interpretation, one
modeling sub-exponential queues. This latter domain
allows proving probabilistic termination of
programs.
The methods described so far are symbolic
and do not make use of the statistical properties of
probabilities. On the other hand, a well-known way
to obtain informations on probabilistic
distributions is the Monte-Carlo method. We propose
an abstract Monte-Carlo method featuring randomized
abstract interpreters. },
category = {thes},
oclc = {495477941}
}
@article{Monniaux_JTIT02,
author = {David Monniaux},
editor = {Jean Goubault-Larrecq},
title = {Analysis of Cryptographic Protocols using Logics of
Belief: an overview},
journal = {Journal of Telecommunications and Information
Technology},
year = 2002,
volume = 4,
pages = {57--67},
pdf = {http://www-verimag.imag.fr/~monniaux/biblio/Monniaux_JTIT02.pdf},
issn = {1509-4553},
abstract = {When designing a cryptographic protocol or
explaining it, one often uses arguments such as
``since this message was signed by machine $B$,
machine $A$ can be sure it came from $B$'' in
informal proofs justifying how the protocol
works. Since it is, in such informal proofs, often
easy to overlook an essential assumption, such as a
trust relation or the belief that a message is not a
replay from a previous session, it seems desirable
to write such proofs in a formal system. While such
logics do not replace the recent techniques of
automatic proofs of safety properties, they help in
pointing the weaknesses of the system. In this
paper, we present briefly the BAN (Burrows -- Abadi
-- Needham) formal system \cite{BAN,BAN_TOCS} as
well as some derivative. We show how to prove some
properties of a simple protocol, as well as
detecting undesirable assumptions. We then explain
how the manual search for proofs can be made
automatic. Finally, we explain how the lack of
proper semantics can be a bit worrying.},
category = {intj}
}
@incollection{BlanchetCousotEtAl02-NJ,
author = {B{.} Blanchet and P{.} Cousot and R{.} Cousot and
J{.} Feret and L{.} Mauborgne and A{.} Min{\'e} and
D{.} Monniaux and X{.} Rival},
title = {Design and Implementation of a Special-Purpose
Static Program Analyzer for Safety-Critical
Real-Time Embedded Software},
booktitle = {The Essence of Computation: Complexity, Analysis,
Transformation},
feditor = {T{.} Mogensen and D{.}A{.} Schmidt and I{.}H{.}
Sudborough},
series = {Lecture Notes in Computer Science},
number = 2566,
publisher = {Springer Verlag},
year = 2002,
pages = {85--108},
category = {chap},
pdf = {http://www-verimag.imag.fr/~monniaux/biblio/Static_analyzer_LNCS2566.pdf},
ps = {http://www-verimag.imag.fr/~monniaux/biblio/Static_analyzer_LNCS2566.ps.gz},
abstract = {We report on an experience in the design and
implementation of a special-purpose static program
analyzer for the verification of critical embedded
real-time software.}
}
@inproceedings{Monniaux_VMCAI03,
author = {David Monniaux},
title = {Abstraction of expectation functions using Gaussian
distributions},
booktitle = {Verification, Model Checking, and Abstract
Interpretation: VMCAI '03},
year = 2003,
editor = {Zuck, Lenore D. and Attie, Paul C. and Cortesi,
Agostino and Mukhopadhyay, Supratik},
number = 2575,
series = {Lecture Notes in Computer Science},
pages = {161--173},
publisher = {Springer Verlag},
abstract = {We consider semantics of infinite-state programs,
both probabilistic and nondeterministic, as
expectation functions: for any set of states $A$, we
associate to each program point a function mapping
each state to its expectation of starting a trace
reaching $A$. We then compute a safe upper
approximation of these functions using abstract
interpretation. This computation takes place in an
abstract domain of extended Gaussian (normal)
distributions.},
ps = {http://www-verimag.imag.fr/~monniaux/biblio/Monniaux_VMCAI03.ps.gz},
pdf = {http://www-verimag.imag.fr/~monniaux/biblio/Monniaux_VMCAI03.pdf},
category = {intc}
}
@inproceedings{BlanchetCousotEtAl_PLDI03,
author = {B{.} Blanchet and P{.} Cousot and R{.} Cousot and
J{.} Feret and L{.} Mauborgne and A{.} Min{\'e} and
D{.} Monniaux and X{.} Rival},
title = {A Static Analyzer for Large Safety-Critical
Software},
booktitle = {PLDI},
pages = {196--207},
year = 2003,
organization = {ACM},
pdf = {http://www-verimag.imag.fr/~monniaux/biblio/Static_analyzer_PLDI03.pdf},
ps = {http://www-verimag.imag.fr/~monniaux/biblio/Static_analyzer_PLDI03.ps.gz},
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,
the symbolic manipulation of expressions to improve
the precision of abstract transfer functions,
ellipsoid, and decision tree abstract domains, all
with sound handling of rounding errors in floating
point computations, widening strategies (with
thresholds, delayed) and the automatic determination
of the parameters (parametrized packing).},
category = {intc}
}
@article{Monniaux_SCP03,
author = {David Monniaux},
title = {Abstracting Cryptographic Protocols with Tree Automata},
journal = {Science of Computer Programming},
year = 2003,
volume = 47,
number = {2--3},
pages = {177--202},
note = {Journal version of \cite{Monniaux_SAS99}.},
url = {http://dx.doi.org/10.1016/S0167-6423(02)00132-6},
pdf = {http://www-verimag.imag.fr/~monniaux/biblio/Monniaux_SCP03.pdf},
ps = {http://www-verimag.imag.fr/~monniaux/biblio/Monniaux_SCP03.ps.gz},
category = {intj}
}
@inproceedings{Monniaux_SAS03,
author = {David Monniaux},
title = {Abstract interpretation of programs as {M}arkov
decision processes},
booktitle = {Static Analysis Symposium (SAS '03)},
year = {2003},
series = {Lecture Notes in Computer Science},
number = {2694},
pages = {237--254},
publisher = {Springer Verlag},
pdf = {http://www-verimag.imag.fr/~monniaux/biblio/Monniaux_SAS03.pdf},
ps = {http://www-verimag.imag.fr/~monniaux/biblio/Monniaux_SAS03.ps.gz},
abstract = {We propose a formal language for the specification
of trace properties of probabilistic,
nondeterministic transition systems, encompassing
the properties expressible in Linear Time
Logic. Those formulas are in general undecidable on
infinite deterministic transition systems and thus
on infinite Markov decision processes. This language
has both a semantics in terms of sets of traces, as
well as another semantics in terms of measurable
functions; we give and prove theorems linking the
two semantics. We then apply abstract
interpretation-based techniques to give upper bounds
on the worst-case probability of the studied
property. We propose an enhancement of this
technique when the state space is partitioned ---
for instance along the program points ---, allowing
the use of faster iteration methods.},
category = {intc}
}
@article{Monniaux_SCP05,
author = {David Monniaux},
title = {Abstract interpretation of programs as {M}arkov
decision processes},
journal = {Science of Computer Programming},
year = {2005},
volume = 58,
pages = {179--205},
month = oct,
number = {1--2},
url = {http://dx.doi.org/10.1016/j.scico.2005.02.008},
pdf = {http://www-verimag.imag.fr/~monniaux/biblio/Monniaux_SCP05.pdf},
ps = {http://www-verimag.imag.fr/~monniaux/biblio/Monniaux_SCP05.ps.gz},
category = {intj},
note = {Journal version of \cite{Monniaux_SAS03}.},
abstract = {We propose a formal language for the specification
of trace properties of probabilistic,
nondeterministic transition systems, encompassing
the properties expressible in Linear Time
Logic. Those formulas are in general undecidable on
infinite deterministic transition systems and thus
on infinite Markov decision processes. This language
has both a semantics in terms of sets of traces, as
well as another semantics in terms of measurable
functions; we give and prove theorems linking the
two semantics. We then apply abstract
interpretation-based techniques to give upper bounds
on the worst-case probability of the studied
property. We propose an enhancement of this
technique when the state space is partitioned
---~for instance along the program points~---,
allowing the use of faster iteration methods.}
}
@inproceedings{Monniaux_CAV05,
author = {David Monniaux},
title = {Compositional analysis of floating-point linear numerical filters},
booktitle = {Computer-aided verification: CAV '05},
year = 2005,
series = {Lecture Notes in Computer Science},
number = 3576,
publisher = {Springer Verlag},
pages = {199--212},
pdf = {http://www-verimag.imag.fr/~monniaux/biblio/Monniaux_CAV05.pdf},
abstract = {
Digital linear filters are used in a variety of applications (sound
treatment, control/command, etc.), implemented in software, in
hardware, or a combination thereof. For safety-critical applications,
it is necessary to bound all variables and outputs of all filters.
We give a compositional, effective abstraction for digital linear
filters expressed as block diagrams, yielding sound, precise bounds for
fixed-point or floating-point implementations of the filters.},
category = {intc}
}
@inproceedings{ASTREE_ESOP05,
author = {Patrick Cousot and Radhia Cousot and J\'er\^ome Feret and Laurent Mauborgne and Antoine Min\'e and David Monniaux and Xavier Rival},
title = {The {ASTR\'EE} Analyzer},
booktitle = {ESOP},
pages = {21--30},
year = 2005,
number = 3444,
series = {Lecture Notes in Computer Science},
pdf = {http://www-verimag.imag.fr/~monniaux/biblio/Static_analyzer_ESOP05.pdf},
ps = {http://www-verimag.imag.fr/~monniaux/biblio/Static_analyzer_ESOP05.ps.gz},
abstract = {Astr\'ee 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
syn\-chro\-nous specifications, producing a correctness proof for
complex software without any false alarm in a few hours of
computation.},
category = {intc}
}
@inproceedings{Monniaux_APLAS05,
author = {David Monniaux},
title = {The parallel implementation of the {A}str\'ee static
analyzer},
booktitle = {Programming Languages and Systems (APLAS)},
year = 2005,
feditor = {Kwangkeun Yi},
number = 3780,
series = {Lecture Notes in Computer Science},
publisher = {Springer Verlag},
pdf = {http://www-verimag.imag.fr/~monniaux/biblio/Monniaux_APLAS05.pdf},
ps = {http://www-verimag.imag.fr/~monniaux/biblio/Monniaux_APLAS05.ps.gz},
abstract = {The Astr\'ee static analyzer is a specialized tool
that can prove the absence of runtime errors,
including arithmetic overflows, in large critical
programs. Keeping analysis times reasonable for
industrial use is one of the design objectives. In
this paper, we discuss the parallel implementation
of the analysis.},
category = {intc}
}
@article{Monniaux_Soufron_Upgrade06,
author = {David Monniaux and Jean-Baptiste Soufron},
title = {{DRM} as A Dangerous Alternative to Copyright Licences },
journal = {Upgrade},
year = 2006,
volume = 7,
number = 3,
issn = {1684-5285},
pdf = {http://www.upgrade-cepis.org/issues/2006/3/up7-3Monniaux.pdf}
}
@inproceedings{Monniaux_SAS07,
author = {David Monniaux},
title = {Optimal abstraction on real-valued programs},
booktitle = {Static analysis (SAS '07)},
pages = {104--120},
year = 2007,
editor = {Gilberto Fil\'e and Hanne Riis Nielson},
number = 4634,
series = {Lecture Notes in Computer Science},
publisher = {Springer Verlag},
abstract = {In this paper, we show that it is possible to
abstract program fragments using real variables
using formulas in the theory of real closed
fields. This abstraction is compositional and
modular. We first propose an exact abstraction for
progr ams without loops. Given an abstract domain
(in a wide class including intervals and octagons),
we then show how to obtain an optimal abstraction of
program fra gments with respect to that domain. This
abstraction allows computing optimal fixed points
inside that abstract domain, without the need for a
widening operator .},
ps = {http://www-verimag.imag.fr/~monniaux/biblio/Monniaux_SAS07.ps.gz},
pdf = {http://www-verimag.imag.fr/~monniaux/biblio/Monniaux_SAS07.pdf}
}
@article{Monniaux_TOPLAS08,
author = {David Monniaux},
title = {The pitfalls of verifying floating-point
computations},
journal = {TOPLAS},
fjournal = {ACM Transactions on programming languages and systems},
year = 2008,
month = may,
publisher = {ACM},
fpublisher = {Association for Computing Machinery},
issn = {0164-0925},
volume = 30,
number = 3,
pages = 12,
abstract = {Current critical systems commonly use a lot of
floating-point computations, and thus the testing or
static analysis of programs containing
floating-point operators has become a
priority. However, correctly defining the semantics
of common implementations of floating-point is
tricky, because semantics may change with many
factors beyond source-code level, such as choices
made by compilers. We here give concrete examples of
problems that can appear and solutions to implement
in analysis software.},
url = {http://hal.archives-ouvertes.fr/hal-00128124/en/},
doi = {10.1145/1353445.1353446},
pdf = {http://hal.archives-ouvertes.fr/docs/00/28/14/29/PDF/floating-point-article.pdf}
}
@inproceedings{ASTREE_TASE07,
author = {Cousot, Patrick and Cousot, Radhia and Feret, Jerome
and Min\'e, Antoine and Mauborgne, Laurent and
Monniaux, David and Rival, Xavier},
title = {Varieties of Static Analyzers: A Comparison with
{ASTR\'EE}},
booktitle = {Theoretical Aspects of Software Engineering (TASE
'07)},
year = 2007,
organization = {IEEE},
abstract = {We discuss the characteristic properties of ASTR\'EE,
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.}
}
@inproceedings{Monniaux_EMSOFT07,
author = {David Monniaux},
title = {Verification of Device Drivers and Intelligent
Controllers: a Case Study},
year = 2007,
booktitle = {EMSOFT},
editor = {Christoph Kirsch and Reinhard Wilhelm},
abstract = {The soundness of device drivers generally cannot be
verified in isolation, but has to take into account
the reactions of the hardware devices. In critical
embedded systems, interfaces often were simple
``volatile'' variables, and the interface
specification typically a list of bounds on these
variables. Some newer systems use ``intelligent''
controllers that handle dynamic worklists in shared
memory and perform direct memory accesses, all
asynchronously from the main processor. Thus, it is
impossible to truly verify the device driver without
taking the intelligent device into account, because
incorrect programming of the device can lead to dire
consequences, such as memory zones being erased. We
have successfully verified a device driver extracted
from a critical industrial system, asynchronously
combined with a model for a USB OHCI
controller. This paper studies this case, as well as
introduces a model and analysis techniques for this
asynchronous composition.},
ps = {http://www-verimag.imag.fr/~monniaux/biblio/Monniaux_EMSOFT07.ps.gz},
pdf = {http://www-verimag.imag.fr/~monniaux/biblio/Monniaux_EMSOFT07.pdf},
pages = {30--36},
organization = {ACM \& IEEE},
isbn = {978-1-59593-825-1}
}
@inproceedings{Monniaux_ASIAN06,
author = {Patrick Cousot and Radhia Cousot and J\'er\^ome Feret and Laurent Mauborgne and Antoine Min\'e and David Monniaux and Xavier Rival},
title = {Combination of Abstractions in the ASTR\'EE Static Analyzer},
booktitle = {Advances in Computer Science --- ASIAN 2006. Secure Software and Related Issues},
pages = {272--300},
year = 2008,
number = 4435,
series = {Lecture Notes in Computer Science},
publisher = {Springer Verlag},
isbn = {978-3-540-77504-1}
}
@inproceedings{Monniaux_LPAR08,
author = {David Monniaux},
title = {A Quantifier Elimination Algorithm for Linear Real Arithmetic},
booktitle = {LPAR (Logic for Programming Artificial Intelligence and Reasoning)},
year = 2008,
series = {Lecture Notes in Computer Science},
publisher = {Springer Verlag},
pages = {243-257},
number = 5330,
doi = {10.1007/978-3-540-89439-1_18},
isbn = {978-3-540-89439-1},
pdf = {http://www-verimag.imag.fr/~monniaux/biblio/Monniaux_LPAR08.pdf},
abstract = {We propose a new quantifier elimination algorithm for the theory of linear real arithmetic. This algorithm uses as subroutines satisfiability modulo this theory and polyhedral projection; there are good algorithms and implementations for both of these. The quantifier elimination algorithm presented in the paper is compared, on examples arising from program analysis problems and on random examples, to several other implementations, all of which cannot solve some of the examples that our algorithm solves easily.}
}
@inproceedings{Monniaux_POPL09,
author = {David Monniaux},
title = {Automatic Modular Abstractions for Linear Constraints},
booktitle = {POPL (Principles of programming languages)},
year = 2009,
publisher = {ACM},
note = {The version on the HAL/arXiv sites lacks the links in the bibliography, due to deficiencies in their LaTeX installation.},
pdf = {http://www-verimag.imag.fr/~monniaux/biblio/Monniaux_POPL09.pdf},
abstract = {We propose a method for automatically generating abstract transformers for static analysis by abstract interpretation. The method focuses on linear constraints on programs operating on rational, real or floating-point variables and containing linear assignments and tests.
In addition to loop-free code, the same method also applies for obtaining least fixed points as functions of the precondition, which permits the analysis of loops and recursive functions. Our algorithms are based on new quantifier elimination and symbolic manipulation techniques.
Given the specification of an abstract domain, and a program block, our method automatically outputs an implementation of the corresponding abstract transformer. It is thus a form of program transformation.
The motivation of our work is data-flow synchronous programming languages, used for building control-command embedded systems, but it also applies to imperative and functional programming.},
doi = {10.1145/1480881.1480899},
isbn = {978-1-60558-379-2},
pages = {140--151}
}
@inproceedings{Monniaux_CAV09,
author = {David Monniaux},
title = {On using floating-point computations to help an exact linear arithmetic decision procedure},
booktitle = {Computer-aided verification (CAV)},
year = 2009,
series = {Lecture Notes in Computer Science},
publisher = {Springer Verlag},
doi = {10.1007/978-3-642-02658-4_42},
number = 5643,
pages = {570--583},
pdf = {http://www-verimag.imag.fr/~monniaux/biblio/Monniaux_CAV09.pdf},
abstract = {We consider the decision problem for quantifier-free formulas whose atoms are linear inequalities interpreted over the reals or rationals. This problem may be decided using satisfiability modulo theory (SMT), using a mixture of a SAT solver and a simplex-based decision procedure for conjunctions. State-of-the-art SMT solvers use simplex implementations over rational numbers, which perform well for typical problems arising from model-checking and program analysis (sparse inequalities, small coefficients) but are slow for other applications (denser problems, larger coefficients).
We propose a simple preprocessing phase that can be adapted to existing SMT solvers and that may be optionally triggered. Despite using floating-point computations, our method is sound and complete --- it merely affects efficiency. We implemented the method and provide benchmarks showing that this change brings a naive and slow decision procedure (``textbook simplex'' with rational numbers) up to the efficiency of recent SMT solvers, over test cases arising from model-checking, and makes it definitely faster than state-of-the-art SMT solvers on dense examples.}
}
@phdthesis{Monniaux_HDR,
author = {David Monniaux},
title = {Analyse statique~: de la th\'eorie \`a la pratique},
school = {Universit\'e Joseph Fourier},
year = 2009,
type = {Habilitation to direct research},
address = {Grenoble, France},
month = jul,
pdf = {http://www-verimag.imag.fr/~monniaux/biblio/Monniaux_HDR.pdf},
abstract = {Software operating critical systems (aircraft, nuclear power plants) should not fail --- whereas most computerised systems of daily life (personal computer, ticket vending machines, cell phone) fail from time to time. This is not a simple engineering problem: it is known, since the works of Turing and Cook, that proving that programs work correctly is intrinsically hard.
In order to solve this problem, one needs methods that are, at the same time, efficient (moderate costs in time and memory), safe (all possible failures should be found), and precise (few warnings about nonexistent failures). In order to reach a satisfactory compromise between these goals, one can research fields as diverse as formal logic, numerical analysis or ``classical'' algorithmics.
From 2002 to 2007 I participated in the development of the \soft{Astrée} static analyser. This suggested to me a number of side projects, both theoretical and practical (use of formal proof techniques, analysis of numerical filters...). More recently, I became interested in modular analysis of numerical property and in the applications to program analysis of constraint solving techniques (semidefinite programming, SAT and SAT modulo theory).}
}
@article{Monniaux_HOSC09,
author = {David Monniaux},
title = {A minimalistic look at widening operators},
journal = {Higher order and symbolic computation},
year = 2009,
month = dec,
doi = {10.1007/s10990-009-9046-8},
volume = 22,
number = 2,
pages = {145--154},
issn = {1388-3690},
oclc = {40529371},
pdf = {http://www-verimag.imag.fr/~monniaux/biblio/Monniaux_HOSC09.pdf},
abstract = {We consider the problem of formalizing in higher-order logic the familiar notion of widening from abstract interpretation. It turns out that many axioms of widening (e.g. widening sequences are ascending) are not useful for proving correctness. After keeping only useful axioms, we give an equivalent characterization of widening as a lazily constructed well-founded tree. In type systems supporting dependent products and sums, this tree can be made to reflect the condition of correct termination of the widening sequence.}
}
@inproceedings{Monniaux_CAV10,
author = {David Monniaux},
title = {Quantifier elimination by lazy model enumeration},
booktitle = {Computer-aided verification (CAV)},
year = 2010,
series = {Lecture Notes in Computer Science},
number = 6174,
pages = {585--599},
publisher = {Springer Verlag},
doi = {10.1007/978-3-642-14295-6_51},
isbn = {3642142958},
isbn13 = {9783642142956},
oclc = {663093895},
pdf = {http://www-verimag.imag.fr/~monniaux/biblio/Monniaux_CAV10.pdf},
abstract = {We propose a quantifier elimination scheme based on nested lazy model enumeration through SMT-solving, and projections. This scheme may be applied to any logic that fulfills certain conditions; we illustrate it for linear real arithmetic. The quantifier elimination problem for linear real arithmetic is doubly exponential in the worst case, and so is our method. We have implemented it and benchmarked it against other methods from the literature.}
}
@article{Monniaux_LMCS10,
author = {David Monniaux},
title = {Automatic Modular Abstractions for Template Numerical Constraints},
journal = {Logical Methods in Computer Science},
year = 2010,
month = jun,
abstract = {We propose a method for automatically generating abstract transformers for static analysis by abstract interpretation. The method focuses on linear constraints on programs operating on rational, real or floating-point variables and containing linear assignments and tests.
Given the specification of an abstract domain, and a program block, our method automatically outputs an implementation of the corresponding abstract transformer. It is thus a form of program transformation.
In addition to loop-free code, the same method also applies for obtaining least fixed points as functions of the precondition, which permits the analysis of loops and recursive functions.
The motivation of our work is data-flow synchronous programming languages, used for building control-command embedded systems, but it also applies to imperative and functional programming.
Our algorithms are based on quantifier elimination and symbolic manipulation techniques over linear arithmetic formulas. We also give less general results for nonlinear constraints and nonlinear program constructs.},
issn = {1860-5974},
pdf = {Monniaux_LMCS10.pdf},
url = {http://www.lmcs-online.org/ojs/viewarticle.php?id=563},
doi = {10.2168/LMCS-6(3:4)2010}
}
@inproceedings{Gawlitza_Monniaux_ESOP11,
author = {Thomas Gawlitza and David Monniaux},
title = {Improving Strategies via {SMT} Solving},
booktitle = {ESOP},
year = 2011,
doi = {10.1007/978-3-642-19718-5_13},
pages = {236--255},
publisher = {Springer Verlag},
series = {Lecture Notes in Computer Science},
number = 6602,
isbn = {978-3-642-19717-8},
editor = {Gilles Barthe},
pdf = {Gawlitza_Monniaux_ESOP11.pdf},
abstract = {We consider the problem of computing numerical invariants of programs by abstract interpretation. Our method eschews two traditional sources of imprecision: (i) the use of widening operators for enforcing convergence within a finite number of iterations (ii) the use of merge operations (often, convex hulls) at the merge points of the control flow graph. It instead computes the least inductive invariant expressible in the domain at a restricted set of program points, and analyzes the rest of the code en bloc. We emphasize that we compute this inductive invariant precisely. For that we extend the strategy improvement algorithm of [Gawlitza and Seidl, 2007]. If we applied their method directly, we would have to solve an exponentially sized system of abstract semantic equations, resulting in memory exhaustion. Instead, we keep the system implicit and discover strategy improvements using SAT modulo real linear arithmetic (SMT). For evaluating strategies we use linear programming. Our algorithm has low polynomial space complexity and performs for contrived examples in the worst case exponentially many strategy improvement steps; this is unsurprising, since we show that the associated abstract reachability problem is Pi-p-2-complete.}
}
@inproceedings{Monniaux_Corbineau_ITP2011,
author = {David Monniaux and Pierre Corbineau},
title = {On the Generation of {P}ositivstellensatz Witnesses in Degenerate Cases},
booktitle = {Interactive Theorem Proving (ITP)},
editor = {Van Eekelen, Marko and Geuvers, Herman and Schmaltz, Julien and Wiedijk, Freek},
year = 2011,
month = aug,
volume = 6898,
pages = {249--264},
series = {Lecture Notes in Computer Science},
publisher = {Springer Verlag},
isbn = {978-3-642-22862-9},
pdf = {Monniaux_Corbineau_ITP11.pdf},
abstract = {One can reduce the problem of proving that a polynomial is nonnegative, or more generally of proving that a system of polynomial inequalities has no solutions, to finding polynomials that are sums of squares of polynomials and satisfy some linear equality (\tgerman{Positivstellensatz}). This produces a \emph{witness} for the desired property, from which it is reasonably easy to obtain a formal proof of the property suitable for a proof assistant such as Coq.
The problem of finding a witness reduces to a feasibility problem in semidefinite programming, for which there exist numerical solvers. Unfortunately, this problem is in general not strictly feasible, meaning the solution can be a convex set with empty interior, in which case the numerical optimization method fails. Previously published methods thus assumed strict feasibility; we propose a workaround for this difficulty.
We implemented our method and illustrate its use with examples, including extractions of proofs to Coq.}
}
@inproceedings{Monniaux_Gonnord_SAS11,
author = {David Monniaux and Laure Gonnord},
editor = {Eran Yahav},
title = {Using bounded model checking to focus fixpoint iterations},
booktitle = {Static analysis (SAS)},
year = 2011,
pdf = {Monniaux_Gonnord_SAS2011.pdf},
pages = {369--385},
publisher = {Springer Verlag},
series = {Lecture Notes in Computer Science},
volume = 6887,
abstract = {Two classical sources of imprecision in static analysis by abstract interpretation are widening and merge operations. Merge operations can be done away by distinguishing paths, as in trace partitioning, at the expense of enumerating an exponential number of paths.
In this article, we describe how to avoid such systematic exploration by focusing on a single path at a time, designated by SMT-solving. Our method combines well with acceleration techniques, thus doing away with widenings as well in some cases. We illustrate it over the well-known domain of convex polyhedra.}
}
@inproceedings{Monniaux_LeGuen_NSAD11,
author = {David Monniaux and Le Guen, Julien},
title = {Stratified Static Analysis Based on Variable Dependencies},
booktitle = {Third International Workshop on Numerical and Symbolic Abstract Domains},
year = 2011,
pdf = {Monniaux_LeGuen_NSAD211.pdf},
abstract = {In static analysis by abstract interpretation, one often uses \emph{widening operators} in order to enforce convergence within finite time to an inductive invariant. Certain widening operators, including the classical one over finite polyhedra, exhibit an unintuitive behavior: analyzing the program over a subset of its variables may lead a more precise result than analyzing the original program! In this article, we present simple workarounds for such behavior.}
}
@inproceedings{Monniaux_Bodin_APLAS11,
author = {David Monniaux and Martin Bodin},
title = {Modular Abstractions of Reactive Nodes using Disjunctive Invariants},
booktitle = {Programming Languages and Systems (APLAS)},
year = 2011,
pdf = {Monniaux_Bodin_APLAS11.pdf},
abstract = {We wish to abstract nodes in a reactive programming language, such as Lustre, into nodes with a simpler control structure, with a bound on the number of control states. In order to do so, we compute disjunctive invariants in predicate abstraction, with a bounded number of disjuncts, then we abstract the node, each disjunct representing an abstract state. The computation of the disjunctive invariant is performed by a form of quantifier elimination expressed using SMT-solving.
The same method can also be used to obtain disjunctive loop invariants.}
}
This file was generated by bibtex2html 1.95.