# How to typeset appropriate “does not entail” symbol?

I am looking for a LaTeX symbol that means "A does not entail B". The mathematical symbol I found for this is ⊬, however I haven't found any way of displaying it properly.

How can I convey the desired meaning?

• This is “does not entail”, which is different from “does not imply”. – egreg May 22 '18 at 17:32
• @egreg Thank you for pointing that out, I will change the question! – Philipp May 22 '18 at 17:49
• We're getting a lot of clever ways to fake a symbol that’s in amssymb. – Davislor May 22 '18 at 20:43
• Although the accepted answer has been edited to list the others now. – Davislor May 22 '18 at 22:24
• Note that for logic, you need to negate the symbol from the turnstile package: none of the font packages which provide these symbols in maths will do the job because these aren't encoded, sadly, as extensible symbols. – cfr May 23 '18 at 1:56

\documentclass{article}
\usepackage{amssymb}
\newcommand\doesnotentail{\mkern-2mu\not\mkern2mu\vdash}
\begin{document}
$A\doesnotentail B$

$A\vdash B$
\end{document}


And some other ways:

\documentclass{article}
\usepackage{amssymb,stackengine}
\newcommand\doesnotentail{\mathrel{\ensurestackMath{%
\stackengine{.175em}{\vdash}{\scriptstyle/}{O}{c}{F}{F}{L}}}}
\begin{document}
$A\doesnotentail B$ via stackengine

$A\vdash B$ \textbackslash vdash

$A\nvdash B$ \textbackslash nvdash
\end{document}


The mathabx fonts define a plethora of such symbols. Here is a code to use them without loading the whole font:

\documentclass[11pt]{article}%[14pt]
\usepackage{amsmath}

\DeclareFontFamily{U}{matha}{\hyphenchar\font45}
\DeclareFontShape{U}{matha}{m}{n}{%
<-6> matha5
<6-7> matha6
<7-8> matha7
<8-9> matha8
<9-10> matha9
<10-12> matha10
<12-> matha12
} {}%
\DeclareSymbolFont{matha}{U}{matha}{m}{n}

\DeclareFontFamily{U}{mathb}{\hyphenchar\font45}
\DeclareFontShape{U}{mathb}{m}{n}{%
<-6> matha5
<6-7> matha6
<7-8> mathb7
<8-9> mathb8
<9-10> mathb9
<10-12> mathb10
<12-> mathb12
}{}%
\DeclareSymbolFont{mathb}{U}{mathb}{m}{n}%

\DeclareMathSymbol{\nvdash}{\mathrel}{matha}{"26}
\DeclareMathSymbol{\ndashv}{\mathrel}{matha}{"27}
\DeclareMathSymbol{\nvDash}{\mathrel}{matha}{"2E}
\DeclareMathSymbol{\nDashv}{\mathrel}{matha}{"2F}
\DeclareMathSymbol{\nVdash}{\mathrel}{matha}{"2A}
\DeclareMathSymbol{\ndashV}{\mathrel}{matha}{"2B}

\DeclareMathSymbol{\nVDash}{\mathrel}{mathb}{"2A}
\DeclareMathSymbol{\nDashV}{\mathrel}{mathb}{"2B}
\DeclareMathSymbol{\nVvdash}{\mathrel}{mathb}{"2E}
\DeclareMathSymbol{\ndashVv}{\mathrel}{mathb}{"2F}

\begin{document}

\begin{alignat*}{4}
\texttt{\textbackslash nvdash} &\quad & \nvdash &\hspace{4em} & \texttt{\textbackslash ndashv} &\quad & \ndashv \\
\texttt{\textbackslash nvDash} &\quad & \nvDash &\hspace{4em} & \texttt{\textbackslash nDashv} &\quad & \nDashv \\
\texttt{\textbackslash nVdash} &\quad & \nvDash &\hspace{4em} & \texttt{\textbackslash ndashV} &\quad & \nDashv \\\\
\texttt{\textbackslash nVDash} &\quad & \nVDash &\hspace{4em} & \texttt{\textbackslash nDashV} &\quad & \nDashV \\
\texttt{\textbackslash nVvdash} &\quad & \nVDash &\hspace{4em} & \texttt{\textbackslash nDashV} &\quad & \ndashVv
\end{alignat*}

\end{document}


• Good observation! These are additionally in several other packages, including unicode-math, stix and stix2. – Davislor May 23 '18 at 0:54
• Also in mnsymbol and mdsymbol. mathabx has the advantage to fit well the default math fonts. – Bernard May 23 '18 at 0:59
• And several others I know of: anyone who wants the full set can check out the Comprehensive LaTeX Symbols List. – Davislor May 23 '18 at 1:01
• For what it's worth, my personal recommendation is to use unicode math whenever possible. Latin Modern Math/lmodern, Asana Math/newpx, XITS Math/stix,Stix Two Math/stix2, and TeX Gyre Termes Math/newtx are all fonts that have close analogues to legacy packages. – Davislor May 23 '18 at 1:23

The ⊬ is U+22AC (Does Not Prove). This is \nvdash in amssymb and many other packages, including unicode-math, pxfonts, MnSymbol, fdsymbol, mathabx, stix and more.

\documentclass[varwidth, preview]{standalone}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{amssymb} % Or your font package of choice.

\DeclareUnicodeCharacter{22AC}{\ensuremath{\nvdash}}

\begin{document}
$$p ⊬ q$$ and $$q \nvdash p$$.
\end{document}


The Comprehensive LaTeX Symbols List shows what the symbol looks like in many of these fonts.

Even simpler:

\documentclass[varwidth, preview]{standalone}
\usepackage{unicode-math}

% You can \setmainfont and \setmathfont here.

\begin{document}
$$p ⊬ q$$ and $$q \nvdash p$$.
\end{document}


The List of Symbols Defined by unicode-math shows what this symbol looks like in several OpenType fonts (on page 58).

But, the other answers give some really clever ways to fake it, if you want to make things more complicated.

Here's a possible solution for keeping the negation slash to the height of the “entailment” symbol.

\documentclass{article}
\usepackage{amsmath,graphicx}

\DeclareRobustCommand{\notvdash}{%
\mathrel{\mathpalette\vdashnot\vdash}%
}
\makeatletter
\newcommand{\vdashnot}[2]{%
\sbox0{$\m@th#1#2$}%
\sbox2{\raisebox{\depth}{$\m@th#1/$}}%
\ooalign{%
\hidewidth$\m@th#1\mkern2mu$\resizebox{1.1\width}{\ht0}{\box2}\hidewidth\cr
\box0\cr
}%
}
\makeatother

\begin{document}

$A\notvdash B$

\end{document}