Termination of programs using term rewriting and SAT solving

J. Giesl, P. Schneider-Kamp, R. Thiemann, S. Swiderski, M.T. Nguyen, D. De Schreye, A. Serebrenik

    Research output: Chapter in Book/Report/Conference proceedingConference contributionAcademicpeer-review


    There are many powerful techniques for automated termination analysis of term rewrite systems (TRSs). However, up to now they have hardly been used for real programming languages. In this talk, we describe recent results which permit the application of existing techniques from term rewriting in order to prove termination of programs. We discuss two possible approaches: 1. One could translate programs into TRSs and then use existing tools to verify termination of the resulting TRSs. 2. One could adapt TRS-techniques to the respective programming languages in order to analyze programs directly. We present such approaches for the functional language Haskell and the logic language Prolog. Our results have been implemented in the termination provers AProVE and Polytool. In order to handle termination problems resulting from real programs, these provers had to be coupled with modern SAT solvers, since the automation of the TRS-termination techniques had to improve significantly. Our resulting termination analyzers are currently the most powerful ones for Haskell and Prolog.
    Original languageEnglish
    Title of host publicationDeduction and Decision Procedures
    EditorsF. Baader, B. Cook, J. Giesl, R. Nieuwenhuis
    Place of PublicationSchloss Dagstuhl, Germany
    PublisherInternationales Begegnungs- und Forschungszentrum für Informatik (IBFI)
    Publication statusPublished - 2007

    Publication series

    NameDagstuhl Seminar Proceedings
    ISSN (Print)1862-4405


    Dive into the research topics of 'Termination of programs using term rewriting and SAT solving'. Together they form a unique fingerprint.

    Cite this