Is it nonsense to say B → [A → B]? I would have thought so, it seems to say that every fact deductively follows from every other. But I was looking at a recent closed question, on natural deduction, and my thinking about it (not as natural deduction) got be wondering.

It seems to me that B with the law of excluded middle and disjunction introduction and conjunction introduction ⇒ [[~A ∧ B] v [A ∧ B]] which with law of non contradiction and disjunctive syllogism ⇒ [A → [A ∧ B]] which with conjunction elimination ⇒ [A → B].

B → [A → B]

Sorry for being so naive, but, assuming I can be understood here, what have I worked out wrong?

  • 14
    It doesn't say that "every fact deductively follows from every other", it says that if you have already deduced B, you can deduce it from anything else.
    – E...
    May 9, 2019 at 17:17
  • is there a phrase for that. one that i can google @Eliran ?
    – user38026
    May 9, 2019 at 17:38
  • 3
    I do not think this tautology has an established name. If you rewrite it as B→(¬A∨B) it is just an instance of disjunction introduction. Alternatively, if B is derivable from nothing then it surely is derivable from some A, whatever A is. In particular, it is even intuitionistically valid.
    – Conifold
    May 9, 2019 at 21:29
  • 4
    Do not google, read a textbook. May 10, 2019 at 8:08
  • It is not non-sense, it is meaningful (though superficially unintuitive). It basically says if B is true, then B is true (or perhaps, if B then B). Think of A as a dummy variable (kind of). Assign T-value (true) to B, then we have two options: (1) A is true;(2) A is false. Case 1: T->T=T; Case 2: F->T=T which means either way we have T->T. Try the same but with B being false, you will still end up getting T->T (meaning its a tautology). May 10, 2019 at 10:41

6 Answers 6


The topic you want to research is 'paradoxes of material implication.' That is, you are right to think there's something odd about this formula. But it does not mean that every fact deductively follows from every other. Consider your target string:


Now note that the convention is to define the connectives such that the conditional 'P-->Q' is logically equivalent to '~PvQ'. Hence, replacing each instance of the conditional with the disjunctive equivalent, your target string is logically equivalent to:

~B v (~AvB).

i.e., Either not-B, or else not-A or B. On this formulation, it is clear that this formula does not mean what you suggest it means. Furthermore, this disjunction is a trivial logical truth . There are two ways the world could be with respect to B: either B is true or it is not true. If B is true, this formula is satisfied by the second disjunct. If B is not true, this formula is satisfied by the first disjunct. Hence, it is logically true.

This formula is one among many reasons why philosophers have thought that the material conditional of first-order logic does not capture any interesting epistemically-rich notion of implication. When formulated as a conditional, this leads to valid implications that are counterintuitive, pragmatically odd, or prehaps even false. That is, we usually expect implications to carry some kind of epistemic or pragmatic force, to deliver some information beyond the initial terms. So carrying out this kind of inference, though valid, holds no water in ordinary discourse. Depending on your views about the relationship between semantics and pragmatics, then, there is actually an argument to be made that such "implications" are a kind of nonsense.

Monotonicity is another feature of logic that you may want to look into. Entailment in first-order logic is a monotonic operation, which in this setting means, intuitively, that once something B is proven, the addition of new assumptions will never make B false. One way to think about your formula is through the monotonicity of entailment. Suppose we have some string of background assumptions T, such that T entails B:

T |- B

The monotonicity of entailment ensures that the addition of new assumptions will never prohibit concluding B. Hence, the extension of T by arbitrary new assumption A will not alter the result:

T, A |- B

Many systems are intuitively non-monotonic, such as when we reason in a default way or when we assume that implications should have some relevance to one another. If you're in the United States, then you do default reasoning whenever you pay your taxes. For example, by default you owe the standard amount of taxes for your income level. But the addition of other assumptions --- such as itemized deductions, being the owner of a business, the head of a household, of retirement age, capital gains, student loan interest payments, etc. --- can make those default truths false. We also usually demand that the terms of an inference be relevant to one another. This is, at least arguably, one point of departure between traditional Aristotelian logic and modern mathematical logic. Aristotle's logic exhibits features of a relevance logic, i.e., the assumption that the premises in an argument must have some relevance to one another by virtue of which the terms of the premises can be combined or separated. This is one of the many ways in whcih Aristotle's understanding of syllogisms and deduction differs from our modern notions of validity. How to pin down 'relevance' is an entirely other can of worms. In a Wittgensteinian vein, we might also complain that someone who asserted a conditional like yours in conversation would be failing to make a move in the language game.

First-order logic validates all kinds of at best pragmatically useless and---again, depending on your background philosophical views---perhaps false entailments.

