top | item 20180917

(no title)

harekaze | 6 years ago

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.

discuss

order

nnq|6 years ago

There's a 5-valued logic usable in common everyday live, originating from some Buddhist philosophy I don't care to remember, that I actually use fine in everyday life, similar to yours. I has:

- {T}: true

- {F}: false

- {not-T && not-F}: neither true nor false (yet, for us): eg. "unknown" or NULL (so far we're in SQL-logic territory :P, still familiar)

- {T && F}: true and false at the same time: ERROR / paradox / invalid / contradiction / exception / malformed or invalid questions

- {}: "ununderstandable/uncommunicable" or "cannot be put in to words", but NOT error/exception/invalid - for a software system this would be "there is a true|false|null|exception value for this but there is no direct access to this information" eg. maybe "the value is somehow stored in a physical artifact or arises as a result of an agent doing and experiencing something, but it can't be communicated as information, you'd have to pass the physical artifact to other agents for them to 'grok it', or to engineer situations where they could have a similar experience" or "you can't explain to someone 'how it is to be inlove' or 'how it is to be on drug X', they need to have the experience or access to the drug themselves'

I'm not sure why pentaleans are not as natural to other people as booleans, since they seem way more intuitive to me when dealing with information for the real world...

moftz|6 years ago

I think of it in the four categories they typically teach in digital design classes for electrical engineers:

T - True F - False X - Don't care Z - High-Z, essentially "don't know" or a null input

You can apply "don't care" to inputs to a logic equation to reduce the complexity of it. If you know a certain input will never be true while other inputs are false, then you can ignore all the states where that is the case. For example, the ECU in a car will turn on a certain light on the dashboard whenever the wheels slip. The wheels can't slip when the car isn't in drive and certainly not when the car is off so the ECU can reduce the logic needed to determine when to turn on that light. Instead of (car is on AND car is in drive AND power going to wheels AND wheel is slipping THEN turn on light) you can just reduce it down to (power going to wheels AND wheel is slipping THEN turn on light). This could would also cause the light to go on if the car was off while power was going to the wheels and the wheels were slipping but we know that case is impossible (engine can't send power if it's not on).

The High-Z is more of a "don't know" kind of input or output. It is an undetermined input that is neither true or false. We still care about it since it's not a "don't care" but we have no idea what it is. You could build a circuit to react to this state or have the circuit do nothing until it becomes true or false. You can also use this as an output of a circuit.

harekaze|6 years ago

I understand the idea of {} that you talk about, but I don't know how it works in the context of logical reasoning. Can you give examples on how it interacts with the other 4 values under different logical connectives?

jonathanstrange|6 years ago

It's not uncommon. Many people use the truth values {T}, {F}, {}, and {T, F} of one of the four-valued Belnap systems taken as partial logic. It is very adequate for linguistic modeling of truth conditional content and propositional attitudes, see for example Muskens's great little book Meaning and Partiality.

If I only need the "third case", I personally prefer a bivalent logic with nontraditional predication theory developed by A. Sinowjew (1970) and H. Wessel (1989). It's great fun to point out this system to philosophers who weren't trained very well in logic and are dogmatically convinced that it's impossible to express a third case in a bivalent logic. (Admittedly, that's a very petty motive. Anyway, NTPT will not convince any real intuitionist, because the quantifiers remain classical, too.)

harekaze|6 years ago

It takes time for me to find and try understanding the materials you mentioned. I'm unlikely to have a meaningful reply to your comment anytime soon. Let me just thank you here :)

stakhanov|6 years ago

Mind giving the references to A. Sinowjew (1970) and H. Wessel (1989) in full?

tiniuclx|6 years ago

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 :) ~

harekaze|6 years ago

The abstraction you mentioned isn't really similar to what I mentioned in parent. INVALID would be like X, I guess, but there is no counterpart of Z in the logic I used daily. Nonetheless it's interesting to learn about the abstraction :)

jcranmer|6 years ago

> 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

Or a fire, because you have a low-resistance circuit that connects your power supply to ground.

AgentOrange1234|6 years ago

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.

stakhanov|6 years ago

...that would be more of a belief theory (like Dempster-Shafer) than a logic.

Or maybe what you are thinking of is simply the situation wherein a logical expression is neither valid nor unsatisfiable. Valid would mean it's true in all models (all possible worlds), and therefore provable. Unsatisfiable would mean it's false in all models (all possible worlds), so that its negation would be provable.

so "p or (not p)" would be valid "p and (not p)" would be unsatisfiable "p" is neither valid nor unsatisfiable. it may be true, or it may be false. it's a contingency. Maybe that's what you have in mind by "unknown".

There are various mathematical theories for navigating the space between unsatisfiable and valid. If you start thinking about the proportion of possible worlds wherein p is true, you are thinking of frequentist probability theory. If you start reasoning about whether p is satisfiable whereas not p is also satisfiable and distinguishing that from the case where p is either unsatisfiable or valid, then you are thinking of possibility theory.

harekaze|6 years ago

Yes, I use INVALID for scenarios where "p" is unsatisfiable, as well as scenarios where I encounter other types of nonsense sentences. For example, "the uppercase is having a daydream", or a more subtle one, "the country is proud of its own products" when considered literally (as a country is incapable of feeling proud). I should have called it NONSENSE instead.

timClicks|6 years ago

I'm unsure how UNKNOWN could not propagate into other decisions that depend on the value. Could you provide an example or two?

cgrand-net|6 years ago

UNKNOWN or TRUE is TRUE