{"id":473,"date":"2021-03-30T08:47:30","date_gmt":"2021-03-30T06:47:30","guid":{"rendered":"http:\/\/www.ens-lyon.fr\/LIP\/CASH\/?page_id=473"},"modified":"2026-09-29T15:46:40","modified_gmt":"2026-09-29T13:46:40","slug":"seminar-and-reading-group","status":"publish","type":"page","link":"https:\/\/www.ens-lyon.fr\/LIP\/CASH\/?page_id=473","title":{"rendered":"Seminar and reading group"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Date: Monday 10:30am Lyon Time <strong>(unless explicitly stated otherwise)<\/strong><br>Location: Salle de conseil <strong>(unless explicitly stated otherwise)<\/strong><br>Virtual: <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/rendez-vous.renater.fr\/CASH_Seminar_977b7f-224e4d-ca9a8e?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjb250ZXh0Ijp7InVzZXIiOnsiYXZhdGFyIjoiaHR0cHM6Ly93d3cuZ3JhdmF0YXIuY29tL2F2YXRhci8yNjc3MjA3NzQ1ZTFmZjA1NWEzZTE1ZmZjY2M4NTgyZT9kPTQwNCZzaXplPTIwMCIsIm5hbWUiOiJBdXRob3JpemVkX0J5X2N5cmlsLmNvaGVuQGlucmlhLmZyIiwiZW1haWwiOiJBdXRob3JpemVkX0J5X2N5cmlsLmNvaGVuQGlucmlhLmZyIiwiYWZmaWxpYXRpb24iOiJvd25lciJ9LCJmZWF0dXJlcyI6eyJsaXZlc3RyZWFtaW5nIjp0cnVlLCJyZWNvcmRpbmciOnRydWV9fSwiaXNzIjoibXlfaml0c2lfYXBwX2lkIiwiYXVkIjoibXlfaml0c2lfYXBwX2lkIiwic3ViIjoicmVuZGV6LXZvdXMucmVuYXRlci5mciIsInJvb20iOiJDQVNIX1NlbWluYXJfOTc3YjdmLTIyNGU0ZC1jYTlhOGUifQ.BWY_ClNUAiy23qUV6zRk73xgXi1YciDXNATXkYoAavs\"><\/a><a href=\"https:\/\/rendez-vous.renater.fr\/CASH_Seminar_977b7f-224e4d-ca9a8e\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/rendez-vous.renater.fr\/CASH_Seminar_977b7f-224e4d-ca9a8e<\/a><\/p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<h2 class=\"wp-block-heading\">Upcoming<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">2026<\/h3>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<h4 class=\"wp-block-heading\">05\/10 &#8211;<strong> 10:30 CET <\/strong>Victor Deng<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<p class=\"wp-block-paragraph\"><strong>On the computational complexity of JavaScript regex matching<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>Abstract<\/summary>\n<p class=\"wp-block-paragraph\">Despite widespread use, the complexity of the matching problem for modern regular expressions languages remains unclear. Previous work proved that an idealized regular expression language with backreferences and lookarounds had PSPACE-complete matching. We extend this work to a real-world regex language by proving that JavaScript regex matching with expanded lower-bounded quantifiers is PSPACE-complete. We then generalize the result: we show that PSPACE-hardness survives the removal of negative lookarounds, and that removing all lookarounds leads to an OptP-complete parsing problem. Our core arguments are formalized in Rocq.<\/p>\n<\/details>\n<\/div>\n<\/div>\n<\/div><\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<h2 class=\"wp-block-heading\">Past<\/h2>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\">2026<\/h3>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<h4 class=\"wp-block-heading\">16\/02 &#8211;<strong> 14:00 CET <\/strong>(Seminar) Alain Ketterlin <\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">(Inria CAMUS team, Strasbourg)<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<p class=\"wp-block-paragraph\"><strong>Affine Loop Nests and Integer Polynomials<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>Abstract<\/summary>\n<p class=\"wp-block-paragraph\">This talk explores connexions between (mostly affine) static control<br>loop nests and integer-valued polynomials in integer variables. We<br>first describe a simple and fast algorithm that counts the number of<br>instructions executed by a (parameterized) affine loop nest of a<br>slightly restricted class, and use this algorithm to define the<br>correspondence between the iteration vector and sequential rank of any<br>instruction instance. We then proceed to define a loop (or kernel)<br>interpolation technique that coerces one or more loop nests into a<br>single perfect loop, and use this technique to recognize loops in raw<br>program traces, or transform and\/or merge compute kernels. This<br>introduces integer polynomial loops, where bounds, memory access<br>functions, and other parts of instructions are polynomials rather than<br>affine; the last part of the talk shows how such loops can be compiled<br>to produce efficient code. The three parts of the talk rely on a<br>somewhat unusual representation for integer polynomials, whose<br>properties provide simple and efficient integration, interpolation,<br>and differentiation techniques which lie at the heart of the various<br>algorithms.<\/p>\n<\/details>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<h4 class=\"wp-block-heading\">23\/02 &#8211;<strong> 10:30 &#8211; 16:15 CET <\/strong>(Seminar) Proof Assistants (Amphi I, Site Monod)<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/discourse.rocq-prover.org\/t\/feb-23-proof-assistant-wg-at-ens-de-lyon\/2936\">See the program<\/a><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>10:30-12:00 <strong>tutorial<\/strong> <em>Quentin Vermande: an introduction to the Rocq prover.<\/em><\/li>\n\n\n\n<li>13:30-14:45 <strong>user talk<\/strong> <em>Olivier Laurent: Rocq the sequents.<\/em><\/li>\n\n\n\n<li>15:00-16:15 <strong>tooling talk<\/strong> <em>Damien Pous: Inferring list equalities, and more generally, McLane morphisms.<\/em><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<h4 class=\"wp-block-heading\">24\/02 &#8211;<strong> 14:00 CET <\/strong>(Seminar) Cl\u00e9ment Rossetti<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<p class=\"wp-block-paragraph\"><strong>Pavage Alg\u00e9brique: Pavage de boucles parall\u00e8les guid\u00e9 par le volume pour un \u00e9quilibre de charge quasi-parfait<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>Abstract<\/summary>\n<p class=\"wp-block-paragraph\">Le pavage de boucles est une technique cl\u00e9 d&#8217;optimisation dans les compilateurs, utilis\u00e9e \u00e0 la fois pour am\u00e9liorer la localit\u00e9 des acc\u00e8s m\u00e9moire et pour contr\u00f4ler la granularit\u00e9 de la parall\u00e9lisation. Dans le cadre du mod\u00e8le poly\u00e9drique, le pavage est traditionnellement d\u00e9fini par des pav\u00e9s de taille fixe, d\u00e9termin\u00e9s \u00e0 la compilation. Ce type de pavage peut conduire \u00e0 un d\u00e9s\u00e9quilibre de charge entre les threads, en fonction de la forme et de la taille des pav\u00e9s ainsi que de celles du domaine d&#8217;it\u00e9ration.<br>Cette pr\u00e9sentation introduit le pavage alg\u00e9brique, une nouvelle approche de pavage qui d\u00e9finit les pav\u00e9s non plus par leur taille, mais par leur volume, c&#8217;est-\u00e0-dire par le nombre d&#8217;it\u00e9rations qu&#8217;ils contiennent. Les bornes des pav\u00e9s sont calcul\u00e9es dynamiquement \u00e0 l&#8217;ex\u00e9cution \u00e0 l&#8217;aide d&#8217;expressions alg\u00e9briques, appel\u00e9es expressions trahrhe. Cette technique vise \u00e0 r\u00e9soudre sp\u00e9cifiquement les probl\u00e8mes d&#8217;\u00e9quilibre de charge tout en conservant les b\u00e9n\u00e9fices en localit\u00e9 de donn\u00e9es du pavage classique.<br>L&#8217;approche a ensuite \u00e9t\u00e9 d\u00e9clin\u00e9e et \u00e9tendue aux programmes de type stencils notamment gr\u00e2ce \u00e0 l&#8217;utilisation de pav\u00e9s trap\u00e9zo\u00efdaux. Les performances ont \u00e9t\u00e9 \u00e9valu\u00e9es sur plusieurs benchmarks et compar\u00e9es aux compilateurs poly\u00e9driques de l&#8217;\u00e9tat de l&#8217;art. Enfin, ces techniques ont \u00e9t\u00e9 int\u00e9gr\u00e9es et automatis\u00e9es dans un compilateur source-\u00e0-source, Pesto, capable de g\u00e9n\u00e9rer automatiquement du code C parall\u00e8le annot\u00e9 avec des directives OpenMP.<\/p>\n<\/details>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<h4 class=\"wp-block-heading\">09\/03 &#8211;<strong> 10:30 CET <\/strong>(Seminar) S\u00e9bastien Michelland<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<p class=\"wp-block-paragraph\"><strong>Quantifying programs\u2019 robustness against multi-fault control-flow attacks by static analysis<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>Abstract<\/summary>\n<p class=\"wp-block-paragraph\">Fault attacks are hardware-induced disruptions of systems, typically used against embedded systems while running to alter programs&#8217; execution and achieve some type of exploit. Analyzing fault attacks can be tricky because the disrupted execution doesn&#8217;t follow language semantics; for instance, skipping a return statement may allow an attacker to fall through a function to another, unrelated function without properly setting up the call. These problems are compounded in the context of multi-fault attacks, where an attacker may perform targeted and repeated attacks to work around countermeasures and achieve complex objectives.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">One such analysis is SAMVA by Gicquel et al. [1], a tool for finding attacks in binaries using multi-fault instruction-skip and instruction-replay attacks. SAMVA takes an attack plan such as &#8220;go from the entry of verifyPIN to authenticated=true without touching the countermeasure&#8221; and finds sequences of faults that execute the plan using a combination of static analysis, heuristics and emulation. In this talk, I&#8217;ll present SAMVA&#8217;s main ideas and revamp its core algorithms to turn it from a heuristics-driven attack planner into a complete analysis. The updated SAMVA is able to find all working attacks and lazily enumerate them by increasing cost for the attacker. As a side-effect, finding the cheapest successful attacks makes SAMVA an automated quantification of programs&#8217; robustness level against the faults considered.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[1] <a href=\"https:\/\/hal.science\/hal-03980128\" rel=\"noreferrer noopener\" target=\"_blank\">https:\/\/hal.science\/hal-03980128<\/a><\/p>\n<\/details>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<h4 class=\"wp-block-heading\">16\/03 -10:30 CET (SEMinar) Vivien Gachet<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<p class=\"wp-block-paragraph\"><strong>Low Level Representation of High Level Datastructures<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>Abstract<\/summary>\n<p class=\"wp-block-paragraph\">Now integrated in mainstream languages, Algebraic Data Types (ADTs) have established themselves as a nice way to reason about data structures and their manipulation using pattern matching. However, their use in low-level programming remains limited despite efforts, notably from the Rust community.<br>This talks will be an introduction to the language dubbed Ribbit. This work aims at combining a high level language, with easy-to-use ADTs, and low level memory specifications, for efficient and compact computations. Ribbit is a pure, compiled language, where high level types can be specified into memory types, ie fine-grained, modular indications on how to store a chosen type into the memory.<br>We will give an overview of Ribbit, and delve into the complexity that arises when designing a sound semantic for a mix between high level and low level languages, by showcasing how adding restrained mutability turns easy, simple reads into complex operations, riddled with side-effects.<\/p>\n<\/details>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<h4 class=\"wp-block-heading\">23\/03 &#8211;<strong> 10:30 &#8211; 16:15 CET <\/strong>(Seminar) Proof Assistants (Amphi I, Site Monod)<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<p class=\"wp-block-paragraph\">Program: <a href=\"https:\/\/perso.ens-lyon.fr\/olivier.laurent\/proof-assistants-lip\/\">https:\/\/perso.ens-lyon.fr\/olivier.laurent\/proof-assistants-lip\/<\/a><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>10:30-12:00 <strong>tutorial<\/strong> <em>Samuel Arsac: On the Rocq prover.<\/em><\/li>\n\n\n\n<li>13:30-14:45 <strong>user talk<\/strong> <em>Ludovic Henrio: Layers of Confluence for Actors<\/em><\/li>\n\n\n\n<li>15:00-16:15 <strong>tooling talk<\/strong> <em>Damien Pous: Inferring list equalities, and more generally, McLane morphisms &#8211; continued<\/em><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<h4 class=\"wp-block-heading\">01\/04 &#8211; 10:00 CEST (SEMINAR) ALAN SCHMITT &#8211; Salle MGN1 107<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<p class=\"wp-block-paragraph\"><strong>Effects in Skel, From Exceptions to Delimited Computation<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>Abstract<\/summary>\n<p class=\"wp-block-paragraph\">Skeletal Semantics is a meta-language to describe the semantics of<br>programming languages. We present it through several examples,<br>highlighting how complex features can be captured in a readable way<br>using monads. These features range from simple effects like exceptions<br>to more complex ones including the manipulation of continuations.<\/p>\n<\/details>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<h4 class=\"wp-block-heading\">13\/04 &#8211;<strong> 10:30 CET <\/strong>(Seminar) Filippo Nuccio Mortarino Majno Di Capriglio<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<p class=\"wp-block-paragraph\"><strong>An introduction to Lean and Mathlib, with applications to Laurent Series<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>Abstract<\/summary>\n<p class=\"wp-block-paragraph\">In the first part of this talk I will briefly present the theorem prover Lean and its mathematical library Mathlib. I will focus on one example, building on it to show some of the automatic tools available when proving theorems in Lean. In the second part, I will discuss a more advanced example concerning Laurent Series, and discuss a recent project with C. Cohen aiming at adapting the Mathlib proof to Rocq and to Mathcomp-Analysis.<\/p>\n<\/details>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<h4 class=\"wp-block-heading\">20\/04 &#8211;<strong> 10:30 &#8211; 16:15 CET <\/strong>(Seminar) Proof Assistants (Amphi I, Site Monod)<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<p class=\"wp-block-paragraph\">Program: <a href=\"https:\/\/perso.ens-lyon.fr\/olivier.laurent\/proof-assistants-lip\/\">https:\/\/perso.ens-lyon.fr\/olivier.laurent\/proof-assistants-lip\/<\/a><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>10:30-12:00 <strong>tutorial<\/strong> <em>Cyril Cohen: On the Rocq prover.<\/em><\/li>\n\n\n\n<li>13:30-14:45 <strong>user talk<\/strong> <em>Samuel Arsac<\/em><\/li>\n\n\n\n<li>15:00-16:15 <strong>tooling talk<\/strong> <em>Guillaume Melquiond<\/em>: <em>Rocq&#8217;s Conversion and Reduction Engines<\/em><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<h4 class=\"wp-block-heading\">11\/05 -10:30 CET (Seminar) Aur\u00e8le Barri\u00e8re<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<p class=\"wp-block-paragraph\"><strong>ECMAScript RegExp: semantics and linear implementations (Ecma TC39 114th meeting rehearsal)<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>Abstract<\/summary>\n<p class=\"wp-block-paragraph\">Among all the modern backtracking-style regex semantics, the ECMAScript RegExp chapter finds itself in a surprisingly favorable position: almost all features can be matched in linear-time, and it is the only language for which a linear algorithm for all lookarounds is known.<br>We argue that the impact of new RegExp proposals on linear implementations should be considered.<br>The ECMAScript RegExp semantics can also be expressed in a way that is particularly suitable for formal verification.<br>We present our ongoing verification work and its benefits for the ECMAScript community.<\/p>\n<\/details>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<h4 class=\"wp-block-heading\">27\/05 &#8211; 10:30 CET (seminar) Kacper Korban and Marcin Wojnarowski<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Location: Salle de R\u00e9union 316 Centre<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<p class=\"wp-block-paragraph\"><strong><em>Kacper Korban<\/em><\/strong><br><strong>Bootstrapping a verified compiler for an imperative language<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>Abstract<\/summary>\n<p class=\"wp-block-paragraph\">Compiler correctness is crucial for reasoning about program correctness: if we use a faulty compiler to compile a verified program, we may end up with an incorrect binary. Thankfully, compilers are computer programs too and can be proven correct with a proof assistant to obtain verified compilers. But who compiles (and runs) the verified compiler? The typical approach in Rocq would be to use the built-in extraction, but this mechanism is essentially an unverified compiler from Gallina to another high-level language. Thankfully, writing a verified compiler gives us a verified compiler, so it should be possible to use it to compile itself\u2014bootstrap it. In this talk, first, I will present the approach we are using to bootstrap a simple verified compiler for an imperative language in Rocq. Then, I will introduce in more detail the more interesting technical parts of our work, specifically the reification procedure.<\/p>\n<\/details>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<p class=\"wp-block-paragraph\"><strong><em>Marcin Wojnarowski<\/em><\/strong><br><strong>Verification of realistic regex matching<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>Abstract<\/summary>\n<p class=\"wp-block-paragraph\">Modern regular expressions (regexes) are a powerful tool for finding patterns in text. Modern features such as capturing groups, lookarounds, and backreferences turn the problem of matching into a complex task. Real-world implementations additionally employ a large variety of optimizations and heuristics to speed up matching in practice. In this work we don&#8217;t shy away from this complexity but instead tame it by providing a formalization of realistic regex matching that includes all of the cumbersome aspects. In the Rocq proof assistant, we provide the first formalization and proof of correctness of a prefix acceleration optimization in the PikeVM. We additionally formalize optimizations such as anchored regexes and impossible matches. We combine all of them to produce a realistic matching algorithm which is proven to return matches defined by the ECMAScript 2023 standard.<\/p>\n<\/details>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<h4 class=\"wp-block-heading\">01\/06 -10:30 CET (Thesis Subject Presentations)<br>Gr\u00e9goire Aubertin et Vincent Mastain<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<p class=\"wp-block-paragraph\"><strong><em>Gr\u00e9goire Aubertin<\/em><\/strong><br><strong>Detection of regular program patterns by artificial intelligence <\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>Abstract<\/summary>\n<p class=\"wp-block-paragraph\">Domain-Specific Languages (DSLs) facilitate the concise and efficient expression of specialized computational kernels in domains such as graphics pipelines, stencil computations, and artificial intelligence. DSL compilers can leverage domain knowledge to apply highly targeted code optimizations, often resulting in near-optimal performance. However, such optimizations are inherently inapplicable to preexisting code written in general-purpose languages, necessitating a costly and error-prone porting process, or even a full program rewrite.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A promising alternative consists in assisting the programmer by automatically identifying program fragments that can be expressed using DSL primitives. In general, the problem of program detection is more complex than establishing computational equivalence between programs \u2014 a task known to be undecidable. Various strategies have been proposed to circumvent this limitation, such as focusing on restricted subsets of programs with statically predictable control structures (e.g., loops), or relaxing the notion of equivalence through syntactic approximations.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this thesis, we explore a novel approach that further relaxes the equivalence constraint by tolerating occasional misclassifications, provided that such errors remain infrequent and controllable. This paradigm is particularly well-suited to machine learning techniques, which inherently operate under probabilistic assumptions and approximate correctness. Correctly identified fragments can then be validated and filtered through a subsequent verification phase.<\/p>\n<\/details>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<p class=\"wp-block-paragraph\"><strong><em>Vincent Mastain<\/em><\/strong><br><strong>Scalable Translation Validation for High-Performance Computing and Machine Learning<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>Abstract<\/summary>\n<p class=\"wp-block-paragraph\">This thesis focuses on scalable translation validation for high-performance computing and machine learning. The aim is to enhance automatic parallelization by verifying reductions and compile-time data allocation. The research addresses scalability issues and proposes solutions for automated corrections. The work is validated using HPC benchmarks and is conducted in collaboration between Inria Lyon and Iowa State University.<\/p>\n<\/details>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<h4 class=\"wp-block-heading\">08\/06 -10:30 CET (Seminar) \u00c9tienne Parent<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<p class=\"wp-block-paragraph\"><strong>Vectorised computation of transductions<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>Abstract<\/summary>\n<p class=\"wp-block-paragraph\">Vectorisation is a technique used to speed up programs by processing several data in parallel at the instruction level.<br>However, autovectorisers struggle with programs with lots of branching, such as automata and finite-state transducers for which high-performance is wanted in some applications such as DNA or JSON parsing.<br>Implementing such optimisations requires lots of effort from the programmer, relying on subtle tricks and a fine knowledge of processor instructions.<br>In this talk, we will see how algebraic automata theory provides tools to find vectorisations on some nice class of transducers.<br>This is a first step towards designing a high-level language that compiles transducers to SIMD optimised code.<\/p>\n<\/details>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<h4 class=\"wp-block-heading\">06\/07 -10:30 CET (Rehearsal) Quentin Vermande<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<p class=\"wp-block-paragraph\"><strong>Une Fondation des Math\u00e9matiques Hybride Classe-Structure<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>Abstract<\/summary>\n<p class=\"wp-block-paragraph\">L\u2019une des techniques classiques d\u2019organisation des connaissances en math\u00e9matiques consiste \u00e0 regrouper les objets qu\u2019on souhaite \u00e9tudier pour former ce qu\u2019on appelle une structure. Par exemple, les structures alg\u00e9briques regroupent un ensemble et des op\u00e9rations sur cet ensemble. On distingue deux familles de repr\u00e9sentations des structures, celles dites empaquet\u00e9es et celles dites d\u00e9paquet\u00e9es.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dans cette pr\u00e9sentation, je pr\u00e9senterai la contribution principale de ma th\u00e8se, qui consiste \u00e0 combiner une repr\u00e9sentation empaquet\u00e9e avec une technique d\u2019inf\u00e9rence traditionnellement associ\u00e9e aux repr\u00e9sentations d\u00e9paquet\u00e9es.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cette approche permet notamment d\u2019am\u00e9liorer la mod\u00e9lisation usuelle de la notion d\u2019ensemble en termes de pr\u00e9dicats dans un assistant de preuve bas\u00e9 sur une th\u00e9orie des types. Ceci permet \u00e0 l\u2019utilisateur de mieux tirer parti des intuitions venant de la th\u00e9orie des ensembles, ce qui simplifie consid\u00e9rablement l&#8217;acc\u00e8s aux assistants de preuve pour un.e d\u00e9butant.e, par exemple un.e \u00e9tudiant.e en premi\u00e8re ann\u00e9e de licence de math\u00e9matiques.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour passer \u00e0 l&#8217;\u00e9chelle et \u00e9viter des d\u00e9clarations absconses aux utilisateurs, cette nouvelle repr\u00e9sentation vient avec un compilateur d&#8217;instances de classes de types.<\/p>\n<\/details>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<h4 class=\"wp-block-heading\">15\/07 &#8211;<strong> 13:30 CET <\/strong>(Seminar) Keegan Perry<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<p class=\"wp-block-paragraph\"><strong>A Formal Characterisation of Modern Regex Semantics<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>Abstract<\/summary>\n<p class=\"wp-block-paragraph\"> Modern regular expressions have fundamentally changed the matching problem. While traditionally regular expression matching is concerned with membership, modern regex libraries are able to locate a matching string within a given input and report the values matched by the capture groups of the regex. This change to the matching problem introduces a new question: when there are multiple locations where a match can occur, which one should be returned? In this talk, I will present the different ways in which modern regex libraries answer this question, and how we\u2019ve been able to define these different semantics using backtracking trees.<\/p>\n<\/details>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<h4 class=\"wp-block-heading\">07\/09 &#8211;<strong> 10:30 CET <\/strong>(Rehearsal) Cyril Cohen<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<p class=\"wp-block-paragraph\"><strong>Structuring Mathematics in Dependent Type Theory<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>Abstract<\/summary>\n<p class=\"wp-block-paragraph\">This habilitation thesis aims at reducing the gap between formal and informal mathematics by providing extensions of the Rocq prover, taking the viewpoint that dependent type theory is an assembly language and providing \u201ccompilers\u201d that take simplified user input and perform complex operations to relieve the user from unnecessary boilerplate and help them focus on the mathematical meaning of their formalization.<\/p>\n<\/details>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<h4 class=\"wp-block-heading\">28\/09 &#8211;<strong> 10:30 CET <\/strong>Lucie Lahaye<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<p class=\"wp-block-paragraph\"><strong>Formalization and implementation of an axiom system for (oo, 1)-categories.<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>Abstract<\/summary>\n<p class=\"wp-block-paragraph\">I will present my work as an intern of Thierry Coquand at Chalmers University, last year. We formalized and implemented an axiom system for (oo, 1)-categories proposed by David W\u00e4rn which should have allowed the formalization of the (oo, 1)-category of (oo, 1)-categories in a proof-assistant. Firstly, I will present what categories are, the idea of higher-order mathematics and what motivates the study and use of (oo, 1)-categories. Next, we will go over the different axioms and notions of the system as well as their synthetic formalization in Rocq. Finally, we&#8217;ll conclude on what was achieved and the remaining future work.<\/p>\n<\/details>\n<\/div>\n<\/div>\n<\/div><\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\">2025<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>13\/01 <br>(Double Seminar) <br>&#8211; Alec Sadler: &#8220;Automatic Specialization of Polyhedral Programs on Sparse Structures&#8221; <br>&#8211; Quentin Vermande: &#8220;D\u00e9composition Alg\u00e9brique Cylindrique en Coq\/Rocq&#8221;<\/li>\n\n\n\n<li>03\/02 <br>(Seminar) Alessandro Bruni <br>&#8220;Taming Differentiable Logics with Coq Formalisation&#8221;<\/li>\n\n\n\n<li>17\/03<br>(Tutorial) Cyril Cohen &amp; Enrico Tassi<br>&#8220;A Rocq-Elpi Tutorial&#8221;<\/li>\n\n\n\n<li>24\/03<br>(Seminar) Th\u00e9a Hervier<br>&#8220;Denotational semantics for asynchronous effects&#8221;<\/li>\n\n\n\n<li>08\/04<br>(Seminar) Benjamin Bonneau<br>&#8220;Domaines monadiques pour les s\u00e9mantiques d\u00e9notationnelles&#8221;<\/li>\n\n\n\n<li>20\/05<br>(Seminar) Jacques Garrigue<br>&#8220;Typed Compositional Quantum Computation with Lenses&#8221;<\/li>\n\n\n\n<li>26\/05<br>(Seminar) Litao Zhou<br>&#8220;A study of the optimization space of tensor operations&#8221;<\/li>\n\n\n\n<li>27\/05 <br>(Seminar) Guillaume Iooss<br>&#8220;A study of the optimization space for tensor operations&#8221;<\/li>\n\n\n\n<li>17\/06<br>(GdL) Arthur Pons<br>&#8220;A Case for Feminism in Programming Language Design&#8221;<\/li>\n\n\n\n<li>30\/06<br>(joint CASH-Plume Seminar) Josselin Poiret<br>&#8220;Sort and elimination polymorphism for proof assistants&#8221;<\/li>\n\n\n\n<li>15\/07<br>(Double Seminar)<br>&#8211; Lucie Lahaye: &#8220;Trocq: a deeper study of the lattice of relations&#8221;<br>&#8211; Th\u00e9a Hervier: &#8220;MTrees: Mixing monadic effects and Labelled Transition Systems in Rocq&#8221;<\/li>\n\n\n\n<li>26\/09<br>(Seminar) Th\u00e9o Stoskopf<br>&#8220;LLM4Docq: Bootstrapping Documentation for MathComp with LLMs and Expert Feedback&#8221;<\/li>\n\n\n\n<li>10\/10<br>(Seminar) S\u00e9bastien Michelland<br>&#8220;Compilation beyond semantics for hardware security&#8221;<\/li>\n\n\n\n<li>17\/10<br>(Seminar) Meven Lennon-Bertrand<br>&#8220;Adapters: a type-theoretic foundation for type-casting&#8221;<\/li>\n\n\n\n<li>31\/10<br>(Seminar) Emmanuel Arrighi<br>&#8220;Datatypes \u00e0 la carte (revisited in OCaml)&#8221;<\/li>\n\n\n\n<li>07\/11<br>(Seminar) Oussama Oulkaid<br>&#8220;Formal Models of Integrated Circuits for Transistor Level Electrical Verification (PhD defense rehearsal)&#8221;<\/li>\n\n\n\n<li>05\/12<br>10:00 CET (Seminar) Nicolas Chappe<br>&#8220;A Family of Sims with Diverging Interests&#8221;<\/li>\n<\/ul>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\">2024<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>30\/01<br>(Seminar) Basile Pesin<br>&#8220;On the V\u00e9lus compiler&#8221;<\/li>\n\n\n\n<li>05\/02<br>(GdL) Christophe Alias<br>&#8220;Employing Polyhedral Methods to Optimize Stencils on FPGAs with Stencil-specific Caches, Data Reuse, and Wide Data Bursts.&#8221; + Retour HiPEAC&#8217;24<\/li>\n\n\n\n<li>12\/02 <br>(Double GdL)<br>Alec Sadler: &#8220;A Polyhedral Compilation Library with Explicit Disequality Constraint&#8221;<br>Hugo Thievenaz: &#8220;Easy Counting and Ranking for Simple Loops&#8221;<\/li>\n\n\n\n<li>19\/02<br>(Seminar) S\u00e9bastien Michelland<br>&#8220;A compiler- and language-based approach to fighting fault injection attacks&#8221;<\/li>\n\n\n\n<li>26\/02<br>(Seminar) Yann Hamdaoui<br>&#8220;The Uncanny Valley of Programmable Configuration Languages&#8221;<\/li>\n\n\n\n<li>11\/03<br>(Seminar) Emmanuel Arrighi<br>&#8220;Dowsing for types&#8221;<\/li>\n\n\n\n<li>18\/03<br>(Seminar) Tha\u00efs Baudon<br>&#8220;Rebuilding Algebraic Data Types from Mangled Memory Layouts&#8221;<\/li>\n\n\n\n<li>25\/03<br>(Seminar) L\u00e9on Frenot<br>&#8220;Reducing the Overhead of Exact Profiling by Reusing Affine Variables&#8221;<\/li>\n\n\n\n<li>08\/04<br>(Reading Group) Wenke Du<br>&#8220;Retrofitting Parallelism onto OCaml&#8221;<\/li>\n\n\n\n<li>13\/05<br>(Seminar) Emma Nardino<br>&#8220;A model for call\/CC and delimited continuations in Guarded Interaction Trees&#8221;<\/li>\n\n\n\n<li>03\/06<br>(Seminar) Yannick Zakowski<br>&#8220;A Two-Phase Infinite\/Finite Low-Level Memory Model&#8221;<\/li>\n\n\n\n<li>24\/06<br>(Seminar) Nicolas Chappe<br>&#8220;Executable semantics based on Choice Trees for a concurrent subset of LLVM IR&#8221;<\/li>\n\n\n\n<li>08\/07<br>(Seminar) Thomas Koehler<br>&#8220;Towards Safe Interactive Optimization Across Layers&#8221;<\/li>\n\n\n\n<li>15\/07<br>(Seminar) Noah Loutchmia<br>&#8220;Using a parametricity translation to build functors&#8221;<\/li>\n\n\n\n<li>29\/07<br>(Seminar) Wenke DU<br>&#8220;A Distributed Actor Library for OCaml 5&#8221;<\/li>\n\n\n\n<li>11\/09<br>(Seminar) Jacques Garrigue<br>&#8220;Mechanized monadic equational reasoning for ML references&#8221;<\/li>\n\n\n\n<li>23\/09<br>(Seminar) Quentin Vermande<br>&#8220;La D\u00e9composition Alg\u00e9brique Cylindrique formalis\u00e9e&#8221;<\/li>\n\n\n\n<li>21\/10<br>(Seminar) Basile Cl\u00e9ment<br>&#8220;Snapshottable stores&#8221;<\/li>\n\n\n\n<li>29\/11<br>(S\u00e9minaire) Cyril Cohen<br>&#8220;Trocq: Proof Transfer for Free, With or Without Univalence&#8221;<\/li>\n\n\n\n<li>09\/12<br>(R\u00e9p\u00e9tition de soutenance) Hugo Thievenaz<br>&#8220;Scalable Trace-based Compile-Time Memory Allocation&#8221;<\/li>\n<\/ul>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\">2023<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>01\/02<br>(Seminar) Bruno Ferres<br>&#8220;Using Model Checking for Electrical Rule Checking of Integrated Circuits at Transistor Level&#8221;<\/li>\n\n\n\n<li>01\/03<br>(R\u00e9p\u00e9tition de soutenance) Julien Emmanuel<br>&#8220;Un simulateur pour le calcul haute performance : mod\u00e9lisation multi-niveau de l&#8217;interconnect BXI pour pr\u00e9dire les performances d&#8217;applications MPI&#8221;<\/li>\n\n\n\n<li>19\/04<br>(Seminar) Fr\u00e9d\u00e9ric Bour<br>&#8220;LRGrep: engineering error messages for LR parsers&#8221;<\/li>\n\n\n\n<li>03\/05<br>(Seminar) Yannick Zakowski (after S\u00e9bastien Michelland&#8217;s work)<br>&#8220;Verified Monadic Abstract Interpretation&#8221;<\/li>\n\n\n\n<li>10\/05<br>(Seminar) Matthieu Lemerre<br>&#8220;SSA translation is an abstract interpretation&#8221;<\/li>\n\n\n\n<li>21\/06<br>(S\u00e9minaire) Guillaume Salagnac<br>&#8220;Forth, un langage pour la frugalit\u00e9 ?&#8221;<\/li>\n\n\n\n<li>12\/07<br>(S\u00e9minaire) S\u00e9bastien Michelland<br>&#8220;Basic Block Jails: A Combined Software\/Hardware Countermeasure Against Fetch Skip Attacks&#8221;<\/li>\n\n\n\n<li>30\/08<br>(S\u00e9minaire) Amaury Maille<br>&#8220;ZHL: A DSL and runtime for typesafe dynamic program extension&#8221;<\/li>\n\n\n\n<li>26\/10<br>(S\u00e9minaire) Pierre Chambart<br>&#8220;Flambda 2 Types: An abstract domain for static analysis of functional programs&#8221;<\/li>\n\n\n\n<li>15\/11<br>(Double seminar)<br>Ludovic Henrio: &#8220;Refinements for Open Automata&#8221;<br>Nicolas Chappe: &#8220;FicWebBoard: une plateforme d\u2019apprentissage de la programmation pour des \u00e9tudiants de niveaux h\u00e9t\u00e9rog\u00e8nes&#8221;<\/li>\n\n\n\n<li>21\/11<br>(Seminar) Cl\u00e9ment Blaudeau<br>&#8220;A Conceptual Framework for Safe Object Initialization&#8221;<\/li>\n<\/ul>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\">2022<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>10\/01<br>(Cash Seminar)<br>&#8220;Architectures mat\u00e9rielles et logicielles pour l&#8217;acc\u00e9l\u00e9ration du deep learning sur multiprocesseur \u00e9volutif embarqu\u00e9&#8221;<\/li>\n\n\n\n<li>17\/01<br>(GdL) Ludovic Henrio<br>&#8220;OpenMP et DSParLib&#8221;<\/li>\n\n\n\n<li>31\/01<br>(Seminar) S\u00e9bastien Michelland<br>&#8220;Verified Abstract Monadic Interpreter&#8221;<\/li>\n\n\n\n<li>07\/02<br>(Reading Group) Laure Gonnord<br>&#8220;Undecidability of Context-Sensitive Data-Dependence Analysis&#8221;<\/li>\n\n\n\n<li>07\/03<br>(Seminar) Charles Paperman<br>&#8220;Vectorization for automata-ish computation&#8221;<\/li>\n\n\n\n<li>14\/03<br>(Seminar) Bruno Ferres<br>&#8220;Utilisation de langages de construction mat\u00e9rielle pour une exploration flexible d&#8217;espace de conception sur FPGA&#8221; (PhD defense rehearsal)<\/li>\n\n\n\n<li>21\/03<br>(Seminar) Nicolas Chappe<br>&#8220;An Optimised Flow for Futures: From Theory to Practice&#8221;<\/li>\n\n\n\n<li>28\/03<br>(Reading Group) Yannick Zakowski<br>&#8220;An Introduction to Programming with Algebraic Effects&#8221;<\/li>\n\n\n\n<li>04\/04<br>(Seminar)<br>Tha\u00efs Baudon: &#8220;Knit&amp;Frog: Pattern matching compilation for custom memory representations&#8221;<br>Hugo Thievenaz: &#8220;A dynamic method for array contraction&#8221;<\/li>\n\n\n\n<li>25\/04<br>(Seminar) Bruno Ferres<br>&#8220;Electrical Rule Checks at Transistor Level&#8221;<\/li>\n\n\n\n<li>16\/05<br>(Presentation de la MMI)<br>&#8220;De la m\u00e9diation informatique&#8221;<\/li>\n\n\n\n<li>23\/05<br>(Seminar) Christophe Alias<br>&#8220;Affine Multibanking for High-Level Synthesis&#8221;<\/li>\n\n\n\n<li>04\/07<br>(Seminar) Pauline Garelli<br>&#8220;Type indexing in OCaml for function search in a large ecosystem&#8221;<\/li>\n\n\n\n<li>11\/07<br>(Seminar) Oussama Oulkaid<br>&#8220;Applying Formal Verification Techniques to Circuit Electric Verification&#8221;<\/li>\n\n\n\n<li>05\/09<br>(Seminar) Yannick Zakowski<br>&#8220;Choice Trees \u2014 Representing Nondeterministic, Recursive, and Impure Programs in Coq&#8221;<\/li>\n\n\n\n<li>12\/09<br>(Seminar) Tha\u00efs Baudon<br>&#8220;Analysing Parallel Complexity of Term Rewriting&#8221;<\/li>\n\n\n\n<li>17\/10<br>(Seminar) Ludovic Henrio and Gabriel Radanne<br>&#8220;Safe concurrent abstractions for multicore OCaml&#8221;<\/li>\n\n\n\n<li>24\/10<br>(Seminar) Basile Cl\u00e9ment<br>&#8220;Fast and correct &#8211; Validation of a Tensor Compiler&#8221;<\/li>\n<\/ul>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\">2021<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>13 Janvier<br>(GdL) Laure Gonnord :<br>\u00abContr\u00f4le s\u00fbr de cha\u00eenes d\u2019obfuscation logicielle\u00bb (th\u00e8se de Nicolas Szlifierski)<\/li>\n\n\n\n<li>20 Janvier<br>(GdL) Matthieu Moy :<br>&#8220;Methodology for Code-Optimization of Memory Data-Layouts for High-Performance-System Architectures with Complex Memory Hierarchies&#8221; (th\u00e8se de Riyane Sid Lakhdar)<\/li>\n\n\n\n<li>27 Janvier<br>(SEM) Gabriel Radanne :<br>\u00abUne introduction aux GADT\u00bb<\/li>\n\n\n\n<li>03 F\u00e9vrier<br>(GdL) Laure Gonnord :<br>&#8220;A Modern Compiler for the French Tax Code&#8221; (Merigoux et al., CC&#8217;21)<br>(GdL) Paul Ianetta :<br>&#8220;Origami Programming&#8221; (based on Gibbons&#8217; &#8220;The fun of programming&#8221;)<\/li>\n\n\n\n<li>10 F\u00e9vrier<br>(SEM) Yannick Zakowski :<br>\u00abUne br\u00e8ve introduction \u00e0 l&#8217;assistant de preuve Coq\u00bb <a href=\"https:\/\/perso.ens-lyon.fr\/yannick.zakowski\/talks\/CashWG\/02_10_21\/intro_coq.html\" data-type=\"URL\" data-id=\"https:\/\/perso.ens-lyon.fr\/yannick.zakowski\/talks\/CashWG\/02_10_21\/intro_coq.html\">(Ressource)<\/a><\/li>\n\n\n\n<li>17 F\u00e9vrier<br>(SEM) Christophe Alias :<br>&#8220;Data-aware process networks&#8221; (CC&#8217;21)<\/li>\n\n\n\n<li>24 F\u00e9vrier<br>(SEM) Every CASH member :<br>\u00abMon th\u00e8me de recherche en 3 minutes\u00bb<\/li>\n\n\n\n<li>03 Mars<br>(GdL) Amaury Maill\u00e9 :<br>&#8220;Biblioth\u00e8ques dynamiques et linking&#8221;<br>(GdL) Yannick Zakowski :<br>&#8220;egg: Fast and extensible equality saturation&#8221; (POPL&#8217;21)<\/li>\n\n\n\n<li>10 Mars<br>(GdL) Amaury Maill\u00e9 :<br>&#8220;Valueness and References in C++ Part I: A Look at The Past&#8221;<\/li>\n\n\n\n<li>17 Mars<br>(SEM) Gabriel Radanne :<br>\u00abModules\u00bb<\/li>\n\n\n\n<li>24 Mars<br>(GdL) Gabriel Radanne :<br>&#8220;Retrieving library functions by unifying types modulo linear isomorphism&#8221; (Rittri, RAIRO&#8217;93)<br>(GdL) Ludovic Henrio :<br>&#8220;Combining SLiVER with CADP to Analyze Multi-agent Systems&#8221; (Stephano et al., COORDINATION&#8217;20)<\/li>\n<\/ul>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\">2020<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>14 Octobre<br>(GdL) Ludovic Henrio : <br>These de Pierre Leca &#8220;Combining active object and BSP programs&#8221;&nbsp;&nbsp;&nbsp;<\/li>\n\n\n\n<li>21 Octobre<br>(SEM) Christophe Alias :<br>\u00abLa compilation poly\u00e9drique en 30 minutes\u00bb<\/li>\n\n\n\n<li>28 Octobre<br>(MISC) Ludovic Henrio + Laure Gonnord :<br>Pr\u00e9sentations du GtD CLAP au sein du GdR GPL<br>(SEM) Yannick Zakowski :<br>&#8220;A quick tour of the Vellvm project, a verified LLVM IR in Coq&#8221; <a href=\"https:\/\/github.com\/vellvm\/vellvm\">(Site du projet)<\/a><\/li>\n\n\n\n<li>04 Novembre<br>(SEM) Laure Gonnord :<br>\u00abL&#8217;interpr\u00e9tation abstraite en 30 minutes\u00bb<\/li>\n\n\n\n<li>18 Novembre<br>(SEM) Christophe Alias :<br>&#8220;On the verification of polyhedral program transformations&#8221; (CADO&#8217;20)<\/li>\n\n\n\n<li>25 Novembre<br>(SEM) Julien Braine :<br>&#8220;Data abstractions for fun&#8221;<\/li>\n\n\n\n<li>02 D\u00e9cembre<br>(SEM) Julien Emmanuel :<br>&#8220;Simulation of the Portal 4 protocol&#8221;<br>(SEM) Amaury Maill\u00e9 :<br>&#8220;PromisePlus : Flexile synchronization for parallel computations on arrays&#8221;<\/li>\n\n\n\n<li>09 D\u00e9cembre<br>(GdL) Yannick Zakowski :<br>&#8220;Verified Code Generation for the Polyhedral Model&#8221; (Courant and Leroy, POPL&#8217;21)&nbsp;<\/li>\n\n\n\n<li>16 D\u00e9cembre<br>(SEM) Gabriel Radanne :<br>\u00abUne introduction aux types lin\u00e9aires\u00bb<\/li>\n<\/ul>\n<\/div><\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Date: Monday 10:30am Lyon Time (unless explicitly stated otherwise)Location: Salle de conseil (unless explicitly stated otherwise)Virtual: https:\/\/rendez-vous.renater.fr\/CASH_Seminar_977b7f-224e4d-ca9a8e Upcoming 2026 05\/10 &#8211; 10:30 CET Victor Deng On the computational complexity of JavaScript regex matching Past 2026 16\/02 &#8211; 14:00 CET (Seminar) Alain Ketterlin (Inria CAMUS team, Strasbourg) Affine Loop Nests and Integer Polynomials 23\/02 &#8211; 10:30 &hellip; <a href=\"https:\/\/www.ens-lyon.fr\/LIP\/CASH\/?page_id=473\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Seminar and reading group&#8221;<\/span><\/a><\/p>\n","protected":false},"author":7,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-473","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.ens-lyon.fr\/LIP\/CASH\/index.php?rest_route=\/wp\/v2\/pages\/473","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ens-lyon.fr\/LIP\/CASH\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.ens-lyon.fr\/LIP\/CASH\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.ens-lyon.fr\/LIP\/CASH\/index.php?rest_route=\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ens-lyon.fr\/LIP\/CASH\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=473"}],"version-history":[{"count":86,"href":"https:\/\/www.ens-lyon.fr\/LIP\/CASH\/index.php?rest_route=\/wp\/v2\/pages\/473\/revisions"}],"predecessor-version":[{"id":855,"href":"https:\/\/www.ens-lyon.fr\/LIP\/CASH\/index.php?rest_route=\/wp\/v2\/pages\/473\/revisions\/855"}],"wp:attachment":[{"href":"https:\/\/www.ens-lyon.fr\/LIP\/CASH\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=473"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}