18 research outputs found

    Cooperation between Top-Down and Bottom-Up Theorem Provers

    Full text link
    Top-down and bottom-up theorem proving approaches each have specific advantages and disadvantages. Bottom-up provers profit from strong redundancy control but suffer from the lack of goal-orientation, whereas top-down provers are goal-oriented but often have weak calculi when their proof lengths are considered. In order to integrate both approaches, we try to achieve cooperation between a top-down and a bottom-up prover in two different ways: The first technique aims at supporting a bottom-up with a top-down prover. A top-down prover generates subgoal clauses, they are then processed by a bottom-up prover. The second technique deals with the use of bottom-up generated lemmas in a top-down prover. We apply our concept to the areas of model elimination and superposition. We discuss the ability of our techniques to shorten proofs as well as to reorder the search space in an appropriate manner. Furthermore, in order to identify subgoal clauses and lemmas which are actually relevant for the proof task, we develop methods for a relevancy-based filtering. Experiments with the provers SETHEO and SPASS performed in the problem library TPTP reveal the high potential of our cooperation approaches

    Common syntax of the DFG-Schwerpunktprogramm "Deduktion"

    Get PDF
    A common exchange format for logic problems to be used by members of the DFG-Schwerpunktprogramm ``Deduktion\u27\u27 is introduced. It is thought to be an internal format that can easily be parsed such that it forms a compromise between the needs of the different groups. It is not intended to be a high-level general logic language that is easy to read or to write. The language is more general than other popular exchange formats such as Otter or TPTP in allowing non-clausal and sorted formulas as well as user-defined operators and quantifiers. The latter feature makes it also useful for non-classical logics

    Synthesizing Certified Code

    No full text
    Code certification is a lightweight approach for formally demonstrating software quality. Its basic idea is to require code producers to provide formal proofs that their code satisfies certain quality properties. These proofs serve as certificates that can be checked independently. Since code certification uses the same underlying technology as program verification, it requires detailed annotations (e.g., loop invariants) to make the proofs possible. However, manually adding annotations to the code is time-consuming and error-prone. We address this problem by combining code certification with automatic program synthesis. Given a high-level specification, our approach simultaneously generates code and all annotations required to certify the generated code. We describe a certification extension of AutoBayes, a synthesis tool for automatically generating data analysis programs. Based on built-in domain knowledge, proof annotations are added and used to generate proof obligations that are discharged by the automated theorem prover E-SETHEO. We demonstrate our approach by certifying operator- and memory-safety on a data-classification program. For this program, our approach was faster and more precise than PolySpace, a commercial static analysis tool

    Simulating reachability using first-order logic with applications to verification of linked data structures

    Full text link
    This paper shows how to harness existing theorem provers for first-order logic to automatically verify safety properties of imperative programs that perform dynamic storage allocation and destructive updating of pointer-valued structure fields. One of the main obstacles is specifying and proving the (absence) of reachability properties among dynamically allocated cells. The main technical contributions are methods for simulating reachability in a conservative way using first-order formulas--the formulas describe a superset of the set of program states that would be specified if one had a precise way to express reachability. These methods are employed for semi-automatic program verification (i.e., using programmer-supplied loop invariants) on programs such as mark-and-sweep garbage collection and destructive reversal of a singly linked list. (The mark-and-sweep example has been previously reported as being beyond the capabilities of ESC/Java.)Comment: 30 pages, LMC

    Deduction-Based Software Component Retrieval

    Get PDF
    Deduction-based software component retrieval is a software reuse technique that uses formal specifications as component descriptors and as search keys; matching components are identified using an automated theorem prover. This dissertation contains a detailed theoretical investigation of the concept as well as the first substantial experimental evaluation of its technical feasibility.Deduktionsbasiertes Kompenentenretrieval ist eine Softwarereusetechnik, in der formale Spezifikationen zur Beschreibung von Komponenten sowie als Anfragen verwendet werden; passende Komponenten werden mit Hilfe eines automatischen Theorembeweisers ermittelt. Diese Arbeit enthält eine detaillierte theoretische Untersuchung dieses Konzeptes und die erste ausführliche experimentelle Evaluierung seiner technischen Realisierbarkeit

    Resolution-based decision procedures for subclasses of first-order logic

    Get PDF
    This thesis studies decidable fragments of first-order logic which are relevant to the field of nonclassical logic and knowledge representation. We show that refinements of resolution based on suitable liftable orderings provide decision procedures for the subclasses E+, K, and DK of first-order logic. By the use of semantics-based translation methods we can embed the description logic ALB and extensions of the basic modal logic K into fragments of first-order logic. We describe various decision procedures based on ordering refinements and selection functions for these fragments and show that a polynomial simulation of tableaux-based decision procedures for these logics is possible. In the final part of the thesis we develop a benchmark suite and perform an empirical analysis of various modal theorem provers.Diese Arbeit untersucht entscheidbare Fragmente der Logik erster Stufe, die mit nicht-klassischen Logiken und Wissensrepräsentationsformalismen im Zusammenhang stehen. Wir zeigen, daß Entscheidungsverfahren für die Teilklassen E+, K, und DK der Logik erster Stufe unter Verwendung von Resolution eingeschränkt durch geeignete liftbare Ordnungen realisiert werden können. Durch Anwendung von semantikbasierten Übersetzungsverfahren lassen sich die Beschreibungslogik ALB und Erweiterungen der Basismodallogik K in Teilklassen der Logik erster Stufe einbetten. Wir stellen eine Reihe von Entscheidungsverfahren auf der Basis von Resolution eingeschränkt durch liftbare Ordnungen und Selektionsfunktionen für diese Logiken vor und zeigen, daß eine polynomielle Simulation von tableaux-basierten Entscheidungsverfahren für diese Logiken möglich ist. Im abschließenden Teil der Arbeit führen wir eine empirische Untersuchung der Performanz verschiedener modallogischer Theorembeweiser durch

    Decision procedures for equality logic with uninterpreted functions

    Get PDF
    In dit proefschrift presenteren we een aantal technieken om vervulbaarheid (satisfiability) vast te stellen binnen beslisbare delen van de eerste orde logica met gelijkheid. Het doel van dit proefschrift is voornamelijk het ontwikkelen van nieuwe technieken in plaats van het ontwikkelen van een effici¨ente implementatie om vervulbaarheid vast te stellen. Als algemeen logisch raamwerk gebruiken we de eerste orde predikaten logica zonder kwantoren. We beschrijven enkele basisprocedures om vervulbaarheid van propositionele formules vast te stellen: de DP procedure, de DPLL procedure, en een techniek gebaseerd op BDDs. Deze technieken zijn eigenlijk families van algoritmen in plaats van losse algoritmen. Hun gedrag wordt bepaald door een aantal keuzen die ze maken gedurende de uitvoering. We geven een formele beschrijving van resolutie, en we analyseren gedetailleerd de relatie tussen resolutie en DPLL. Het is bekend dat een DPLL bewijs van onvervulbaarheid (refutation) rechtstreeks kan worden getransformeerd naar een resolutie bewijs van onvervulbaarheid met een vergelijkbare lengte. In dit proefschrift wordt een transformatie ge¨introduceerd van zo’n DPLL bewijs naar een resolutie bewijs dat de kortst mogelijke lengte heeft. We presenteren GDPLL, een generalisatie van de DPLL procedure. Deze is bruikbaar voor het vervulbaarheidsprobleem voor beslisbare delen van de eerste orde logica zonder kwantoren. Voldoende eigenschappen worden ge¨identificeerd om de correctheid, de be¨eindiging en de volledigheid van GDPLL te bewijzen. We beschrijven manieren om vervulbaarheid vast te stellen binnen de logica met gelijkheid en niet-ge¨interpreteerde functies (EUF). Dit soort logica is voorgesteld om abstracte hardware ontwerpen te verifi¨eren. Het snel kunnen vaststellen van vervulbaarheid binnen deze logica is belangrijk om dergelijke verificaties te laten slagen. In de afgelopen jaren zijn er verschillende procedures voorgesteld om de vervulbaarheid van dergelijke formules vast te stellen. Wij beschrijven een nieuwe aanpak om vervulbaarheid vast te stellen van formules uit de logica met gelijkheid die in de conjunctieve normaal vorm zijn gegeven. Centraal in deze aanpak staat ´e´en enkele bewijsregel genaamd gelijkheidsresolutie. Voor deze ene regel bewijzen wij correctheid en volledigheid. Op grond van deze regel stellen we een volledige procedure voor om vervulbaarheid van dit soort formules vast te stellen, en we bewijzen de correctheid ervan. Daarnaast presenteren we nog een nieuwe procedure om vervulbaarheid vast te stellen van EUF-formules, gebaseerd op de GDPLL methode. Tot slot breiden we BDDs voor propositionele logica uit naar logica met gelijkheid. We bewijzen dat alle paden in deze uitgebreide BDDs vervulbaar zijn. In een constante hoeveelheid tijd kan vastgesteld worden of de formule een tautologie is, een tegenspraak is, of slechts vervulbaar is

    SPASS & FLOTTER, Version 0.42

    No full text
    corecore