kirancodes.me
To Proof Maintenance & Beyond!

A functional proof pearl: inverting the Ackermann hierarchy

Linh Tran, Anshuman Mohan, Aquinas Hobor

Abstract

We implement in Gallina a hierarchy of functions that calculate the upper inverses to the hyperoperation/Ackermann hierarchy. Our functions run in Θ(b) for inputs expressed in unary, and in O(b2) for inputs expressed in binary (where b = bitlength). We use our inverses to define linear-time functions—Θ(b) for both unary-represented and binary-represented inputs—that compute the upper inverse of the diagonal Ackermann function A(n). We show that these functions are consistent with the usual definition of the inverse Ackermann function α(n).

DOI 10.1145/3372885.3373837

Related papers