3 research outputs found
On computational interpretations of the modal logic S4. I. Cut elimination
A language of constructions for minimal logic is the
-calculus, where cut-elimination is encoded as
-reduction. We examine corresponding languages for the
minimal version of the modal logic S4, with notions of reduction
that encodes cut-elimination for the corresponding sequent system.
It turns out that a natural interpretation of the latter
constructions is a -calculus extended by an idealized
version of Lisp\u27s \verb/eval/ and \verb/quote/ constructs.
In this first part, we analyze how cut-elimination works in the
standard sequent system for minimal S4, and where problems arise.
Bierman and De Paiva\u27s proposal is a natural language of constructions
for this logic, but their calculus lacks a few rules that are
essential to eliminate all cuts. The -calculus,
namelyBierman and De Paiva\u27s proposal extended with all needed rules,
is confluent. There is a polynomial-time algorithm to compute
principal typings of given terms, or answer that the given terms are
not typable. The typed -calculus terminates, and
normal forms are exactly constructions for cut-free proofs. Finally,
modulo some notion \sqeq of equivalence, there is a natural
Curry-Howard style isomorphism between typed
-terms and natural deduction proofs in minimal S4.
However, the -calculus has a non-operational
flavor, in that the extra rules include explicit garbage collection,
contraction and exchange rules. We shall propose another language of
constructions to repair this in Part II
Subtree replacement systems
Theory and computer applications of subtree replacement system
On the Formalisation of the Metatheory of the Lambda Calculus and Languages with Binders
Este trabajo trata sobre el razonamiento formal veri cado por computadora involucrando lenguajes
con operadores de ligadura.
Comenzamos presentando el Cálculo Lambda, para el cual utilizamos la sintaxis histórica, esto es,
sintaxis de primer orden con sólo un tipo de nombres para las variables ligadas y libres. Primeramente
trabajamos con términos concretos, utilizando la operación de sustitución múltiple de nida
por Stoughton como la operación fundamental sobre la cual se de nen las conversiones alfa
y beta. Utilizando esta sintaxis desarrollamos los principales resultados metateóricos del cálculo:
los lemas de sustitución, el teorema de Church-Rosser y el teorema de preservación de tipo (Subject
Reduction) para el sistema de asignación de tipos simples. En una segunda formalización
reproducimos los mismos resultados, esta vez basando la conversion alfa sobre una operación
más sencilla, que es la de permutación de nombres. Utilizando este mecanismo, derivamos principios
de inducción y recursión que permiten trabajar identificando términos alfa equivalentes,
de modo tal de reproducir la llamada convención de variables de Barendregt. De este modo,
podemos imitar las demostraciones al estilo lápiz y papel dentro del riguroso entorno formal
de un asistente de demostración.
Como una generalización de este último enfoque, concluimos utilizando técnicas de programación
genérica para definir una base para razonar sobre estructuras genéricas con operadores de ligadura.
Definimos un universo de tipos de datos regulares con información de variables y operadores
de ligadura, y sobre éstos definimos operadores genéricos de formación, eliminación
e inducción. También introducimos una relación de alfa equivalencia basada en la operación
de permutación y derivamos un principio de iteración/inducción que captura la convención de
variables anteriormente mencionada. A modo de ejemplo, mostramos cómo definir el Cálculo
Lambda y el sistema F en nuestro universo, ilustrando no sólo la reutilización de las pruebas
genéricas, sino también cuán sencillo es el desarrollo de nuevas pruebas en estos casos.
Todas las formalizaciones de esta tesis fueron realizadas en Teoría Constructiva de Tipos y
verificadas utilizando el asistente de pruebas AgdaThis work is about formal, machine-checked reasoning on languages with name binders.
We start by considering the ʎ-calculus using the historical ( rst order) syntax with only one
sort of names for both bound and free variables. We rst work on the concrete terms taking
Stoughton's multiple substitution operation as the fundamental operation upon which the
ά and ß-conversion are de ned. Using this syntax we reach well-known meta-theoretical results,
namely the Substitution lemmas, the Church-Rosser theorem and the Subject Reduction theorem
for the system of assignment of simple types. In a second formalisation we reproduce the same
results, this time using an approach in which -conversion is de ned using the simpler operation
of name permutation. Using this we derive induction and recursion principles that allow us to
work by identifying terms up to -conversion and to reproduce the so-called Barendregt's variable
convention [4]. Thus, we are able to mimic pencil and paper proofs inside the rigorous formal
setting of a proof assistant.
As a generalisation of the latter, we conclude by using generic programming techniques to de ne
a framework for reasoning over generic structures with binders. We de ne a universe of regular
datatypes with variables and binders information, and over these we de ne generic formation,
elimination, and induction operations. We also introduce an ά equivalence relation based on
the swapping operation, and are able to derive an -iteration/induction principle that captures
Barendregt's variable convention. As an example, we show how to de ne the ʎ calculus and
System F in our universe, and thereby we are able to illustrate not only the reuse of the generic
proofs but also how simple the development of new proofs becomes in these instances.
All formalisations in this thesis have been made in Constructive Type Theory and completely
checked using the Agda proof assistan