Wednesday, April 29, 2009
Faulty Logic
Let's face it: logic isn't very convincing. There are all kinds of reasons for this. At least one is linguistic: one can employ abstruse language in logical arguments, and it's a conversational turn off. Another is social: often, people who wield logic in conversation do so with about as much finesse as a two-year-old with a stick. But leaving aside the practical constraints, an interesting question remains:
As a programmer, I'm also aware of limitations. After fifteen years writing code, I'm still painfully prone to writing bad control flow statements (in software, we call them "bugs"). When I'm writing code, this results in hours of debugging; unfortunately, in conversation, people are rarely willing to spend hours debugging sentences. If they are willing, we tend to call them "philosophers" and keep them far away in University, writing books for the rest of us to blog about.
Logic is prone to bugs that are difficult to find, even when the user attempts to encode statements correctly. When it's wielded maliciously, it's even worse. It's perfectly easy to obfuscate the intent of code, and consequently, of logic.
This is all before we come to an important internal flaw of logical systems, which is that they only come in three varieties:
Huh?
Yeah, sadly this is true. Consider it a bug in existence. Any system of rules either leaves out important cases, or contradicts itself, or is so facile as to be largely useless [1]. Luckily for all of us, it doesn't really matter. Logic is a clever hack, which seems to work most the time.
But it does mean that when you "prove" something to me using logic, I'm going to take it with a grain of salt. Even if you've employed logic correctly, I'd have to spend quite a lot of effort to determine whether the logical system you've employed is consistent, and after I did that, I'd have to give up, since self-consistency is one of the things that a system of rules can't prove.
Ouch!
[1] http://en.wikipedia.org/wiki/G%C3%B6del%27s_incompleteness_theorems
How effective is logic?For some purposes, there is no suitable replacement. I'm a programmer, and if I couldn't rely on logic for control flow in software, I wouldn't get very far with if-then-else statements. Likewise building circuits- in fact, Claude Shannon demonstrated way back in 1937 that digital circuits and Boolean logic are equivalent.
As a programmer, I'm also aware of limitations. After fifteen years writing code, I'm still painfully prone to writing bad control flow statements (in software, we call them "bugs"). When I'm writing code, this results in hours of debugging; unfortunately, in conversation, people are rarely willing to spend hours debugging sentences. If they are willing, we tend to call them "philosophers" and keep them far away in University, writing books for the rest of us to blog about.
Logic is prone to bugs that are difficult to find, even when the user attempts to encode statements correctly. When it's wielded maliciously, it's even worse. It's perfectly easy to obfuscate the intent of code, and consequently, of logic.
This is all before we come to an important internal flaw of logical systems, which is that they only come in three varieties:
- Incomplete logical systems.
- Contradictory logical systems.
- Excessively weak logical systems.
Huh?
Yeah, sadly this is true. Consider it a bug in existence. Any system of rules either leaves out important cases, or contradicts itself, or is so facile as to be largely useless [1]. Luckily for all of us, it doesn't really matter. Logic is a clever hack, which seems to work most the time.
But it does mean that when you "prove" something to me using logic, I'm going to take it with a grain of salt. Even if you've employed logic correctly, I'd have to spend quite a lot of effort to determine whether the logical system you've employed is consistent, and after I did that, I'd have to give up, since self-consistency is one of the things that a system of rules can't prove.
Ouch!
[1] http://en.wikipedia.org/wiki/G%C3%B6del%27s_incompleteness_theorems
Subscribe to Posts [Atom]