Classical (Co)Recursion: Mechanics

03/15/2021
by   Paul Downen, et al.
0

Primitive recursion is a mature, well-understood topic in the theory and practice of programming. Yet its dual, primitive corecursion, is underappreciated and still seen as exotic. We aim to put them both on equal footing by giving a foundation for primitive corecursion based on computation, giving a terminating calculus analogous to the original computational foundation of recursion. We show how the implementation details in an abstract machine strengthens their connection, syntactically deriving corecursion from recursion via logical duality. We also observe the impact of evaluation strategy on the computational complexity of primitive (co)recursive combinators: call-by-name allows for more efficient recursion, but call-by-value allows for more efficient corecursion.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
01/29/2021

A Symmetric Lambda-Calculus Corresponding to the Negation-Free Bilateral Natural Deduction

Filinski constructed a symmetric lambda-calculus consisting of expressio...
research
10/20/2020

Primitive Recursive Ordered Fields and Some Applications

We establish primitive recursive versions of some known facts about comp...
research
10/01/2019

Extraction of Efficient Programs in IΣ_1-arithmetic

Clausal Language (CL) is a declarative programming and verifying system ...
research
06/09/2023

The Undecidability of Pattern Matching in Calculi where Primitive Recursive Functions are Representable

We prove that the pattern matching problem is undecidable in polymorphic...
research
12/28/2021

Two Guarded Recursive Powerdomains for Applicative Simulation

Clocked Cubical Type Theory is a new type theory combining the power of ...
research
09/16/2015

Quantum Look at two Common Logics: the Logic of Primitive Thinking and the Logic of Everyday Human Reasoning

Based on ideas of quantum theory of open systems and psychological dual ...

Please sign up or login with your details

Forgot password? Click here to reset