Mathematically speaking, a discrete channel/filter is a function or mapping $F : l^{\infty} \to l^{\infty}(\Z)$ from the vector space $l^{\infty}(\Z)$ of bounded input sequences $\{x_j\}_{j \in \Z}$,
$$ l^{\infty}(\Z) := \{(x_j)_{j \in \Z} : \text{sup} |x_j| < \infty\}, $$
to bounded output sequences $(y_j)_{j \in \Z}$.
Definition: A channel/filter $F : l^{\infty} \to l^{\infty}(\mathbb{Z})$ is called finite, if every input signal of finite duration produces an output signal of finite duration,
$$ \{\exists M \in \N : |j| > M \Rightarrow x_j = 0\} \Rightarrow \exists N \in \N : |k| >N \Rightarrow (F((x_j)_{j \in \Z}))_k = 0 $$
Since it should not matter when exactly signals are fed into a channel, we introduce the time shift operator for signals. For $m \in \Z$:
$$ S_m : l^{\infty}(\Z) \to l^{\infty}(\Z), \, S_m((x_j){j \in \Z}) = (x{j-m})_{j \in \Z}. $$
Hence, by applying $S_m$ we advance or delay a signal by $|m| \Delta t$.
Definition: A filter $l^{\infty}(\Z) \to l^{\infty}(\Z)$ is called time-invariant (TI), if shifting the input time leads to the same output shifted in time by the same amount; it commutes with the time shift operator:
$$ \forall (x_j){j \in \Z} \in l^{\infty}(\Z), \, \forall m \in \Z : F(S_m((x_j){j \in \Z})) = S_m(F((x_j)_{j \in \Z})). $$