3 ms·
The thing that intrigued me the most about Prolog was that true and false are not opposites. True means it could prove it, but false means it couldn’t prove it
by pkteison 8y ago
The thing that intrigued me the most about Prolog was that true and false are not opposites. True means it could prove it, but false means it couldn’t prove it in time, not strictly necessarily really false as in not true. Thinking about that distinction, that you can have a language where the default logic can’t be used for Boolean algebra, blew my mind when I was in college and has been fun to ponder ever since.
- taneq 8y agoSounds more like true and null? Or does it not definitively disprove things?
- YeGoblynQueenne 8y agoProlog uses the closed world assumption: if something cannot be proven, it is considered false. https://en.wikipedia.org/wiki/Closed-world_assumption https://en.wikipedia.org/wiki/Closed-world_assumption
- tom_mellior 8y agoThe parent is mistaken. A "false" answer definitely means that no (further) solution exists. You can ask for time or depth limits in practical Prologs, but in basic standard Prolog "false" doesn not mean "could not prove it in time". Of course some things cannot be disproven, and in those cases (again, if you don't request otherwise) you will get nontermination.