Papers by Georges Gonthier

Lecture Notes in Computer Science, 2002
In these notes, we give an overview of the join calculus, its semantics, and its equational theor... more In these notes, we give an overview of the join calculus, its semantics, and its equational theory. The join calculus is a language that models distributed and mobile programming. It is characterized by an explicit notion of locality, a strict adherence to local synchronization, and a direct embedding of the ML programming language. The join calculus is used as the basis for several distributed languages and implementations, such as JoCaml and functional nets. Local synchronization means that messages always travel to a set destination, and can interact only after they reach that destination; this is required for an efficient implementation. Specifically, the join calculus uses ML's function bindings and pattern-matching on messages to program these synchronizations in a declarative manner. Formally, the language owes much to concurrency theory, which provides a strong basis for stating and proving the properties of asynchronous programs. Because of several remarkable identities, the theory of process equivalences admits simplifications when applied to the join calculus. We prove several of these identities, and argue that equivalences for the join calculus can be rationally organized into a five-tiered hierarchy, with some trade-off between expressiveness and proof techniques. We describe the mobility extensions of the core calculus, which allow the programming of agent creation and migration. We briefly present how the calculus has been extended to model distributed failures on the one hand, and cryptographic protocols on the other.
The reflexive CHAM and the join-calculus
Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '96, 1996
Abstract By adding reflexion to the chemical machine of Berry and Boudol, we obtain a formal mode... more Abstract By adding reflexion to the chemical machine of Berry and Boudol, we obtain a formal model of concurrency that is consistent with mobility and distribution. Our model provides the foundations of a programming language with functional and object-oriented ...
Coq
Lecture Notes in Computer Science, 2006
ACM SIGPLAN Notices, 2011
Most interactive theorem provers provide support for some form of user-customizable proof automat... more Most interactive theorem provers provide support for some form of user-customizable proof automation. In a number of popular systems, such as Coq and Isabelle, this automation is achieved primarily through tactics, which are programmed in a separate language from that of the prover's base logic. While tactics are clearly useful in practice, they can be difficult to maintain and compose because, unlike lemmas, their behavior cannot be specified within the expressive type system of the prover itself.
Proceedings of the 1999 IEEE Symposium on Security and Privacy (Cat. No.99CB36344), 1999
Communications processing is an important part of distributed language systems with facilities su... more Communications processing is an important part of distributed language systems with facilities such as RPC (remote procedure call) and RMI (remote method invocation). For security, messages may require cryptographic operations in addition to ordinary marshaling. We investigate a method for wrapping communications processing around an entity with secure local communication, such as a single machine or a protected network. The wrapping extends security properties of local communication to distributed communication. We formulate and analyze the method within a process calculus.

Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '94, 1994
We describe and prove the correctness of a new concurrent mark-and-sweep garbage collection algor... more We describe and prove the correctness of a new concurrent mark-and-sweep garbage collection algorithm. This algorithm derives from the classical on-the-y algorithm from Dijkstra et al. 9]. A distinguishing feature of our algorithm is that it supports multiprocessor environments where the registers of running processes are not readily accessible, without imposing any overhead on the elementary operations of loading a register or reading or initializing a eld. Furthermore our collector never blocks running mutator processes except possibly on requests for free memory; in particular, updating a eld or creating or marking or sweeping a heap object does not involve system-dependent synchronization primitives such as locks. We also provide support for process creation and deletion, and for managing an extensible heap of variable-sized objects.
Lecture Notes in Computer Science, 2009
This paper proposes generic design patterns to define and combine algebraic structures, using dep... more This paper proposes generic design patterns to define and combine algebraic structures, using dependent records, coercions and type inference, inside the Coq system. This alternative to telescopes in particular allows multiple inheritance, maximal sharing of notations and theories, and automated structure inference. Our methodology is robust enough to support a hierarchy comprising a broad variety of algebraic structures, from types with a choice operator to algebraically closed fields. Interfaces for the structures enjoy the handiness of a classical setting, without requiring any axiom. Finally, we show how externally extensible some of these instances are by discussing a lemma seminal in defining the discrete logarithm, and a matrix decomposition problem.
The reexive chemical abstract machine and the joincalculus
ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, 1996
Canonical Big Operators
Lecture Notes in Computer Science, 2008
In this paper, we present an approach to describe uniformly iterated “big” operations, like å&... more In this paper, we present an approach to describe uniformly iterated “big” operations, like å</font >i=0n f(i)\sum_{i=0}^n f(i) or max i ∈ I f(i) and to provide lemmas that encapsulate all the commonly used reasoning steps on these constructs. We show that these iterated operations can be handled generically using the syntactic notation and canonical structure facilities provided by the Coq system.
Lecture Notes in Computer Science, 2013
This paper reports on a six-year collaborative effort that culminated in a complete formalization... more This paper reports on a six-year collaborative effort that culminated in a complete formalization of a proof of the Feit-Thompson Odd Order Theorem in the Coq proof assistant. The formalized proof is constructive, and relies on nothing but the axioms and rules of the foundational framework implemented by Coq. To support the formalization, we developed a comprehensive set of reusable libraries of formalized mathematics, including results in finite group theory, linear algebra, Galois theory, and the theories of the real and complex algebraic numbers.
Lecture Notes in Computer Science, 1996
We introduce a calculus for mobile agents and give its chemical semantics, with a precise de niti... more We introduce a calculus for mobile agents and give its chemical semantics, with a precise de nition for migration, failure, and failure detection. Various examples written in our calculus illustrate how to express remote executions, dynamic loading of remote resources and protocols with mobile agents. We give the encoding of our distributed calculus into the join-calculus.
The Journal of Logic and Algebraic Programming, 2005
We generate a natural hierarchy of equivalences for asynchronous name-passing process calculi fro... more We generate a natural hierarchy of equivalences for asynchronous name-passing process calculi from simple variations on Milner and Sangiorgi's definition of weak barbed bisimulation. The π-calculus, used here, and the join calculus are examples of such calculi.
Electronic Notes in Theoretical Computer Science, 1998
A Small Scale Reflection Extension for the Coq system
... in the Coq1 ring, or romega): they are generated on-the-fly by some heuristic algorithm and d... more ... in the Coq1 ring, or romega): they are generated on-the-fly by some heuristic algorithm and directlyfed to some ... Many of the basic tactics, such as intros, induction and inversion, implement fragile context manipulation heuristics which hinder ... presentation: generator and relation ...
We characterize a set of propositional logic formulae which can be proved unsatisfiable using Stå... more We characterize a set of propositional logic formulae which can be proved unsatisfiable using Stålmarck's 1-saturation procedure. As a consequence of this result we know that a 1-saturation based validity checker can prove the transitivity of a variety of implementations of ≤ over finite Boolean sequences.
Lecture Notes in Computer Science, 2007
In this paper, we present a formalisation of elementary group theory done in Coq. This work is th... more In this paper, we present a formalisation of elementary group theory done in Coq. This work is the first milestone of a long-term effort to formalise Feit-Thompson theorem. As our further developments will heavily rely on this initial base, we took special care to articulate it in the most compositional way.
Uploads
Papers by Georges Gonthier