Interpret convolutions with different arguments. For example, $f(t) * \delta(t-\alpha)=f(t-\alpha)$ I'm trying to learn signal processing and I don't know how to process this.
My textbook says that the pure time shift LTI system that goes $y(t) = x(t-t_0)$ has an impulse response $h(t) = \delta(t-t_0)$, which means that $f(t) * \delta(t-t_0) = f(t - t_0)$.
That's signal processing. It makes sense.
Mathematically, a convolution between signals $f(t)$ and $g(t)$ are defined as $f(t) * g(t) = \int_{-\infty}^{\infty} f(\tau)g(t-\tau) d\tau$. So, it requires that the arguments to $f$ and $g$ be the same. But it is often that the arguments are not the same, like in this case (i.e. $t$ vs. $t-t_0$).
How do I expand a convolution like $f(t) * \delta(t - t_0)$ into an integral, and prove this identity mathematically?
Here's what I tried.

Let $f_d (t) = f(t + t_0)$ so that $f(t) = f_d (t - t_0)$. Then, since $f_d (t - t_0) * \delta (t - t_0) = f_d (t - t_0)$, $f(t) * \delta (t - t_0) = f(t)$. (!!!)

Not the result I was expecting.
Fundamentally, I want to understand what is meant when engineers talk about convolutions that are not exactly of the form $(f * g)(t)$, but rather of $f(p(t)) * g(q(t)), p \ne q$.
My background is college calculus + intro differential equations.
 A: You do it by writing every function involved as a distinct function of $t$ only (as you did with $h$), and only then applying your formula for a convolution. Let me also write $f_{t_0} (t) := f(t-t_0)$. Then
\begin{align}
 f(t) * \delta(t-t_0)=f(t)*h(t) 
&= \int_{-\infty}^\infty f(\tau) h(t-\tau) d\tau 
\\&= \int_{-\infty}^\infty f(\tau) \delta(t-\tau-t_0) d\tau 
\\&= \int_{-\infty}^\infty f(\tau) \delta(t-(\tau+t_0)) d\tau 
\\&= \int_{-\infty}^\infty f(\tau-t_0) \delta(t-\tau) d\tau
\\&= \int_{-\infty}^\infty f_{t_0}(\tau) \delta(t-\tau) d\tau
\\&=f_{t_0}(t)
\\&=f(t-t_0)\end{align}
I want to point out that there is a notation nightmare happening. (Nevermind that you introduce $x$ and $f$ to mean the same thing). The object on the left has $t$s that indicate that the whole expression is evaluated at some yet unspecified value $t$, but beware that if you just e.g. replaced $t=1$, $f(1)$ would be a number, maybe $6$, $\delta(1-t_0)$ only barely makes a little sense if at all, and who knows what $6*\delta(1-t_0)$ would be, probably not equal to $$\big(f(t) * \delta(t-t_0)\big)\big|_{t=1} = f(1-t_0).$$
This notation landmine explains why your attempt failed. If we now subscript by $z$ to mean translation by $z$, so that $f_z(t) = f(t-z), \ \delta_z(t) = \delta(t-z) $, etc. (in particular what you called $f_d$, I call $f_{-t_0}$ and $h = \delta_{t_0}$), then by applying the above correct result at the point marked ✅ for the function $f=g_{t_0}$,
$$ g(t-t_0)* \delta(t-t_0)=g_{t_0}(t) * \delta_{t_0}(t) \overset{✅}= g_{t_0}(t-t_0)  = g(t-2t_0)$$
We see that in general, $g(t-t_0)* \delta(t-t_0) \neq g(t-t_0)$.  This happened because you cannot treat the $t$ on the left as something that can be substituted with $t-t_0$.
Its  unambiguous if one writes something like
$$ [f*\delta(\cdot-t_0)](t), [f*\delta(\cdot-t_0)](1), \text{etc}.$$
but there is a certain naturality to writing it in the way you did, which is OK if you "know the rules of the game".
