Evaluating Abs'[2 x] gives different results than evaluating D[Abs[2 x], x]

I noticed the following difference

Assuming[x ∈ Reals, FullSimplify[D[Abs[2 x], x]]]

(* 2 Sign[x] *)

Assuming[x ∈ Reals, FullSimplify[Abs'[2 x]]]

(* Sign[x] *)


While it is clear that the first line of code above returns the correct result, I wonder why the call of Derivative fails? A little further investigation shows that

f[x_] := Abs[2 x]
f'

(* 2 Derivative[1][Abs][#1] & *)


which is correct and implies that the difference might come from with or without SetDelayed. But I still do not fully understand why the second code failed.

-
I believe Mathematica is treatingAbs'[2x] as Abs'[u] which when simplification occurs Sign[u]=Sign[2x]->Sign[x]. This can be seen if you substitute x^3 for 2x – ubpdqn Oct 25 '13 at 8:13
@ubpdqn You are right, thanks. – saturasl Oct 25 '13 at 21:27

It is easier to see what is going on if we look at a function that doesn't need any assumptions about its domain.

D[Sin[2 x], x]

2 Cos[2 x]


Now let's look at what is almost the full form of Sin'[2 x]

Derivative[1][Sin][2 x]

Cos[2 x]


That happens because this 2nd form is equivalent to (Derivative[1][Sin])[2 x]

-
Thanks. According to my understanding, Derivative carries out only parts of the entire chain rule; whereas D actually calls Derivative multiple times to carry out the entire chain rule. This is the relation between D and Derivative. Please correct me if I am wrong. – saturasl Oct 25 '13 at 21:26