32 research outputs found

    A semantics for a fine lambda-calculus with de Bruijn indices

    Get PDF

    Categorical combinators

    Get PDF
    Our main aim is to present the connection between λ-calculus and Cartesian closed categories both in an untyped and purely syntactic setting. More specifically we establish a syntactic equivalence theorem between what we call categorical combinatory logic and λ-calculus with explicit products and projections, with β and η-rules as well as with surjective pairing. “Combinatory logic” is of course inspired by Curry's combinatory logic, based on the well-known S, K, I. Our combinatory logic is “categorical” because its combinators and rules are obtained by extracting untyped information from Cartesian closed categories (looking at arrows only, thus forgetting about objects). Compiling λ-calculus into these combinators happens to be natural and provokes only n log n code expansion. Moreover categorical combinatory logic is entirely faithful to β-reduction where combinatory logic needs additional rather complex and unnatural axioms to be. The connection easily extends to the corresponding typed calculi, where typed categorical combinatory logic is a free Cartesian closed category where the notion of terminal object is replaced by the explicit manipulation of applying (a function to its argument) and coupling (arguments to build datas in products). Our syntactic equivalences induce equivalences at the model level. The paper is intended as a mathematical foundation for developing implementations of functional programming languages based on a “categorical abstract machine,” as developed in a companion paper (Cousineau, Curien, and Mauny, in “Proceedings, ACM Conf. on Functional Programming Languages and Computer Architecture,” Nancy, 1985)

    Formal verification of concurrent programs

    Get PDF
    Interactive theorem proving provides a general approach to modeling and verification of both finite-state and infinite-state systems but requires significant human efforts to deal with many tedious proofs. On the other hand, model-checking is limited to some application domain with small finite-state space. A natural thought for this problem is to integrate these two approaches. To keep the consistency of the integration and ensure the correctness of verification, we suggest to use type theory based theorem provers (e.g. Lego) as the platform for the integration and build a model-checker to do parts of the verification automatically. We formalise a verification system of both CCS and an imperative language in the proof development system Lego which can be used to verify both finite-state and infinite-state problems. Then a model-checker, LegoMC, is implemented to generate Lego proof terras for finite-state problems automatically. Therefore people can use Lego to verify a general problem with some of its finite sub-problems verified by LegoMC. On the other hand, this integration extends the power of model-checking to verify more complicated and infinite-state models as well. The development of automatic techniques and the integration of different reasoning methods would directly benefit the verification community. It is expected that further extension and development of this verification environment would be able to handle real life systems. On the other hand, the research gives us some experiences about how to automate proofs in interactive theorem provers and therefore will improve the usability and applicability of the theorem proving technology

    Comparing Calculi of Explicit Substitutions with Eta-reduction1 1Partially supported by the Brazilian CNPq research council grant number 47488101-6.

    Get PDF
    AbstractThe past decade has seen an explosion of work on calculi of explicit substitutions. Numerous work has illustrated the usefulness of these calculi for practical notions like the implementation of typed functional programming languages and higher order proof assistants. Three styles of explicit substitutions are treated in this paper: the λσ and the λse which have proved useful for solving practical problems like higher order unification, and the suspension calculus related to the implementation of the language λ-Prolog. We enlarge the suspension calculus with an adequate eta-reduction which we show to preserve termination and confluence of the associated substitution calculus and to correspond to the eta-reductions of the other two calculi. Additionally, we prove that λσ and λse as well as λσ and the suspension calculus are non comparable while λse is more adequate than the suspension calculus

    On the Integral Representations for Metaplectic Operators

    Full text link

    The language theory of Automath

    Get PDF

    Proofs as programs

    Get PDF

    On the Formalisation of the Metatheory of the Lambda Calculus and Languages with Binders

    Get PDF
    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
    corecore