Reseña: Automatic data refinement

Se ha publicado un artículo de automatización del razonamiento en Isabelle/HOL titulado Automatic data refinement.

Su autor es Peter Lammich (de la Universidad Técnica de Munich).

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

Su resumen es

We present the Autoref tool for Isabelle/HOL, which automatically refines algorithms specified over abstract concepts like maps and sets to algorithms over concrete implementations like red-black-trees, and produces a refinement theorem. It is based on ideas borrowed from relational parametricity due to Reynolds and Wadler.

The tool allows for rapid prototyping of verified, executable algorithms. Moreover, it can be configured to fine-tune the result to the user’s needs. Our tool is able to automatically instantiate generic algorithms, which greatly simplifies the implementation of executable data structures.

Thanks to its integration with the Isabelle Refinement Framework and the Isabelle Collection Framework, Autoref can be used as a backend to a stepwise refinement based development approach, having access to a rich library of verified data structures. We have evaluated the tool by synthesizing efficiently executable refinements for some complex algorithms, as well as by implementing a library of generic algorithms for maps and sets.

La implementación de Autoref, junto con algunos casos de estudio, se encuentra aquí.

I1M2012: Razonamiento sobre programas Haskell

En la clase de hoy de Informática de 1º del Grado en Matemáticas se ha estudiado cómo demostrar propiedades de funciones definidas en Haskell. Los esquemas de demostración estudiados son:

  • por simplificación,
  • por casos,
  • por inducción sobre los números naturales,
  • por inducción sobre listas,
  • por inducción anidada y
  • por generalización e inducción.

Las transparencias usadas en la clase son las del tema 8:
Read More “I1M2012: Razonamiento sobre programas Haskell”

LMF2013: Introducción a la programación lógica con Prolog

En la clase de hoy del curso Lógica matemática y fundamentos se ha realizado una introducción a la programación lógica con Prolog como aplicación de la resolución en la lógica de primer orden.

Se ha presentado el sistema deductivo de Prolog en tres fases: proposicional, relacional y funcional. En cada una se ha comentado cómo representar el conocimiento, cómo realizar consultas y cómo es el razonamiento de Prolog para calcular las respuestas.

Los apuntes de esta clase son Introducción a la programación lógica con Prolog (páginas 1-26).

Las transparencias de esta clase son las páginas 1 a 18 del tema 13
Read More “LMF2013: Introducción a la programación lógica con Prolog”

Reseña: The rooster and the butterflies (a machine-checked proof of the Jordan-Hölder theorem for finite groups)

Se ha publicado un artículo de razonamiento formalizado en Coq sobre la demostración del teorema de Jordan-Hölder para grupos finitos titulado The rooster and the butterflies.

Su autora es Assia Mahboubi (de Microsoft Research – Inria Joint Centre).

El trabajo se presentará en julio en el CICM 2013 (Conferences on Intelligent Computer Mathematics).

Su resumen es

This paper describes a machine-checked proof of the Jordan-Hölder theorem for finite groups. This purpose of this description is to discuss the representation of the elementary concepts of finite group theory inside type theory. The design choices underlying these representations were crucial to the successful formalization of a complete proof of the Odd Order Theorem with the Coq system.

Reseña: Mechanical verification of SAT refutations with extended resolution

Se ha publicado un artículo de verificación formal en ACL2 titulado Mechanical verification of SAT refutations with extended resolution.

Sus autores son Nathan Wetzler, Marijn J. H. Heule y Warren A. Hunt Jr.

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

Su resumen es

We present a mechanically-verified proof checker developed with the ACL2 theorem-proving system that is general enough to support the growing variety of increasingly complex satisfiability (SAT) solver techniques, including those based on extended resolution. A common approach to assure the correctness of SAT solvers is to emit a proof of unsatisfiability when no solution is reported to exist. Contemporary proof checkers only check logical equivalence using resolution-style inference. However, some state-of-the-art, conflict-driven, clause-learning SAT solvers use preprocessing, inprocessing, and learning techniques, that cannot be checked solely by resolution-style inference. We have developed a mechanically-verified proof checker that assures refutation clauses preserve satisfiability. We believe our approach is sufficiently expressive to validate all known SAT-solver techniques.