Enrico Tassi Homepage

Date: 2009-11-27

Personal Information

Foto I was born in Modena, June 10 1980. I defended my Ph.D. at the university of Bologna in 2008, where I worked mainly on the design and implementation of the Matita interactive theorem prover. I'm currently a post-doc working for the Mathematical Components project in Orsay, Paris.

Here my detailed curriculm vitae.


Contacs:

Papers

A new type for tactics with Andrea Asperti, Wilmer Ricciotti and Claudio Sacerdoti Coen. To appear in the proceedings of ACM SIGSAM PLMMS 2009, ISBN 978-1-60558-735-6. Published as technical report UBLCS-2009-14. Download Slides
See abstract
The type of tactics in all (procedural) proof assistants is (a variant of) the one introduced in LCF. We discuss why this is inconvenient and we propose a new type for tactics that 1) allows the implementation of more clever tactics; 2) improves the implementation of declarative languages on top of procedural ones; 3) allows for better proof structuring; 4) improves proof automation; 5) allows tactics to rearrange and delay the goals to be proved (e.g. in case of side conditions or PVS subtyping judgements).

Hints in Unification with Andrea Asperti, Wilmer Ricciotti and Claudio Sacerdoti Coen. Published in the proceedings of TPHOLs 2009, LNCS, Volume 5674/2009, Pages 84-98, DOI 10.1007/978-3-642-03359-9, ISBN 978-3-642-03358-2 Download Slides
See abstract
Several mechanisms such as Canonical Structures, Type Classes, or Pullbacks have been recently introduced with the aim to improve the power and flexibility of the type inference algorithm for interactive theorem provers. We claim that all these mechanisms are particular instances of a simpler and more general technique, just consisting in providing suitable hints to the unification procedure underlying type inference. This allows a simple, modular and not intrusive implementation of all the above mentioned techniques, opening at the same time innovative and unexpected perspectives on its possible applications.

Natural deduction environment for Matita with Claudio Sacerdoti Coen. Published in the proceedings of MKM2009, Volume 5625, Pages 486-491, ISBN 978-3-642-02613-3, DOI 10.1007/978-3-642-02614-0_40 Download Slides
See abstract
Matita is a proof assistant characterised by a rich, user extensible, output facility based on a widget for the rendering of MathML Presentation, and by the automatic handling of overloading by means of a flexible disambiguation mechanism. We show how to use these features to obtain a simple learning environment for natural deduction, without modifying the source code or Matita.

A compact kernel for the calculus of inductive constructions with Andrea Asperti, Wilmer Ricciotti and Claudio Sacerdoti Coen. Published in the Journal Sadhana, Volume 34, Pages 71-144, Year 2009. ISSN: 0256-2499 Download Slides
See abstract
The paper describes the new kernel for the Calculus of Inductive Constructions (CIC) implemented inside the Matita Interactive Theorem Prover. The design of the new kernel has been completely revisited since the first release, resulting in a remarkably compact implementation of about 2300 lines of OCaml code. The work is meant for people interested in implementation aspects of Interactive Provers, and is not self contained. In particular, it requires good acquaintance with Type Theory and functional programming languages.

A constructive and formal proof of Lebesgue’s Dominated Convergence Theorem in the interactive theorem prover Matita with Claudio Sacerdoti Coen. Published by the Journal of Formalized Reasoning , Issue 1, Volume 1, Pages 51-89, Year 2008. ISSN: 1972-5787. Download
See abstract
We present a formalisation of a constructive proof of Lebesgue’s Dominated Convergence Theorem given by the Sacerdoti Coen and Zoli in [CSCZ]. The proof is done in the abstract setting of ordered uniformities, also introduced by the two authors as a simplification of Weber’s lattice uniformities given in [Web91, Web93]. The proof is fully constructive, in the sense that it is done in Bishop’s style and, under certain assumptions, it is also fully predicative. The formalisation is done in the Calculus of (Co)Inductive Constructions using the interactive theorem prover Matita [ASTZ07]. It exploits some peculiar features of Matita and an advanced technique to represent algebraic hierarchies previously introduced by the authors in [ST07]. Moreover, we introduce a new technique to cope with duality to halve the formalisation effort.

