4 ms·
Funny, coincidentally I recently read a paper [0] arguing (among other things) that truth values should be completely removed--that for software engineering the
by caleb-allen 7y ago
Funny, coincidentally I recently read a paper [0] arguing (among other things) that truth values should be completely removed--that for software engineering they are largely useless and cause mistakes.
The argument goes that a True False value will "mean" different things in a context, but then when trying to model a complex entity there are inevitably leakages of definitions.
For formal verification of existing Boolean logic, however, it reasons that "verifying" our truth values would be very helpful, by exploring and modeling the state space that is made up by the composition of multiple booleans. This is very interesting in that regard!
[0]: Formalizing common sense reasoning for scalable inconsistency-robust information integration using Direct Logic Reasoning and the Actor Model, Carl Hewitt. https://arxiv.org/pdf/0812.4852.pdf https://arxiv.org/pdf/0812.4852.pdf
- nosianu 7y ago> The argument goes that a True False value will "mean" different things in a context Well, it is the same with numbers anytime they mean something in the real world. One would have to add "unit types" to numbers and check that x + y causes a type error when a "nr. of humans" is added to a "nr. of rainy days", to give an example. If that is represented by adding two integers there won't be an error. In software comparing apples and oranges works fine as long as you use numbers...
- zokier 7y agoIsn't that the whole point of nominal type systems that you shouldn't be "comparing apples and oranges"
- imoverclocked 7y agoYeah, but type systems are not fool proof. eg: I've seen plenty of Java code which blindly passes String objects around that eventually get parsed into json/int/long/etc. At that point, the type system has been silently circumvented. "Nothing is foolproof given a sufficiently talented fool."
- deleted 7y ago[deleted]
- lenzm 7y agoDatabase generated IDs are a great example. We often use integers because it is convenient - but there's no reason you should be able to add two together.