A convolution slides one small kernel across the whole input, applying the same weights at every position. That weight-sharing is not an accident of tuning — it is the mechanism that enacts translation-equivariance: because the kernel is identical everywhere, shifting the input shifts the output exactly, conv(shift·x) = shift·conv(x). A correct-but-different filter with per-position weights would be just as expressive and lack the property entirely. This is the load-bearing case for the batch: equivariance here is caused by the construction (tie the weights and it holds; untie them and it dies), which is why convolutional networks learn features that work anywhere in an image.
The demo convolves a signal with a kernel, then shifts the input — the output shifts identically (shift-equivariant): live demo
“A CNN's power is depth.” — its foundation is weight-sharing, which enacts translation-equivariance: the same kernel everywhere means a feature found here is found anywhere. cited
One kernel everywhere, so a shifted input gives a shifted output — equivariance welded into the wiring. Untie the weights and it is gone. convolution
On the canonical compiler, convolving [1,2,3,4] with kernel [1,1] gives [3,5,7]; shift the input and the output shifts identically (shift_equivariant=1):