Coalgebraic semantics for parallel derivation strategies in logic programming

Ekaterina Komendantskaya, Guy McCusker, John Power

    Research output: Chapter in Book/Report/Conference proceedingConference contribution

    14 Citations (Scopus)


    Logic programming, a class of programming languages based on first-order logic, provides simple and efficient tools for goal-oriented proof-search. Logic programming supports recursive computations, and some logic programs resemble the inductive or coinductive definitions written in functional programming languages. In this paper, we give a coalgebraic semantics to logic programming. We show that ground logic programs can be modelled by either P-f P-f-coalgebras or P-f List-coalgebras on Set. We analyse different kinds of derivation strategies and derivation trees (proof-trees, SLD-trees, and-or parallel trees) used in logic programming, and show how they can be modelled coalgebraically.

    Original languageEnglish
    Title of host publicationAlgebraic Methodology and Software Technology
    Subtitle of host publication13th International Conference, AMAST 2010, Lac-Beauport, QC, Canada, June 23-25, 2010. Revised Selected Papers
    EditorsMichael Johnson, Dusko Pavlovic
    Place of PublicationBerlin
    Number of pages17
    ISBN (Electronic)9783642177965
    ISBN (Print)9783642177958
    Publication statusPublished - 2011
    Event13th International Conference on Algebraic Methodology and Software Technology - Lac Beauport, Canada
    Duration: 23 Jun 201025 Jun 2010

    Publication series

    NameLecture notes in computer science


    Conference13th International Conference on Algebraic Methodology and Software Technology
    Abbreviated titleAMAST2010
    CityLac Beauport
    Internet address


    • Logic programming
    • SLD-resolution
    • Parallel Logic programming
    • Coalgebra
    • Coinduction


    Dive into the research topics of 'Coalgebraic semantics for parallel derivation strategies in logic programming'. Together they form a unique fingerprint.

    Cite this