%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% これは『Ｑ & Ａ 数学基礎論入門、共立出版』のために    %%%
%%% 作った \LaTeX 用のマクロです.                         %%%
%%% かなり意味不明のものもありますが, 何かの参考にでも    %%%
%%% なればと思っております.                               %%%
%%% def.tex と rename してお使いください.                 %%%
%%%                                                       %%%
%%%                        愛知学院大学 教養部 久馬 栄道  %%%
%%%                         kyuma@dpc.aichi-gakuin.ac.jp  %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\textwidth 115mm
\textheight 175mm

\def\pb{\pagebreak}
%\def\pb{}

\setcounter{tocdepth}{2}
\setcounter{secnumdepth}{1}
%\def\sec#1{\section*{#1}}
\def\sec#1{\section{#1}}
%\def\subsec#1{\subsection{\underline{#1}}}
\def\subsec#1{\subsection{#1}}
%\def\subsubsec#1{\bigskip\underline{\large #1}\bigskip}
\def\subsubsec#1{\subsubsection{\underline{#1}}}
%\def\subsubsec#1{\subsubsection{#1}}

\def\Imp{\rightarrow}
\def\Iff{\leftrightarrow}
\def\And{\wedge}
\def\Not{\neg}
\def\Or{\vee}

\def\pb{\pagebreak}
%\def\pb{}

\newcounter{Problem}[section]
\def\theProblem { \arabic{Problem}}

\newenvironment{problem}%
	{\begingroup\stepcounter{Problem}\arrayrulewidth=2pt%
		\begin{screen}{\bf 問題\theProblem}\hspace*{3mm}}%
	{\end{screen}\endgroup}

\newenvironment{example}%
	{\begingroup%
		\begin{screen}{\bf 例}\hspace*{3mm}}%
	{\end{screen}\endgroup}


\newenvironment{kaiwa}%
{\begingroup%
\def\labelenumi{\ifodd\theenumi{$\spadesuit$}\else{$\heartsuit$}\fi}%
\begin{enumerate}}%
{\end{enumerate} \endgroup}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%% ここからはチューリング・マシンの定義 %%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\makeatletter
\newcount\@Tv
\def\Turing#1#2#3{%
\ifnum#1=0\vspace{-7mm}\else\vspace{5mm}\fi%
\@Tv=1%
\@tfor\@Tu:=#3\do{%
\if\@Tu s\def\@Tz{ }\else\def\@Tz{\@Tu}\fi%
\ifnum#1=\@Tv%
\advance\@Tv by 1%
\kern-.5mm%
\begin{tabular}{|c}
\hline 
%\multicolumn{1}{|c|}{\makebox(10,20){\Large$#2$}}\\
\multicolumn{1}{|c|}{\makebox(5,10){$#2$}}\\
\hline 
\multicolumn{1}{c}{\makebox(5,5){\LARGE$\Downarrow$}}\\
\hline 
%\makebox(10,20){\Large$\@Tz$} \\
\makebox(5,10){$\@Tz$} \\
\hline
\end{tabular}%
\else%
\advance\@Tv by 1%
\kern-.5mm%
\begin{tabular}{|c}
%\multicolumn{1}{c}{\makebox(5,37){}}\\
\multicolumn{1}{c}{\makebox(5,26){}}\\
\hline 
%\makebox(10,20){\Large$\@Tz$} \\
\makebox(5,10){$\@Tz$} \\
\hline
\end{tabular}%
\fi}%
%\kern-3mm%
\begin{tabular}{|c}
%\multicolumn{1}{c}{\makebox(5,37){}}\\
\multicolumn{1}{c}{\makebox(5,26){}}\\
\hline 
%\makebox(20,20){\LARGE $\cdots$} \\
\makebox(5,10){$\cdots$} \\
\hline
\end{tabular}%
\vspace{5mm}%
}
\makeatother

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%% ここからはラムダ計算で用いるものの定義 %%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\makeatletter

%%%%%%%%%%%%%%%%%% \underb \overb %%%%%%%%%%%%%%%%%%%

\def\downbfill{$\m@th
\braceld\leaders\vrule\hfill\leaders\vrule\hfill\bracerd$}

\def\upbfill{$\m@th
\bracelu\leaders\vrule\hfill\leaders\vrule\hfill\braceru$}

\def\overb#1{\mathop{\vbox{\m@th\ialign{##\crcr\noalign{\kern3pt}
\downbfill\crcr\noalign{\kern3pt\nointerlineskip}
$\hfil\displaystyle{#1}\hfil$\crcr}}}\limits}

\def\underb#1{\mathop{\vtop{\m@th\ialign{##\crcr
$\hfil\displaystyle{#1}\hfil$\crcr\noalign{\kern3pt\nointerlineskip}
\upbfill\crcr\noalign{\kern3pt}}}}\limits}

