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 {\em 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.
Tue 18 JanDisplayed time zone: Eastern Time (US & Canada) change
16:30 - 18:10 | Category Theory, HoTT, Number TheoryCPP at Salon III Chair(s): Kuen-Bang Hou (Favonia) University of Minnesota | ||
16:30 25mTalk | Implementing a category-theoretic framework for typed abstract syntaxRemote CPP Benedikt Ahrens TU Delft, The Netherlands, Ralph Matthes IRIT, Université de Toulouse, CNRS, Toulouse INP, UT3, Toulouse, Anders Mörtberg Department of Mathematics, Stockholm University DOI Pre-print Media Attached | ||
16:55 25mTalk | (Deep) Induction Rules for GADTsRemote CPP Pre-print Media Attached | ||
17:20 25mTalk | On homotopy of walks and spherical maps in homotopy type theoryRemote CPP Jonathan Prieto-Cubides University of Bergen Pre-print Media Attached | ||
17:45 25mTalk | Windmills of the minds: an algorithm for Fermat's Two Squares TheoremRemote CPP Hing Lun Chan Australian National University DOI Pre-print Media Attached File Attached |