TL;DR
This paper introduces an algorithm and tool for translating proofs from impredicative to predicative type systems, enabling proof reuse across different proof assistants like Coq and Agda, especially when impredicativity is non-essential.
Contribution
It presents a novel translation algorithm using universe polymorphism and unification solving, implemented in the Predicativize tool, facilitating proof sharing between impredicative and predicative systems.
Findings
Successfully translated non-trivial proofs like Bertrand's Postulate and Fermat's Little Theorem
The translation handles many proofs that do not rely on impredicativity
The algorithm is partial but effective in practical scenarios
Abstract
As the development of formal proofs is a time-consuming task, it is important to devise ways of sharing the already written proofs to prevent wasting time redoing them. One of the challenges in this domain is to translate proofs written in proof assistants based on impredicative logics, such as Coq, Matita and the HOL family, to proof assistants based on predicative logics like Agda, whenever impredicativity is not used in an essential way. In this paper we present an algorithm to do such a translation between a core impredicative type system and a core predicative one allowing prenex universe polymorphism like in Agda. It consists in trying to turn a potentially impredicative term into a universe polymorphic term as general as possible. The use of universe polymorphism is justified by the fact that mapping an impredicative universe to a fixed predicative one is not sufficient in most…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
