| ▲ | sigbottle an hour ago | |
Basic problems such as change over time and interoperability are reasons why formal methods break. Formal specification presumes a priori a great deal of control over the world in general, especially the more you move away "from nature" and more towards what a human might want to instantiate themselves. Formal methods often try not to deal with things they don't "understand", or try to abstract the parts that "don't matter" away. But inevitably it changes, and the repsonse to that change is to subsume more and more into your own ontology so you understand the nuances. Or you simply control all interoperable endpoints, and so the nuances vanish away, because you're in control. This is great when the battle is against nature. "Nature", for all its ambiguities, we generally can assume to be stable. What about with human society? In some sense, there might not be much to formal methods if you could solve the underlying capability of getting everybody to agree on the semantics in the first place, and have no desire for change at all. But that is an absurdly strong requirement. Formal methods is constantly a race to try and find good abstractions and then breaking them. I don't think there really is a way out of this, but I'm not that creative :/ | ||