
Many-valued logic - hhs
https://en.wikipedia.org/wiki/Many-valued_logic
======
mikorym
Many valued logic arises quite naturally in category theory. If you take usual
set theory and change the sets to fibred sets you can easily get a subobject
classifier with, e.g., four truth values. However, these don't tell us much
about "truth" in the social sense.

Actually, my impression of what category theory has brought to mathematics is
that structure _itself_ seems more fundamental than logic; it is as though
logic arises because of structure too (and not just the converse of logic
leading to structure).

~~~
anongraddebt
There are some semi-tenuous, but nevertheless interesting connections between
this metamathematical line of thought and contemporary work on "grounding" in
metaphysics.

I've long held the suspicion that there is some critical unargued for
assumption in many of the relevant academic circles, here, that if reality
'bottoms out' somehow it has to bottom out in a monadic fashion. I've often
wondered, why can't it be structure all the way down?

\----

I should add that many/most grounding theorists likely hold some sort of
monadic view. I only mention grounding because it is seemingly closer to a
'structure all the way down' view than the predominant views within analytical
philosiphy on what is fundamental.

~~~
mikorym
I am not familiar with this, do you have links to the basics of what grounding
theory is?

~~~
anongraddebt
My pleasure. The first three are entries in the Stanford Encyclopedia of
Philosophy. I suggest reading the first link (entry titled "Fundamentality")
first, as that will help provide context. The second link (entry titled
"Metaphysical Grounding") provides a somewhat dated, but solid overview of the
literature and is what you should read right after "Fundamentality". I say
somewhat dated only because the entry is from 2014, and 'grounding' sort of
took off around 2009 and has accelerated past 2014. The third link (entry
titled "Ontological Dependence") can be skipped, but if you want additional
conceptual and historical context, then I suggest blitz reading it.

The rest of the links are to books or papers/articles which I think you might
find interesting.

The very last link is to a rather obscure paper (I randomly found it a year
ago) from 1997 that is not on grounding, but is related in some way to the
'structure all the way down' perspective I suggested. The papers' argument is
incomplete, attempts to do too many things at once, and presents a rather
naive and elementary framework for a 'structure all the way down' view.
However, it is (in my opinion) a rare gem. It raises a number of important
questions and issues that have (to my knowledge) not yet been addressed by
anyone within academic philosophy, or other relevant disciplines for that
matter. These questions and issues go unaddressed because the monadic
assumption(s) is, seemingly, so deep seated and fundamental to most people.

The way I see it, either 'things'/'substances'/'elements' are primary and
'relations' are derivative/secondary, or they are on equal footing, or
'relations' are primary and 'substances' are derivative/secondary. There are
only three possibilities. I'm inclined to believe either the second or third
are true. If you put a gun to my head and made me choose one, I'd say the
third is true.

Stanford Encyclopedia of Philosophy:

