Suppose you find a machine on your doorstep called the Burritron that makes any kind of single filling burritos you want. It needs nothing as an input except another machine called the Foodinator. Foodinator can transform a stone into a type of filling you need for your burrito. Each type of foodinator can only convert stone into one type of filling. For example, the Bean Foodinator can transform a stone into beans. Meat Foodinator can transform a stone into cooked meat. A Do Nothing Foodinator does nothing to the stone and just gives it back as it is.
You want to figure out how the Burritron works, so you get a Bean Foodinator that can convert a stone into beans, and plug it into the Burritron. It pops out a burrito with just red bean filling in them.
You still want to figure out how the Burritron works, so you get a Do Nothing Foodinator that does nothing to stone and plugs it into the Burritron. It pops out a burrito with a stone in it! A stone burrito.
So here is your reasoning about how the Burritron works:
- Within the Burritron there must be a stone burrito otherwise plugging in the Do Nothing Foodinator cannot make the Burritron produce a stone burrito.
- The Burritron must use the Foodinator to make the fillings because that is the only way it can convert a stone into the filling we need.
Thus even though you did not know how Burritron is made you now know enough to reverse engineer the Burritron.
More importantly, you have now “understood” a stone burrito in terms of normal burritos. You now just need to figure out how each of foodinators do their job and you are all set.