Great points all around, thanks for the reply.<p>Mathematics encapsulates at proof level. I don&#x27;t have to care how Pythagoras&#x27;s theorem may be proven, I know it holds for every right triangle and I can build from there. It&#x27;s a device for encapsulating the proof state space search, saving time when building more complex theories.<p>Re: abstraction, with any name [function] comes a set of properties we know they are true, either explicitly specified or implicitly derived from common sense logic. I don&#x27;t have to care how the sort function is implemented, I only have to know that given an input, it produces an output in a certain relation with the input. From there, I can build more complex programs faster than if I had to write the sort function myself.<p>Once there are functions with a specification, logically speaking one can freely substitute one for another, as long as the specs are in the correct logical implication relation.<p>Excuse me if I&#x27;m a bit baffled of what exactly the intellectual content of OOP is.