Dt[x] /. Dt[h_] :> h (*surprisingly returns Dt[x], not x*)
It seems to work with any other function than Dt.
Log[x] /. Log[h_] :> h (*returns x*)
Also I can do the substitution if I don't use a pattern :
Dt[x] /. Dt[x] -> x (*returns x*)
Ridiculously enough, I can make it work if I replace Dt
with a dummy variable first :
Dt[x] //. {Dt -> foo, foo[h_] :> h} (*returns x*)
What am I missing here?