(Deep) Induction Rules for GADTs
Patricia Johann, Enrico Ghiorzi

TL;DR
This paper extends deep induction principles to a class of GADTs, enabling proofs of properties for nested data types and highlighting the need for further techniques for truly nested GADTs.
Contribution
It introduces methods to derive deep induction rules for non-truly nested GADTs, facilitating their use in proof assistants.
Findings
Deep induction rules can be extended to certain GADTs.
Current techniques are insufficient for truly nested GADTs.
Further research is needed for more complex nested types.
Abstract
Deep data types are those that are constructed from other data types, including, possibly, themselves. In this case, they are said to be truly nested. Deep induction is an extension of structural induction that traverses all of the structure in a deep data type, propagating predicates on its primitive data throughout the entire structure. Deep induction can be used to prove properties of nested types, including truly nested types, that cannot be proved via structural induction. In this paper we show how to extend deep induction to GADTs that are not truly nested GADTs. This opens the way to incorporating automatic generation of (deep) induction rules for them into proof assistants. We also show that the techniques developed in this paper do not suffice for extending deep induction to truly nested GADTs, so more sophisticated techniques are needed to derive deep induction rules for them.
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.
