| ▲ | spenrose 6 hours ago | |
As usual, this paean to deductive reasoning (“formal methods”) leaves out its fundamental limit: how closely do the postulates and definitions fit the domain they purport to map? (“In theory, there is no difference between theory and practice. In practice ...”) My guess is that Jane Street maintains large code bodies where the mapping is 1:1, because the purpose of the code is to implement a deterministic algorithm. Many other coders work in such areas. But millions of us don’t: most UIs, most exploratory work, etc. There is a movement parallel to formal methods to define acceptance criteria at high resolution but not logico-mathematically, which at least grapples with the mapping problem but can’t resolve it where the map isn’t the territory, which is most places. Has Google’s results page, with its extremely evolved internal optimization frameworks really hit an optimum? Could that prototype you whipped up to capture a hazy idea have better illustrated it? These questions are best answered by looking outside the system to what the system serves. | ||
| ▲ | sn9 12 minutes ago | parent | next [-] | |
Most UIs in practice boil down to state machines which are extremely amenable to formal verification. Hillel Wayne's writing is a good starting place to learn more: https://www.hillelwayne.com/formally-specifying-uis/ | ||
| ▲ | benlivengood 5 hours ago | parent | prev | next [-] | |
Formal methods are precisely for the domains where the semantics are well-defined. Logical circuits (a lot of CPU components get formal verification), kernels, protocols, parsers, compilers, cryptography, security frameworks, concurrency primitives, etc. all benefit a lot from verification. | ||
| ▲ | petra 5 hours ago | parent | prev [-] | |
Google's results page isn't well defined. But probably 90%+ of the code below it is well defined. And in some cases, where the result isnt well defined, it can be learned, so it's not about sitting and thinking what would make sense. | ||