Consider the following:
conv1 := (x) -> eval(x, tau*f(t) = f(-t)): # Using eval
conv2 := (x) -> algsubs(tau*f(t) = f(-t),x): # Using algsubs
expr := Vector([
I would have expected both components of expr to have been transformed, just as they do if algsubs is used, but the second component containing the imaginary unit I as well is not. Why not? Note that if I is replaced by any real number, then the substitution works quite as expected. Why should going from real to complex numbers change things fundamentally?
Additional note: Even though algsubs works above, I would like to avoid using it because the actual system I have contains more than a hundred substitutions to (potentially) be made, and algsubs can only take one at a time, in constrast to eval which in principle can take indefinitely (though finitely, of course) many at a time.
PS: In case the reader is wondering, tau is supposed to be a time reversal operator acting on some time-dependent function f(t).