English

Multi-dimensional Arrays with Levels

Data Structures and Algorithms 2020-05-04 v1 Logic in Computer Science Programming Languages

Abstract

We explore a data structure that generalises rectangular multi-dimensional arrays. The shape of an n-dimensional array is typically given by a tuple of n natural numbers. Each element in that tuple defines the length of the corresponding axis. If we treat this tuple as an array, the shape of that array is described by the single natural number n. A natural number itself can be also treated as an array with the shape described by the natural number 1 (or the element of any singleton set). This observation gives rise to the hierarchy of array types where the shape of an array of level l+1 is a level-l array of natural numbers. Such a hierarchy occurs naturally when treating arrays as containers, which makes it possible to define both rank- and level-polymorphic operations. The former can be found in most array languages, whereas the latter gives rise to partial selections on a large set of hyperplanes, which is often useful in practice. In this paper we present an Agda formalisation of arrays with levels. We show that the proposed formalism supports standard rank-polymorphic array operations, while type system gives static guarantees that indexing is within bounds. We generalise the notion of ranked operator so that it becomes applicable on arrays of arbitrary levels and we show why this may be useful in practice.

Cite

@article{arxiv.2005.00198,
  title  = {Multi-dimensional Arrays with Levels},
  author = {Artjoms {Š}inkarovs},
  journal= {arXiv preprint arXiv:2005.00198},
  year   = {2020}
}

Comments

In Proceedings MSFP 2020, arXiv:2004.14735

R2 v1 2026-06-23T15:13:56.720Z