32 comments

[ 4.6 ms ] story [ 43.3 ms ] thread
An important context here is the one in which George Boole was noticing the patterns that he created an algebra out of; he was actually analysing the Chinese book I Ching... The fact that context is so lost by the amplification of what is, itself, a distillation is, as you rightly argue, the real issue. Not sure what the answer is, but it probably isn't C^* algebras.
fp folks trying to reinvent probability theory is hilarious
How about you demand context is always attached to "boolean logic"? Because what author is describing is just plain bait and switch, nothing related to boolean algebra.
In one respect, boolean logic is popular because of bits. If we had ternary processors, ternary logic would be more popular.

In another respect, boolean logic is popular because it's easy to reason about. The truth tables are relatively small in size and quantity. Not the case with ternary.

Ternary is probably way better at modeling the real world, but the complexity could make code hard to understand. Maybe that can be solved.

That said, boolean logic is more expressive than I think the blog post gives it credit for because it's usually only a part of the code. Like, it gets used a lot in SQL, where you're reasoning about with several columns. So, yeah, it's binary thinking on each dimension, but there are N dimensions.

The alternative presented is intuitionist logic, which is practically what in the computing world? Where is it used? Or where could or should it be used? I guess it can be represented in lamba calculus...

Boolean algebra is like a NAND gate. It’s simple, but it can construct any other system you want.

You can reduce any statement to a series of true/false statements. Now, it may take a lot of statements, but that’s not the point. The point is to have the base be as simple as possible

stating a binary choice of options to escape binary thinking ... ironic , intentionally ?
My wife does not care whatever excuse I have to why the kitchen is not in order when she comes home.

I failed her anyhow.

Should I tell her that boolean logic is not applicable on my intentions?

"Each statement can be true in one context and false in another."

Is this statement itself true in all contexts, or only in some contexts? If it's true in all contexts, then we need an explanation for why this specific statement gets an exception from the rule. If it's false in some contexts, then there exist some contexts where absolute truth/falsity exists, so we can go ahead and use boolean logic just fine in those contexts.

I think this question of what sentences can have truth value attached to them is significant. The liar paradox (a sentence in a formal language stating itself to be false) clearly doesn’t have a truth value. A statement that a specific program halts, however, does seem to be either true or false, regardless of whether or not a general algorithm exists that can answer such questions. In a sense, all sentences that fall on the arithmetical hierarchy seem to me to intuitively have a Boolean truth value (in the standard model, which we assume corresponds to what a program would actually “do” if we ran it forever).

Set theoretic questions like AC or CH are much more difficult for me to intuitively grok in the same way, because they don’t seem to “obviously” be either true or false. You can take either and still end up with a (presumably) consistent theory.

This blog is one of the most confused and inaccurate collection of writing that I recurrently find on HN. The account spams a deeply flawed blog post about 'Category theory illustrated' (also referenced from this article) where it misstates central theorems in CT and this 'Case against boolean logic' article, which promises an alternative to Boolean logic, but never formulates one.

The article instead gestures toward a heavily conflated 4 epistemic 'categories' (True, False, Unknown / unknowable, Meaningless / senseless) that conflate semantic truth values, epistemic states, and linguistic well-formedness.

You can represent all of these distinctions inside ordinary first-order logic. You can have:

Meaningless(fact)= True/False

Unknown(fact) = True/False ...and so on and so forth.

Where's the escape from boolean logic now? If anything, it points you to the fact that boolean logic is much more flexible than the given categories, which box you, from infinite possibilities into a few. Ironically, this could be abused even better by authority. An institution could simply say 'Human rights is a meaningless question, in the context of progress and prosperity. Asking us if we're for or against it is binary thinking.'

The biggest blind spot however is the idea that a proof is a universal tool for getting to truth. This completely dismisses the central thesis in philosophy and science of analytic-synthetic distinction. Intuitionistic proof theory works for analytic claims (like math) because their truth is self-contained. But synthetic claims (clamis about how the real world actually is) cannot be proven with mathematical certainty, but only supported, challenged or revised via empirical observation.

