Theory of differential equations