198

Is it better to use \Rightarrow or \implies to symbolize logical implications? Why?

Also, if I write \not \Rightarrow, I get a symbol that means "does not imply." But if I type \not \implies, it doesn't look right. How do I get the corresponding "does not imply" symbol?

jamaicanworm
  • 29,114

5 Answers5

260

To answer your first question, you should use \implies, not \Rightarrow. \Rightarrow is far too small to give a readable result and is not spaced properly. Knuth specially defined \iff to be used for equivalence and \implies is the same but for implication (from the amsmath package). An implication is not a relation like > and, therefore, needs to be spaced according to how it is used. Two thick spaces (which are about an en-space) precede and follow an implication because it's more important than a relation. (Basic rule of math spacing: the more important an operator, the wider the space around it). Compare the readability of the following formulas:

Rightarrow vs. Longrightarrow vs. implies

The first line uses \Rightarrow and is the least legible because the main part of the formula (the implication) is difficult to identify. The second line uses \Longrightarrow and is better, but there's not enough space to set the arrow apart from the surrounding symbols (the two inequalities are spaced as much as the arrow). Finally, in the third line (which uses \implies), the additional space highlights the arrow from the rest and so improves the readability of the formula.

Concerning your second question, the simplest way to negate nearly any symbol whatever its length is to use \centernot from the centernot package:

centernot effect on implies

\documentclass{article}

\usepackage{amsmath} \usepackage{centernot}

\begin{document}

$A \centernot\implies B$

\end{document}

Of course, wrapping \centernot\implies inside a \notimplies macro like Werner did is a good idea.

  • 9
    Sometimes the implication operator has lower precedence than other things around it, and in such cases, a giant double-wide arrow looks silly. Example: http://math.stackexchange.com/a/869215/164530 – Will Jul 30 '14 at 20:16
  • does this work for inserting it into stack overflow questions? – Charlie Parker May 22 '15 at 04:59
  • Why is it that my compiler can't find the \implies arrow? Anyone know the package one needs for this \implies? – Charlie Parker Jun 17 '17 at 23:18
  • 1
    @CharlieParker: you need the amsmath package for that. – Philippe Goutet Jun 18 '17 at 05:53
  • Very good answer. I understand your point about spacing, but I don't understand why a longer arrow is better. I have been using \quad\Rightarrow\quad for many years now and I find it very readable. I still might switch to \implies after reading your answer, but only because I prefer to avoid manual spacing commands such as \quad. – brunosalcedo Aug 30 '19 at 13:39
  • @brunosalcedo: just like the spacing, it's a question of visibility : the arrow is more important than the inferior signs so should be more prominent (in the sense that, when you look at the formula, the arrow should be one of first element you see). Trying to get more visibility by using huge spaces around \Rightarrow only gets you so far since you can't get around the problem that the \Rightarrow symbol is too small compared to \leq. If you like \quad\Rightarrow\quad so much, you could just put it in a macro called \implies and thus change your mind at any time on this issue. – Philippe Goutet Aug 30 '19 at 17:24
35

I'll answer the second part of your question, since the first seems more subjective.

You can use

\usepackage{amsmath}% http://ctan.org/pkg/amsmath
\newcommand{\notimplies}{%
  \mathrel{{\ooalign{\hidewidth$\not\phantom{=}$\hidewidth\cr$\implies$}}}}

to represent "does not imply". This provides \notimplies that sets a relational symbol with \not overlaid \implies (technically, the other way around):

enter image description here

\documentclass{article}
\usepackage{amsmath}% http://ctan.org/pkg/amsmath
\newcommand{\notimplies}{%
  \mathrel{{\ooalign{\hidewidth$\not\phantom{=}$\hidewidth\cr$\implies$}}}}
\newcommand{\X}{\mathcal{X}}
\newcommand{\Y}{\mathcal{Y}}
\begin{document}
\[
  \X\Rightarrow\Y \quad \X\not\Rightarrow\Y \qquad
  \X\implies\Y \quad \X\notimplies\Y
\]
\end{document}

Of course, from this point the spacing can also be modified, if needed.

For a quick lesson on \ooalign, see \subseteq + \circ as a single symbol (“open subset”).

Werner
  • 603,163
  • What are the advantages and disatvantages of this \ooalign solution, compared to @Philippe Goutet's \centernot solution? – jamaicanworm Mar 07 '12 at 15:46
  • 4
    @jamaicanworm: there's just a difference of method: \centernot does not use alignment but measures things and then translate them; \ooalign is what Knuth used for \notin to center the slash on the \in. The main advantage of \centernot is that it's ready for use in a package. Another difference is that, in its current state, Werner's solution won't give a good result in subscript (but that's easily fixable with a \mathpalette or \mathchoice). – Philippe Goutet Mar 07 '12 at 18:42
  • 1
    @PhilippeGoutet: Thanks for clearing that up... – Werner Mar 07 '12 at 18:47
  • I was getting extra \fi errors with this solution until I enclosed the \phantom{=} in another pair of curly brackets. Not sure what part of my preamble is causing that, but just to make people aware of this possibility. – Chappers Mar 14 '20 at 16:33
26

It's not perfect, but I use

\newcommand{\notimplies}{\;\not\!\!\!\implies}

which looks like this:

enter image description here

jds
  • 488
8

The conventions in other parts of mathematics may differ, but in logic texts, implication is virtually never written with long arrows. Implication is most commonly denoted by \rightarrow (= \to) or \supset, occasionally \Rightarrow. Long arrows (\longrightarrow and \Longrightarrow) are used for sequent arrows.

  • 2
    This is something of a subject-language/object-language distinction; a formal language will have some binary connective, usually denoted with \rightarrow (though historically often with \supset, somewhat confusingly). This is strictly different to the informal arrow used for implication between propositions, which is why people tend to use a different symbol. – dbmag9 May 25 '14 at 22:06
  • Thanks for hinting out the \to. I was searching for a simpler way to than to having my algorithms riddled with \rightarrow commands. BTW, \gets is as same as \leftarrow. – Ébe Isaac Nov 30 '16 at 04:59
2

It's my answer of your second question:

$A \rlap{\(\quad\not\)}\implies B$

or

$$
A \rlap{$\quad\not$}\implies B
$$

whick looks like this:

enter image description here

Perhaps, it's not the best solution, but it's short and doesn't need external packages.

Dardey
  • 21
  • 2