An interactive driver for goal directed proof strategies with Andrea Asperti. Published in the Proceedings of UITP 2008: 8th International Workshop On User Interfaces for Theorem Provers, 22 August 2008, Montréal, Québec, Canada. ENTCS, Volume 226, 3 January 2009, Pages 89-105, ISSN 1571-0661, DOI 10.1016/j.entcs.2008.12.099
Download Slides
See abstract
Interactive Theorem Provers (ITPs) are tools meant to assist the user during the formal development of mathematics. Automatic proof searching procedures are a desirable aid, and most ITPs supply the user with an extensive set of facilities to improve automation. However, the black-box nature of most automatic procedure conflicts with the interactive nature of these tools: a newcomer running an automatic procedure learns nothing by its execution (especially in case of failure), and a trained user has no opportunities to interactively guide the procedure towards the solution, e.g. pruning wrong or not promising branches of the search tree. In this paper we discuss the implementation of the resolution based automatic procedure of the Matita ITP, explicitly conceived to be interactively driven by the user through a suitable, simple graphical interface.

Working with Mathematical Structures in Type Theory with Sacerdoti Coen. Published in the Proceedings of TYPES 2007: Conference of the Types Project, 2-5 May 2007 Cividale del Friuli (Udine), Italy. LNCS, ISSN 0302-9743 (Print) 1611-3349 (Online), DOI 10.1007/978-3-540-68103-8, ISBN 978-3-540-68084-0, Pages 157-172, Volume 4941, Year 2008. Download Slides
See abstract
We address the problem of representing mathematical structures in a proof assistant which: 1) is based on a type theory with dependent types, telescopes and a computational version of Leibniz equality; 2) implements coercive subtyping, accepting multiple coherent paths between type families; 3) implements a restricted form of higher order unification and type reconstruction. We show how to exploit the previous quite common features to reduce the syntactic gap between pen and paper and formalised algebra. However, to reach our goal we need to propose unification and type reconstruction heuristics that are slightly different from the ones usually implemented.

A modular formalisation of finite group theory with Georges Gonthier, Assia Mahboubi , Laurence Rideau and Laurent Thery.
Published in the Proceedings of TPHOL 2007: The 20th International Conference on Theorem Proving in Higher Order Logics. LNCS, Volume 4732, ISBN: 978-3-540-74590-7, DOI: 10.1007/978-3-540-74591-4, Pages: 86-101, 2007.
Download
See abstract
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, a special care has been taken to articulate it in the most compositional way.

Higher order proof reconstruction from paramodulation-based refutations: the unit equality case with Andrea Asperti. Published in the Proceedings of MKM 2007: The 6th International Conference on Mathematical Knowledge Management. LNAI, Volume 4573, ISBN: 978-3-540-73083-5, 2007. Download Slides
See abstract
In this paper we address the problem of reconstructing a higher order, checkable proof object starting from a proof trace left by a first order automatic proof searching procedure, in a restricted equational framework. The automatic procedure is based on superposition rules for the unit equality case. Proof transformation techniques aimed to improve the readability of the final proof are discussed.

Crafting a Proof Assistant with Andrea Asperti, Claudio Sacerdoti Coen, Stefano Zacchiroli. Published in the Proceedings of Types 2006: Conference of the Types Project. Nottingham, UK -- April 18-21, 2006. LNCS Volume 4502, Springer Berlin / Heidelberg, ISBN 978-3-540-74463-4, pp. 18-32, 2007. Download Slides
See abstract
Proof assistants are complex applications whose development has never been properly systematized or documented. This work is a contribution in this direction, based on our experience with the development of Matita: a new interactive theorem prover based---as Coq---on the Calculus of Inductive Constructions (CIC). In particular, we analyze its architecture focusing on the dependencies of its components, how they implement the main functionalities, and their degree of reusability. The work is a first attempt to provide a ground for a more direct comparison between different systems and to highlight the common functionalities, not only in view of reusability but also to encourage a more systematic comparison of different softwares and architectural solutions.

