# Revision history [back]

### subs: why it accepts one form but not the other?

Hello,

Consider the following expression

y=function("y")(x)
z=-3*diff(y,x)/y^4


I would like to replace diff(y,x)/y^4 by, say, 2/5

I tried,

z.subs(diff(y,x)/y^4==2/5).show()


But this didn't work (threw back at me the original expression)

I tried to replace y^4 by 5, and to do that I did

z.subs(y^4==5).show()


It didn't work. However,

z.subs(1/y^4==5).show()


worked!. I am confused!

If I try to replace just y with 5^(1/4)

z.subs(y==(5)^(1/4)).show()


it works again.

To get what I want I finally did

z.subs(diff(y,x)==2).subs(1/y^4==5).show()


I got this by trial and error. Shouldn't the first one

z.subs(diff(y,x)/y^4==2/5).show()


have worked? What is the logic behind this that it didn't work?

### subs: why it accepts one form but not the other?

Hello,

Consider the following expression

y=function("y")(x)
z=-3*diff(y,x)/y^4


I would like to replace diff(y,x)/y^4 by, say, 2/5

I tried,

z.subs(diff(y,x)/y^4==2/5).show()


But this didn't work (threw back at me the original expression)

I tried to replace y^4 by 5, and to do that I did

z.subs(y^4==5).show()


It didn't work. However,

z.subs(1/y^4==5).show()


worked!. I am confused!

If I try tried to replace just y with 5^(1/4)

z.subs(y==(5)^(1/4)).show()


it works again.worked! so it cannot replace y^4 with 5, but it can replace y with (5)^1/4.

To get what I want I finally did

z.subs(diff(y,x)==2).subs(1/y^4==5).show()


I got this by trial and error. Shouldn't the first one

z.subs(diff(y,x)/y^4==2/5).show()


have worked? worked in the first place? What is the logic behind this that it didn't work?