A Bi-Directional Refinement Algorithm for the Calculus of (Co)Inductive Constructions
Andrea Asperti (University of Bologna), Wilmer Ricciotti (University, of Bologna), Claudio Sacerdoti Coen (University of Bologna), Enrico Tassi, (INRIA - Microsoft Research)

TL;DR
This paper introduces a bi-directional refinement algorithm for the Calculus of (Co)Inductive Constructions in the Matita proof assistant, improving type inference, error reporting, and handling of implicit arguments.
Contribution
It presents a novel bi-directional refinement algorithm for CIC that enhances type inference, error messages, and implicit argument handling in interactive theorem proving.
Findings
Enhanced type inference and error reporting.
More effective sub-typing coercion system.
Simplified implementation of implicit arguments.
Abstract
The paper describes the refinement algorithm for the Calculus of (Co)Inductive Constructions (CIC) implemented in the interactive theorem prover Matita. The refinement algorithm is in charge of giving a meaning to the terms, types and proof terms directly written by the user or generated by using tactics, decision procedures or general automation. The terms are written in an "external syntax" meant to be user friendly that allows omission of information, untyped binders and a certain liberal use of user defined sub-typing. The refiner modifies the terms to obtain related well typed terms in the internal syntax understood by the kernel of the ITP. In particular, it acts as a type inference algorithm when all the binders are untyped. The proposed algorithm is bi-directional: given a term in external syntax and a type expected for the term, it propagates as much typing information as…
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.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