%%%%%%%%%%%%%%%%% \overl \overr %%%%%%%%%%%%%%%%%%%

\def\downlfill{$\m@th \mathord\downarrow\kern -3pt \raisebox{4pt}{--} \mkern0mu
\leaders\hbox{$\mkern-4mu \raisebox{4pt}{--} \mkern-4mu$}\hfill
\mkern-2mu \kern -3pt \raisebox{4pt}{--}|$}


\def\overl#1{\vbox{\m@th\ialign{##\crcr
\downlfill\crcr\noalign{\kern-1pt\nointerlineskip}
$\hfil\displaystyle{#1}\hfil$\crcr}}}

\def\downrfill{$\m@th \mathord| \kern -1pt 
\raisebox{4pt}{--} \mkern0mu
\leaders\hbox{$\mkern-4mu \raisebox{4pt}{--} \mkern-4mu$}\hfill
\mkern0mu \raisebox{4pt}{--} \kern -5pt \downarrow$}


\def\overr#1{\vbox{\m@th\ialign{##\crcr
\downrfill\crcr\noalign{\kern-1pt\nointerlineskip}
$\hfil\displaystyle{#1}\hfil$\crcr}}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\makeatother

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%% 1-1 mapping, onto mapping %%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\def\1-1{\stackrel{1-1}{\longrightarrow}}
\def\onto{\stackrel{\rm onto}{\longrightarrow}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%   数学記号   %%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\def\<{\langle}
\def\>{\rangle}

\def\pr{\mathop{\rm pr}\nolimits}
\def\minus{\mathop{\rm minus}\nolimits}
\def\sg{\mathop{\rm sg}\nolimits}
\def\rem{\mathop{\rm rem}\nolimits}
\def\OR{\mathop{\rm OR}\nolimits}

\def\TO{\mathop{\rm TO}\nolimits}
\def\Trans{\mathop{\rm Trans}\nolimits}
\def\Ord{\mathop{\rm Ord}\nolimits}
\def\IMP{\mathrel{\;\mbox{\Large$\Rightarrow$}\;}}

\def\varin{\mathrel{\mbox{\Large$\varepsilon$}}}
\def\vareq{\approx}

\def\infer#1#2{{\displaystyle\frac{\;#1\;}{\;#2\;}}}
\def\iatop#1#2{{\displaystyle{#1 \atop #2}}}

\def\SIGMA{\sum}
\def\PI{\prod}

\def\edots{\mathinner{%
\mkern1mu\raise1pt\vbox{\kern7pt\hbox{.}}
\mkern2mu\raise4pt\hbox{.}%
\mkern2mu\raise7pt\hbox{.}\mkern1mu%
}}
\def\RED{\mathop{\mbox{\LARGE$\rhd$}\kern-8pt\mbox{\LARGE$>$}}}

\def\Power{\mathop{\rm Power}\nolimits}

\def\dotm{-^{\mathrel{\kern-5pt{\raise1pt\hbox{.}}}}\hspace{2pt}}

\def\tr{{\;\;\mbox{\Large $\triangleright$}\;\;}}
\def\btr{{\stackrel{\beta}{\tr}}}

\def\I{\mathop{\raise.5pt\hbox{\bf I}}\nolimits}
\def\K{\mathop{\raise.5pt\hbox{\bf K}}\nolimits}
\def\S{\mathop{\raise.5pt\hbox{\bf S}}\nolimits}
\def\B{\mathop{\raise.5pt\hbox{\bf B}}\nolimits}
\def\C{\mathop{\raise.5pt\hbox{\bf C}}\nolimits}
\def\W{\mathop{\raise.5pt\hbox{\bf W}}\nolimits}
\def\Y{\mathop{\raise.5pt\hbox{\bf Y}}\nolimits}
\def\OMEGA{\mathop{\raise.5pt\hbox{$\bf \Omega$}}\nolimits}




%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%% 　　　　ル　ビ　　　　　 %%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\def\ruby#1#2{%
\leavevmode
\setbox0=\hbox{#1}\setbox1=\hbox{\tiny#2}%
\ifdim\wd0>\wd1 \dimen0=\wd0 \else \dimen0=\wd1 \fi
\hbox{\kanjiskip=\fill
\vbox{\hbox to \dimen0{\tiny \hfil#2\hfil}%
\nointerlineskip
\hbox to \dimen0{\hfil#1\hfil}}}}



