Many-valued logic
en.wikipedia.org
en.wikipedia.org
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).
Which truth? Yours, mine, what we agree upon or what really happened? (Paraphrasing Rousseau)
If structure is more fundamental than logic, it's not mysterious why the procedural interpretation of logic programs comes out the way it does - it follows from the structure underpinning the logic.
Does what you say have anything to do with probability theory (e.g.: the set space B given that A is true)? There are of course the basic adjunctions that apply to quantifiers and connectives (e.g.: the adjoints to the preimage). Is iteration and nesting as you mention similar to this?
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.
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/grounding/
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=http://...
https://www.academia.edu/34059306/Can_grounding_characterize...
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=http://...
Books:
https://www.amazon.com/gp/aw/d/B00A8ICBWO/ref=tmm_kin_title_...
https://www.amazon.com/gp/aw/d/B0725YKR29/ref=tmm_kin_title_...
Obscure Paper:
https://www.google.com/url?sa=t&source=web&rct=j&url=http://...
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.
The reasoning is that a different sign takes you towards the origin, then in the direction of the new sign. The answer to your question is:
-1 + +5 = +4
+4 + urg3 = +1
to illustrate some other examples:
+5 + urg10 = urg5
-5 + urg10 = urg5
urg5 + -10 = -5
urg5 + +10 = +5
I never actually proved that the arithmetic was consistent, or even useful in any way.
Multiplication was much easier to reason about because setting the sign was just the result of a truth table. This is when I figured out the true/false truth tables extended the 3 symbols pretty trivially. I worked through boolean logic and then got bored with it and forgot about it until that time talking to my Calc 3 teacher during office hours.
Right, rage hat on, I'm not buying this. It's an absolute fucking classic on how not to write a maths book. From the PDFs, some crap examples then.
"It is also standard to define two notions of validity. The first is semantic. A valid inference is one that preserves truth, in a certain sense. Specifically, every interpretation (that is, crudely, a way of assign-ing truth values) that makes all the premises true makes the conclu-sion true. We use the metalinguistic symbol ‘|=’ for this. What distin-guishes different logics is the different notions of interpretation they employ."
Wut the utter fuck does that mean? What could "preserves truth, in a certain sense" possibly mean? What the fuck is a metalinguistic symbol anyway? He goes on:
"The second notion of validity is proof-theoretic. Validity is defined in terms of some purely formal procedure (that is, one that makes reference only to the symbols of the inference). We use the metalinguistic symbol ‘|-’ for this notion of validity"
I think he's saying ‘|=’ is the human version of 'therefore' or 'we can deduce', and the formal version is ‘|-’, which corresponds to my understanding but if I didn't have a background in this I'd be fucked. This stuff is not complicated and it's mainly not hard, but it is fucking impossible if you write like this.
Later on we have " ⊃ " which is "material conditional" - da fuq? This is logical implication I think, it is standard in classical logic as an arrow '->' but he neither uses that nor relates it to the arrow symbol, nor even gives it the standard name - I have never ever seen it called a Material Conditional. And he doesn't give its definition so I can't tell. Later he gives a tree form of this I've never seen before but can sort-of understand so I guess it is logical implication.
And how does material equivalence '≡' differ from equality '='? Explain this shit please.
"An interpretation of the language is a function, ν, which assigns to each propositional parameter either 1 (true), or 0 (false). Thus, we write things such as ν(p) = 1 and ν(q) = 0." If I didn't know what this meant I'd be lost.
"A branch is closed iff there are formulas of the form A and ¬A on two of its nodes; otherwise it is open." I'm not sure what he's saying although I know it's actually very simple. It's something like 'if you get x on one branch and ¬x on another then you have a contradiction, which means that branch is junk because it's claiming something is true while the other is claiming exactly the same thing is false; they can't both be true. Except that's a bit wordy and more importantly I'd need to sit down and consider the scope; what a branch actually is and how far back up the contradiction goes.
This is a lesson on how not to do it. I'm getting lost and the 'branch is closed' example is on page 8! I would love to understand the stuff in this but the medium of conveyance, to wit this book, is a car crash. At best it's lecture notes but you'd better have the lecturer around.
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
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).
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.
1. if true, then "the battle is not fought on tomorrow's date" which is a truth for all time
2. if false, then "the battle is fought on tomorrow's date" and statements depending on it being true are invalid.
The fault in the line of proposed reasoning is the assumption of (1) and not admitting the possibility of (2) as a premise.
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?
Hm? What of Gödel sentences though? Or, like, the continuum hypothesis?
I think I might be misunderstanding you.
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.
It's basically self reinforcing saying if it's true then it's always true. The other unconsidered state is if it's false then it's always false.
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.
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 :) ~
Or a fire, because you have a low-resistance circuit that connects your power supply to ground.
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.)
Wessel, Horst (1989, 1999): Logik. Logos Berlin.
Sinowjew (Zinov'ev), Alexander Alexandrowitsch (1973): Foundations of the Logical Theory of Scientific Knowledge (Complex Logic). Springer.
Sinowjew (Zinov'ev), A. A. (1970): Komplexe Logik. Grundlagen einer logischen Theorie des Wissens. Vieweg.
- {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...
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.
I think there's something similar at play in physics and in the real world.
Can only explain with a (likely flawed) computing metaphor: "the value is a pointer that you cannot dereference but opaque sub-systems of your mind can still compute stuff with it (eg. it's not truly unknown)".
If I'd try, I'd say that: there's stuff you can indirectly compute with but can't express logically or communicate in a logical language.
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 , 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.
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.
To get complex values, we can consider the Gaussian integers [1] mod 2. Then, we have (1 + i) (1 + i) = (1 + i + i - 1) = 0 + 2 i = 0. So these integers are a ring where there are nonzero elements that multiply to 0.
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.