Jacques Garrigue

dblp:78/5289 · DBLP profile ↗
← Back
25ranked-venue papers
9as first author
6since 2021 · last 2026
0000-0001-8056-5519ORCID · verified

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

Software engineering, systems software and programming languages · 12 · 4 first-author · 3 since 2021Theory of computation · 12 · 4 first-author · 2 since 2021Artificial intelligence and machine learning · 3 · 1 first-author · 1 since 2021Security and privacy · 2Computer networks · 1 · 1 since 2021
YearPublicationVenuePosition
2026 Typed Compositional Quantum Computation with Lenses
abstract
Abstract We propose a type-theoretic framework for describing and proving properties of quantum computations, in particular those presented as quantum circuits. Our proposal is based on an observation that, in the polymorphic type system of Rocq , currying on quantum states allows one to apply quantum gates directly inside a complex circuit. By introducing a discrete notion of lens to control this currying, we are further able to separate the combinatorics of the circuit structure from the computational content of gates. We apply our development to define quantum circuits recursively from the bottom up, and prove their correctness compositionally.
Jacques Garrigue, Takafumi Saikawa
J. Autom. Reason.1
2025 An Approach to Formalize Information-Theoretic Security of Multiparty Computation Protocols
Cheng-Hui Weng, Reynald Affeldt, Jacques Garrigue, Takafumi Saikawa
FORTE3
2025 A practical formalization of monadic equational reasoning in dependent-type theory
abstract
Abstract One can perform equational reasoning about computational effects with a purely functional programming language thanks to monads. Even though equational reasoning for effectful programs is desirable, it is not yet mainstream. This is partly because it is difficult to maintain pencil-and-paper proofs of large examples. We propose a formalization of a hierarchy of effects using monads in the Coq proof assistant that makes monadic equational reasoning practical. Our main idea is to formalize the hierarchy of effects and algebraic laws as interfaces like it is done when formalizing hierarchy of algebras in dependent-type theory. Thanks to this approach, we clearly separate equational laws from models. We can then take advantage of the sophisticated rewriting capabilities of Coq and build libraries of lemmas to achieve concise proofs of programs. We can also use the resulting framework to leverage on Coq’s mathematical theories and formalize models of monads. In this article, we explain how we formalize a rich hierarchy of effects (nondeterminism, state, probability, etc.), how we mechanize examples of monadic equational reasoning from the literature, and how we apply our framework to the design of equational laws for a subset of ML with references.
Reynald Affeldt, Jacques Garrigue, Takafumi Saikawa
J. Funct. Program.2
2024 Typed Compositional Quantum Computation with Lenses
Jacques Garrigue, Takafumi Saikawa
ITP1
2023 An intuitionistic set-theoretical model of fully dependent CC
abstract
Abstract Werner’s set-theoretical model is one of the simplest models of CIC. It combines a functional view of predicative universes with a collapsed view of the impredicative sort “ ${\tt Prop}$ ”. However, this model of ${\tt Prop}$ is so coarse that the principle of excluded middle $P \lor \neg P$ holds. Following our previous work, we interpret ${\tt Prop}$ into a topological space (a special case of Heyting algebra) to make the model more intuitionistic without sacrificing simplicity. We improve on that work by providing a full interpretation of dependent product types, using Alexandroff spaces. We also extend our approach to inductive types by adding support for ${\mathsf{list}}$ s.
Masahiro Sato, Jacques Garrigue
Math. Struct. Comput. Sci.2
2021 A trustful monad for axiomatic reasoning with probability and nondeterminism
abstract
The algebraic properties of the combination of probabilistic choice and nondeterministic choice have long been a research topic in program semantics. This paper explains a formalization in the Coq proof assistant of a monad equipped with both choices: the geometrically convex monad. This formalization has an immediate application: it provides a model for a monad that implements a non-trivial interface which allows for proofs by equational reasoning using probabilistic and nondeterministic effects. We explain the technical choices we made to go from the literature to a complete Coq formalization, from which we identify reusable theories about mathematical structures such as convex spaces and concrete categories, and that we integrate in a framework for monadic equational reasoning.
Reynald Affeldt, Jacques Garrigue, David Nowak, Takafumi Saikawa
J. Funct. Program.2
2020 Formal Adventures in Convex and Conical Spaces
Reynald Affeldt, Jacques Garrigue, Takafumi Saikawa
CICM2
2020 A Library for Formalization of Linear Error-Correcting Codes
Reynald Affeldt, Jacques Garrigue, Takafumi Saikawa
J. Autom. Reason.2
2019 Proving Tree Algorithms for Succinct Data Structures
abstract
Succinct data structures give space-efficient representations of large amounts of data without sacrificing performance. They rely on cleverly designed data representations and algorithms. We present here the formalization in Coq/SSReflect of two different tree-based succinct representations and their accompanying algorithms. One is the Level-Order Unary Degree Sequence, which encodes the structure of a tree in breadth-first order as a sequence of bits, where access operations can be defined in terms of Rank and Select, which work in constant time for static bit sequences. The other represents dynamic bit sequences as binary balanced trees, where Rank and Select present a low logarithmic overhead compared to their static versions, and with efficient insertion and deletion. The two can be stacked to provide a dynamic representation of dictionaries for instance. While both representations are well-known, we believe this to be their first formalization and a needed step towards provably-safe implementations of big data.
Reynald Affeldt, Jacques Garrigue, Xuanrui Qi, Kazunari Tanaka
ITP2
2018 Examples of Formal Proofs about Data Compression
abstract
Because of the increasing complexity of mathematical proofs, there is a growing interest in formalization using proof-assistants. In this paper, we explain new formal proofs of standard lemmas in data compression (Jensen's and Kraft's inequalities) as well as concrete applications (to the analysis of compression methods and Shannon-Fano codes). We explain in particular how one turns the paper proof into formal terms and the relation between the informal proof and the formal one. These formalizations come as an extension to an existing formal library for information theory and error-correcting codes.
Reynald Affeldt, Jacques Garrigue, Takafumi Saikawa
ISITA2
2016 Formal Verification of the rank Algorithm for Succinct Data Structures
Akira Tanaka, Reynald Affeldt, Jacques Garrigue
ICFEM3
2016 Formalization of Reed-Solomon codes and progress report on formalization of LDPC codes
Reynald Affeldt, Jacques Garrigue, Takafumi Saikawa
ISITA2
2015 Formalization of Error-Correcting Codes: From Hamming to Modern Coding Theory
Reynald Affeldt, Jacques Garrigue
ITP2
2015 A certified implementation of ML with structural polymorphism and recursive types
abstract
The type system of Objective Caml has many unique features, which make ensuring the correctness of its implementation difficult. One of these features is structurally polymorphic types, such as polymorphic object and variant types, which have the extra specificity of allowing recursion. We implemented in Coq a certified interpreter for Core ML extended with structural polymorphism and recursion. Along with type soundness of evaluation, soundness and principality of type inference, and correctness of a stack-based interpreter, are also proved.†
Jacques Garrigue
Math. Struct. Comput. Sci.1
2013 Ambivalent Types for Principal Type Inference with GADTs
Jacques Garrigue, Didier Rémy
APLAS1
2011 A syntactic type system for recursive modules
abstract
A practical type system for ML-style recursive modules should address at least two technical challenges. First, it needs to solve the double vision problem, which refers to an inconsistency between external and internal views of recursive modules. Second, it needs to overcome the tension between practical decidability and expressivity which arises from the potential presence of cyclic type definitions caused by recursion between modules. Although type systems in previous proposals solve the double vision problem and are also decidable, they fail to typecheck common patterns of recursive modules, such as functor fixpoints, that are essential to the expressivity of the module system and the modular development of recursive modules. This paper proposes a novel type system for recursive modules that solves the double vision problem and typechecks common patterns of recursive modules including functor fixpoints. First, we design a type system with a type equivalence based on weak bisimilarity, which does not lend itself to practical implementation in general, but accommodates a broad range of cyclic type definitions. Then, we identify a practically implementable fragment using a type equivalence based on type normalization, which is expressive enough to typecheck typical uses of recursive modules. Our approach is purely syntactic and the definition of the type system is ready for use in an actual implementation.
Hyeonseung Im, Keiko Nakata 0001, Jacques Garrigue
OOPSLA3
2010 A Certified Implementation of ML with Structural Polymorphism
Jacques Garrigue
APLAS1
2006 Private Row Types: Abstracting the Unnamed
Jacques Garrigue
APLAS1
2006 Recursive modules for programming
abstract
TheML module system is useful for building large-scale programs. The programmer can factor programs into nested and parameterized modules, and can control abstraction with signatures. Yet ML prohibits recursion between modules. As a result of this constraint, the programmer may have to consolidate conceptually separate components into a single module, intruding on modular programming. Introducing recursive modules is a natural way out of this predicament. Existing proposals, however, vary in expressiveness and verbosity. In this paper, we propose a type system for recursive modules, which can infer their signatures. Opaque signatures can also be given explicitly, to provide type abstraction either inside or outside the recursion. The type system is decidable, and is sound for a call-by-value semantics. We also present a solution to the expression problem, in support of our design choices.
Keiko Nakata 0001, Jacques Garrigue
ICFP2
1999 Semi-Explicit First-Class Polymorphism for ML
Jacques Garrigue, Didier Rémy
Inf. Comput.1
1998 On the Runtime Complexity of Type-Directed Unboxing
abstract
Avoiding boxing when representing native objects is essential for the efficient compilation of any programming language For polymorphic languages this task is difficult, but several schemes have been proposed that remove boxing on the basis of type information. Leroy's type-directed unboxing transformation is one of them. One of its nicest properties is that it relies only on visible types, which makes it compatible with separate compilation. However it has been noticed that it is not safe both in terms of time and space complexity ---i.e. transforming a program may raise its complexity. We propose a refinement of this transformation, still relying only on visible types, and prove that it satisfies the safety condition for time complexity. The proof is an extension of the usual logical relation method, in which correctness and safety are proved simultaneously.
Yasuhiko Minamide, Jacques Garrigue
ICFP2
1995 The Transformation Calculus
Jacques Garrigue
FSTTCS1
1995 Label-Selective lambda-Calculus Syntax and Confluence
Hassan Aït-Kaci, Jacques Garrigue
Theor. Comput. Sci.2
1994 The Typed Polymorphic Label-Selective lambda-Calculus
abstract
Formal calculi of record structures have recently been a focus of active research. However, scarcely anyone has studied formally the dual notion—i.e., argument-passing to functions by keywords, and its harmonization with currying. We have. Recently, we introduced the label-selective λ-calculus, a conservative extension of λ-calculus that uses a labeling of abstractions and applications to perform unordered currying. In other words, it enables some form of commutation between arguments. This improves program legibility, thanks to the presence of labels, and efficiency, thanks to argument commuting. In this paper, we propose a simply typed version of the calculus, then extend it to one with ML-like polymorphic types. For the latter calculus, we establish the existence of principal types and we give an algorithm to compute them. Thanks to the fact that label-selective λ-calculus is a conservative extension of λ-calculus by adding numeric labels to stand for argument positions, its polymorphic typing provides us with a keyword argument-passing extension of ML obviating the need of records. In this context, conventional ML syntax can be seen as a restriction of the more general keyword-oriented syntax limited to using only implicit positions instead of keywords.
Jacques Garrigue, Hassan Aït-Kaci
POPL1
1993 Label-Selective lambda-Calculus Syntax and Confluence
Hassan Aït-Kaci, Jacques Garrigue
FSTTCS2