diff -r 1e93eb09ebb9 -r f27a30a18a17 doc-src/Ref/defining.tex --- a/doc-src/Ref/defining.tex Wed Jul 02 11:59:10 1997 +0200 +++ b/doc-src/Ref/defining.tex Wed Jul 02 16:46:36 1997 +0200 @@ -182,9 +182,9 @@ \end{warn} \begin{warn} - Type constraints bind very weakly. For example, \verb!x bool (infixr "&" 35) @@ -621,7 +621,7 @@ introduces a constant~$c$ of type~$\sigma$, which must have the form $(\tau@1 \To \tau@2) \To \tau@3$. Its concrete syntax is $\Q~x.P$, where $x$ is a bound variable of type~$\tau@1$, the body~$P$ has type $\tau@2$ -and the whole term has type~$\tau@3$. The optional integer $pb$ +and the whole term has type~$\tau@3$. The optional integer $pb$ specifies the body's priority, by default~$p$. Special characters in $\Q$ must be escaped using a single quote. @@ -660,8 +660,8 @@ \section{*Alternative print modes} \label{sec:prmodes} \index{print modes|(} % -Isabelle's pretty printer supports alternative output syntaxes. These -may be used independently or in cooperation. The currently active +Isabelle's pretty printer supports alternative output syntaxes. These +may be used independently or in cooperation. The currently active print modes (with precedence from left to right) are determined by a reference variable. \begin{ttbox}\index{*print_mode} @@ -669,7 +669,7 @@ \end{ttbox} Initially this may already contain some print mode identifiers, depending on how Isabelle has been invoked (e.g.\ by some user -interface). So changes should be incremental --- adding or deleting +interface). So changes should be incremental --- adding or deleting modes relative to the current value. Any \ML{} string is a legal print mode identifier, without any @@ -678,7 +678,7 @@ \texttt{symbols}, \texttt{latex}, \texttt{xterm}. There is a separate table of mixfix productions for pretty printing -associated with each print mode. The currently active ones are +associated with each print mode. The currently active ones are conceptually just concatenated from left to right, with the standard syntax output table always coming last as default. Thus mixfix productions of preceding modes in the list may override those of later @@ -687,7 +687,7 @@ \medskip The canonical application of print modes is optional printing of mathematical symbols from a special screen font instead of {\sc - ascii}. Another example is to re-use Isabelle's advanced + ascii}. Another example is to re-use Isabelle's advanced $\lambda$-term printing mechanisms to generate completely different output, say for interfacing external tools like \rmindex{model checkers} (see also \texttt{HOL/Modelcheck}). @@ -700,21 +700,21 @@ To keep the grammar small and allow common productions to be shared all logical types (except {\tt prop}) are internally represented -by one nonterminal, namely {\tt logic}. This and omitted or too freely +by one nonterminal, namely {\tt logic}. This and omitted or too freely chosen priorities may lead to ways of parsing an expression that were -not intended by the theory's maker. In most cases Isabelle is able to +not intended by the theory's maker. In most cases Isabelle is able to select one of multiple parse trees that an expression has lead -to by checking which of them can be typed correctly. But this may not +to by checking which of them can be typed correctly. But this may not work in every case and always slows down parsing. The warning and error messages that can be produced during this process are as follows: If an ambiguity can be resolved by type inference the following warning is shown to remind the user that parsing is (unnecessarily) -slowed down. In cases where it's not easily possible to eliminate the +slowed down. In cases where it's not easily possible to eliminate the ambiguity the frequency of the warning can be controlled by changing the value of {\tt Syntax.ambiguity_level} which has type {\tt int -ref}. Its default value is 1 and by increasing it one can control how +ref}. Its default value is 1 and by increasing it one can control how many parse trees are necessary to generate the warning. \begin{ttbox} @@ -738,7 +738,7 @@ Ambiguities occuring in syntax translation rules cannot be resolved by type inference because it is not necessary for these rules to be type -correct. Therefore Isabelle always generates an error message and the +correct. Therefore Isabelle always generates an error message and the ambiguity should be eliminated by changing the grammar or the rule.