Reseña: Light-weight containers for Isabelle: efficient, extensible, nestable

Se ha publicado un artículo de verificación formal en Isabelle/HOL titulado Light-weight containers for Isabelle: efficient, extensible, nestable.

Su autor es Andreas Lochbihler (del ETH Zürich).

El trabajo se presentará en julio en el ITP 2013 (4th Conference on
Interactive Theorem Proving
).

Su resumen es

In Isabelle/HOL, we develop an approach to efficiently implement container types such as sets and maps in generated code. Thanks to type classes and refinement during code generation, our light-weight framework is flexible, extensible, and easy to use. To support arbitrary nesting of containers, we devise an efficient linear order on sets that can even compare complements and non-complements. Our evaluation shows that it is both efficient and usable.

Los códigos de las correspondientes teorías en Isabelle/HOL se encuentran aquí.

Reseña: A macro for reusing abstract functions and theorems

Se ha publicado un artículo sobre automatización del razonamiento en ACL2 titulado A macro for reusing abstract functions and theorems.

Sus autores son Sebastiaan J.C. Joosten, Bernard van Gastel y Julien Schmaltz (Open University of the Netherlands).

El trabajo se presentará en el ACL2 Workshop 2013 (Eleventh International Workshop on the ACL2 Theorem Prover and Its Applications).

Su resumen es

Even though the ACL2 logic is first order, the ACL2 system offers several mechanisms providing users with some operations akin to higher order logic ones. In this paper, we propose a macro, named instance-of-defspec, to ease the reuse of abstract functions and facts proven about them. Defspec is an ACL2 book allowing users to define constrained functions and their associated properties. It contains macros facilitating the definition of such abstract specifications and instances thereof. Currently, lemmas and theorems derived from these abstract functions are not automatically instantiated. This is exactly the purpose of our new macro. instance-of-defspec will not only instantiate functions and theorems within a specification but also many more functions and theorems built on top of the specification. As a working example, we describe various fold functions over monoids, which we gradually built from arbitrary functions.

La macro instance-of-defspec es análoga a la presentada por F.J. Martín Mateos en el artículo A generic instantiation tool and a case study: a generic multiset theory, presentado en el ACL2 Workshop 2002, y cuyo resumen es

In some cases, when we develop a formal theory in ACL2, it would be desirable that the definitions and theorems of the theory be as independent of a concrete implementation as possible. This is particularly interesting when we design theories about basic data types, making those developments more general, reusable and extensible. At the same time, it would also be desirable to be able to instantiate (in a convenient way) the definitions and theorems of the theory, for a concrete implementation. In this paper we present the development of a particular generic theory, and a tool to instantiate its events. As a case study we have chosen to describe a generic theory about finite multisets. It is also shown how this generic theory can be instantiated (using several macros we have defined) to build a theory about two different implementations of multisets. Finally we propose some directions for further research in this topic.

Reseña: Graph theory

Se ha publicado un nuevo artículo de razonamiento formalizado en Isabelle/HOL titulado Graph theory.

Su autor es Lars Noschinski (de la Univrsidad Técnica de Munich).

Su resumen es

This development provides a formalization of directed graphs, supporting (labelled) multi-edges and infinite graphs. A polymorphic edge type allows edges to be treated as pairs of vertices, if multi-edges are not required. Formalized properties are i.a. walks (and related concepts), connectedness and subgraphs and basic properties of isomorphisms.

This formalization is used to prove characterizations of Euler Trails, Shortest Paths and Kuratowski subgraphs.

Definitions and nomenclature are based on Digraphs: Theory, algorithms and applications (by J. Bang-Jensen and G. Gutin).

El código de las correspondientes teorías en Isabelle/HOL se encuentra aquí.

Reseña: A machine-checked proof of the odd order theorem

Una de las líneas de trabajo en la automatización del razonamiento es la verificación de demostraciones de grandes teoremas. En esta línea se inscribe el proyecto de la formalización en Coq del teorema clasificación de grupos finitos. Un resultado clave para dicha demostración es el teorema de Feit y Thompson, también conocido como el teorema del orden impar. Recientemente se ha conseguido la formalización del teorema en Coq como se comenta en el artículo A machine-checked proof of the odd order theorem.

Sus autores son Georges Gonthier, Andrea Asperti, Jeremy Avigad, Yves Bertot, Cyril Cohen, François Garillot, Stéphane Le Roux, Assia Mahboubi, Russell O’Connor, Sidi Ould Biha, Ioana Pasca, Laurence Rideau, Alexey Solovyev, Enrico Tassi y Laurent Théry.

Su resumen es

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.

Las conclusiones del trabajo son

The success of the present formalization relies on a heavy use of the inductive types provided by Coq and on various flavors of reflection techniques. A crucial ingredient was the transfer of the methodology of “generic programming” to formal proofs, using the type inference mechanisms of the Coq system.

Our development includes more than 150,000 lines of proof scripts, including roughly 4,000 definitions and 13,000 theorems. The roughly 250 pages of mathematics in our two main sources translate to about 40,000 lines of formal proof, which amounts to 4-5 lines of SSReflect code per line of informal text. During the formalization, we had to correct or rephrase a few arguments in the texts we were following, but the most time-consuming part of the project involved getting the base and intermediate libraries right. This required systematic consolidation phases performed after the production of new material. The corpus of mathematical theories preliminary to the actual proof of the Odd Order theorem represents the main reusable part of this work, and contributes to almost 80 percent of the total length. Of course, the success of such a large formalization, involving several people at different locations, required a very strict discipline, with uniform naming conventions, synchronization of parallel developments, refactoring, and benchmarking for synchronization with Coq.

As we have tried to make clear in this paper, when it comes to formalizing this amount of mathematics, there is no silver bullet. But the combined success of the many techniques we have developed shows that we are now ready for theorem proving in the large. The outcome is not only a proof of the Odd Order Theorem, but also, more importantly, a substantial library of mathematical components, and a tried and tested methodology that will support future formalization efforts.

Una vesión minimal de la demostración en Coq del teorema del orden impar se encuentra aquí. La formalización completa se encuentra aquí.

Reseña: A constructive theory of regular languages in Coq

Se ha publicado un artículo de razonamiento formalizado en Coq titulado A constructive theory of regular languages in Coq.

Sus autores son Christian Doczkal, Jan-Oliver Kaiser y Gert Smolka (de la Univ. de Sarre (en alemán: Saarland), Alemania).

Su resumen es

We present a formal constructive theory of regular languages consisting of about 1400 lines of Coq/Ssreflect. As representations we consider regular expressions, deterministic and nondeterministic automata, and Myhill and Nerode partitions. We construct computable functions translating between these representations and show that equivalence of representations is decidable. We also establish the usual closure properties, give a minimization algorithm for DFAs, and prove that minimal DFAs are unique up to state renaming. Our development profits much from Ssreflect’s support for finite types and graphs.

El código de las correspondientes teorías en Coq se encuentra aquí.