List (and sequence) Denotations

With my apologies for any confusion between [ meta-denotation …] and [ literal … ] square brackets and ellipsis. (Note that the latter leaves a space between … and ], while the former does not.) The difference does matter – see meta-denotations and templates. Note that the presence of commas in these denotations distinguishes them from further uses of square brackets which may arise in the tensor notation and elsewhere.

[ [ item [ , item …] ] ]
[ [ item , …] [ … , item , [ item , …] …] [ , item …] ]

in which each item must denote a value; the whole denotes a mapping (:h|N), for which N is either {naturals} or a natural, and the items are h's outputs. When N is 1+n for some natural n, (:h|1+n) is synonymous with [h(0), …, h(n)], just as 1+n is synonymous with {0,…,n} and, indeed, with [0,…,n].

A text matching either template is a sequence of sub-texts, separated by commas and enclosed in [ square brackets ], in which each sub-text either is an ellipsis, as is known, or is intelligible to context as a denotation for a value; if none of the sub-texts is the denotation is of the first form, otherwise the second. Where a sequence of value-denotations, i.e. of items, uninterrupted by appears in a denotation of either form, describe it for the present as a chunk; the first form, when it contains any items at all, has a single chunk; the second form may contain arbitrarily many chunks. Taking any chunk and enclosing it in [ square brackets ] yields a text matching the first template; so, first, I'll give the meanings for these, then I'll use these to express what the second form means.

Each chunk has a definite number of items in it, and no ellipsis; a list in the first form, having N items in its text, is that mapping (:h|N) for which the value of each item in the text is h's output when given, as input, the number of items to the left of the given one. Thus [a,b,c] is the mapping (:|3) which maps 0 to a, 1 to b and 2 to c; and [] is the mapping (:|0), there being only one such since 0 is empty = {} and a mapping (:|{}) has no right values, hence is empty, so indeed [] = {}.

Given this reading of the first form, any chunk is best described by the list one obtains by enclosing it in [ square brackets ]. In a use of the second template, denoting (:h|N), the presence of a chunk described by a list (:g|n) asserts that

Note that, aside from chunks which abut a [ square bracket ], nothing is asserted about the relative order of chunks – the lists [0, 1, 2, 3, 4, 5] and [1, 2, 3, 4] are both valid values for the denotation […, 2, 3, 4, … 1, 2, 3, …], for instance; as, indeed, is {naturals}.

A denotation of the second form may end in ellipsis, in which case the value it denotes may be an infinite sequence, (:h|{naturals}). One could probably do quite well extending the given notation to describing ordinal sequences; then n would be an integer while m might not (though it'll still be an ordinal); ending in ellipsis would then allow (but not constrain) N to be a limit ordinal.

Borrowing an idiom from ECMAScript, I could allow list-like denotations in which two commas appear with no value between them; this would naturally denote a mapping (:h:N) as above, but allowing some members of N to not be right values of h. However, for now (up to 2014/Autumn), I haven't felt a strong need to do this.

Valid CSSValid HTML 4.01 Written by Eddy.