DeepAI AI Chat
Log In Sign Up

(Deep) Induction Rules for GADTs

by   Patricia Johann, et al.

Deep data types are those that are defined in terms of other such data types, including, possibly, themselves. In that 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 deep GADTs that are not truly nested. We also show that deep induction cannot be extended to truly nested GADTs.


page 1

page 2

page 3

page 4


Dependently Typed Folds for Nested Data Types

We present an approach to develop folds for nested data types using depe...

Parametricity for Nested Types and GADTs

This paper considers parametricity and its consequent free theorems for ...

Abstraction Super-structuring Normal Forms: Towards a Theory of Structural Induction

Induction is the process by which we obtain predictive laws or theories ...

Generating induction principles and subterm relations for inductive types using MetaCoq

We implement three Coq plugins regarding inductive types in MetaCoq. The...

How Functorial Are (Deep) GADTs?

It is well-known that GADTs do not admit standard map functions of the k...

Universal Induction with Varying Sets of Combinators

Universal induction is a crucial issue in AGI. Its practical applicabili...

In-context Learning and Induction Heads

"Induction heads" are attention heads that implement a simple algorithm ...