~~NOCACHE~~
/* DO NOT EDIT THIS FILE */
[[seminaires:programmation:index|Programmation]]\\
Lundi 25 novembre 2024, 15 heures 30, 3052\\
**Alexandre Moine** (NYU) //Reaching for Unreachability Properties in Separation Logic//
\\
Unreachability is a property at the heart of garbage collection: if a
location is unreachable, it can be safely deallocated.
However, formally reasoning about unreachability is challenging.
Indeed, to prove that a location is unreachable, one has to consider
the whole heap and possibly multiple concurrent stacks, making local
reasoning apparently out of reach. In this talk, I will present two
projects tackling the challenge of unreachability.
In the first part, I will present my PhD thesis work: an Iris-fueled
Separation Logic with space credits, allowing for the verification of
heap space bounds in the presence of concurrency and garbage
collection. Crucially, this logic tracks the reachability of heap
objects in a modular way, and allows for recovering space credits when
the user proves an object unreachable.
In the second part, I will present another line of work about
disentanglement. Disentanglement is a property of parallel programs
asserting that a location allocated by a task must remain unreachable
by concurrently executing tasks. Making use of disentanglement, the
MPL (MaPLe) compiler for parallel ML equips programs with a blazingly
fast, task-local, garbage collector. I will present DisLog, an
Iris-fueled Separation Logic for verifying disentanglement, and
present ongoing work on TypeDis, a type system for automatically
verifying disentanglement.
Attention salle et horaire inhabituels
[[seminaires:programmation:index|Programmation]]\\
Lundi 18 novembre 2024, 10 heures, 3071\\
**Guillaume Baudart** (IRIF) //Natural Language Intermediate Representation for Mechanized Theorem Proving//
\\
Formal theorem proving is challenging for humans as well as for machines. Thanks to recent advances in LLM capabilities, we believe natural language can serve as a universal interface for reasoning about formal proofs. In this talk, 1) we introduce Pétanque, a new lightweight environment to interact with the Coq theorem prover; 2) we present two interactive proof protocols leveraging natural language as an intermediate representation for designing proof steps; 3) we implement beam search over these interaction protocols, using natural language to rerank proof candidates; and 4) we use Pétanque to benchmark our search algorithms on different datasets. We will then discuss the limitations of our approach and possible future directions.
[[seminaires:programmation:index|Programmation]]\\
Lundi 4 novembre 2024, 10 heures, 3071\\
**Thierry Martinez** (INRIA) //Coq Deep Pattern-Matching using Small Inversion//
\\
I will present joint work with Pierre Boutillier, Hugo Herbelin, and
Meven Lennon-Bertrand. We are implementing a new algorithm, described in
Pierre's PhD thesis and further developed during Meven's internship, for
pattern-matching elaboration in Coq. This algorithm starts from a richer
form of pattern-matching than what is currently available by default in
Coq, handling deep and multiple pattern-matching with dependent types,
as proposed by Thierry Coquand in the 1990s, while targeting the same
elementary form of pattern-matching present in the Coq kernel.
Most of the design challenges for this algorithm come from handling the
equalities that appear at each level of deconstruction of dependent
inductive values. I will compare three approaches: one proposed by
Healfdene Goguen, Conor McBride, and James McKinna, which relies on the
equivalence axiom between homogeneous and heterogeneous equalities
(equivalent to the Uniqueness of Identity Proofs); a refinement proposed
by Jesper Cockx, which avoids the need for axioms; and the encoding by
small inversion, which moves the proofs of deconstruction of the
dependencies from the term level to the type level. While these
algorithms give an encoding of dependent pattern-matching into the Coq
kernel, this discussion leads us to think about what could be a better
primitive form of pattern-matching.
[[seminaires:programmation:index|Programmation]]\\
Lundi 14 octobre 2024, 10 heures, 4071\\
**Pierre-Evariste Dagand** (IRIF) //A type-theoretic model of smart contracts//
\\
Smart contracts are programs that run on an interpreter cobbled together from a massively distributed network of mutually untrusting computers. Unsurprisingly, the unruly nature of the underlying execution engine has a profound impact on the behavior of the interpreter and thus the semantics of smart contracts.
Caught once again by my incurable curiosity, I have set out to delineate precisely what set smart contracts aside in the realm of programming languages.
This talk reports on some early results, modeling the semantics of smart contracts in a type-theoretic and monadic framework. The objective of this work is to support formal reasoning at the protocol level (that is, starting from a specification free from programming error).
We shall strive to stay on track and in good taste: the presentation will not cover any financial aspect of smart contracts.
[[seminaires:programmation:index|Programmation]]\\
Lundi 30 septembre 2024, 10 heures, 3071\\
**Gabriel Scherer** (IRIF) //Pattern-matching on mutable values: danger!//
\\
The OCaml pattern-matching compiler is unsound, it generates incorrect code in the obscure corner case where we match on a value with mutable fields, and those fields are mutated during pattern-matching -- from when clauses, allocation callbacks, or an access race in concurrent execution.
We recall the overall compilation strategy of the OCaml compiler, and explain how to weaken its optimization information to remain correct on mutable data.
## Extended abstract
https://www.irif.fr/~scherer/research/mutable-patterns/mutable-patterns-mlworkshop2024-abstract.pdf