23.07.2021
Thus, when we describe a language, we should pay particular attention to the means that the language provides for combining simple ideas to form more complex ideas. Every powerful language has three mechanisms for accomplishing this:
Primitive expressions, which represent the simplest entities the language is concerned with,
Means of combination, by which compound elements are built from simpler ones, and
Means of abstraction, by which compound elements can be named and manipulated as units.
Here is a claim: education about engineered systems should always explicitly follow the above threefold pattern.
Primitives  Combination  Abstraction  

Mathematics  Axioms  Logical Rules 

Sciences  Observations  Statistical Methods  Models 
Electronics 


Circuit 
Finance 


Contract 
… 
This pattern can also be thought of in terms of ‘combinator libraries’. Given a particular topic wouldn’t one love to have such a library? Especially once one realizes it would directly have nice graphical representations?
Set out to demonstrate this, let us consider a wellknown construct, the Pythagorean Theorem. One way to make the axioms explicit is to look at the proof described in
This description is well suited since the whole book is well structured with numbered references. By following these references, one is able to construct a directed graph. Below is what we get when blindly following them. Nodes are labeled just like in the book, with the top node (without incoming arrows) mentioning its name: the Pythagoras Theorem. The bottom of the graph contains the required axioms, from A1 to A9.
This graph needs some more work before being useful. In the next parts, we will go over general techniques to improve its readability, and more…
Sussman, G. J., Abelson, H. (1985). Structure and Interpretation of Computer Programs. The MIT Press.
W. Schwabhäuser, W. Szmielew, A. Tarski (1983). Metamathematische Methoden in der Geometrie. Springer, Berlin, Heidelberg.