Witnessing (Co)datatypes

Jasmin Christian Blanchette, Andrei Popescu, Dmitriy Traytel


Datatypes and codatatypes are useful for specifying and reasoning about (possibly infinite) computational processes. The Isabelle/HOL proof assistant has recently been extended with a definitional package that supports both. We describe a complete procedure for deriving nonemptiness witnesses in the general mutually recursive, nested case—nonemptiness being a proviso for introducing types in higher-order logic.

The final publication is available at link.springer.com.

Paper draft