We want to talk about several objects in order.
Suppose $A$ is a set.
A list (or
finite sequence,
$n$-tuple,
string,
dataset)
in $A$ (or
of elements from or
of $A$) is a function
\[
a: \set{1, \dots , n} \to A.
\]
Since the natural numbers are naturally ordered, we denote lists using this order, from left to right, between parentheses. For example, we denote the function $a: \set{1, \dots , 4} \to A$ by $(a_1, a_2, a_3, a_4)$.
Let $A$ be a set with $\num{A} = n$. We call a list $a: \set{1, \dots , n} \to A$ an ordering of $A$ if $a$ is invertible. In this case, we call the inverse of the ordering a numbering (or enumeration) of $A$. An ordering associates with each number a unique object and a numbering associates with each object a unique number (the object’s index).
A natural direct product is a product of a list of sets. We denote the direct product of a list of sets $A_1, \dots , A_n$ by $\prod_{i = 1}^{n} A_i$. If each $A_i$ is the same set $A$, then we denote the product $\prod_{i = 1}^{n} A_i$ by $A^n$. The direct product $A^n$ is the set of lists in $A$ .
An index range for a list $s$ of length $n$ is a pair $(i, j)$ for which $1 \leq i < j \leq n$. The slice corresponding to $(i,j)$ is the length $j-i$ list $s'$ defined by $s'_1 = s_{i}$, $s'_2 = s_{i+1}, \dots, s'_{j} = s_{i + j-1}$.
We denote the $(i,j)$-slice of $s$ by $s_{i:j}$. If $i = 1$ we use $s_{:j}$ and if $j = n$ we use $s_{i:}$ as shorthands for the slices $s_{1:j}$ and $s_{i:n}$.