Théo Winterhalter's photo

My name is Théo Winterhalter and I am a permanent researcher (CR) in Deducteam at Inria Saclay and LMF. Previously I was a postdoctoral researcher at Max Planck Institute for Security and Privacy (MPI-SP) in Bochum (Germany), working with Cătălin Hrițcu. My main interest lies in type theory and its applications to proof assistants. As such, most of my results are formalised in a proof assistant, generally Coq. I strive to make proof assistants better and safer. You can contact me at theo.winterhalter@inria.fr or on Mastodon.

News

  • Clément Pit-Claudel and I are organising the Coq Workshop 2024. Please consider submitting.

Publications and talks

Peer-reviewed publications and drafts

Draft The Rewster: Type Preserving Rewrite Rules for the Coq Proof Assistant

with Yann Leray, Gaëtan Gilbert and Nicolas Tabareau

Draft Correct and Complete Type Checking and Certified Erasure for Coq, in Coq

with Matthieu Sozeau, Yannick Forster, Meven Lennon-Bertrand, Jakob Botsch Nielsen, and Nicolas Tabareau

From Rewrite Rules to Axioms in the λΠ-Calculus Modulo Theory

with Valentin Blot, Gilles Dowek, and Thomas Traversié

FoSSaCS (2024)

Securing Verified IO Programs Against Unverified Code in F*

with Cezar-Constantin Andrici, Stefan Ciobaca, Cătălin Hrițcu, Guido Martínez, Exequiel Rivas, and Éric Tanter

POPL (2024)

The Last Yard: Foundational End-to-End Verification of High-Speed Cryptography

with Philipp G. Haselwarter, Benjamin Salling Hvass, Lasse Letager Hansen, Cătălin Hrițcu, and Bas Spitters

CPP (2024)

SSProve: A Foundational Framework for Modular Cryptographic Proofs in Coq

with Philipp G. Haselwarter, Exequiel Rivas, Antoine Van Muylder, Carmine Abate, Nikolaj Sidorenco, Cătălin Hrițcu, Kenji Maillard, and Bas Spitters

TOPLAS (2023) — Extended version of the CSF paper

🎖Distinguished SSProve: A Foundational Framework for Modular Cryptographic Proofs in Coq

with Carmine Abate, Philipp G. Haselwarter, Exequiel Rivas, Antoine Van Muylder, Cătălin Hrițcu, Kenji Maillard and Bas Spitters

CSF (2021)

Coq Coq Correct! Verification of Type Checking and Erasure for Coq, in Coq

with Matthieu Sozeau, Simon Boulier, Yannick Forster and Nicolas Tabareau

POPL (2020)

The MetaCoq Project

with Matthieu Sozeau, Abhishek Anand, Simon Boulier, Cyril Cohen, Yannick Forster, Fabian Kunze, Gregory Malecha, and Nicolas Tabareau

JAR (2020)

Eliminating Reflection from Type Theory

with Matthieu Sozeau and Nicolas Tabareau

CPP (2019)

Normalization by evaluation for sized dependent types

with Andreas Abel and Andrea Vezzosi

ICFP (2017)

Randomized Mixed-Radix Scalar Multiplication

with Eleonora Guerrini and Laurent Imbert

IEEE Transactions on Computers (2017)

International seminars (mostly peer-reviewed)

Dependent Ghosts Have a Reflection for Free

Théo Winterhalter

EuroProofNet WG6 2024

The Rewster: The Coq Proof Assistant with Rewrite Rules

Gaëtan Gilbert, Yann Leray, Nicolas Tabareau, Théo Winterhalter

TYPES 2023

Invited talk A conservative and constructive translation from extensional type theory to weak type theory

Théo Winterhalter

Strength of Weak Type Theory, Amsterdam 2023

Securely Compiling F* Programs With IO and Then Linking Them Against Weakly-Typed Interfaces

Cezar-Constantin Andrici, Cătălin Hrițcu and Théo Winterhalter

PriSC 2023

Verifying non-terminating programs with IO in F*

Cezar-Constantin Andrici, Théo Winterhalter, Cătălin Hrițcu and Exequiel Rivas

HOPE 2022

Partial Dijkstra Monads for All

Théo Winterhalter, Cezar-Constantin Andrici, Cătălin Hrițcu, Kenji Maillard, Guido Martínez and Exequiel Rivas

TYPES 2022

Invited talk MetaCoq: Sound and complete type checking for Coq, in Coq

Théo Winterhalter and the MetaCoq team

SSTT Stockholm 2022

SSProve: A Foundational Framework for Modular Cryptographic Proofs in Coq

