Reseña: Formalizing Turing machines

Se ha publicado un trabajo de razonamiento formalizado con Matita sobre máquinas de Turing titulado Formalizing Turing machines.

Sus autores son Andrea Asperti y Wilmer Ricciotti (de la Universidad de Bolonia, Italia).

Su resumen es

We discuss the formalization, in the Matita Theorem Prover, of a few, basic results on Turing Machines, up to the existence of a (certified) Universal Machine. The work is meant to be a preliminary step towards the creation of a formal repository in Complexity Theory, and is a small piece in our Reverse Complexity program, aiming to a comfortable, machine independent axiomatization of the field.

El trabajo se presentó en el WoLLIC 2012 (19th Workshop on Logic, Language, Information and Computation). La transparencias de la presentación se encuentran aquí.

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.

RA2012: Verificación de propiedades de la sustitución en Isabelle/HOL

En la clase de hoy del curso de Razonamiento automático se ha resuelto de manera colaborativa ejercicios sobre la demostración de propiedades de la función de sustitución con Isabelle/HOL. Su objetivo es ilustrar el uso del razonamiento por inducción y por casos en Isabelle. Para ca propiedad se presentan distintas demostraciones desde las automáticas a las detalladas.

La teoría con los ejemplos presentados en la clase es la siguiente:
Read More “RA2012: Verificación de propiedades de la sustitución en Isabelle/HOL”

I1M2012: División y factorización de polinomios mediante la regla de Ruffini en Haskell (2)

En la clase de hoy de Informática de 1º del Grado en Matemáticas se han explicado las soluciones de los ejercicios de la relación 25. El objetivo de la relación es implementar la regla de Ruffini y sus aplicaciones utilizando las implementaciones del TAD de polinomio estudiadas en el tema 21.

En los ejercicios se usan las siguientes librerías:

  • PolRepTDA: Implementación de los polinomios mediante tipos de datos algebraicos.
  • PolRepDispersa: Implementación de los polinomios mediante listas dispersas.
  • PolRepDensa: Implementación de los polinomios mediante listas densas.
  • PolOperaciones: Operaciones con el TAD de los polinomios.

Los ejercicios, y sus soluciones, se muestran a continuación.
Read More “I1M2012: División y factorización de polinomios mediante la regla de Ruffini en Haskell (2)”