Jules Villard

dblp:79/6376 · DBLP profile ↗
← Back
13ranked-venue papers
2as first author
1since 2021 · last 2022
0000-0001-8637-0712ORCID · verified

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

Software engineering, systems software and programming languages · 9 · 2 first-author · 1 since 2021Theory of computation · 4Systems, architecture and hardware · 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
4 papers
Program verification · 53% Program analysis · 46% Programming languages and type systems · 1%
Theoretical computer science
1 paper
Logic in computer science · 100%

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

TopicWeightPapersLastEvidence papers
Program verification › program logic
incorrectness logic
1.022022
Finding real bugs in big programs with incorrectness logic · Proc. ACM Program. Lang. 2022
Local Reasoning About the Presence of Bugs: Incorrectness Separation Logic · CAV (2) 2020
Program analysis
static analysis
1.022022
Finding real bugs in big programs with incorrectness logic · Proc. ACM Program. Lang. 2022
Local Reasoning About the Presence of Bugs: Incorrectness Separation Logic · CAV (2) 2020
Program verification › program logic
separation logic
0.832020
Local Reasoning About the Presence of Bugs: Incorrectness Separation Logic · CAV (2) 2020
Parametric completeness for separation theories · POPL 2014
The ramifications of sharing in data structures · POPL 2013
Program analysis › dynamic analysis
memory error detection
0.612022
Finding real bugs in big programs with incorrectness logic · Proc. ACM Program. Lang. 2022
Program analysis › static analysis
bug detection
0.412020
Local Reasoning About the Presence of Bugs: Incorrectness Separation Logic · CAV (2) 2020
Program verification › program logic › separation logic
incorrectness separation logic
0.412020
Local Reasoning About the Presence of Bugs: Incorrectness Separation Logic · CAV (2) 2020
Program analysis
symbolic execution
0.412020
Local Reasoning About the Presence of Bugs: Incorrectness Separation Logic · CAV (2) 2020
Program verification › modular reasoning
local reasoning
0.322020
The ramifications of sharing in data structures · POPL 2013
Local Reasoning About the Presence of Bugs: Incorrectness Separation Logic · CAV (2) 2020
Logic in computer science › proof theory › substructural logic
Boolean BI
0.212014
Parametric completeness for separation theories · POPL 2014
Logic in computer science › proof theory › substructural logic
bunched implications
0.212014
Parametric completeness for separation theories · POPL 2014
Logic in computer science
completeness
0.212014
Parametric completeness for separation theories · POPL 2014
Logic in computer science
proof theory
0.212014
Parametric completeness for separation theories · POPL 2014
Logic in computer science › proof theory
substructural logic
0.212014
Parametric completeness for separation theories · POPL 2014
Systems and software security
memory safety
0.212022
Finding real bugs in big programs with incorrectness logic · Proc. ACM Program. Lang. 2022
Program verification
modular verification
0.212013
The ramifications of sharing in data structures · POPL 2013
Program verification
program logic
0.112020
Local Reasoning About the Presence of Bugs: Incorrectness Separation Logic · CAV (2) 2020
Programming languages and type systems
mutable data structures
0.012013
The ramifications of sharing in data structures · POPL 2013

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