Consider: Priest, Graham (2001). Introduction to Non-Classical Logic. Cambridge University Press, pp.12-13 (on material implication)





  • @OP Note: this is, for example, part of Hilbert's positive implicational calculus. I have seen it referred to as the "Positive Paradox" for this reason. Whether or not you accept this rule depends a lot on how strong you desire your notion of implication to be; for example, many relevant logics distinguish between implication and material implication, so this is not so trivial a rule (and may not even hold). May 10, 2019 at 5:12
  • 3
    It is important to remember that the material conditional is a mathematical construct, designed for doing basic first order logic and (in historical retrospect) for building a solid axiomatic set theory. It "plays nicely" with the universal quantifier, and can very naturally be used to quantify over individual sets instead of the entire domain of discourse. It "makes sense" that we can say "For all X, if X is an integer, then..." without having to think about what happens when X is not an integer. If you think of logic as a foundation of math, you probably aren't bothered by this at all.
    – Kevin
    May 10, 2019 at 5:53

When proving a conditional one assumes the antecedent, B. The goal is not to derive this, but from this assumption to derive the consequent which happens to be A > B.

But A > B is another conditional. Since it is a conditional one derives that in the same way. First assume the antecedent, A. Can one derive B? Yes, one can, because in this derivation we already assumed B in the first line. We can "reiterate" it in the next line as B.

Since from A one can derive B in a subproof, one can introduce a conditional (→I), A > B. This is the same as saying: if I have A, I can derive B. It is a shorthand for that subproof.

But if one has A > B one can introduce the conditional again and write B > [A > B].

Here's the result using the proof checker linked to below:

enter image description here

What this shows is that the argument is valid. The argument might be nonsense depending on what A and B are. Suppose A is Unicorns are white and B is The sky is blue. What this says is If the sky is blue then if unicorns are white then the sky is blue. Suppose the sky is blue. It doesn't matter whether unicorns are white or not. The sky is still blue.

For the reiteration rule (R) see section 16.1 of the forallx text below.

Kevin Klement's JavaScript/PHP Fitch-style natural deduction proof editor and checker http://proofs.openlogicproject.org/

P. D. Magnus, Tim Button with additions by J. Robert Loftis remixed and revised by Aaron Thomas-Bolduc, Richard Zach, forallx Calgary Remix: An Introduction to Formal Logic, Winter 2018. http://forallx.openlogicproject.org/

  • thanks, i think i followed the answer, though it's not really in terms i feel comfortable with. you did lose me a bit when talking about unicorns. do you mean that if it's true that the sky is blue then it's blue whatever else is? what's the phrase for that?
    – user38026
    May 9, 2019 at 17:41
  • @another_name I put the unicorns in there to give an example of an argument that might be considered nonsense. It could be any statement. May 9, 2019 at 17:43
  • sure, i'm not complaining about the 'unicorn'. i'm just still not sure what it means to say that B > [A > B]. does it have a name?
    – user38026
    May 9, 2019 at 17:43
  • @another_name It could be thought of as reiteration. One could remove the A entirely and write B > B. It could be viewed as a circular argument or begging the question. This would be fallacious unless all sides in an argument accepted B. May 9, 2019 at 18:59
  • Very good answer, the drawings are widely understood by any philosopher. You may also note that even A may be equivalent to non-B, so B -> (~B -> B). Sure, if a scientific theory holds B and ~B, it is pretty useless (which is a pragmatic point of view), but nevertheless, B holds. May 10, 2019 at 11:26

I take a statement to be ridiculous iff it contains or implies a contradiction. That being said, B --> (A-->B) is not ridiculous, but it is a tautology, which makes it vacuous.

I feel the previous answers over complicated things, but here are two short arguments showing that it is a tautology.

1. B --> (A --> B)     Assumption  
2. B --> (~A v B)      1, Implication
3. ~B v (~A v B)       2, Implication
4. ~B v (B v ~A)       3, Commutation
5. (~B v B) v ~A       4, Association

You get the same solution using the rule of Exportation

1. B --> (A --> B)    Assumption
2. (B ^ A) --> B      1, Exportation
3. ~(B ^ A) v B       2, Implication
4. (~B v ~A) v B      3, De Morgan
5. (~A v ~B) v B      4, Commutation
6. ~A v (~B v B)      5, Association 
7. (~B v B) v ~A      6, Commutation     

~B v B is logically true. It is trivial to show that (~B v B) v ~A is also logically true.

