\setupcolors[state=start]

\usetypescriptfile[type-gyr]
\usetypescript[times][texnansi]
\setupbodyfont[times,8pt]

\def\BEFORE#1{\math{\underline{#1}}}
\def\AT#1{\math{#1}}
\def\AFTER#1{\math{\smash{\overline{#1}}}\vphantom{#1}}

\defineframed
  [parbox]
  [frame=off, width=2cm, autowidth=force, align=middle, background=color,
  backgroundcolor=white]

\definetextext[parbox]{\framed[frame=off, width=2cm, autowidth=force, align=middle, background=color, backgroundcolor=white]}

\starttext
\startMPpage
% Color for drawing helplines  
color helpcolor ; helpcolor := 0.5*white ;

% Scaling
u := 2cm ;        e := .1u ;

% Constants

xmax  :=  5u ;    ymax  := -3u ;
xstep := .5u ;    ystep := -.5u ;

xbefore := 2*xstep ;
xat     := 6*xstep ;
xafter  := xmax - 2*xstep ;

W := 0 ;
X := xstep ;
Z := 3*xstep ;
N := 4*xstep ;
Y := 5*xstep ;
M := 7*xstep ;
U := 9*xstep ;

c := xbefore + e ;
l := xat     + e ;
g := xafter  + e ;

path xline , yline , xshort;

xline := (-xstep,0) -- (xmax + xstep,0) ;
xshort:= (0,0) -- (xmax,0) ;
yline := (0,-0.8*ystep) -- (0,ymax + 0.5*ystep) ;


draw yline ;
draw yline shifted (xmax,0) ;

for i = 0 upto 6 :
  drawarrow xline shifted (0, i*ystep) ;
endfor ;

drawdblarrow xshort shifted (0, -0.6*ystep) ;

drawoptions(dashed evenly withcolor helpcolor) ;
draw yline shifted (xbefore,0) ;
draw yline shifted (xat,0) ;
draw yline shifted (xafter,0) ;

drawoptions() ;

y := 0 ;

dotlabel.top(\sometxt[parbox]{$t^+$},       (xbefore,y) ) ;
dotlabel.top(\sometxt[parbox]{$(t+1/2)$},   (xat,y)     ) ;
dotlabel.top(\sometxt[parbox]{$(t+1)^-$},  (xafter,y)  ) ;

y := ystep ;

dotlabel.top(\sometxt[parbox]{$\BEFORE t$}, (xbefore,y) ) ;
dotlabel.top(\sometxt[parbox]{$\AT t$},     (xat,y)     ) ;
dotlabel.top(\sometxt[parbox]{$\AFTER t$},  (xafter,y)  ) ;

y := 2*ystep ;

dotlabel.top(\sometxt[parbox]{$W_{t-1}$}, (W,y) ) ;
dotlabel.top(\sometxt[parbox]{$X_t$}, (X,y) ) ;
dotlabel.top(\sometxt[parbox]{$Z_t$}, (Z,y) ) ;
dotlabel.top(\sometxt[parbox]{$N_t$}, (N,y) ) ;
dotlabel.top(\sometxt[parbox]{$Y_t$}, (Y,y) ) ;
dotlabel.top(\sometxt[parbox]{$M_t$}, (M,y) ) ;
dotlabel.top(\sometxt[parbox]{$U_t$}, (U,y) ) ;

y := 3*ystep ;

dotlabel.bot(\sometxt[parbox]{$c_t$}, (c,y) ) ;
dotlabel.bot(\sometxt[parbox]{$l_t$}, (l,y) ) ;
dotlabel.bot(\sometxt[parbox]{$g_t$}, (g,y) ) ;

y := 4*ystep ;

dotlabel.top(\sometxt[parbox]{$\BEFORE I_t$}, (xbefore,y) ) ;
dotlabel.top(\sometxt[parbox]{$\AT I_t$},     (xat,y)     ) ;
dotlabel.top(\sometxt[parbox]{$\AFTER I_t$},  (xafter,y)  ) ;

y := 5*ystep ;

dotlabel.top(\sometxt[parbox]{$\BEFORE B_t$}, (xbefore,y) ) ;
dotlabel.top(\sometxt[parbox]{$\AT B_t$},     (xat,y)     ) ;
dotlabel.top(\sometxt[parbox]{$\AFTER B_t$},  (xafter,y)  ) ;

y := 6*ystep ;

dotlabel.top(\sometxt[parbox]{$\BEFORE \pi_t$}, (xbefore,y) ) ;
dotlabel.top(\sometxt[parbox]{$\AT \pi_t$},     (xat,y)     ) ;
dotlabel.top(\sometxt[parbox]{$\AFTER \pi_t$},  (xafter,y)  ) ;


label.lft(\sometxt[parbox]{actual time},       (-xstep, 0) ) ; 
label.lft(\sometxt[parbox]{time notation},     (-xstep, ystep) ) ;
label.lft(\sometxt[parbox]{System Variables},  (-xstep, 2*ystep) ) ;
label.lft(\sometxt[parbox]{Design Laws},       (-xstep, 3*ystep) ) ;
label.lft(\sometxt[parbox]{Information at the controller},
                                                (-xstep, 4*ystep) ) ;
label.lft(\sometxt[parbox]{Beliefs},           (-xstep, 5*ystep) ) ;
label.lft(\sometxt[parbox]{Information States},(-xstep, 6*ystep) ) ;

label.top(\sometxt[parbox]{Stage $t$}, (0.5*xmax,-0.6*ystep)) ;

\stopMPpage


\stoptext
