Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Martin Clochard

dblp:139/2440 · DBLP profile ↗
← Back
5ranked-venue papers
2as first author
1since 2021 · last 2021
—ORCID · none

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

Software engineering, systems software and programming languages · 4 · 1 first-author · 1 since 2021Artificial intelligence and machine learning · 1 · 1 first-authorTheory of computation · 1 · 1 since 2021

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
4 papers
Program verification · 68% Programming languages and type systems · 18% Concurrent programming · 10%
Theoretical computer science
1 paper
Mathematical optimization · 100%

Topics — the 12 heaviest of 14, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Program verification
deductive verification
0.922021
Gobra: Modular Specification and Verification of Go Programs · CAV (1) 2021
Deductive verification with ghost monitors · Proc. ACM Program. Lang. 2020
Concurrent programming › concurrency bugs
data race freedom
0.512021
Gobra: Modular Specification and Verification of Go Programs · CAV (1) 2021
Programming languages and type systems › language-based security
memory safety
0.512021
Gobra: Modular Specification and Verification of Go Programs · CAV (1) 2021
Program verification
modular verification
0.512021
Gobra: Modular Specification and Verification of Go Programs · CAV (1) 2021
Program verification
distributed system verification
0.412020
Igloo: soundly linking compositional refinement and separation logic for distributed system verification · Proc. ACM Program. Lang. 2020
Program verification
program logic
0.412020
Deductive verification with ghost monitors · Proc. ACM Program. Lang. 2020
Program verification
refinement
0.412020
Igloo: soundly linking compositional refinement and separation logic for distributed system verification · Proc. ACM Program. Lang. 2020
Program verification › program logic
separation logic
0.412020
Igloo: soundly linking compositional refinement and separation logic for distributed system verification · Proc. ACM Program. Lang. 2020
Programming languages and type systems › type systems
soundness
0.412020
Deductive verification with ghost monitors · Proc. ACM Program. Lang. 2020
Program synthesis and code generation › formal synthesis
parameter synthesis
0.212014
Bridging boolean and quantitative synthesis using smoothed proof search · POPL 2014
Program verification
relational property
0.112020
Deductive verification with ghost monitors · Proc. ACM Program. Lang. 2020
Mathematical optimization › continuous optimization
smooth optimization
0.112014
Bridging boolean and quantitative synthesis using smoothed proof search · POPL 2014

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

viper · 0.5separation logic · 0.5SMT solving · 0.5verifast · 0.4transfinite games · 0.4nagini · 0.4ghost code · 0.4formalisation · 0.4Isabelle/HOL · 0.4numerical optimization · 0.4smoothed proof search · 0.2
YearPublicationVenuePosition
2021 Gobra: Modular Specification and Verification of Go Programs
abstract
Abstract Go is an increasingly-popular systems programming language targeting, especially, concurrent and distributed systems. Go differentiates itself from other imperative languages by offering structural subtyping and lightweight concurrency through goroutines with message-passing communication. This combination of features poses interesting challenges for static verification, most prominently the combination of a mutable heap and advanced concurrency primitives. We present Gobra, a modular, deductive program verifier for Go that proves memory safety, crash safety, data-race freedom, and user-provided specifications. Gobra is based on separation logic and supports a large subset of Go. Its implementation translates an annotated Go program into the Viper intermediate verification language and uses an existing SMT-based verification backend to compute and discharge proof obligations.
Felix A. Wolf, Linard Arquint, Martin Clochard, Wytse Oortwijn, João Carlos Pereira, Peter Müller 0001
CAV (1)3
2020 Igloo: soundly linking compositional refinement and separation logic for distributed system verification
abstract
Lighthouse projects like CompCert, seL4, IronFleet, and DeepSpec have demonstrated that full system verification is feasible by establishing a refinement between an abstract system specification and an executable implementation. Existing approaches however impose severe restrictions on the abstract system specifications due to their limited expressiveness or versatility, or on the executable code due to their use of suboptimal code extraction or inexpressive program logics. We propose a novel methodology that combines the compositional refinement of event-based models of distributed systems with the verification of full-fledged program code using expressive separation logics, which support features of realistic programming languages like heap data structures and concurrency. Our main technical contribution is a formal framework that soundly relates event-based system models to program specifications in separation logics. This enables protocol development tools to soundly interoperate with program verifiers to establish a refinement between the model and the code. We formalized our framework, Igloo, in Isabelle/HOL. We report on three case studies, a leader election protocol, a replication protocol, and a security protocol, for which we refine formal requirements into program specifications that we implement in Java and Python and prove correct using the VeriFast and Nagini tools.
Christoph Sprenger 0001, Tobias Klenze, Marco Eilers, Felix A. Wolf, Peter Müller 0001, Martin Clochard, David A. Basin
Proc. ACM Program. Lang.6
2020 Deductive verification with ghost monitors
abstract
We present a new approach to deductive program verification based on auxiliary programs called ghost monitors . This technique is useful when the syntactic structure of the target program is not well suited for verification, for example, when an essentially recursive algorithm is implemented in an iterative fashion. Our approach consists in implementing, specifying, and verifying an auxiliary program that monitors the execution of the target program, in such a way that the correctness of the monitor entails the correctness of the target. The ghost monitor maintains the necessary data and invariants to facilitate the proof. It can be implemented and verified in any suitable framework, which does not have to be related to the language of the target programs. This technique is also applicable when we want to establish relational properties between two target programs written in different languages and having different syntactic structure. We then show how ghost monitors can be used to specify and prove fine-grained properties about the infinite behaviors of target programs. Since this cannot be easily done using existing verification frameworks, we introduce a dedicated language for ghost monitors, with an original construction to catch and handle divergent executions. The soundness of the underlying program logic is established using a particular flavor of transfinite games. This language and its soundness are formalized and mechanically checked.
Martin Clochard, Claude Marché, Andrei Paskevich
Proc. ACM Program. Lang.1
2018 The Matrix Reproved (Verification Pearl)
Martin Clochard, Léon Gondelman, Mário Pereira
J. Autom. Reason.1
2014 Bridging boolean and quantitative synthesis using smoothed proof search
abstract
We present a new technique for parameter synthesis under boolean and quantitative objectives. The input to the technique is a "sketch" --- a program with missing numerical parameters --- and a probabilistic assumption about the program's inputs. The goal is to automatically synthesize values for the parameters such that the resulting program satisfies: (1) a {boolean specification}, which states that the program must meet certain assertions, and (2) a {quantitative specification}, which assigns a real valued rating to every program and which the synthesizer is expected to optimize. Our method --- called smoothed proof search --- reduces this task to a sequence of unconstrained smooth optimization problems that are then solved numerically. By iteratively solving these problems, we obtain parameter values that get closer and closer to meeting the boolean specification; at the limit, we obtain values that provably meet the specification. The approximations are computed using a new notion of smoothing for program abstractions, where an abstract transformer is approximated by a function that is continuous according to a metric over abstract states. We present a prototype implementation of our synthesis procedure, and experimental results on two benchmarks from the embedded control domain. The experiments demonstrate the benefits of smoothed proof search over an approach that does not meet the boolean and quantitative synthesis goals simultaneously.
Swarat Chaudhuri, Martin Clochard, Armando Solar-Lezama
POPL2