separation logic · 1.6compositional bug-reporting criterion · 1.1ISL · 1.1symbolic execution · 0.4incorrectness logic · 0.4proof theory · 0.4algebraic semantics · 0.4compositional proof system · 0.2
YearPublicationVenuePosition
2022 Finding real bugs in big programs with incorrectness logic
abstract
Incorrectness Logic (IL) has recently been advanced as a logical theory for compositionally proving the presence of bugs—dual to Hoare Logic, which is used to compositionally prove their absence. Though IL was motivated in large part by the aim of providing a logical foundation for bug-catching program analyses, it has remained an open question: is IL useful only retrospectively (to explain existing analyses), or can it actually be useful in developing new analyses which can catch real bugs in big programs? In this work, we develop Pulse-X, a new, automatic program analysis for catching memory errors, based on ISL, a recent synthesis of IL and separation logic. Using Pulse-X, we have found 15 new real bugs in OpenSSL, which we have reported to OpenSSL maintainers and have since been fixed. In order not to be overwhelmed with potential but false error reports, we develop a compositional bug-reporting criterion based on a distinction between latent and manifest errors, which references the under-approximate ISL abstractions computed by Pulse-X, and we investigate the fix rate resulting from application of this criterion. Finally, to probe the potential practicality of our bug-finding method, we conduct a comparison to Infer, a widely used analyzer which has proven useful in industrial engineering practice.
Quang Loc Le, Azalea Raad, Jules Villard, Josh Berdine, Derek Dreyer, Peter W. O'Hearn
Proc. ACM Program. Lang.3
2020 Local Reasoning About the Presence of Bugs: Incorrectness Separation Logic
abstract
There has been a large body of work on local reasoning for proving the absence of bugs, but none for proving their presence . We present a new formal framework for local reasoning about the presence of bugs, building on two complementary foundations: 1) separation logic and 2) incorrectness logic. We explore the theory of this new incorrectness separation logic (ISL), and use it to derive a begin-anywhere, intra-procedural symbolic execution analysis that has no false positives by construction . In so doing, we take a step towards transferring modular, scalable techniques from the world of program verification to bug catching.
Azalea Raad, Josh Berdine, Hoang-Hai Dang, Derek Dreyer, Peter W. O'Hearn, Jules Villard
CAV (2)6
2016 Verifying Concurrent Graph Algorithms
Azalea Raad, Aquinas Hobor, Jules Villard, Philippa Gardner
APLAS3
2015 Sub-classical Boolean Bunched Logics and the Meaning of Par
abstract
We investigate intermediate logics between the bunched logics Boolean BI and Classical BI, obtained by combining classical propositional logic with various flavours of Hyland and De Paiva's full intuitionistic linear logic. Thus, in addition to the usual multiplicative conjunction (with its adjoint implication and unit), our logics also feature a multiplicative disjunction (with its adjoint co-implication and unit). The multiplicatives behave "sub-classically", in that disjunction and conjunction are related by a weak distribution principle, rather than by De Morgan equivalence. We formulate a Kripke semantics, covering all our sub-classical bunched logics, in which the multiplicatives are naturally read in terms of resource operations. Our main theoretical result is that validity according to this semantics coincides with provability in a corresponding Hilbert-style proof system. Our logical investigation sheds considerable new light on how one can understand the multiplicative disjunction, better known as linear logic's "par", in terms of resource operations. In particular, and in contrast to the earlier Classical BI, the models of our logics include the heap-like memory models of separation logic, in which disjunction can be interpreted as a property of intersection operations over heaps.
James Brotherston, Jules Villard
CSL2
2015 CoLoSL: Concurrent Local Subjective Logic
Azalea Raad, Jules Villard, Philippa Gardner
ESOP2
2015 Shared contract-obedient channels
Étienne Lozes, Jules Villard
Sci. Comput. Program.2
2014 Developments in Concurrent Kleene Algebra
Tony Hoare, Stephan van Staden, Bernhard Möller, Georg Struth, Jules Villard, Huibiao Zhu, Peter W. O'Hearn
RAMiCS5
2014 Parametric completeness for separation theories
abstract
In this paper, we close the logical gap between provability in the logic BBI, which is the propositional basis for separation logic, and validity in an intended class of separation models, as employed in applications of separation logic such as program verification. An intended class of separation models is usually specified by a collection of axioms describing the specific model properties that are expected to hold, which we call a separation theory.
James Brotherston, Jules Villard
POPL2
2013 The ramifications of sharing in data structures
abstract
Programs manipulating mutable data structures with intrinsic sharing present a challenge for modular verification. Deep aliasing inside data structures dramatically complicates reasoning in isolation over parts of these objects because changes to one part of the structure (say, the left child of a dag node) can affect other parts (the right child or some of its descendants) that may point into it. The result is that finding intuitive and compositional proofs of correctness is usually a struggle. We propose a compositional proof system that enables local reasoning in the presence of sharing.
Aquinas Hobor, Jules Villard
POPL2
2010 Tracking Heaps That Hop with Heap-Hop
Jules Villard, Étienne Lozes, Cristiano Calcagno
TACAS1
2010 A spatial equational logic for the applied pi-calculus
Étienne Lozes, Jules Villard
Distributed Comput.2
2009 Proving Copyless Message Passing
Jules Villard, Étienne Lozes, Cristiano Calcagno
APLAS1
2008 A Spatial Equational Logic for the Applied pi-Calculus
Étienne Lozes, Jules Villard
CONCUR2