DeepAI AI Chat
Log In Sign Up

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

01/29/2021

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

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

Primitive Recursive Ordered Fields and Some Applications

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

Extraction of Efficient Programs in IΣ_1-arithmetic

Clausal Language (CL) is a declarative programming and verifying system ...
12/28/2021

Two Guarded Recursive Powerdomains for Applicative Simulation

Clocked Cubical Type Theory is a new type theory combining the power of ...
11/07/2020

Cost-Aware Type Theory

Although computational complexity is a fundamental aspect of program beh...
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 ...
02/16/2019

A linear complexity analysis of quadratic residues and primitive roots spacings

We investigate the linear complexities of the periodic 0-1 infinite sequ...