A certifying extraction with time bounds from Coq to call-by-value λ-calculus

04/26/2019
by   Yannick Forster, et al.
0

We provide a plugin extracting Coq functions of simple polymorphic types to the (untyped) call-by-value λ-calculus L. The plugin is implemented in the MetaCoq framework and entirely written in Coq. We provide Ltac tactics to automatically verify the extracted terms w.r.t a logical relation connecting Coq functions with correct extractions and time bounds, essentially performing a certifying translation and running time validation. We provide three case studies: A universal L-term obtained as extraction from the Coq definition of a step-indexed self-interpreter for Ł, a many-reduction from solvability of Diophantine equations to the halting problem of L, and a polynomial-time simulation of Turing machines in L.

READ FULL TEXT

page 6

page 7

page 8

page 13

page 14

page 15

research
06/26/2020

Denotational recurrence extraction for amortized analysis

A typical way of analyzing the time complexity of functional programs is...
research
02/20/2019

The Weak Call-By-Value λ-Calculus is Reasonable for Both Time and Space

We study the weak call-by-value λ-calculus as a model for computational ...
research
02/10/2020

The Bang Calculus Revisited

Call-by-Push-Value (CBPV) is a programming paradigm subsuming both Call-...
research
11/17/2017

Eliminating the unit constant in the Lambek calculus with brackets

We present a translation of the Lambek calculus with brackets and the un...
research
08/28/2019

Logical depth for reversible Turing machines with an application to the rate of decrease in logical depth for general Turing machines

The logical depth of a reversible Turing machine equals the shortest ru...
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...

Please sign up or login with your details

Forgot password? Click here to reset