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.


4 Answers 4


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.

added by barlop
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
    Commented Apr 28, 2017 at 7:09
  • here are some truth tables that make your answer even clearer pastebin.com/raw/i7EeGvTU
    – barlop
    Commented Apr 28, 2017 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
    Commented Apr 29, 2017 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
    Commented Apr 29, 2017 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
    Commented Apr 28, 2017 at 12:37

Given the material conditional P -> Q, P is referred to as "antecedent" and Q is referred to as consequent in this form (forward implication from P to Q).

P -> Q means "P materially implies Q" which is stated as the following material conditional (if-then) statement: "If P, then Q". The material conditional P -> Q implies that P is a sufficient condition for Q.

Given the material conditional (if-then) statement (P -> Q), the operator/connective (->) is called material implication, which sets up a material conditional "If P (is the case), then Q (follows)", which can equivalently stated as "Q if P", which in its turn is equivalent to stating "P only if Q", which implies that P is a sufficient condition for Q, which is represented as follows: P => Q.

If the antecedent (P) is true, then the material implication (->) holds only if the consequent (Q) is also true. That is, a true antecedent/premise/condition (P) can only imply a true consequent/conclusion/consequence (Q).

If the antecedent (P) is true and the consequent (Q) is false, then the implication does not hold (true). That is, a true antecedent cannot imply a false consequent: truth cannot imply falsity. This is the only option for which the material implication does not hold, i.e., the operator/connective (->) outputs false if and only if the antecedent (P) is true and the consequent (Q) is false.

If the antecedent (P) is false, then P materially implies Q, regardless of whether Q is true or false. From falsity anything follows. That is, a false antecedent (P) implies the consequent (Q) in the case where Q is false as well as in the case where Q is true. For more information, please look up the "principle of explosion" which states in Latin: "Ex falso sequitur quodlibet" = "From falsity follows anything".

Example 1 (with a false consequent): "If I live forever (without end), then I am god" both P and Q are false, yet the implication holds (true).

Example 2 (with a true consequent): "If Alexander the Great invades North America, then I (will) speak some Greek" also holds (true). (I do speak a little Greek).

Example 3: "If you write a great post, then I('ll) give you $10." This conditional constitutes a promise. Let us see for which truth value combinations of P and Q, the promise (implication) holds (true).

Let us examine Example 3!

  • Let: P := You write a great post, and

  • Let: Q := I give you $10.

  • Case 1. P is true and Q is true.

  • Case 2. P is true, and Q is false.

  • Case 3. P is false, and Q is true.

  • Case 4. P is false, and Q is false.

Suppose case 1 is the case: "You write a great post, and I give you $10." Does the implication hold or have I broken my promise? I have fulfilled my promise in response to your great post. The implication holds (true).

Suppose case 2 is the case: "You write a great post, but I do not give you $10". Does the implication hold or have I broken my promise? In fact, I have broken my promise, because I have not fulfilled the consequent of the conditional, given a true antecedent. Therefore, for this option, the implication does not hold (true), i.e., the implication outputs a truth value of false.

Suppose case 3 is the case: "You do not write a great post, and I give you $10." Have I broken my promise? My promise was predicated on your writing a great post, and it says nothing about what should happen if the antecedent were false. My promise (implication) merely states what should happen if the antecedent were true. If you do not write a good post, but I nonetheless give you $10, then, strictly speaking, I have not violated my promise. Therefore, the implication holds (true), with a false antecedent (P) and a true consequent (Q).

Suppose case 4 is the case: "You do not write a great post, and I do not give you $10". Here, even though both antecedent (P) and consequent (Q) are both false, the implication nonetheless holds (true). A falsehood can imply a falsehood, because from falsity anything follows. Ex falso sequitur quodlibet! For more info on false if-clause research the Principle of Explosion of Formal Logic.

  • A) Suppose I have $1 in my bank account, and $1 is all I have, and I say to you that if you jump up to jupiter tomorrow, I will give you a million dollars. The promise isn't broken , it's not a false promise, but I wouldn't call it a true promise either. (putting aside that if we add the premise that it's absolutely impossible for me to give you a million dollars and I will never have a million dollars, then you'd have an even harder time claiming the promise is true 'cos it couldn't even be true hypothetically!)
    – barlop
    Commented Jul 1, 2020 at 12:44
  • Regarding your case 4, if it were P->Q, P is false, but I believe P. Then i'd be believing a false premise . And then stuff about "from falsity anything follows" may be the case. But your example doesn't say you believe P. You just say P is false. If I believed you jumped to jupiter and you didn't jump to jupiter, then maybe anything could follow. Your "from falsity anything follows" thing, only follows, if there is a contradiction.
    – barlop
    Commented Jul 1, 2020 at 12:50

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .