# Why is it that when A is false and B is false, we infer that A->B is true?

Why is it that when A is false and B is false, we infer that A->B is true?

If A isn't true then we don't know if maybe when it is true then B would be false. could be B would be true, could be it'd be false.

Let's say A=it's raining B=worms come out

If A is false i.e. it's not raining.. and B is false, worms don't come out.. That shouldn't mean that A->B is true. Maybe when it is raining, worms won't come out.

Surely A->B shouldn't be true when A and B are false, it'd just be that you can't prove it to be false.You can only know it's false when you know the A is true and B is false case. But if A is false, you don't know what will happen when A is true.

The only two cases of the truth table that make sense to me as A=true B=true A->B=true . As then you know for sure A->B. Or A=true B=false A->B false, because then you know for sure A->B is false. But if A isn't happening, i.e. if A is false, then how can you judge A->B?

When we say A=true, do we mean A is always true? Or do we mean If/When A=true?

See if you say = true/false means always e.g. A= false, and you say that means A is always false... then I don't see how you could get A=false B=false A->B true. The two could have no connection and never be true.

like, let's say we us an example where A is always false and B is always false. If the clouds drop to the ground, then pigs will fly. I can't prove it true by showing that A=true B=true. I can't prove it false by showing A=true B=false.

and if we take a different example, one where B is always true.. A=I jump B=The Sun Shines. If I jump then the sun shines. Then I can accept the two easy ones that I can always accept A=true B=true A->B=true. I can accept the meaning of A=true B=false A->B=false, and it doesn't apply as B=true. Of the two difficult cases.. I can accept A=false B=true A->B=true because I can reason that the rule is saying that If A happens then B happens and even if A doesn't happen then B happens. So , if B happens, regardless of whether A caused it or not(i'm sure that's wrong there). But anyhow either way, I can't then understand that rule of A=false B=false A->B=true

If a teacher, knowing a student will fail a test, could say "If you pass that test, i'll eat my hat", then the teacher is safe, he won't have to eat the hat. The teacher won't be proven wrong.. but he's not really proven right either. As a promise it can potentially be true, but one would never really know if it's true.

• If 2 + 2 = 5 then I am the Pope. Can you see that this is a perfectly true statement? Stipulating, of course, that I am not actually the Pope. On the Internet you can never tell. Now go in peace and sin no more. You can cos as much as you like. – user4894 Apr 27 '17 at 18:38
• – Mauro ALLEGRANZA Apr 27 '17 at 19:42

The short answer is "because we got to define the operators, and we defined `->` to have that property. It has proven convenient. As a general rule, you can assume that every single possible operator has been explored at some point in time, and what we have remaining is the set that worked best.

One key thing to remember is that `->` is not the "implies" operator. That operator is `⊢`, and it has the meaning you are used to from colloquial English. `->` is a different concept.

Lets look at a few cases. Here's a truth table which includes the case where `A` is True, because we all agree on what that part of the table should look like:

``````A->B    B
F T
+----
A F | ? ?
T | F T
``````

Obviously we have four possible replacements for the question marks: `T T` `T F` `F T` and `F F`. Of these, we can reject two outright. Consider if we use `F T` or `T F`:

``````(a)A->B             (b)A->B
B            B
F T          F T
+----         +----
A F | F T     A F | T F
T | F T       T | F T
``````

If the operator acted as (a), then the truth table becomes simple. `A->B` would be true simply if `B`. There would be no value in ever writing `A->B` when it would have the exact same meaning as writing `B`. Option (b) can also be discarded rather easily. There's two problems with it. One major problem is that we already have an operator with this truth table: `A=B`. The other is that, in this case, `F->F` is true, which is the problem you had with the normal meaning of `->` in the first place!

This leaves two truth tables to explore

``````(c)A->B             (d)A->B
B            B
F T          F T
+----         +----
A F | T T     A F | F F
T | F T       T | F T
``````

Option (c) is the accepted meaning of `->`. Option (d) doesn't provide any value because we already have an operator with this truth table, the conjunction operator `A∧B`.

Thus, out of all of the operators which have the "sane" behavior when `A` is true, only the accepted solution, option (c), has any value as an operator.

useful related question mentioned by Mauro
What is the relation between the material conditional in logic and conditionals that we use every day?

• So if the -> operator is not called or read as "implies" then what is it called or read as? like would it have an english or any kind of name other than e.g. arrow. – barlop Apr 28 '17 at 7:09
• here are some truth tables that make your answer even clearer pastebin.com/raw/i7EeGvTU – barlop Apr 28 '17 at 11:26
• Also if the aim is to model the concept of implication if rather, the concept of If A then B (which i'd guess is implication), and the rows where A=false are a bit in the air and we just have to put some values in.. Then why not just use e.g. AND, rather than creating a new operator. – barlop Apr 29 '17 at 4:15
• When it's useful, we use it =) One huge advantage of it is it lets us say `A->B` is true as a hypothetical. It captures the idea of "If A then B," and lets us say it without having to first prove that A is true. But that isn't something you see in the truth table. – Cort Ammon Apr 29 '17 at 5:30

It might help to distinguish propositional content from propositional truth value.

If a teacher, knowing a student will fail a test, could say "If you pass that test, i'll eat my hat", then the teacher is safe, he won't have to eat the hat. The teacher won't be proven wrong.. but he's not really proven right either. As a promise it can potentially be true, but one would never really know if it's true.

The teacher is not making a proposition to be verified as either right and wrong. With "if X, then Y" they are merely establishing a condition which can be either satisfied or unsatisfied. That the teacher may have foreknowledge that their student will fail is another matter altogether.

In short, in the case of "if false, then false" the implication statement is true, not the constituent propositions. The resulting truth value of this particular logical condition is not a matter of empirically verifying the propositional truth values - it is simply the result of the logical construction. The statement "false implies false" is true and yet each falsehood is still false.

"'False implies false' is true" is basically the same as stating "if false, then false" and even in the case of "if true, then true" the antecedent is not the cause of the consequents truth value - nor is the antecedent the cause of the implications truth value. The truth value of any implication statement is the result of the relationship of the constituent propositional truth values - not their propositional content.

In the case of any such 𝜙 ⇒ 𝛙 construction, the propositional content of the constituent 𝜙 and 𝛙 statements are not related, except for the fact that they are arbitrarily positioned within an implication statement. This is the power of logic - in much the same way that the power of computers is their limitation as syntactical engines devoid of semantic content. The possible truth values of any implication statement is irrelevant of the propositional content of the constituent propositions. Rationally assessing the truth value of the propositional content and evaluating the logical relationships are two different endeavors.

Your problem is that you are asking a question in terms of propositional logic (which is binary), then demanding an answer that is outside of the domain of propositional logic values. You are only allowed to work with True or False values. There is no maybe in propositional logic.

So yes you are correct that outside of propositional logic, if A and B are false and A -> B, then the statement would be ambiguous. Outside of propositional logic you can say "oh maybe the worms will come out". Binary logic will not allow you such luxury.

In this case if it's not true, then its false. If its not false, then its true.

You can also look at it from the view point of negations.

In PL "not false" = true. You are saying ~F.

~F=T and ~T=F

• looking from the point of view of negations(as you suggest), actually makes no difference at best, and at worst, leads to a contradiction, 'cos if you think it's not true and it's not false then in binary logic, it'd a contradiction 'cos you'd be saying it's both true and false. – barlop Apr 28 '17 at 12:37