(@FrankHubeny Thanks for keeping me honest and reminding me to include the Commutation steps in both proofs).

  • There is also a commutative operation after line 3 in the first proof:. (~A v B) rewritten as (B v ~A). In the second, shouldn't the second line be ~B v (A --> B)? Regardless, this is another way to show the result. +1 May 9, 2019 at 23:24
  • You are correct, I did skip the commutation move in the first proof. I'll fix that. In the second proof at line 2 I used a rule called Exportation which says P--> (Q-->R) <---> (P ^ Q)-->R. Thanks for the vote!
    – Rob
    May 9, 2019 at 23:34
  • What does "contain a contradiction" mean? May 10, 2019 at 8:10

A → (B → C) is basically another way to write (A ∧ B) → C. So B → (A → B) is better not described as every fact deductively follows from every other, but every fact deductively follows from itself and every other. It is tautology, as the "every other" part is redundant.

The original statement would be wrong if you mean every statement follows from every other, without involving itself. If you actually mean fact, note that facts are true, and don't need to follow from anything after you already knew they are facts.

  • thanks, this was helpful
    – user38026
    May 10, 2019 at 13:57

Material implication does not really correspond to the ordinary informal meaning of if-then statements, in part because formal logic statements can only be given semantic interpretation if you have a specific universe of discourse in mind. For example, if my domain of discourse is "people in this room", one may be able to look and see that all the brown-eyed people are over 25, so you could say "for all x, browneyes(x) -> over25(x)". But if one just said "all brown-eyed people are over 25" in ordinary language without explicitly saying you were just talking about people in a room, that wouldn't be interpreted as true.

Another issue that makes material implication confusingly different from ordinary if-then statements arises when, instead of "for all x" statements like the one above, you talk about specific items. Say a particular person in the room named Ted is blue-eyed and 23 years old--since the "for all x" statement above was supposed to apply to everyone, it must apply to Ted, i.e. browneyes(Ted) -> over25(Ted). Because of the truth-table of the material implication symbol, that statement would actually be true--whereas in ordinary language, "if Ted had brown eyes, he'd be over 25" would probably be interpreted as a modal statement about a possible world where Ted has brown eyes instead of blue, and there's no reason to say that in every possible world where Ted has brown eyes, he's over 25 years old.

When trying to translate formal logic statements using the material implication into English, I tend to use different approaches depending on whether the logical statement is preceded by an universal quantifier of the "for all x" form. If it is, then I think of something like "for all x, A(x) -> B(x)" as way of translating of premises in syllogisms like "all A are B" into formal logic. For example, the premise "all men are mortal" could be rephrased as "for any entity x in our domain of discourse, if it's true that x is a man, then it's also true that x is a mortal", which is just a slightly more elaborate way of saying "all men are mortal". And this also makes sense of the fact that in the truth table for material implication, A -> B is automatically true if A is false, for example if you look at an entity that is not a man, then regardless of whether the entity is mortal or non-mortal, it won't be inconsistent with "all men are mortal"--only a non-mortal man can falsify that statement.

When translating a logical statement that does not use the universal quantifier, like the example browneyes(Ted) -> over25(Ted), this way of thinking about it doesn't quite work. So in this case I think about the fact that the truth table for "A -> B" is identical to the truth table for "~A or (A and B)", or in english, "either A is false, or both A and B are true". So, the earlier example "browneyes(Ted) -> over25(Ted)" could be translated as "either Ted doesn't have brown eyes, or Ted has brown eyes and is over 25". Although this statement is more convoluted than "if Ted has brown eyes, then Ted is over 25" I think it's less likely to lead to incorrect intuitions about whether the statement is true in the case that Ted does not have brown eyes.

So with all that out of the way, my conceptual translation of the meaning of "B -> [A -> B]" would be "either B is false, or the statement 'either A is false, or A and B are true' is true". To make it a little more clear, one could divide it up into labeled claims and sub-claims:

One (and only one) of the following statements 1) and 2) must be true:

1) B is false

2) B is true, and one (and only one) of the following statements is also true:

2a) A is false

2b) A is true, and B is true

This is meaningful, but it's just a tautology (true under all possible worlds) if you accept the law of the excluded middle. The set of all possible worlds can be divided into those where B is true and those where B is false, and every possible world falls into one (and only one) of these sets of worlds. If you look at the set of possible worlds where B is true, this can likewise be divided into a subset where A is true and another subset where A is false, and every possible world in this set falls into one (and only one) of these subsets. And in the subset where A is true, since this was already assumed to be a subset of the set of worlds where B is true, we can take the statement "A is true" and add "and B is true" and the new combined statement will still be true in all the worlds in this subset.


It is a tautology.

•If B is true, then A->B is true. Then B->(A->B) is B->T. B->T is T.

•If B is false, then B->(A->B) is F->(A->B). F-> Something is always True. That's why B->(A->B) is true.

You must log in to answer this question.