At school the teacher always said that if we have second order ode and only one initial conditions (say y'(0)=0 or y(0)=0) then the solution should have one constant of integration in it.

And if we have no initial conditions, then the solution should have 2 constants of integrations in it.

And if we have two initial conditions, then the solution should have zero constants of integrations in it.

In this example, Maple is given second order ode with one IC. But the solution it gives when asked to solve it explicit, has no constant of integration in it at all.

When asked to solve it using implicit, then the constant of integration shows up.

Both solutions actually verify to be fully correct using odetest. So it looks like the solution as explicit is particular solution and not a general solution.

Why is that? Why it did not give general solution when asked to solve the ode as explicit?

Maple solves this first order ode correctly and solution verifies OK. The solution is explicit and has RootOf. I asked it to solve it using dAlembert method to compare with my own solution using dAlembert.

Next I called dsolve on same ode and IC but asked for implicit solution now instead, then called solve on the implicit solution to see if it will give same solution y(x) as before (with RootOf). But instead solve gives this internal error

Error, (in evala) reducible RootOf detected.

Next called PDEtools:-Solve to see if it will give same error. It did not give error. But it also could not solve for y(x) either.

Any one has any idea why this error is generated by solve? Is this expected or not?

I was expecting same result as first call to dsolve which returned explicit solution. And why is PDEtools:-Solve do not generate same error? It must have run through different code path.