User Interaction with the Matita Proof Assistant with Andrea Asperti, Claudio Sacerdoti Coen, Stefano Zacchiroli. Published in the Journal of Automated Reasoning, Special Issue on User Interfaces for Theorem Proving, Springer Netherlands, ISSN 0168-7433, Volume 39, Issue 2, August 2007, Pages: 109-139. Download
See abstract
Matita is a new, document-centric, tactic-based interactive theorem prover under development at the University of Bologna. This paper focuses on some of the distinctive features of the user interaction with Matita, mostly characterized by the organization of the library as a searchable knowledge base, the emphasis on a high-quality (MathML-based) notational rendering, and the complex interplay between syntax, presentation, and semantics (e.g. for disambiguation of formulae input by the user, and direct manipulation of terms).

Tinycals: Step by Step Tacticals with Claudio Sacerdoti Coen, Stefano Zacchiroli. In Proceedings of UITP 2006: User Interfaces for Theorem Provers. Seattle, WA -- August 21, 2006. ENTCS, Volume 174, Issue 2 (May 2007), Pages 125 - 142, ISSN:1571-0661 Download Slides
See abstract
Most of the state-of-the-art proof assistants are based on procedural proof languages, scripts, and rely on LCF tacticals as the primary tool for tactics composition. In this paper we discuss how these ingredients do not interact well with user interfaces based on the same interaction paradigm of Proof General (the de facto standard in this field), identifying in the coarse-grainedness of tactical evaluation the key problem. We propose Tinycals as an alternative to a subset of LCF tacticals, showing that the user does not experience the same problem if tacticals are evaluated in a more fine-grained manner. We present the formal operational semantics of tinycals as well as their implementation in the Matita proof assistant.

Modified Realizability and Inductive Types with Andrea Asperti, June 2006. Technical report UBLCS-2006-18. Download
See abstract
In 1959, Kreisel introduced a notion of modified realizability that, among other things, provides an alternative technique to Godel functional (dialectica) interpretation for establishing the connection between Peano Arithmetic and System T. In this paper we give a modern presentation of modified realizability, and generalize it to arbitrary inductive types in a first order setting and their extension with strong elimination rules.

A content based mathematical search engine: Whelp with Andrea Asperti, Ferruccio Guidi, Claudio Sacerdoti Coen, and Stefano Zacchiroli.
Published In Proceedings of TYPES 2004 conference: Types for Proofs and Programs. Paris, France -- December 15-18, 2004. LNCS 3839, Springer Berlin / Heidelberg, ISBN 3-540-31428-8, pp. 17-32, 2006.
Download
See abstract
The prototype of a content based search engine for mathematical knowledge supporting a small set of queries requiring matching and/or typing operations is described. The prototype --- called Whelp --- exploits a metadata approach for indexing the information that looks far more flexible than traditional indexing techniques for structured expressions like substitution, discrimination, or context trees. The prototype has been instantiated to the standard library of the Coq proof assistant extended with many user contributions.

User Level Networking-Personal IP: assigning each user his/her own IP addresses in multiuser operating systems with Alessandro Pira and Renzo Davoli. Published in the proceedings of ICN04, IEEE International Conference on Networking, February 29 - March 4 2004, Guadeloupe, French Caribbean. Download
See abstract
When a user logs into a machine using User Level Networking-Personal IP he/she can be assigned a personal IP address, a set of personal IP addresses, or no address at all. In a multiuser multitasking operating system where several users are operating at the same time, each user has his/her own personalized access to the network. In this way the system and network administrator can assign access rights, traffic shaping and routing on a user-by-user basis. In cases of user abuses on the network there is direct mapping between the IP address and his/her user id; it is sufficient to read a single log file.

