18 de octubre de 2013

Identificando proposiciones isomorfas... en China

(English below)
Del 3 al 7 de Noviembre, se realizará en el State Key Laboratory del Institute for Software de la Chinese Academy of Science, en Beijing, un workshop del projecto Franco-Chino LOCALI. Allí voy a presentar una charla. Les dejo aquí abajo el título y resumen.

Título: Identificando proposiciones isomorfas

Resumen:
En lambda-cálculo tipado, en lenguajes de programación y en teoría de la prueba, dos tipos A y B se dicen isomorfos, si existen dos funciones \phi:A\Rightarrow B y \psi:B\Rightarrow A tales que \phi\circ\psi=Id_A, y \psi\circ\phi=Id_B. En algunos casos, los tipos isomorfos son considerados iguales. Por ejemplo en teoría de tipos de Martin-Löf, en Cálculo de Construcciones y en Deducción módulo, tipos iguales por definición son identificados. Sin embargo, igualdad por definición es mas débil que isomorfismo y, por ejemplo, los tipos isomorfos A\wedge B y B\wedge A usualmente no son identificados: un término de tipo A\wedge B no tiene tipo B\wedge A.
No identificar esos tipos tiene muchos  inconvenientes, por ejemplo si una biblioteca contiene una prueba de B\wedge A, una llamada a una prueba de A\wedge B no podrá encontrarla, si r y s son pruebas de (A\wedge B)\Rightarrow C y B\wedge A respectivamente, no es posible aplicar r a s para obtener una prueba de C, necesitamos explícitamente aplicar una función de tipo(B\wedge A)\Rightarrow (A\wedge B) a s antes de aplicar r a este término. Esto ha llevado a un auge de proyectosde investigación con el objetivo de identificar de una forma u otra tipos isomorfos en teoría de tipos, por ejemplo con el axioma de univalencia.
Aquí introducimos una extensión de lambda cálculo simplemente tipado con pares, donde tipos isomorfos son identificados. En este cálculo nos enfocamos en tres isomorfismos: conmutatividad y asociatividad de la conjunción, y distributividad de la implicación sobre la conjunción. Identificar tipos requiere también identificar términos via una relación de equivalencia, lo cual deriva en un cálculo interesante, relacionado con varios cálculos algebraicos y no deterministas conocidos. En esta charla voy a presentar el sistema y una prueba de normalización basada en una adaptación no trivial de  la técnica de candidatos de reducibilidad. Además, voy a mostrar algunas ideas en progreso para intruducir la currificación: (A\wedge B)\Rightarrow C \equiv A\Rightarrow B\Rightarrow C.


From the 3rd to the 7th of November, a workshop of the ANRI LOCALI Project will take place at the State Key Laboratory of the Institute for Software of the Chinese Academy of Science, in Beijing. I will give a talk there. Below you will find the title and abstract of it.

Title: Identifying isomorphic propositions

Abstract:
In typed lambda-calculus, in programming languages, and in proof theory, two types A and B are said to be isomorphic, if there exists two functions \phi:A\Rightarrow B and \psi:B\Rightarrow A such that \phi\circ\psi=Id_A, and \psi\circ\phi=Id_B. In some cases, isomorphic types are identified. For instance, in Martin-Löf's type theory, in the Calculus of Constructions, and in Deduction modulo, definitionally equivalent types are identified. However, definitional equality is weaker than isomorphism and, for example, the isomorphic types A\wedge B and B\wedge A are not usually identified: a term of type A\wedge B does not have type B\wedge A.
Not identifying such types has many drawbacks, for example if a library contains a proof of B\wedge A, a request on a proof of A\wedge B fails to find it, if r and s are proofs of (A\wedge B)\Rightarrow C and B\wedge A respectively, it is not possible to apply r to s to get a proof of C, but we need to explicitly apply a function of type (B\wedge A)\Rightarrow (A\wedge B) to s before we can apply r to this term. This has lead to several projects aiming to identify in a way or another isomorphic types in type theory, for example with the univalence axiom.
We introduce an extension of simply typed lambda calculus with pairs where isomorphic types are identified. In this calculus we have focused on three isomorphisms: associativity and commutativity of conjunction, and the distributivity of implication over conjunction. Identifying some types requires to also identify some terms via an equivalence relation on terms, leading to an interesting calculus, which is related to several known algebraic and non-deterministic calculi. In this talk I will present the system and a proof of normalisation based on a non-trivial adaptation of the reducibility candidates technique. Also I will show some ongoing ideas to introduce the curryfication: (A\wedge B)\Rightarrow C \equiv A\Rightarrow B\Rightarrow C.


Update: The slides