249 research outputs found

    A machine-checked constructive metatheory of computation tree logic

    Get PDF
    This thesis presents a machine-checked constructive metatheory of computation tree logic (CTL) and its sublogics K and K* based on results from the literature. We consider models, Hilbert systems, and history-based Gentzen systems and show that for every logic and every formula s the following statements are decidable and equivalent: s is true in all models, s is provable in the Hilbert system, and s is provable in the Gentzen system. We base our proofs on pruning systems constructing finite models for satisfiable formulas and abstract refutations for unsatisfiable formulas. The pruning systems are devised such that abstract refutations can be translated to derivations in the Hilbert system and the Gentzen system, thus establishing completeness of both systems with a single model construction. All results of this thesis are formalized and machine-checked with the Coq interactive theorem prover. Given the level of detail involved and the informal presentation in much of the original work, the gap between the original paper proofs and constructive machine-checkable proofs is considerable. The mathematical proofs presented in this thesis provide for elegant formalizations and often differ significantly from the proofs in the literature.Diese Dissertation beschreibt eine maschinell verifizierte konstruktive Metatheorie von computation tree logic (CTL) und deren Teillogiken K und K*. Wir betrachten Modelle, Hilbert-Kalküle und History-basierte Gentzen-Kalküle und zeigen, für jede betrachtete Logik und jede Formel s, Entscheidbarkeit und Äquivalenz der folgenden Aussagen: s gilt in allen Modellen, s ist im Hilbert-Kalkül ableitbar und s ist im Gentzen-Kalkül ableitbar. Die Beweise bauen auf Pruningsystemen auf, welche für erfüllbare Formeln endliche Modelle und für unerfüllbare Formeln abstrakte Widerlegungen konstruieren. Die Pruningsysteme sind so konstruiert, dass abstrakte Widerlegungen zu Widerlegungen sowohl im Hilbert- als auch im Gentzen-Kalkül übersetzt werden können. Dadurch wird es möglich, die Vollständigkeit beider Systeme mit nur einer Modellkonstruktion zu zeigen. Alle Ergebnisse dieser Dissertation sind formalisiert und maschinell verifiziert mit Hilfe des Beweisassistenten Coq. In Anbetracht der Fülle an Details und der informellen Beweisführung in großen Teilen der Originalliteratur, erfordert dies teilweise tiefgreifende Veränderungen an den Beweisen aus der Literatur. Die Beweise in der vorliegenden Arbeit sind so aufgebaut, dass sie zu eleganten Formalisierungen führen

    A machine-checked constructive metatheory of computation tree logic

    Get PDF
    This thesis presents a machine-checked constructive metatheory of computation tree logic (CTL) and its sublogics K and K* based on results from the literature. We consider models, Hilbert systems, and history-based Gentzen systems and show that for every logic and every formula s the following statements are decidable and equivalent: s is true in all models, s is provable in the Hilbert system, and s is provable in the Gentzen system. We base our proofs on pruning systems constructing finite models for satisfiable formulas and abstract refutations for unsatisfiable formulas. The pruning systems are devised such that abstract refutations can be translated to derivations in the Hilbert system and the Gentzen system, thus establishing completeness of both systems with a single model construction. All results of this thesis are formalized and machine-checked with the Coq interactive theorem prover. Given the level of detail involved and the informal presentation in much of the original work, the gap between the original paper proofs and constructive machine-checkable proofs is considerable. The mathematical proofs presented in this thesis provide for elegant formalizations and often differ significantly from the proofs in the literature.Diese Dissertation beschreibt eine maschinell verifizierte konstruktive Metatheorie von computation tree logic (CTL) und deren Teillogiken K und K*. Wir betrachten Modelle, Hilbert-Kalküle und History-basierte Gentzen-Kalküle und zeigen, für jede betrachtete Logik und jede Formel s, Entscheidbarkeit und Äquivalenz der folgenden Aussagen: s gilt in allen Modellen, s ist im Hilbert-Kalkül ableitbar und s ist im Gentzen-Kalkül ableitbar. Die Beweise bauen auf Pruningsystemen auf, welche für erfüllbare Formeln endliche Modelle und für unerfüllbare Formeln abstrakte Widerlegungen konstruieren. Die Pruningsysteme sind so konstruiert, dass abstrakte Widerlegungen zu Widerlegungen sowohl im Hilbert- als auch im Gentzen-Kalkül übersetzt werden können. Dadurch wird es möglich, die Vollständigkeit beider Systeme mit nur einer Modellkonstruktion zu zeigen. Alle Ergebnisse dieser Dissertation sind formalisiert und maschinell verifiziert mit Hilfe des Beweisassistenten Coq. In Anbetracht der Fülle an Details und der informellen Beweisführung in großen Teilen der Originalliteratur, erfordert dies teilweise tiefgreifende Veränderungen an den Beweisen aus der Literatur. Die Beweise in der vorliegenden Arbeit sind so aufgebaut, dass sie zu eleganten Formalisierungen führen

    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

    A list-machine benchmark for mechanized metatheory

    Get PDF
    International audienceWe propose a benchmark to compare theorem-proving systems on their ability to express proofs of compiler correctness. In contrast to the first POPLmark, we emphasize the connection of proofs to compiler implementations, and we point out that much can be done without binders or alpha-conversion. We propose specific criteria for evaluating the utility of mechanized metatheory systems; we have constructed solutions in both Coq and Twelf metatheory, and we draw conclusions about those two systems in particular

    αCheck: a mechanized metatheory model-checker

    Get PDF
    The problem of mechanically formalizing and proving metatheoretic properties of programming language calculi, type systems, operational semantics, and related formal systems has received considerable attention recently. However, the dual problem of searching for errors in such formalizations has attracted comparatively little attention. In this article, we present α\alphaCheck, a bounded model-checker for metatheoretic properties of formal systems specified using nominal logic. In contrast to the current state of the art for metatheory verification, our approach is fully automatic, does not require expertise in theorem proving on the part of the user, and produces counterexamples in the case that a flaw is detected. We present two implementations of this technique, one based on negation-as-failure and one based on negation elimination, along with experimental results showing that these techniques are fast enough to be used interactively to debug systems as they are developed.Comment: Under consideration for publication in Theory and Practice of Logic Programming (TPLP

    Mechanized semantics

    Get PDF
    The goal of this lecture is to show how modern theorem provers---in this case, the Coq proof assistant---can be used to mechanize the specification of programming languages and their semantics, and to reason over individual programs and over generic program transformations, as typically found in compilers. The topics covered include: operational semantics (small-step, big-step, definitional interpreters); a simple form of denotational semantics; axiomatic semantics and Hoare logic; generation of verification conditions, with application to program proof; compilation to virtual machine code and its proof of correctness; an example of an optimizing program transformation (dead code elimination) and its proof of correctness

    An overview of decision table literature 1982-1995.

    Get PDF
    This report gives an overview of the literature on decision tables over the past 15 years. As much as possible, for each reference, an author supplied abstract, a number of keywords and a classification are provided. In some cases own comments are added. The purpose of these comments is to show where, how and why decision tables are used. The literature is classified according to application area, theoretical versus practical character, year of publication, country or origin (not necessarily country of publication) and the language of the document. After a description of the scope of the interview, classification results and the classification by topic are presented. The main body of the paper is the ordered list of publications with abstract, classification and comments.
    corecore