Want to take part in these discussions? Sign in if you have an account, or apply for one below
Vanilla 1.1.10 is a product of Lussumo. More Information: Documentation, Community Support.
Thanks.
If you can, please try to start the Idea section with at least one sentence on the general idea of “lists” (and maybe their relation to free monoids), before mentioning HoTT. We must remember that the readership here is not just HoTT specialists. Also, I think it’s good for you HoTT nerds to try to step back once in a while and try to articulate subject matters in broader terms.
Now it looks like you are not just anonymous but also not reading here.(?)
In any case, I went ahead and re-wrote the Idea-section from scratch. Currently it reads as follows:
In mathematics and specifically in formal logic, by a “list” one means the fairly evident formalization of the colloquial notion of a “list of elements”:
If a set $E$ of admissible elements is given — also called an “alphabet”, in this context — then a list of $E$-elements is a tuple $(e_1, e_2, \cdots, e_\ell)$ of elements $e_i \,\in\, E$, of any length $\ell \,\in\, \mathbb{N}$ — also called a word in the given alphabet.
Typically one will write “$List(E)$” or similar for the set of all lists with entries in $E$.
For instance, for $E$ the (underlying set of) a field, the component-expressions of vectors in the vector space $k^n$ may be thought of as lists of length $n$ with elements in $k$. However, doing so means to disregard the vector space-structure on the collection of all such lists.
Instead, the notion of list is a concept with an attitude: While lists are just tuples of any length, calling them lists indicates that one intends to consider the operation of concatenation of lists to larger lists, in particular the operations of appending an element to a list.
It is evident that the operation of concatenation makes $List(E)$ a monoid (the neutral element under concatenation is the empty list, i.e. the unique list of length zero). In fact, a moment of reflection shows that, as such, $\big(List(E), conc\big)$ is the free monoid on $E$.
Therefore, in much of the mathematical literature, lists are understood as free monoids.
Specifically in computer science one commonly deals with the corresponding notion of the data type of lists (with entries in a prescribed data type), which serve as a basic and common kind of data structure. In programming languages supporting something like a calculus of constructions, this data type, essentially with the free monoid-structure as above, may be defined as an inductive type in an evident way (made explicit below).
On the other hand, in dependent type theories which have a homotopy type theory-interpretation — in that they do not verify uniqueness of identity proofs (or “axiom K”) — one may want to distinguish between lists and free monoids:
Because, in such theories it may happen that the given alphabet type $E$ is not actually a set but a higher homotopy type, in that it is not 0-truncated. In this case it still makes good sense to speak of lists of elements (terms) of $E$, only that now the corresponding type $List(E)$ is itself not 0-truncated. But since the term “monoid” carries with it a connotation of being 0-truncated, one may no longer want to call this the free monoid on $E$. It is, of course, still a free monoid in the proper higher algebraic sense (cf. monoid in a monoidal $\infty$-category).
1 to 5 of 5