In a previous post we have discussed how causal models may be related to each other at different levels of abstraction. In particular, following the work of Rischel, we reviewed how we can precisely define abstraction, model it using category theory, and evaluate abstraction error.
In this notebook we focus on the definition of abstraction, we decompose it, and we analyze the properties and the implications of this definition. We summarize our observations and highlights some limitations in this approach. Finally, we illustrate the idea of abstraction concretely by implementing a class to deal with abstractions between SCMs.