Reseña: Formalization of Shannon’s theorems in SSReflect-Coq

Se ha publicado un nuevo artículo de razonamiento formalizado en Coq, titulado Formalization of Shannon’s theorems in SSReflect-Coq.

Sus autores son Reynald Affeldt y Manabu Hagiwara (del National Institute of Advanced Industrial Science and Technology en Tsukuba, Japón).

El trabajo se presentó ayer en el ITP 2012 (Interactive Theorem Proving).

El resumen del trabajo es

The most fundamental results of information theory are Shannon’s theorems. These theorems express the bounds for reliable data compression and transmission over a noisy channel. Their proofs are non-trivial but rarely detailed, even in the introductory literature. This lack of formal foundations makes it all the more unfortunate that crucial results in computer security rely solely on information theory (the so-called “unconditional security”). In this paper, we report on the formalization of a library for information theory in the SSReflect extension of the Coq proof-assistant. In particular, we produce the first formal proofs of the source coding theorem (that introduces the entropy as the bound for lossless compression), and the direct part of the more difficult channel coding theorem (that introduces the capacity as the bound for reliable communication over a noisy channel).

El código de la formalización se encuentra aquí.

Reseña: A certified JavaScript interpreter

Se ha publicado un nuevo trabajo de formalización en Coq titulado A certified JavaScript interpreter.

El autor del trabajo es Martin Bodin (del INRIA de Rennes) en colaboración con Alan Schmitt y Thomas Jensen.

El trabajo es parte del proyecto JSCert cuyo objetivo es la construcción de modelos de JavaScript en Coq y el desarrollo de herramientas de análisis automático basadas en dichos modelos.

El resumen del trabajo es

Although it was initially designed for running small scripts in web pages, JavaScript has become the programming language of the web. It is designed to be very dynamic, for instance by allowing the evaluation of strings as code or by letting programmers to explicitly specify the scope in which a program runs. These aspects allow for great flexibility, but significantly hinder the understanding of the semantics of programs, such as the development of certified analyses.

In practice, it is frequent to insert external code in a web page (such as an advertisement or an interactive map) and make it interact with some scripts carrying some potentially secret information. It would be useful to be able to prove the safety of a web page despite the presence of unknown (thus untrusted) code.

In this internship, we present a formalisation in Coq of JavaScript’s semantics. Our main result is a JavaScript interpreter proven correct with respect to the Coq’s semantics. This work is the first step in the building of certified analysers.

Reseña: Algorithms in games evolving in time: Winning strategies based on testing

Se ha publicado un nuevo artículo de razonamiento formalizado en Isabelle/HOL sobre la teoría de juegos, titulado Algorithms in games evolving in time: Winning strategies based on testing. Sus autores son Evgeny Dantsin, Jan-Georg Smaus y Sergei Soloviev y se presentará el 12 de agosto en el Isabelle Users Workshop 2012.

Su resumen es

We model two-player imperfect-information games evolving in time, where one player makes and tests “hypotheses” about the opponent’s strategies. We consider algorithms needed for the first player to compute a winning strategy. The main assumptions about the scenario are the following: (1) the hypotheses form a “covering”, i.e., each strategy of the second player satisfies at least one hypothesis; (2) the hypotheses can be enumerated and tested; (3) for each hypothesis, the first player has a strategy that “defeats” all of the opponent’s strategies satisfying this hypothesis.

We have modelled a significant part of the theory presented here in Isabelle/HOL.

Reseña: Formalizing adequacy: A case study for higher-order abstract syntax

Se ha publicado un nuevo trabajo de razonamiento formalizado en Isabelle: Formalizing adequacy: A case study for higher-order abstract syntax.

Sus autores son James Cheney, Michael Norrish y René Vestergaard.

Su resumen es

Adequacy is an important criterion for judging whether a formalization is suitable for reasoning about the actual object of study. The issue is particularly subtle in the expansive case of approaches to languages with name-binding. In prior work, adequacy has been formalized only with respect to specific representation techniques. In this article, we give a general formal definition based on model-theoretic isomorphisms or interpretations. We investigate and formalize an adequate interpretation of untyped lambda-calculus within a higher-order metalanguage in Isabelle/HOL using the Nominal Datatype Package. Formalization elucidates some subtle issues that have been neglected in informal arguments concerning adequacy.

La formalización en Isabelle se encuentra aquí.

Reseña: Représentation coinductive des graphes

Se ha publicado una nueva tesis de razonamiento formalizado en Coq: Représentation coinductive des graphes.

Su autora es Celia Picard dirigida por Ralph Matthes.

La tesis se presentó el 15 de junio en la Universidad de Toulouse (Université Toulouse III Paul Sabatier).

Su resumen es

Contexte général

Ce travail s’inscrit à l’interface de l’Ingénierie Dirigée par les Modèles et de la théorie des types. Dans le contexte toulousain, fortement axé vers les systèmes embarqués et critiques, savoir certifier la représentation et la transformation des modèles est un enjeu majeur. La perspective visée ici est la transformation d’un modèle conforme à un métamodèle en un modèle conforme à un autre métamodèle en assurant certaines propriétés sur le modèle d’arrivée. Deux solutions sont possibles pour cela : vérifier les propriétés sur chaque modèle d’arrivée ou certifier que l’application de la transformation assure ces propriétés. Nous avons choisi cette seconde solution. Pour la certification, nous avons décidé dans un premier temps d’utiliser un prouveur interactif, le système Coq. La première étape consiste à représenter les métamodèles, la seconde à établir un langage permettant d’exprimer les propriétés à vérifier. Dans cette thèse, nous nous intéressons à la représentation et la manipulation de métamodèles sous forme de graphes.

La représentation des graphes

Nous avons décidé de représenter les graphes par des types coinductifs dont nous voulions explorer l’utilisation dans Coq. En effet, la représentation de la coindition dans les prouveurs basés sur la théorie des types est en progrès continuel. De plus, l’utilisation des types coinductifs permet de rendre succincte et élégante notre représentation des graphes et d’obtenir la navigabilité par construction. Nous avons dû contourner la condition de garde dont le but est d’assurer la validité des opérations effectuées sur les objets coinductifs. Son implantation dans Coq (compromis entre expressivité et maniabilité, résultat d’une longue évolution) est restrictive, et interdit parfois des définitions sémantiquement correctes. Une formalisation canonique des graphes dépasse ainsi l’expressivité directe de Coq. Nous avons donc proposé une solution respectant ces limitations, puis nous nous sommes intéressés à la définition d’une relation plus permissive sur les graphes. Celle-ci permet d’obtenir la même notion d’équivalence qu’avec une représentation classique (ensemble de nœuds/ensemble d’arêtes) tout en gardant les avantages de la coinduction. En effet, notre définition des graphes crée un ordre implicite (horizontal et vertical) entre les nœuds. Notre nouvelle relation permet de nous en affranchir. Nous montrons qu’elle est équivalente à une relation basée sur des observations finies des graphes. Ces résultats ont fait l’objet de publications et sont certifiés par des développements Coq. Toutefois, ces derniers ont été transcrits en langage mathématique et la lecture de cette thèse ne requiert pas de connaissance de Coq.

La formalización en Coq se encuentra aquí.