Dissertations

Interactive Theorem Provers: issues faced as a user and tackled as a developer Technical report UBLCS-2008-03 Download
See abstract
Interactive theorem provers (ITP for short) are tools whose final aim is to certify proofs written by human beings. To reach that objective they have to fill the gap between the high level language used by humans for communicating and reasoning about mathematics and the lower level language that a machine is able to understand and process. The user perceives this gap in terms of missing features or inefficiencies. The developer tries to accommodate the user requests without increasing the already high complexity of these applications. We believe that satisfactory solutions can only come from a strong synergy between users and developers. We devoted most part of our PHD designing and developing the Matita interactive theorem prover. The software was born in the computer science department of the University of Bologna as the result of composing together all the technologies developed by the HELM team (to which we belong) for the MoWGLI project. The MoWGLI project aimed at giving accessibility through the web to the libraries of formalised mathematics of various interactive theorem provers, taking Coq as the main test case. The motivations for giving life to a new ITP are:
  • study the architecture of these tools, with the aim of understanding the source of their complexity.
  • exploit such a knowledge to experiment new solutions that, for backward compatibility reasons, would be hard (if not impossible) to test on a widely used system like Coq.
Matita is based on the Curry-Howard isomorphism, adopting the Calculus of Inductive Constructions (CIC) as its logical foundation. Proof objects are thus, at some extent, compatible with the ones produced with the Coq ITP, that is itself able to import and process the ones generated using Matita. Although the systems have a lot in common, they share no code at all, and even most of the algorithmic solutions are different. The thesis is composed of two parts where we respectively describe our experience as a user and a developer of interactive provers. In particular, the first part is based on two different formalisation experiences:
  • our internship in the Mathematical Components team (INRIA), that is formalising the finite group theory required to attack the Feit Thompson Theorem. To tackle this result, giving an effective classification of finite groups of odd order, the team adopts the SSR Coq extension, developed by Georges Gonthier for the proof of the four colours theorem.
  • our collaboration at the D.A.M.A. Project, whose goal is the formalisation of abstract measure theory in Matita leading to a constructive proof of Lebesgue's Dominated Convergence Theorem.
The most notable issues we faced, analysed in this part of the thesis, are the following: the difficulties arising when using black box automation in large formalisations; the impossibility for a user (especially a newcomer) to master the context of a library of already formalised results; the uncomfortable big step execution of proof commands historically adopted in ITPs; the difficult encoding of mathematical structures with a notion of inheritance in a type theory without subtyping like CIC. In the second part of the manuscript many of these issues will be analysed with the looking glasses of an ITP developer, describing the solutions we adopted in the implementation of Matita to solve these problems: integrated searching facilities to assist the user in handling large libraries of formalised results; a small step execution semantic for proof commands; a flexible implementation of coercive subtyping allowing multiple inheritance with shared substructures; automatic tactics, integrated with the searching facilities, that generates proof commands (and not only proof objects, usually kept hidden to the user) one of which specifically designed to be user driven.

Teaching

Interests

My research interests are type theory and in particular proof assistants. I'm a Free Software supporter and a Debian developer. I like writing software, listening to angry girls singing, playing soccer in 5, eating good food, drinking strong beer and red whine.

Here is a nice shot featuring the #osd class having dinner with Richard Stallman.

Undergraduate

My undergraduate page is still there.

Debian

Since January 2006 I'm a Debian developer. You can have a look at the full list of packages I maintain. I like to think of Debian as the best O.S. for developers (and not only for users), so I'm involved in pushing the awesome Lua language into Debian, with special effort in making developers life easier.

This is my public GPG key 0x0123F2F2.

Software

Some software I worked on follows, most recent first.

This site

This site has been written using markdown, plus an hack to extend CSS with Lua statements.