[https://plato.stanford.edu/entries/fundamentality/](https://plato.stanford.edu/entries/fundamentality/)

[https://plato.stanford.edu/entries/grounding/](https://plato.stanford.edu/entries/grounding/)

[https://plato.stanford.edu/entries/dependence-
ontological/](https://plato.stanford.edu/entries/dependence-ontological/)

Papers:

[https://www.google.com/url?sa=t&source=web&rct=j&url=https:/...](https://www.google.com/url?sa=t&source=web&rct=j&url=https://pdfs.semanticscholar.org/bbb7/d5b6d877d0fd4667c4744d9947fdabbd2d20.pdf&ved=2ahUKEwjYr-K4huriAhULna0KHayvBy0QFjAAegQIARAB&usg=AOvVaw17sV23uYkumL6hCv1wF9NI)

[https://www.google.com/url?sa=t&source=web&rct=j&url=http://...](https://www.google.com/url?sa=t&source=web&rct=j&url=http://www.kellytrogdon.org/ewExternalFiles/GME-8.pdf&ved=2ahUKEwjL_4j7huriAhVEIqwKHVIZCU8QFjAAegQIAxAB&usg=AOvVaw1Bkw7osz_MZSHG3k8hBTnu)

[https://www.academia.edu/34059306/Can_grounding_characterize...](https://www.academia.edu/34059306/Can_grounding_characterize_fundamentality_Analysis_forthcoming_)

[https://www.google.com/url?sa=t&source=web&rct=j&url=https:/...](https://www.google.com/url?sa=t&source=web&rct=j&url=https://individual.utoronto.ca/jmwilson/Wilson-
The-Unity-and-Priority-Arguments-for-
Grounding.pdf&ved=2ahUKEwj42fKlieriAhUHLKwKHUxODIAQFjAAegQIAxAB&usg=AOvVaw0MqmazJDMja8MiFfNRcYKo)

[https://www.google.com/url?sa=t&source=web&rct=j&url=http://...](https://www.google.com/url?sa=t&source=web&rct=j&url=http://www.jonathanschaffer.org/groundcause.pdf&ved=2ahUKEwi32pTPieriAhVFeKwKHVRmCUUQFjAAegQIBRAB&usg=AOvVaw0fxaU0bQ-
vQw2JGK5UIOLP)

Books:

[https://www.amazon.com/gp/aw/d/B00A8ICBWO/ref=tmm_kin_title_...](https://www.amazon.com/gp/aw/d/B00A8ICBWO/ref=tmm_kin_title_0?ie=UTF8&qid=1560553506&sr=8-1)

[https://www.amazon.com/gp/aw/d/B0725YKR29/ref=tmm_kin_title_...](https://www.amazon.com/gp/aw/d/B0725YKR29/ref=tmm_kin_title_0?ie=UTF8&qid=1560553583&sr=8-1)

Obscure Paper:

[https://www.google.com/url?sa=t&source=web&rct=j&url=http://...](https://www.google.com/url?sa=t&source=web&rct=j&url=http://wellnowwhat.net/transfers/The%2520Mathematical%2520Structure%2520of%2520the%2520World%2520-%2520Dipert.pdf&ved=2ahUKEwiors_wkOriAhVLRqwKHZj7BJcQFjAAegQICBAB&usg=AOvVaw1DLO15hmR32DozOzefGvEr&cshid=1560555269461)

------
jdblair
When I was 18, I "discovered" three-value Boolean logic by thinking about what
it would mean to have three signs in arithmetic. I called them positive,
negative and urgative and had a symbol for urgative so I could write
expressions. I worked out truth tables and had a lot of fun.

Later I brought this up with one of my math professors and he encouraged me to
study methods of proof so I could understand my results better. To his credit,
he didn't say "this is already already all worked out," he sparked an interest
that led to me studying a lot more mathematics (like abstract algebra and non-
euclidean geometry) than I had planned when I started college.

~~~
oarabbus_
I'm not sure I follow. What is negative 1 plus positive 5 plus urgative 3?

~~~
knodi123
it's boolean logic, not integer math. think "true/false/interesting", instead
of using numbers

~~~
jdblair
I replied to the commenter. I started thinking not about boolean logic, but
about a third arithmetic sign. I was thinking, if there are conceptual
dimensions we can't perceive, maybe there are directions in those dimensions
we also can't perceive.

------
leoc
If this caught your interest, run out and buy Graham Priest's _Introduction to
Non-Classical Logic_.
[https://www.cambridge.org/ie/academic/subjects/philosophy/ph...](https://www.cambridge.org/ie/academic/subjects/philosophy/philosophy-
science/introduction-non-classical-logic-if-2nd-
edition?format=PB&isbn=9780521670265) It's so good. It's just a pity that
there doesn't seem to be video of Graham Priest teaching this material in
person anywhere.

~~~
tempguy9999
Oooh, dat interesting! I wasn't strongly aware of non-classical logics (other
than modal and classical). Meeting intuitionistic logic... bloody hell that
was very weird for someone brought up on classical logic. I will certainly
take a look, thanks.

------
TomAnthony
This article links to an article on Aristotle's "paradox of the sea battle"
[1].

However, I'm having trouble following it:

    
    
      Aristotle: if a sea-battle will not be fought tomorrow, then it was also true yesterday that it will not be fought.
      But all past truths are necessary truths. Therefore, it is not possible that the battle will be fought.
    

Can anyone explain it more clearly?

[1]
[https://en.wikipedia.org/wiki/Problem_of_future_contingents](https://en.wikipedia.org/wiki/Problem_of_future_contingents)

~~~
ernst_klim
In classic logic the statement could be either true or false. But the
statement "a sea-battle will be fought tomorrow" is neither. You can't say
that this statement is true or false in advance, it's a prediction, it has
only a sort of probability of being true or false.

The interesting outcome of the rejection of the excluded middle is a
constructive logic (and math), where the proof that "statement is false is
false" doesn't mean that statement is true (hence only the evidence of
truthfulness could be considered a proof).

~~~
tasuki
> In classic logic the statement could be either true or false. But the
> statement "a sea-battle will be fought tomorrow" is neither.

I'm not buying it. The statement "a sea-battle will be fought tomorrow" is
either true or false. Either it will be fought or it won't. You just don't
know which one. It won't "maybe be fought".

Similarly, you don't know whether "a sea-battle was fought 3000 * 365 days
ago". You don't have enough information to evaluate the truthfulness of either
statement, and can only say what confidence you have the sea battle was/will
be fought on the given day.

~~~
ernst_klim
>The statement "a sea-battle will be fought tomorrow" is either true or false.

How would you prove such a statement? You can give it as an axiom, but you
have to admit it true or false in advance.

You can't have a statement in classic logic which is not an axiom and couldn't
be proved true or false. This

> You just don't know which one.

means that your statement is neither true nor false in a given model. How
would you even reason using such a statement?

~~~
AnimalMuppet
Today, we make the statement "a sea-battle will be fought tomorrow". Two days
from now, the equivalent statement is "a sea-battle was fought yesterday".
_That_ statement is either true or false. As far as I can see, this leaves two
possible views.

First view: The statement today is true or false, just as it will be two days
from now. But today we don't know whether it's true or false.

Second view: The statement today is neither true nor false, but it will
_become_ true or false tomorrow, and will therefore be either true or false
two days from now.

Pick whichever view you like. The argument is going to come down to
differences of (unstated) definition of what it means for a statement to be
true.

------
harekaze
For recent years I've been using a kind of four-valued logic in my daily
thinking: TRUE, FALSE, an UNKNOWN of limited contagiousness, and an INVALID of
full contagiousness. I feel estranged somewhat after learning there is no such
logic in the most commonly used ones.

~~~
tiniuclx
This sounds a lot like the abstraction that SystemVerilog uses to describe the
electronic states that a piece of wire can be in. Namely, SystemVerilog uses 0
for a wire driven by a low voltage, 1 for a wire driven by a high voltage, Z
(high impedance) for a wire that is not being powered at all, and X (unknown)
for a wire that is driven by a 0 and a 1 at the same time.

X is highly contagious, if you connect any wire to one with an X value, the
result will be X. On the other hand, Z wires have their value overwritten by
anything (a 0 connected to a Z will result in a 0). However, Z is not a valid
_input_ to a logic gate: 1 AND Z = X.

Z is usually used for buses which consist of multiple inputs and outputs
connected to the same wire. When nobody is transmitting, the value of the bus
is Z. When one device transmits, the bus takes the value of the transmission.
And finally, if more than one device attempts to transmit at a given time the
result is X and you get what is known as bus contention :) ~

~~~
AgentOrange1234
Lots of insanity here too. Like, “~(~(a)) = a” is no longer a correct rule
(because when negated twice, z becomes x). But other than that it’s a cool
system.

~~~
claudiawerner
That's funny, reminds me of Engels' principle in Hegel's logic of the
"negation of the negation".

~~~
logicchains
You might like
[https://ncatlab.org/nlab/show/Hegel%27s+%22Logic%22+as+Modal...](https://ncatlab.org/nlab/show/Hegel%27s+%22Logic%22+as+Modal+Type+Theory).

------
strictfp
Made me think of "don't care" in digital logic:
[https://en.m.wikipedia.org/wiki/Don%27t-care_term](https://en.m.wikipedia.org/wiki/Don%27t-care_term)

------
pvg
It's odd the page doesn't mention SQL which uses a 3-valued logic. The 3VL
page itself does:

[https://en.wikipedia.org/wiki/Three-
valued_logic#SQL](https://en.wikipedia.org/wiki/Three-valued_logic#SQL)

~~~
leoc
Hm. Most of the limited amount I ever knew about this I've forgotten atm, but
in the face of general misunderstanding I'm going to chance my arm on the
theory that I have a >50% chance of making things better rather than worse.
Here goes.

Usually, in philosophical logic, you don't use 3VL or any multi-valued logic
to deal with something being unknown. If you don't know whether the
proposition P is true or false, and so you don't want to assert either that it
is true or that it is false, then you do this simply by not asserting or
implying P while also not asserting or implying ~P. If you want a logic in
which you can actually make the statement "it is unknown whether P or ~P" (or
more precisely, a logic in which you can capture the structure of that
statement: you could always just define the proposition Q to mean "it is
unknown whether P or ~P", but that probably doesn't get you anything useful)
then you'd probably use some variation on modal logic
[https://en.wikipedia.org/wiki/Epistemic_modal_logic](https://en.wikipedia.org/wiki/Epistemic_modal_logic)
, not a 3VL. What logicians _actually_ normally use 3VLs for is to (try to)
deal with truth value gaps or gluts. In a logic with truth-value gluts P can
be both true and false at the same time. In a logic with truth-value gaps P
can be _neither_ true nor false, at the same time. I know right?
(Intuitionistic logic is something a bit different again.)

The reason that computer systems like SQL use a third truth-value which
sometimes(!) means 'unknown', is, to summarise, because the way those systems
handle truth and implication is a garbage fire.

~~~
pvg
Oh, you'd be in good company, if for (likely) somewhat different reasons.
Google up 'C.J. Date' and '3VL' for some expert ranting on the topic.

------
AnimalMuppet
I played with the idea of "complex booleans", but it didn't work very well.
The idea was, just as in a complex number you have a + i b, let a "boolean" be
a + i b, where a and be are either true or false.

But the problem is, if you set true = 1 and false = 0, and then use
multiplication for "and", then (true + i true) and (true + i true) = (1 + i) *
(1 + i) = (1 + i + i - 1) = (0 + 2 i), which is not a valid answer. So this
"logic" didn't have as many nice algebraic properties as boolean logic.

~~~
tempguy9999
in {1, 0} representing true/false respectively, * is often used for 'and', and
+ for 'or'. So there may be a good interpretation if you can sort out what the
plus sign in x+iy means - is it an 'or', or something else? Good luck!

~~~
abecedarius
Boole himself used '+' for 'or', but restricted himself as to when he was
allowed to do it (i.e. there was no "true or true = true"; iirc it was Peirce
and maybe others who came up with that).

------
chx
We stumbled upon them, sort of, with Drupal. Consider the using the visitor
pattern for access where each visitor needs to return a value. (Drupal is
_old_ so yes return values is what you had) You may want to allow access, deny
access or tell the system you have no opinion at all.

------
qazpot
Jaina philosophers have 7 valued logic -
[https://en.wikipedia.org/wiki/Jaina_seven-
valued_logic](https://en.wikipedia.org/wiki/Jaina_seven-valued_logic)

~~~
ernst_klim
[https://en.wikipedia.org/wiki/Mu_(negative)](https://en.wikipedia.org/wiki/Mu_\(negative\))

------
prvc
I don't understand what the benefit of overloading truth values is compared to
using functions and modal operators, except as a vector for introducing back-
door obscurantism.

------
gauravphoenix
Fascinating read. I have often found myself using an enum in Java to present
truth output as true, false and null where null means unknown. Not ideal but
keeps things simple.

~~~
timClicks
How is that not ideal? Isn't that a perfectly valid mechanism to implement a
3-valued logic?

Perhaps some people would prefer to wrap a standard bool. In Rust, a type of
Option(bool) would work. An equivalent in Go would be *bool. But I don't know
how the CPU would distinguish between a null pointer and falsehood in that
case.

~~~
gauravphoenix
I said not ideal because of null. I wish there was a better way. Null is way
too overloaded in Java.

~~~
AnimalMuppet
Then don't use null. Use { false, true, 2 } or { false, true,
SomeNewEnumerationLabel }.

~~~
gauravphoenix
yeah, I just wish there was a first class citizen support to represent this. I
think Optional<Boolean> should suffice.

------
aduitsis
typedef enum { false, true, file_not_found } bool;

------
oarabbus_
True, False, and Null are legitimate. >3-valued logic systems tend to be
invalid/can be condensed into 3-values.

------
foobar_
It pains me every time someone uses the word logic but have never heard of Jan
Łukasiewicz.

~~~
stakhanov
Łukasiewicz is my hero.

~~~
aldanor
Wow, I live in Dublin and I never knew up to this point that he worked in UCD
for a decade (and eventually died in Dublin).

------
th3iedkid
Truth has many versions!

