[ The Types Forum, http://lists.seas.upenn.edu/mailman/listinfo/types-list ]

Hello,

as Bas wrote (I think his message was not published on the list, but thanks for notifying me!), Hickey's very dependent types have been of some interest in homotopy type theory, and I have mentioned them in my thesis [1].  However, the context is very different from Tim's and I am not sure whether this is relevant to the question.

Not much has actually been said about very dependent types in HoTT, and in my thesis, I only mention them in the "future directions" chapter.  I don't think anyone has made a suggestion of how to add very types to HoTT (or basic MLTT) so far, and I also don't know how one might do that.  The reason why they came up is that, in HoTT, one problem is whether type-valued diagrams/presheaves can be represented internally, in particular if the index category is the simplex category Delta restricted to injective maps [2]; this is known as the challenge of defining semisimplicial types.  The standard approach in HoTT is trying to write down a Reedy fibrant diagram that encodes the dependency structure, e.g. as:
  Points : Type
  Edges : Points -> Points -> Type
  Triangles : (a b c : Points) -> Edges(a,b) -> Edges(b,c) -> Edges(a,c) -> Type and so on.  (I have learned about this presentation of structures in Shulman's work [3], and I suppose the general concept is better known in the context of Makkai's FOLD [4] in this community.) Hickey's "very dependent function types" (p5 in his paper) seem to be a type-theoretic way of talking about Reedy fibrant diagrams, and that's the reason behind the interest in HoTT that Bas has pointed out.  But this has not led to anything so far.

Best,
Nicolai Kraus

[1] http://www.cs.nott.ac.uk/~psznk/docs/thesis_nicolai.pdf
[2] https://ncatlab.org/nlab/show/simplex+category
[3] Shulman, https://arxiv.org/abs/1203.3253
[4] Makkai, http://www.math.mcgill.ca/makkai/folds/foldsinpdf/FOLDS.pdf



On 12/01/18 10:18, Bas Spitters wrote:
There's a recent interest in them in HoTT, e.g. the discussion in the
thesis by Nicolai Kraus.
http://eprints.nottingham.ac.uk/28986/

I am not sure what the best reference is for this, but I am sure
Nicolai and Thorsten have more information.

Bas

On Fri, Jan 12, 2018 at 1:37 AM, Tim Sweeney <tim.swee...@epicgames.com> wrote:
[ The Types Forum, http://lists.seas.upenn.edu/mailman/listinfo/types-list ]

Hickey's 1996 "Formal Objects in Type Theory using Very Dependent Types" (
http://www.cs.cornell.edu/jyh/papers/fool3/paper.pdf) laid an interesting
type theoretical foundation for object oriented programming constructs.

I'm seeking references on any later work in this direction.  Of particular
value would be papers that explore the following:

1. Referencing superclass fields in derived classes.  E.g. A Java
programmer might create a class with a member function like "void
updateObject() {updateNewThings(); super.updateObject();}".  I can't see
how to patch this on top of Hickey's framework without losing the
straightforward classes-as-types mapping.

2. Virtual classes (https://en.wikipedia.org/wiki/Virtual_class).  Perhaps
F-bounded polymorphism comes to the rescue.

3. Ensuring open-world forward-compatibility across modules.  Java and C#
define a broad set of ways that a given module may evolve without breaking
compatibility with existing code in other modules which reference it. For
example, one may safely add a new member function to a class.  The
supporting subtyping mechanisms are well-understood, but naming and
disambiguation are required too.

Thanks,

Tim Sweeney

Reply via email to