(On the question whether data dependency in a type system has avantages for specifying and designing interactive programs.)
Preprint version: (postscript) Interactive programs in dependent type theory. U.U.D.M. Report 2000:5, ISSN 1101-3591, Dept. of Mathematics, Uppsala University, February 2000.
My thesis probably counts as a publication. It is called "Ordinals and Interactive Programs" and can be found here. Please bear in mind that no-one in his right mind would read (or write) a Phd thesis. (As I was told once by a Fellow of the Royal Society.)
In essence, the subject is a category of interfaces and components. Here are some more recent notes: ps pdf. The whole thing needs to be (yet again) rewritten from scratch.
Hyvernat has shown that this category is a model of linear logic.
What I like about this work is that it is riddled with conceptual questions: "what is a program?", "what does it mean to run a program?", "what does it mean that a program works?", "what is an infinite object?" and so on. It is not only a mathematical topic.
For some years I have discussed this interest with Anton Setzer. Among other material accessible on his page are some slides he presented at the Workshop on Dependent Types in Programming, Gothenburg 27-28 March 1999) arising from these discussions.
Earlier thoughts about the subject are in the rough notes Data dependent types and input output and in the half written (not even draft) article: Interactive Programs in Type Theory.
The subject is exotic, at any rate at first sight. It is concerned with proofs of accessibility for expressions in a notation system for countable ordinals, and the extent to which the proofs can be constructed in a particular formal system. Accessibility is a notion that can be defined wherever there is a predecessor structure on a set of `notations', assigning to each notation a countably indexed family of its predecessors. A notation is accessible if it satisfies every progressive predicate, where a progressive predicate is one that contains those notations all of whose predecessors have the property. Intuitively, the notation is "built up from below".
In the case of notations for countable ordinals, the predecessor structure is defined by classifying notations into those that are zero (having no predecessors), those that are successors (having a single predecessor), and those that are limits (having a countable sequence of predecessors). An ordinal notation can be thought of as a kind of `counting-down' process, which
n
from its environment and replaces the
notation by the limit's n
th predecessor.In the case of Hancock's Conjecture the formal system was an early version of Martin-Löf's type theory. The principles it provides are firstly primitive recursion on the natural numbers, and secondly an external sequence of "universe" types (ie. types of types) closed under vanilla logical operations. The transfinite arithmetic involved is that of the predecessors of a certain venerable transfinite ordinal known as Gamma0. The first to identify it, if not to name it, was probably the mathematician Veblen about 100 years ago, but the first to shed light on its importance were the logicians Sol Feferman and Kurt Schutte. They established a connection between this ordinal and a concept arising in the foundations of mathematics called "predicativity", meaning roughly "circularity-free", or accessibility in the sub-formula relation. Roughly speaking Gamma0 measures the strength of systems which are predicative relative to one finitary inductive definition (like that of the natural numbers); nowadays people who are familiar with the subject think that in general predicativity is much more liberal with respect to inductive definitions.
If the proof has any interest, it is only that it provides an example of the essential use of universes in a program; there are not so many of these. Each successive universe is used to add another `layer' of the Veblen-Schutte-Feferman notation system. I tried to write an `algebraic' proof, structuring it around the idea of a certain kind of non-monotone predicate transformer which I call a lens. There is a certain inverse limit construction on sequences of lenses that may have some further interest.
The following tar file contains a
variety of machine-checked files including one called
ordlens.agda
in which the result
alluded to above is
called Corollary
. The files contain a great
deal of detritus, are very sketchily commented, and their
general organisation is chaotic.
There is however no lower bound to human
depravity, and there may be people who wish
to pick at the entrails of this carrion.
Here are the sources, if you want a look.
There is a lightning sketch of agda here. As a simple example, here is a proof of accessibility of notations up to epsilon0 that does not use anything beyond Heyting arithmetic.
The construction makes use of a notion of a "lens for a function". Here are some slides on lenses.
Inspired by from some ideas of Ulrich Berger, I sometimes think about extracting the computational content (ie. some functionals of transfinite type) from these proofs of accessibility, perhaps in the form of a realisability interpretation.