dy(x)/dy



>> I try to take the next derivative:
>> d/dy(y(x))
>>
>> (%i) d: diff(y(x),x);
>> (%o) d/dy(y(x))
>
>I guess you confuse diff(y(x),x) and diff(y(x),y).

Yes, sorry about the typo. 
What I meant was why d: diff(y(x),y) is not evaluated as 1


>> Why?
>> I expect this expression to be 1, like in the following:
>> (%i) d: diff(y,x);
>> (%o) 1

>  diff(y,x) => 0
>
>
>unless you assigned y : x + %c.

Hmm, I must be tired. Again, I meant diff(y,y) will be 1, but 
diff(y(x),y) stays unevaluated

>> I then try to fix this by substitution:
>>
>> (%i) d: subst(y,y(x),d);
>> (%o) 1
>>
>> but this does not work for double derivatives:
>> (%i) d: diff(diff(y(x),y),x);
>> (%i) d: subst(y,y(x),d);
>> (%o) d^2y/dxdy

>  diff(y(x),y) => 'diff(y(x),y,1)
>  diff(y(x),y,2) => 'diff(y(x),y,2)
>  diff(y(x),y(x)) => 1
>  diff(y(x),y(x),2) => 0

>> Why this behaviour and how can I make it work the way I want
>> without explicitly declaring dependencies?

>  depends(y,x) ?

that contradicts the statement:
>> without explicitly declaring dependencies?

Actually, y does not depend on x, but dy/dx does exist in my problem (determining nth prolongation in symmetry analysis). The alternative is using 'diff(y,x), but then
'diff(y,y) will also stay unevaluated, unless I build in checks to determine what the second
argument is. Maybe I should use a defrule and treat dy/dx as something special.

Regards,
Nijso