The definitions of \perp
and \bot
are, in Plain TeX and LaTeX,
% Plain TeX
\mathchardef\perp="323F
\mathchardef\bot="023F
% LaTeX
\DeclareMathSymbol{\perp}{\mathrel}{symbols}{"3F}
\DeclareMathSymbol{\bot}{\mathord}{symbols}{"3F}
that amount to the same thing. This means that the glyph used is the same, but with different spacings:
$X\bot Y$
will typeset the three math symbols without any space between them, while
$X\perp Y$
will have thick spaces around the central symbol.
When a relation symbol such as \perp
is the only object in a math list, for example in a superscript, for instance your $M^{\perp}$ (with or without the braces is irrelevant), there will be no space added; also the result of
$X{\perp}Y$
would be identical to $X\bot Y$
because {\perp}
makes the symbol the only object in a math list and a braced subformula is considered as an ordinary symbol (like a letter) as far as math spacing is concerned.
It's convenient to use \perp
when orthogonality is concerned: you can write
$v\perp w$
to say that the vectors v and w are orthogonal to each other, and $U^\perp$
to denote the orthogonal complement of the subspace U. Using \bot
for the latter would hide the meaning.
Technical note. The result of the (meaningless) formula $X^{v\perp w}$
would be identical to $X^{v\bot w}$
because TeX doesn't insert spaces around relation symbols in superscripts/subscripts. This doesn't mean that $\bot$ and $\perp$ are interchangeable. It's like using |
or \mid
in a math formula: both use the same glyph, but with different “math kind” (there are thirteen of them): the former is “ordinary”, the latter is ”relation”.
\bot
is indeed the proper way of using that glyph "standalone".$V \perp W \implies W \subset V^\bot$
. However, in that specific case, there is indeed no difference in output between$V^\bot$
and$V^\perp$
. One can still wish to use two commands for the two situations, because they don't carry exactly the same meaning, and you may, at some point, wish to redefine one of the symbols but not the other.