(Deep) Induction Rules for GADTs

05/17/2021
by   Patricia Johann, et al.
0

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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
06/16/2023

Towards an induction principle for nested data types

A well-known problem in the theory of dependent types is how to handle s...
research
01/13/2021

Parametricity for Nested Types and GADTs

This paper considers parametricity and its consequent free theorems for ...
research
07/03/2011

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

Induction is the process by which we obtain predictive laws or theories ...
research
06/25/2020

Generating induction principles and subterm relations for inductive types using MetaCoq

We implement three Coq plugins regarding inductive types in MetaCoq. The...
research
05/15/2023

Quantifier-free induction for lists

We investigate quantifier-free induction for Lisp-like lists constructed...
research
06/09/2023

Positivity certificates for linear recurrences

We show that for solutions of linear recurrences with polynomial coeffic...
research
03/28/2022

How Functorial Are (Deep) GADTs?

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

Please sign up or login with your details

Forgot password? Click here to reset