Hacker News new | ask | show | jobs
by MauranKilom 1888 days ago
I read this as the "specifications" in "requirements and specifications" for e.g. software projects. For example, "there should be a button that pulls in new data when clicked". That's generally pretty different from formal/mathematical specifications.
3 comments

Even those kinds of specifications don't compose well. For instance, if you have a solved problem, and you add a requirement, you don't really have a solved problem anymore, and the new solution may look extremely different from the old one.
I’d suggest that they are in fact the same thing, and differ only in the level of formality... somewhat akin to the difference between machine code and interpreted scripts.
An informal spec is about getting your intention across to humans who will interpret it in some reasonable way and fill in any gaps. It’s not math or a computer program at all.

David Chapman makes a distinction between rational and reasonable behavior, and it’s more like his “making breakfast” example:

https://metarationality.com/reasonableness-aspects

Both machine code and interpreted scripts are executable, and so they have a formal meaning, at least for a given machine or interpreter.

They both feel as "formal" as the other, and much more so than a spec written in e.g. English.

Uhm, are they that different, though?

For instance, you can formally express at least a part of the "there should be a button that pulls in new data when clicked" specification. In LTL, that would be something like something like:

[] (buttonClicked -> <>newDataPulled)

(Notice that I switched from actions (click, pull) to states (clicked, pulled), as LTL is a state-based logic.)

Yes.

E.g. according to the article "Specs are math" <-- not in my experience