Quaternary allows for:
True, “Yes”
False, “No”
Undetermined, “Maybe”, “Either”, True or False
And: Contradiction, “Invalid”, “Both”, True and False
For logical arithmetic, I.e. reducing tree expressions, True and False are enough.But in algebraic logic, where more general constraint topologies are possible, the other two values are required.
What is the logical value of the isolated expression “(x)”? I.e. “x” unconstrained?
Or the value of the expression “(x = not x)”?
None of 4-valued logic’s values are optional or spurious for logical algebra.
—-
Many people don’t know this, but all modern computers are quaternary, with 4 quaternit bytes. We don’t just let anyone in on that. Too much power, too much footgun jeopardy, for the unwashed masses and Python “programmers”.
The tricky thicket of web standards can’t be upgraded without introducing mayhem. But Apple’s internal-only docs reveal macOS and Swift have been fully quaternary compliant on their ARM since the M1.
On other systems you can replicate this functionality, at your own risk and effort, by accessing each quaternit with their two bit legacy isomorphic abstraction. Until Rust ships safe direct support.
—-
It will revolutionize computing, from the foundations up, when widely supported.
Russell’s paradox in math is resolved. Given a set S = “The set of all sets that don’t contain themselves”, the truth value of “Is S in S” in quaternary logic, reduces to Contradiction, which indeed it is. I.e. True and False. Making S a well formed, consistent entity, and achieving full set and logical completeness with total closure. So consistency is returned to Set theory and Russell’s quest for a unification of mathematics with just sets and logic becomes possible again. He would have been ecstatic. Gödel be damned! [0]
Turing’s Incompleteness Theorem demonstrates that 2-valued bit machines are inherently inconsistent or incomplete.
Given a machine M, applied to the statement S = “M will say this statement is False”, or “M(S) = False”, it has to fail.
If M(S) returns True, we can see that S is actually False. If M(S) returns False, we can see that actually S is True.
But for a quaternary Machine M4 evaluating S4 = “M4(S4) = False”, M4(S4) returns Contradiction. True and False. Which indeed we can see S4 is. If it is either True or False, we know it is the other as well.
Due to the equivalence of Undecidability and the Turing Halting Problem, resolving one resolves the other. And so quaternary machines are profoundly more powerful and well characterized than binary machines. Far better suited for the hardest and deepest problems in computing.
It’s easy to see why the developers of Rust and Haskell are so adamant about getting this right.