Formal Definitions and Proofs for Partial (Co)Recursive Functions - Inria - Institut national de recherche en sciences et technologies du numérique
Pré-Publication, Document De Travail Année : 2024

Formal Definitions and Proofs for Partial (Co)Recursive Functions

Résumé

Partial functions are a key concept in programming. Without partiality a programming language has limited expressiveness -- it is not Turing-complete, hence, it excludes some constructs such as {while}-loops. In functional programming languages, partiality mostly originates from the non-termination of recursive functions. Corecursive functions are another source of partiality: here, the issue is not termination, but the inability to produce arbitrary large, finite approximations of a theoretically infinite output. Partial functions have been formally studied in the branch of theoretical computer science called domain theory. In this paper we propose to step up the level of formality by using the Coq proof assistant. The main difficulty is that Coq requires all functions to be total, since partiality would break the soundness of its underlying logic. We propose practical solutions for this issue, and others, which appear when one attempts to define and reason about partial (co)recursive functions in a total functional language.
Fichier principal
Vignette du fichier
jlamp.pdf (280.91 Ko) Télécharger le fichier
Origine Fichiers produits par l'(les) auteur(s)

Dates et versions

hal-04360660 , version 1 (21-12-2023)
hal-04360660 , version 2 (24-12-2023)
hal-04360660 , version 3 (15-05-2024)
hal-04360660 , version 4 (12-06-2024)
hal-04360660 , version 5 (01-10-2024)

Licence

Identifiants

  • HAL Id : hal-04360660 , version 3

Citer

Horatiu Cheval, David Nowak, Vlad Rusu. Formal Definitions and Proofs for Partial (Co)Recursive Functions. 2024. ⟨hal-04360660v3⟩
480 Consultations
366 Téléchargements

Partager

More