\input tbasic
% PapWHdr.tex of October 5, 1983 5:09 pm --- Stolfi
% Header file for PLoc.tex
% DESIRABLE CHANGES
% Fix \lpike and \rpike in \small
% Remove \fpheader, \printfpheader (simple is beautiful!)
% BEGIN NEW FILE
\def\printfilestamp{T} % put \filestamp on 1st page
\def\newfile{F} % (internal) T on first page of a new file.
\def\begfile#1{\gdef\filestamp{#1}\gdef\newfile{T}}
% TITLES AND CO
% Paper, author, institutions, and section titles.
% Usage:
% \paper{P is equal to NP\ctrpar (I think)}
% \def\paptitle{I think} % optional --- title on page headers
% \author{I. Newton}
% \institution{Sacred Well Divination School,
% Chichen Itza, Yucatan}
% \section{1.1A. Annotation and Undefinitions.}
% (note: 1 argument only!)
% \support{The author was partially supported by a
% semi-starving army of slaves, by the plundering of half a
% dozen neighboring villages, and by lavish gifts from
% Ramses III.}
% \abstract{In this paper we make some general remarks
% concerning an algorithm for solving a problem related to an
% important application of a well-known theoretical concept.}
\def\ctrpar{\hfil\null\penalty-2000\null\hfil} % <CR> in centered paragrs
\def\paper#1{
\gdef\newchap{T} % (internal) T on 1st page of chap or paper
{\lineskip3pt \hbox par \pagewidth pt{\hfil\titlefont #1}}
\vskip8pt
\hbox to \pagewidth pt{\hfil\vbox{\hrule width 3truein}\hfil}
\vskip13pt
\gdef\paptitle{#1}} % \paptitle is title on page headers.
\def\author#1{
\vskip -5pt
\hbox par \pagewidth pt{\hfil\it #1}
\vskip8pt}
\def\institution#1{
\vskip-5pt
\hbox par \pagewidth pt{\hfil\rm #1}
\vskip8pt}
\def\support#1{
\botinsert{
\vskip5pt\hrule width\textwidth pt
\vskip5pt{\small \hbox par \textwidth pt{#1}}}}
\def\abstract#1{
\vskip 20pt
\hbox to \pagewidth pt{\hfil\hbox par \abstrwidth pt{#1}\hfil}
\vskip 10pt}
\def\keywords#1{
\vskip -5pt
\hbox to \pagewidth pt{\hfil\hbox par \abstrwidth pt{{\:p KEYWORDS:} #1}\hfil}
\vskip 10pt}
\def\section#1{
\vskip 20pt plus 10 pt minus 3pt\penalty-600
\hbox{{\secfont #1}}
\penalty 1000\vskip 6pt plus 3pt}
\def\subsection#1{
\vskip 20pt plus 10 pt minus 3pt\penalty-600
\hbox{{\subsecfont #1}}
\penalty 1000\vskip 6pt plus 3pt}
% MATH SYMBOLS
\def\leq{\mathrel{\char'424}}
\def\geq{\mathrel{\char'425}}
\def\neq{\not=}
\def\dist{\mathop{\char d\char i\char s\char t}}
\def\deg{↑\circ}
\def\gets{\mathrel{\char'440}} % assign. arrow
\def\to{\mathrel{\char'441}} % limit arrow
\def\lbrace{\{}
\def\rbrace{\}}
\def\la{\langle}
\def\ra{\rangle}
\def\implies{\mathrel{\char'451}} % right implication arrow
\def\impliedby{\mathrel{\char'450}} % left implication arrow
\def\doubleimpl{\mathrel{\char'454}} % two-way implication arrow
\def\rmiff{\,\mathrel{\hbox{iff}}\,} % "iff" in roman font
\def\rmif{\,\mathrel{\hbox{if}}\,} % "if" in roman font
\def\rmand{\,\mathrel{\hbox{and}}\,} % "and" in roman font
\def\rmor{\,\mathrel{\hbox{or}}\,} % "or" in roman font
\def\inte{\mathbin{\char'534}} % infix intersection operator
\def\uni{\mathbin{\char'533}} % infix union operator
\def\and{\mathbin{\char'536}} % logical and operator
\def\or{\mathbin{\char'537}} % logical or operator
\def\equiv{\mathrel{\char'421}} % logical equivalence
\def\land{\mathbin{\char'536}} % boolean and operator
\def\lor{\mathbin{\char'537}} % boolean or operator
\def\lnot{\mathop{\char'472}} % boolean not operator
\def\xor{\oplus }
\def\hull{\mathop{\char h\char u\char l\char l}}
\def\bound#1{\partial {#1}} % boundary
\def\clos#1{\bar{#1}} % closure
\def\star{↑\ast} % asterisk in superscript position.
\def\iso{\mathrel{\char'430}} % single squiggle
\def\simil{\mathrel{\char'431}} % double squiggle
\def\empty{\emptyset}
\def\forall{\mathop{\hbox{\mal A}}}
\def\exists{\mathop{\hbox{\mal E}}}
\def\reals{\hbox{\bi R\/}} % set of real numbers
\def\integers{\hbox{\bi Z\/}} % set of all integers
\def\sphere{\hbox{\bi S\/}} % needs dimensionality subscript
\def\bar#1{{\overline{#1}}}
\def\pr{↑\prime}
\def\prr{↑{\prime\prime}}
\def\rpike{\hbox{\arfont n}} % black triangle pointing right
\def\lpike{\hbox{\arfont x}} % black triangle pointing left
\def\hat#1{{\A #1}} % fix this!
\def\det#1{\left\char'550614 #1 \right\char'550614} % determinant
\def\set#1{{\{#1\}}} % set defined by enumeration
\def\rset#1{{\leftset #1 \rightset}} % set defined by \relv
\def\seq#1{\langle #1 \rangle}
\def\sp{\,\,\,} % to denote unordered spans (segs, arcs, etc)
\def\dollar{\char'44}
\def\flower{{\curfont U B}} % upright lotus flower
\def\bu{$\bullet$\ } % for items in text
\def\item{\indent\bu}
\def\note#1{{\small \bf << #1 >>}} % for annotations to manuscript
\def\empty{\char'100} % use Scandinavian crossed-O for empty set
% MISCELLANEOUS FORMAT MACROS
% Embox and superpose with preceding char
\def\rspose#1{\hbox to 0pt{\hss#1\hfilneg}} % sup. #1 with previous box
% macro for flagging TEX errors
\def\bug{\hbox{\hskip1pt\vrule width10pt height10pt \hskip1pt}}
% Conditional expressions.
\chcode'174←4 % alignment tab
\def\alter#1{\left\lbrace\vcenter{
\halign{\lft{##}\quad\quad|\lft{##}\cr #1}
}\right.}
\def\va{\noalign{\vskip 3pt plus1pt}} % extra space after \cr
\def\vb{\noalign{\vskip 6pt plus2pt}}
\def\vc{\noalign{\vskip 9pt plus3pt}}
\def\vd{\noalign{\vskip 12pt plus4pt}}
% Indented paragraphs. Usage:
% \indent Bla bla bla... or
% \begitems\item Foo;\item Bar;...\item Baz.\enditems OR
% \begitems\itemno{1.}Foo;\itemno{2.}Bar;...\itemno{9.}Baz.\enditems
\def\begitems{\vskip6ptplus2pt\penalty}
\def\enditems{\vskip4ptplus3pt}
\def\indent{\par\vskip 2pt\hangindent\textindent pt after0 }
\def\item{\itemno{ $\bullet$ }} % for unnumbered items
\def\itemno#1{\par\vskip-3pt\hangindent\itemindent pt after0
$\rspose{#1\ }$\gnaw } % numbered items
% Paragraph break in \hbox par
\def\bxparskipper{\vbox to \bxparskip pt{}} % for par spacing in boxed text
\def\bxpar{\hfil\null\penalty-2000
\bxparskipper} % begin new left-justified paragraph
\def\ctrpar{\hfil\null\penalty-2000
\bxparskipper\hfil } % begin new centered paragraph
% Footnotes.
% Use \foot7{Blah Blah} for footnote number 7.
% Using \footfig7(3){Blah Blah} leaves space at the right margin of
% the footnote for a figure 3cm high.
% Use \ftpar to break paragraphs in a footnote.
\def\footbox#1#2#3{{\small\hbox par #3 pt{$\null↑{#1}$ #2}}}
\def\footfigbox#1{\vbox to #1cm{\hbox to 0pt{\null}}}
\def\footline{\vskip6pt plus10pt\hrule width 4cm\vskip4pt}
\def\footfirstp#1{\if 1#1{\footline}\else{}
\if \dag#1{\footline}\else{}}
\def\foot#1#2{$\null↑{#1}$\botinsert{\footfirstp{#1}
\vskip 5pt plus2pt\footbox{#1}{#2}{\textwidth}}}
\def\footfig#1(#2)#3{$\null↑{#1}$\botinsert{\footfirstp{#1}
\vskip 5pt plus2pt\hbox{
$\vcenter{\footbox{#1}{#3}{\ftfigwidth}}
\vcenter{\footfigbox{#2}}$\hfil}}}
\def\ftpar{\bxpar} % \par (of sorts) in footnotes
% Theorem, lemma, conjecture and definition.
\def\lemma{\theolemma{\it}{Lemma}}
\def\theorem{\theolemma{\it}{Theorem}}
\def\conjecture{\theolemma{\it}{Conjecture}}
\def\definition{\theolemma{\rm}{Definition}}
\def\theolemma#1#2#3#4{\par\vskip 5pt plus 3pt minus 3pt\hangindent \theostatindent pt
{\bf #2 #3. }{#1 #4}\par\vskip 3pt plus 3pt}
\def\tp{\hangindent\theostatindent pt after0 } % new par in thm.'s/def. statement
\def\proof#1{
\hangindent\proofindent pt after0\begproofmark #1\penalty1000
\endproofmark\par\vskip 3pt plus 6pt}
\def\pp{\hangindent \proofindent pt after0} % new par in proof
% Algorithm format.
% uses counters 3 (to compute useful width), 4 (to count bars), and
% 5 (current nesting level).
\def\algorithm#1#2#3{{\penalty-300\vskip10pt plus3pt minus3pt
\hangindent \theostatindent pt {\bf Algorithm #1. }{\it #2}\par
\vskip 3pt plus 2pt minus0pt\penalty 1000
\algbody{#3}
\par\vskip 10pt plus 3pt minus 3pt}}
\def\algbody#1{{
\parindent 0pt \hangindent 0pt after0
\baselineskip 0pt \lineskip0pt
\setcount5 0
#1
\parindent\stdparindent pt}}
\def\vbars{\setcount3 \algwidth\setcount4 \count5
\hskip \algindent pt\advcount3 by -\algindent
\advcount3 by -\algindent % to indent right margin too
\vbarsloop
\hskip-\stepindent pt\advcount3 by \stepindent
}
\def\vbarsloop{\ifpos4
{\vrule width0.4pt
\hskip-0.4pt
\hskip\stepindent pt\advcount3 by -\stepindent
\advcount4 by -1
\vbarsloop}
\else
{}}
\def\afig#1{
\ftpar\vbox to #1cm{\null}\ftpar
} % figure in algorithm steps
\def\step#1{\par\hbox to \pagewidth pt
{\vbars
\hskip \snoindent pt\advcount3 by -\snoindent
\hskip \contindent pt\advcount3 by -\contindent
\vbox{
\vskip 2pt plus0pt minus0pt
{\baselineskip12pt \lineskip1pt
\hbox par \count3pt{\hskip-\contindent pt #1}}
\vskip 2pt plus0pt minus0pt}
\hfil}}
\def\comm#1{\par\hbox to \pagewidth pt
{\vbars
\hskip \snoindent pt\advcount3 by -\snoindent
\hskip \contindent pt\advcount3 by -\contindent
\vbox{
\vskip 2pt plus0pt minus0pt
{\small \hbox par \count3pt{#1}}
\vskip 3pt plus0pt minus0pt}
\hfil}}
\def\begblock#1\endblock{\advcount5 by 1\ear #1\ear \advcount5 by-1}
\def\ear{\par\penalty1000\hbox to \pagewidth pt
{\vbars \vrule height 0.4pt width 3pt \hfil}\penalty1000}
\def\sno#1 {{\baselineskip0pt
\lineskip0pt
\vbox{\hbox to \contindent pt{}
\hbox{\hfil\bf #1.\hskip2pt}}}\gnaw} % step number.
\def\nono{\hskip \contindent pt } % for unnumbered steps.
\def\sna#1{{\rm [{\it #1\/}]}} % step name and comments.
\def\blug{\hskip 3pt\blackslug}
% Space for figure.
% Use \fig5 for a figure 5cm high
% Use \figno(7)5 for a figure with number (7) and 5 cm high
\def\gnaw{} % to eat spaces after \fig etc
\def\fig#1{\dispaskip0pt plus100pt $$\hbox to 2in{\vbox to #1cm{\null}}$$\dispaskip0pt plus3pt\gnaw}
\def\figno(#1)#2{\dispaskip0pt plus100pt $$\vcenter{\hbox to 2in{\vbox to #2cm{\null}}}\eqno(\hbox{#1})$$\dispaskip0pt plus3pt\gnaw}
\def\figcap#1#2{\ctrline{
\hbox par 5in{Figure #1. #2}}} % figure captions
% Reference format.
% Usage: \ref [\Boo] {\refauth{Boojum, C. D.}
% \reftit{Salting jubjubs in glue.}
% \refpub{J. of Beavers and Butchers V. 1 N. 357 (1999).}}
% fix the numbers after selecting the reference codes
\def\ref [#1] #2{\vskip \refvskip pt\hbox to \textwidth pt{\hskip\refindent pt\hbox par \refbodywidth pt{\hbox to 0.0in {$\hskip -\refindent pt \hbox{[#1]} \hskip 0pt plus 1000pt minus 1000pt$}#2}}\par}
\def\refauth#1{\unskip {\rm #1}}
\def\reftit#1{\unskip\unskip, {\it #1}}
\def\refpub#1{\ {\rm #1}}
% Page headers
\def\fpfoot{}
\def\header{\paptitle\hfil\count0}
\def\printfpheader{T} % put \fpheader on first page of chapter..
\def\fpheader{\null} % ...but with no contents
% FONT DEFINITIONS
\font m←timesroman at 12truebp
\font b←timesromani at 12truebp
\font <←timesromanb at 12truebp
\font M←math at 10 truebp
\font S←arrows at 10 truebp
\font v←cmtt
\font p←timesroman at 8truebp
\font o←timesromani at 8truebp
\font t←timesromanb at 8truebp
\font Z←timesromanbi at 8truebp
\font e←cmr8
\font k←cmi8
\font y←cmsy8
\font h←cmtt8
\font N←math at 8 truebp
\font R←Arrows at 8truebp % should be ArrowsTwo at 18truebp
\font D←cmr6
\font J←cmi6
\font X←cmsy6
\font U←fleur at 28truebp
\font=←timesromanb at 14truebp
\font O←helveticab at 12truebp
\font H←helveticab at 10 truebp
\def\headerfont{\curfont <} % font used for headers and page no.s
\def\titlefont{\curfont =} % font used for paper title
\def\secfont{\curfont O} % font for section headers
\def\subsecfont{\curfont H} % font for subsection headers
% Relativized fonts (get the right size depending on context).
% Default (12 point)
\def\fx{\:v} % typewriter font
\def\mrm{\:c} % math roman font
\def\cmr{\:a} % computer modern roman
\def\mal{\:M} % Alto math font
\def\bi{\:w} % Bold italic font
\def\em{\bf } % for emphasis
\def\arfont{\:S} % arrows font
% see also \rm, \bf, \it in TBasic.tex
% Smaller (9 point)
% Usage: {\small ...}, {\small\hbox par{...}}, etc
% (\hbox par{\small ...} will get wrong \baselineskip & c.)
\def\small{\baselineskip \smallbaselineskip pt \parskip \smallparskip pt
\dispskip9pt plus3pt minus7pt
\dispaskip0pt plus3pt \dispbskip 5pt plus3pt minus2pt
\def\bxparskip{\smallbxparskip}
\def\rm{\:p} \def\it{\:o} \def\bf{\:t} \def\bi{\:Z}
\def\cmr{\:e}
\def\mrm{\:e} \def\mal{\:N} \def\fx{\:h}
\def\arfont{\:R}
\mathrm eDf \mathit kJl \mathsy yXz \rm }
% DIMENSIONAL PARAMETERS
% (in points unless otherwise indicated)
% Dimensions related to page width
\def\defnormalwidths{
\def\pagewidth{400} % page width
\def\textwidth{400} % text width
\def\progwidth{380} % program width
\def\algwidth{380} % width of algorithms - max: page width
}
% Reduced dimensions in effect during \mfigs
\def\defmfigwidths{
\def\pagewidth{260} % page width
\def\textwidth{260} % text width
\def\progwidth{260} % program width
\def\algwidth{260} % width of algorithms - max: page width
}
\def\theowidth{\textwidth} % width of theorems
\def\ftfigwidth{300} % width of text in footnotes with figures
\def\refbodywidth{365} % width of body of bibl. reference
\def\refremwidth{365} % width of bibl. reference remarks
\def\abstrwidth{360} % width of abstract
% Text format
\def\textindent{20} % indentation for \indent ed paragraphs
\def\itemindent{35} % indentation for \item and \itemno body
\def\stdparindent{0} % standard indentation for paragraphs
\def\stdparskip{6} % extra skip between paragraphs
\def\stdbaselineskip{12} % normal distance betweeen baselines
\def\bxparskip{18} % \stdparskip+\stdbaselineskip (for use in \bxpar)
\def\smallparskip{4} % extra skip between paragraphs in \small
\def\smallbaselineskip{9} % distance between baselines in \small
\def\smallbxparskip{13} % \stdparskip+\stdbaselineskip (for \bxpar in \small)
% References format
\def\refindent{35} % indentation of reference body in points
\def\refvskip{10} % vskip between references
% Algorithms format
\def\stepindent{20} % in points - extra indent. per level
\def\contindent{11} % in points - extra indent. of cont. lines
\def\algindent{21} % in points - indentation of outermost bracket
\def\snoindent{4} % in points - ind. of \sno rel. innermost bracket
\def\commindent{15} % in points - ind. of comments rel. inn. bra.
% Theorem, lemma and definitions format
\def\theostatindent{20} % indentation of them. statements
\def\proofindent{20} % indentation of proofs
\def\begproofmark{{\bf Proof: }}
\def\endproofmark{\hbox{\hskip6pt{\mal \char'061}}} % square
% MARGINAL FIGURES (by Aragones?)
% Usage: \mfig3 <a paragraph at most 3cm high> \endmfig
\def\mfig#1{
\keep{#1} \defmfigwidths \hsize\pagewidth pt \par}
\def\endmfig{
\par \defnormalwidths \hsize\pagewidth pt \par}
% OUTPUT ROUTINE.
\def\fpage{T} % (internal) T on very first page
\def\headbox#1{\vbox to 0pt{
\vskip-0.54truein
\hbox to \pagewidth pt{\headerfont #1}
\vskip 4 pt
\hrule
\vskip 3 pt
\hrule
\vskip 0.33truein plus 6 in minus 6 in}}
\output{
\gdef\puthd{T}\gdef\putft{F} % internal flags
\if T\newchap{
\gdef\puthd{\printfpheader}
\gdef\putft{T}}\else{}
\if T\newfile{\gdef\putft{T}}\else{}
\baselineskip 0pt \lineskip 0pt
\if T\puthd{\hbox
{\hskip 20pt\if T\newchap{\headbox{\fpheader}}\else{\headbox{\header}}}}
\else{}
\hbox{\hskip 20pt\vbox{\page}}
\advcount0
\if T\putft{
\vskip 15pt
\hbox{\hskip20pt\hbox to \pagewidth pt
{\if T\newchap{\fpfoot}\else{}
\hfil
\if T\newfile
{\if T\printfilestamp{\small \filestamp}\else{}}\else{}
}}
}\else {}
\gdef\newfile{F}
\gdef\newchap{F}
\gdef\fpage{F}
}
\defnormalwidths
\parindent \stdparindent pt
\parskip \stdparskip pt plus 1 pt
\baselineskip \stdbaselineskip pt
\topspace .1 in
\hsize\textwidth pt
\jpar 1000