Using structural recursion for corecursion

Yves Bertot, Ekaterina Komendantskaya

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

    4 Citations (Scopus)

    Abstract

    We propose a (limited) solution to the problem of constructing stream values defined by recursive equations that do not respect the guardedness condition. The guardedness condition is imposed on definitions of corecursive functions in Coq, AGDA, and other higher-order proof assistants. In this paper, we concentrate in particular on those non-guarded equations where recursive calls appear under functions. We use a correspondence between streams and functions over natural numbers to show that some classes of non-guarded definitions can be modelled through the encoding as structural recursive functions. In practice, this work extends the class of stream values that can be defined in a constructive type theory-based theorem prover with inductive and coinductive types, structural recursion and guarded corecursion.

    Original languageEnglish
    Title of host publication Types for proofs and programs
    EditorsS Berardi, F Damiani, U DeLiguoro
    Place of PublicationBerlin
    PublisherSpringer
    Pages220-236
    Number of pages17
    ISBN (Print)978-3-642-02443-6
    DOIs
    Publication statusPublished - 2009
    EventTypes for Proofs and Programs: International Conference - Villa Gualino, Turin, Italy
    Duration: 26 Mar 200829 Mar 2008
    http://types2008.di.unito.it/

    Conference

    ConferenceTypes for Proofs and Programs: International Conference
    Abbreviated titleTYPES 2008
    CountryItaly
    CityTurin
    Period26/03/0829/03/08
    Internet address

    Keywords

    • Constructive Type Theory
    • Structural Recursion
    • Coinductive types
    • Guarded Corecursion
    • Coq
    • DEFINITIONS
    • PRODUCTIVITY

    Cite this