diff -r 0defae128e43 -r 3f3c25d3ec04 doc-src/Intro/advanced.tex --- a/doc-src/Intro/advanced.tex Thu Nov 23 13:52:53 1995 +0100 +++ b/doc-src/Intro/advanced.tex Fri Nov 24 09:27:19 1995 +0100 @@ -437,6 +437,19 @@ end \end{ttbox} +\begin{warn} +A common mistake when writing definitions is to introduce extra free variables +on the right-hard side as in the following fictitious definition: +\begin{ttbox} +defs prime_def "prime(p) == (m divides p) --> (m=1 | m=p)" +\end{ttbox} +Isabelle rejects this ``definition'' because of the extra {\tt m} on the +right-hard side, which would introduce an inconsistency. What you should have +written is +\begin{ttbox} +defs prime_def "prime(p) == ALL m. (m divides p) --> (m=1 | m=p)" +\end{ttbox} +\end{warn} \subsection{Declaring type constructors} \indexbold{types!declaring}\indexbold{arities!declaring}