Carmine Abate, Philipp G. Haselwarter, Exequiel Rivas, Antoine Van Muylder Théo Winterhalter, Cătălin Hrițcu, Kenji Maillard and Bas Spitters

Coq workshop 2021

SSProve: A Foundational Framework for Modular Cryptographic Proofs in Coq

Carmine Abate, Philipp G. Haselwarter, Exequiel Rivas, Antoine Van Muylder, Théo Winterhalter, Cătălin Hrițcu, Kenji Maillard and Bas Spitters

TYPES 2021

Modular Confluence for Rewrite Rules in MetaCoq

Jesper Cockx, Nicolas Tabareau and Théo Winterhalter

TYPES 2020 (Cancelled)

Weak Type Theory is Rather Strong

Théo Winterhalter and Simon Boulier

TYPES 2019

How to Tame your Rewrite Rules

Jesper Cockx, Nicolas Tabareau and Théo Winterhalter

TYPES 2019

Using reflection to eliminate reflection

Théo Winterhalter, Matthieu Sozeau and Nicolas Tabareau

EUTypes Aarhus

Using reflection to eliminate reflection

Théo Winterhalter, Matthieu Sozeau and Nicolas Tabareau

TYPES 2018

A modular formalization of type theory in Coq

Andrej Bauer, Philipp G. Haselwarter and Théo Winterhalter

TYPES 2017

Normalization by Evaluation for Sized Dependent Types

Andreas Abel, Andrea Vezzosi and Théo Winterhalter

TYPES 2017

The rules of type theory

Théo Winterhalter, Andrej Bauer, Philipp Haselwarter

Workshop on Syntax and Semantics of Type Theory, Ljubljana (2017)

An Extension of Martin-Löf Type Theory with Sized Types

Théo Winterhalter and Andreas Abel

TYPES 2016

Teaching

In the school year 2023/2024 I am in charge of one course of the MPRI which I teach together with Yannick Forster.

Supervision

Interns

Ewen Broudin--Caradec

Ghost dependent types

Masters internship (4.5 months, 2024)

Yann Leray

Rewrite rules in Coq and MetaCoq

Predoctoral internship (8 months, 2022/2023)

Now: PhD student with Nicolas Tabareau and Matthieu Sozeau

My Ph.D thesis

Formalisation and meta-theory of type theory

I was a PhD student of Nicolas Tabareau and Matthieu Sozeau within the Inria team Gallinette at LS2N in Nantes (France). In this thesis, I talk about the meta-theory of type theory and about how to formalise it in a proof assistant. I have worked on several topics during my PhD. I first worked on the relation between extensional type theory and intensional type theory. This work is then extended to weak type theory. Another big part of my thesis is about verifying a type-checker for Coq, in Coq itself. Finally, although it is not part of my manuscript, I have also worked on safely extending the theory of Coq or Agda with user-defined rewrite rules.

Reflection rule

Extensional type theory (ETT) is distinguished from regular intensional type theory (ITT) in that it features the reflection of equality rule. This rule states that any provable equality can be considered as conversion. This rule is really practical when formalising mathematics or programming with dependent types. Its presence however makes type-checking undecidable. Martin Hofmann showed categorically that ETT is conservative over ITT (meaning that any statement in ITT that is a theorem in ETT is also a theorem in ITT). Ten years later, Nicolas Oury furthered this result by proposing a translation from ETT to ITT. We complete this work by providing an effective translation (in the sense of a Coq program) with minimal axiom use.

Eliminating Reflection from Type Theory

with Matthieu Sozeau and Nicolas Tabareau

CPP (2019)

Simon Boulier and I noticed that the translation above did not make any use of conversion in the target, ITT. As such we proposed an extension of the conservativity result to conservativity of ETT over weak type theory (WTT). WTT does not feature any notion of conversion whatsoever. Instead all computation rules are treated propositionally, as special equality proofs. In particular, this shows that ITT is also conservative over WTT.

Weak type theory logo

Computation is very practical in dependent type theories to automatically simplify expressions during type-checking. Type theories do not always feature everything the user wants and as such it is common for them to postulate extra principles in the form of axioms. Those axioms however do not feature any computational behaviour. To avoid having to rely on the reflection rule, a middle ground can be to also postulate computational behaviours for those axioms in the form of rewrite rules. We propose an extension of MetaCoq with rewrite rules, as well as a criterion that ensures we preserve confluence and subject reduction.

Triangle and diamond property picture

Experience and education

Education

I was a computer science student at ENS Cachan and graduated from the MPRI (Parisian Master in Computer Science). During that time I did five internships: 2 months with Laurent Imbert and Eleonora Guerrini, 5 with Andreas Abel, 5 with Nicolas Tabareau, 6 with Andrej Bauer, and 4 with Matthieu Sozeau.