13

I'm trying to typeset some homework that deals with set theory and in particular I'm trying to write the "model-theoretic" notion of forcing. I put model-theoretic in quotes because I don't know the proper name for it. There's the forcing relation given by $\Vdash$ (i.e. it looks like similar to ||-), and I'm looking for the relation that looks like ||=, i.e. kind of like the $\models$ symbol or $\vDash$ but with an extra vertical line.

The strange thing is that it looks like the AMS packages have $\nVDash$ (i.e. the negation of the symbol I'm looking for) available, but not $\VDash$. Detexify doesn't seem to be helping me here. Are there any symbols which look like the hypothetical $\VDash$ I'm looking for (hopefully within amsmath, amsfonts, or amssymb, as I usually like to cut down on the number of packages I need to install to maintain portability across machines)?

  • Have you seen How to look up a symbol or identify a math alphabet? – Werner Nov 13 '13 at 22:25
  • this isn't really helpful, i know, but ... the \VDash was inexplicably not included in the amsfonts, and thus does not appear in amssymb.sty. it is in the stix and xits fonts, but the style of those is not really compatible with the amsfonts. do you need it in any sizes other than the main text size? and what text size are you using? (i'm thinking of cobbling together something with a vertical rule and \vDash.) – barbara beeton Nov 13 '13 at 22:30
  • 1
    Try \def\mmodels{\mathrel {||}\joinrel \Relbar}, which replicates the look of \models. – Werner Nov 13 '13 at 22:30
  • @Werner I did check the Comprehensive LaTeX symbol list as well as Detexify. Unfortunately the results I got were specific to the mathabx package and I tend to do my work on school computer lab machines where both privileges and disk space are limited. – badcook Nov 13 '13 at 22:47
  • @Werner I like your definition of $\mmodels$. The size ends up being a bit off from the $\vdash$ family of symbols (so it looks slightly weird next to the forcing relation) and I'll try to tweak it to make it fit, but in the interim it'll work. Thanks! – badcook Nov 13 '13 at 22:49
8

\models is defined as (use \pshow\models where \def\pshow#1{{\let\protect\show #1}}):

\mathrel{|}\joinrel\Relbar

In a similar fashion one could define \mmodels:

\DeclareRobustCommand{\mmodels}{\mathrel{||}\joinrel\Relbar}

Here's a visual of the two:

enter image description here

\documentclass{article}
\DeclareRobustCommand{\mmodels}{\mathrel{||}\joinrel \Relbar}
\begin{document}
$\models\ \mmodels$
\end{document}

Perhaps inserting \mkern-2mu between the two vertical rules would look a little better:

enter image description here

  • Wow, that \pshow command is useful! I'm having trouble running it for commands defined outside of LaTeX (probably due to the fact that I almost never use LaTeX at the commandline other than a simple invocation to compile a document). I run \usepackage{amsmath, amssymb, amsfonts}, but then whenever I try to run \pshow\Vdash the prompt tells me to enclose it in $ which I do and then I get a \GenericError. – badcook Nov 13 '13 at 23:01
  • @badcook: You can only use \pshow for macros defined as being robust, since they are \protected (and \Vdash is not; it's a font character). \pshow circumvents this protection by \letting \protect be the same as \show. See the UK TeX FAQ entry The definitions of LaTeX commands. – Werner Nov 13 '13 at 23:04
10

I can propose two workarounds, I call them \VDashA and \VDashB; the former is a bit wider than \vdash and \nVDash, the latter is shrinked horizontally, which makes for a slightly thinner bar.

\documentclass{article}
\usepackage{amsmath,amssymb,trimclip,adjustbox}

\newcommand{\VDashA}{%
  \mathrel{\text{\clipbox{0pt 0pt {.8\width} 0pt}{$\Vdash$}}\mkern.9mu}\vDash
}

\newcommand{\VDashB}{%
  \mathrel{
    \text{\clipbox{0pt 0pt {.8\width} 0pt}{$\Vdash$}}
    \mkern.9mu
    \text{\adjustbox{width=.87\width,height=\height}{$\vDash$}}
  }
}

\begin{document}

$\Vdash$

$\VDashA$

$\VDashB$

$\nVDash$

\end{document}

Note: in the image I've artificially reduced the vertical space between the lines just to show the symbols nearer to each other and ease the comparison.

enter image description here

  • Is there any way to remove the dependency on the trimclip and adjustbox packages? I'm trying to minimize my dependencies so that I can compile my documents on a multitude of different machines with a minimum of hassle. – badcook Nov 14 '13 at 21:15
  • @badcook I looked for a matching bar, but found none, that's why I resorted to clip the symbol. – egreg Nov 14 '13 at 21:22
  • Although I accepted @Werner's answer, I think that yours is more aesthetically pleasing; it just so happens that it's a hassle for me to install the trimclip and adjustbox packages to all the machines I might want to use LaTeX on. – badcook Nov 15 '13 at 20:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.