@C_R

It is too time-consuming to answer about the details, but here are more comments. I think your approach,* "based on observations*", is the right approach, always. The page **?dsolve,setup** is relevant only for those who want to have a glimpse on how dsolve is coded, its logic, and perhaps change the way it works. It is not a page of interest for many people. Its existence, perhaps, is more related to my academic origin/teaching: do not present black boxes, and never fall for "I know better". For the same rasons you have the **PDEtools:-Library** and its help page. Regarding the formulation known as d'Alembert's method, this method is present there, under **`dsolve/methods`[1, high_degree]**. The page on dsolve's setup could perhaps say "everything starting with 1 in eq.(1) of the page is about methods for 1st order ODEs".

Regarding PDEtools: I wrote this package before moving to Canada, then immersed myself into coding a new ODE solver and the symmetry methods for ODEs, followed by extending **PDEtools** with symmetry methods for PDEs, finally rewriting the **DifferentialAlgebra** package. I suppose that due to this historical sequence these two packages **PDEtools** and **ODEtools** (this one exists only on background, invisible) are strongly intertwined, and connected with the three differential elimination packages mentioned in **PDEtools:-casesplit**.

In the end, once you realize that from a solving-logic point of view all these things are differential equations of different orders and number of independent variables, the distinction between ODEs and PDEs (or even non-differential equations) is of little relevance: the majority of the tools for PDEs are of use for ODEs. And some commands are indeed present in both **DEtools** (the visible package for ODEs, not PDEs) and **PDEtools**, like **casesplit**, **dpolyform**, **diff_table**, **dsubs**, ... More important: the subroutines presented in **?PDEtools,Library**, are used all around in the ODE code.

Regarding your last question, there is a help page, **?dsolve,education**, that presents most things, though indeed not an example as the one discussed in this post (branches and related stuff). It may be good to add such an example. Still, the documentation for differential equations is already so large and detailed that adding more may help in some way but, on the other hand, adds clutter. In part, for that reason, I wrote the **odeadvisor** and its help pages together with **dsolve** - trying to provide a more structured way to peek at what **dsolve** does. Anyway, I will think about one more example.

Finally, I share your impression that "studying ODEs with a textbook" does not make sense. In my case, I learned about symmetry methods to then discover the standard classifications shown in textbooks (mainly Kamke's and Zwillinger's) and note that they were only a minimal subset of particular cases of symmetries or integrating factors.

Edgardo S. Cheb-Terrab

Physics, Differential Equations and Mathematical Functions, Maplesoft