A constructive proof of dependent choice in classical arithmetic via memoization
In a recent paper, Herbelin developed dPA^ω, a calculus in which constructive proofs for the axioms of countable and dependent choices could be derived via the memoization of choice functions. However, the property of normalization (and therefore the one of soundness) was only conjectured. The difficulty for the proof of normalization is due to the simultaneous presence of dependent types (for the constructive part of the choice), of control operators (for classical logic), of coinductive objects (to encode functions of type N→ A into streams (a_0,a_1,...)) and of lazy evaluation with sharing (for memoizing these coinductive objects). Elaborating on previous works, we introduce in this paper a variant of dPA^ω presented as a sequent calculus. On the one hand, we take advantage of a variant of Krivine classical realizability that we developed to prove the normalization of classical call-by-need. On the other hand, we benefit from dL_t̂p̂, a classical sequent calculus with dependent types in which type safety is ensured by using delimited continuations together with a syntactic restriction. By combining the techniques developed in these papers, we manage to define a realizability interpretation à la Krivine of our calculus that allows us to prove normalization and soundness. This paper goes over the whole process, starting from Herbelin's calculus dPA^ω until our introduction of its sequent calculus counterpart dLPA^ω.
READ FULL TEXT