176 The notation for~{\CTT} (Fig.\ts\ref{ctt-syntax}) is based on that of |
176 The notation for~{\CTT} (Fig.\ts\ref{ctt-syntax}) is based on that of |
177 Nordstr\"om et al.~\cite{nordstrom90}. The empty type is called $F$ and |
177 Nordstr\"om et al.~\cite{nordstrom90}. The empty type is called $F$ and |
178 the one-element type is $T$; other finite types are built as $T+T+T$, etc. |
178 the one-element type is $T$; other finite types are built as $T+T+T$, etc. |
179 |
179 |
180 \index{*SUM symbol}\index{*PROD symbol} |
180 \index{*SUM symbol}\index{*PROD symbol} |
181 Quantification is expressed using general sums $\sum@{x\in A}B[x]$ and |
181 Quantification is expressed by sums $\sum@{x\in A}B[x]$ and |
182 products $\prod@{x\in A}B[x]$. Instead of {\tt Sum($A$,$B$)} and {\tt |
182 products $\prod@{x\in A}B[x]$. Instead of {\tt Sum($A$,$B$)} and {\tt |
183 Prod($A$,$B$)} we may write \hbox{\tt SUM $x$:$A$. $B[x]$} and \hbox{\tt |
183 Prod($A$,$B$)} we may write \hbox{\tt SUM $x$:$A$.\ $B[x]$} and \hbox{\tt |
184 PROD $x$:$A$. $B[x]$}. For example, we may write |
184 PROD $x$:$A$.\ $B[x]$}. For example, we may write |
185 \begin{ttbox} |
185 \begin{ttbox} |
186 SUM y:B. PROD x:A. C(x,y) {\rm for} Sum(B, \%y. Prod(A, \%x. C(x,y))) |
186 SUM y:B. PROD x:A. C(x,y) {\rm for} Sum(B, \%y. Prod(A, \%x. C(x,y))) |
187 \end{ttbox} |
187 \end{ttbox} |
188 The special cases as \hbox{\tt$A$*$B$} and \hbox{\tt$A$-->$B$} abbreviate |
188 The special cases as \hbox{\tt$A$*$B$} and \hbox{\tt$A$-->$B$} abbreviate |
189 general sums and products over a constant family.\footnote{Unlike normal |
189 general sums and products over a constant family.\footnote{Unlike normal |