% Setting up the overlay for \hpos
\defineoverlay [graphics] [\positionoverlay{graphics}]
\setupbackgrounds
  [page]
  [background={foreground,graphics}]

% My own \mpos that sets its contents in math, displaystyle
\define[2]\mpos{\hpos{#1}{$\displaystyle#2$}}

% Two commands for requesting contractions (the connections between spinors).
\define[2]\contract{%
  \startpositionoverlay{graphics}%
    \setMPpositiongraphic{#1}{mypos:contract}{to=#2}%
  \stoppositionoverlay%
}
\define[2]\contractbelow{%
  \startpositionoverlay{graphics}%
    \setMPpositiongraphic{#1}{mypos:contractbelow}{to=#2}%
  \stoppositionoverlay%
}

% The MetaPost code for drawing the contractions.
\startMPpositiongraphic{mypos:contract}
     path pa, pb, pab ; numeric na, nb ; string ta, tb ;
     ta := mpvars("from") ;
     tb := mpvars("to") ;
     na := positionpage(ta) ; % page number of a
     nb := positionpage(tb) ; % page number of b
     pa := positionbox(ta) ;  % box of a
     pb := positionbox(tb) ;  % box of b
     z1 = 0.5[ulcorner pa,urcorner pa] ;
     z2 = 0.5[ulcorner pb,urcorner pb] ;
     y3 = max(y1,y2) + 3pt ; 
     if na = nb : % Check that positions are on the same page
       pab := z1 -- (x1,y3) -- (x2,y3) -- z2{down} ;
       pickup pencircle scaled 0.6pt ;
       draw pab yshifted 1pt ;
       positioninregion ;
     fi ;
\stopMPpositiongraphic

\startMPpositiongraphic{mypos:contractbelow}
     path pa, pb, pab ; numeric na, nb ; string ta, tb ;
     ta := mpvars("from") ;
     tb := mpvars("to") ;
     na := positionpage(ta) ; % page number of a
     nb := positionpage(tb) ; % page number of b
     pa := positionbox(ta) ;  % box of a
     pb := positionbox(tb) ;  % box of b
     z1 = 0.5[llcorner pa,lrcorner pa] ;
     z2 = 0.5[llcorner pb,lrcorner pb] ;
     y3 = min(y1,y2) - 3pt ; 
     if na = nb : % Check that positions are on the same page
       pab := z1 -- (x1,y3) -- (x2,y3) -- z2{down} ;
       pickup pencircle scaled 0.6pt ;
       draw pab yshifted -1pt ;
       positioninregion ;
     fi ;
\stopMPpositiongraphic

% A textstyle fraction to make the normalization factor look nice.
\define[2]\textfrac{{\textstyle\frac{#1}{#2}}}


\starttext

\startformula
  \mpos{X}{e}_\alpha \mpos{Y}{e}^\mu \mpos{Z}{e}_{\dot\beta}
    = \textfrac{1}{\sqrt{2}}\sigma_{\alpha\dot\beta}^\mu
  \contract{X}{Y}
  \contractbelow{Y}{Z}
\stopformula

\stoptext