By trying to map formal proof theory directly onto politics and psychology, the author ignores how empirical truth actually works, e.g. gravity isn't proven like a theorem. as Popper noted, scientific theories are falsifiable and subject to revision, shifting from Newtonian to relativistic contexts while reality stays the same.

The normal term for the logic that has two truth values, the law of non-contradiction, and the law of the excluded middle is 'Classical Logic' which dates back centuries before George Boole. Non-classical logics which deny one or more of three properties that I've mentioned also exist
Ternary logic seems to be widely regarded as useful in computation, because it’s implemented in several programming languages. For example, in Julia the “missing” value supplements true and false to form a ternary system.
Logic is identification of that which exists. Thus, a proposition either does correspond to reality or doesn’t at all. There is no partial semi-truths: the moment a concept or proposition ceases to describe reality, it becomes false.

Contexts don’t change much. They are merely implicit knowledge, subject to the same binary standard. They don’t change the truth, only applicability.

Mentioning Gödel here is not just cliche, it’s irrelevant. Gödel is about artificial formal deductive systems. They are not a claim to exclusive philosophy.

In addition to the points other commenters here have made, there's a large number of different logics building up from boolean logic—predicate calculus, various modal logics, and more. So rather than argue it's wrong or useless, it seems better to see it as the lowest rung on a ladder, and if boolean logic ain't cutting it, then take a step up the ladder.
Boolean logic/black-and-white thinking is convenient for simple processing. But the world isn't simple.

If you just consider time, there are statements whose truth you can't determine: "It will rain tomorrow" (BTW, tomorrow "tomorrow" will be the day after tomorrow)

In biological Boolean Networks, this is a long standing form of debate, particularly the last line: "And without the correct context, the statement might not make sense at all."

Should we build Boolean networks that represent biological systems that have specific configurational requirements or should the model itself encode the limited context?

Often we choose something in-between, where the Boolean model of our biological system has some configurational choices (the context), but we can modify the context to see how the system operates in non-standard conditions.

All of this is with the hope that the ways that the model produces contradictions and unexpected behaviors can inform how our reality produces contradictions and unexpected behaviors (most commonly cancers). The states of the representative system, the Boolean network, may make no sense, and we can diagnose why with a Boolean network, when it would be neigh impossible to understand that odd state in the real system.

This may be the one of the differences between engineers and lawyers
Someone needs a new hobby. Goodness me. Possibly bait?
This is the second time I’ve heard of “Platonism” referring to false dichotomies, and as someone who has casually read a bit of Plato I am very confused. Am I misunderstanding or is this a common technical term?
> We might not be able to construct neither

So we might be able to construct either, but they meant to say the opposite. Am I to take criticism of Boolean logic from someone who doesn't understand negation?

Interestingly, George Boole did much of his work on Boolean logic in Cork, Ireland. He moved there as a math professor in the university in the depths of the great famine around 1850.
Nitpick: TFA discusses binary logic, i.e. logic with only 2 truth values, not Boolean logic, which is a particular form of binary logic, and which does not match the description from TFA.

The innovation brought by George Boole to logic was that he replaced the traditional logical values "true" and "false" with the numbers "1" and "0" and he identified the traditional logical operations with special cases of arithmetic operations.

This allowed him to view certain forms of logical reasoning as solvable by a kind of mechanical computation. Because of this, his work had an important influence on the development of automatic computers.

The modern fashion in computing science of calling a data type with the values "true" and "false" as "Boolean" is a misnomer that has nothing to do with George Boole, and which has its origin in the ALGOL 60 report and in its preliminary variants, which misused the term "Boolean". The IBM FORTRAN IV language did better than ALGOL 60, by calling the data type with "true" and "false" values as "logical", not "Boolean", but unfortunately most later languages used the ALGOL 60 term, not the FORTRAN IV term.

An example of a programming language with true Boolean logic is APL, where the logical truth values are the numbers "1" and "0" (which is very handy in expressing conditional operations on arrays), while all the programming languages that use "true" and "false" do not use Boolean logic, despite claiming to do so.

I agree with TFA that for dealing with most practical situations binary logic is insufficient and ternary logic is the minimal tool, if not using even more complex kinds of logic, like modal logic or probabilistic logic.