doc-src/TutorialI/Misc/document/prime_def.tex
author wenzelm
Mon, 29 Aug 2005 11:44:23 +0200
changeset 17181 5f42dd5e6570
parent 17175 1eced27ee0e1
child 17187 45bee2f6e61f
permissions -rw-r--r--
updated;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
9722
a5f86aed785b *** empty log message ***
nipkow
parents: 9721
diff changeset
     1
%
a5f86aed785b *** empty log message ***
nipkow
parents: 9721
diff changeset
     2
\begin{isabellebody}%
10267
325ead6d9457 updated;
wenzelm
parents: 10187
diff changeset
     3
\def\isabellecontext{prime{\isacharunderscore}def}%
17181
5f42dd5e6570 updated;
wenzelm
parents: 17175
diff changeset
     4
\isamarkupfalse%
17056
05fc32a23b8b updated;
wenzelm
parents: 13778
diff changeset
     5
%
05fc32a23b8b updated;
wenzelm
parents: 13778
diff changeset
     6
\isadelimtheory
05fc32a23b8b updated;
wenzelm
parents: 13778
diff changeset
     7
%
05fc32a23b8b updated;
wenzelm
parents: 13778
diff changeset
     8
\endisadelimtheory
05fc32a23b8b updated;
wenzelm
parents: 13778
diff changeset
     9
%
05fc32a23b8b updated;
wenzelm
parents: 13778
diff changeset
    10
\isatagtheory
05fc32a23b8b updated;
wenzelm
parents: 13778
diff changeset
    11
%
05fc32a23b8b updated;
wenzelm
parents: 13778
diff changeset
    12
\endisatagtheory
05fc32a23b8b updated;
wenzelm
parents: 13778
diff changeset
    13
{\isafoldtheory}%
05fc32a23b8b updated;
wenzelm
parents: 13778
diff changeset
    14
%
05fc32a23b8b updated;
wenzelm
parents: 13778
diff changeset
    15
\isadelimtheory
05fc32a23b8b updated;
wenzelm
parents: 13778
diff changeset
    16
%
05fc32a23b8b updated;
wenzelm
parents: 13778
diff changeset
    17
\endisadelimtheory
9844
8016321c7de1 *** empty log message ***
nipkow
parents: 9722
diff changeset
    18
%
8749
2665170f104a Adding generated files
nipkow
parents:
diff changeset
    19
\begin{isamarkuptext}%
9844
8016321c7de1 *** empty log message ***
nipkow
parents: 9722
diff changeset
    20
\begin{warn}
8016321c7de1 *** empty log message ***
nipkow
parents: 9722
diff changeset
    21
A common mistake when writing definitions is to introduce extra free
11456
7eb63f63e6c6 revisions and indexing
paulson
parents: 10267
diff changeset
    22
variables on the right-hand side.  Consider the following, flawed definition
7eb63f63e6c6 revisions and indexing
paulson
parents: 10267
diff changeset
    23
(where \isa{dvd} means ``divides''):
9844
8016321c7de1 *** empty log message ***
nipkow
parents: 9722
diff changeset
    24
\begin{isabelle}%
10187
0376cccd9118 *** empty log message ***
nipkow
parents: 9924
diff changeset
    25
\ \ \ \ \ {\isachardoublequote}prime\ p\ {\isasymequiv}\ {\isadigit{1}}\ {\isacharless}\ p\ {\isasymand}\ {\isacharparenleft}m\ dvd\ p\ {\isasymlongrightarrow}\ m\ {\isacharequal}\ {\isadigit{1}}\ {\isasymor}\ m\ {\isacharequal}\ p{\isacharparenright}{\isachardoublequote}%
9924
3370f6aa3200 updated;
wenzelm
parents: 9844
diff changeset
    26
\end{isabelle}
11457
279da0358aa9 additional revisions to chapters 1, 2
paulson
parents: 11456
diff changeset
    27
\par\noindent\hangindent=0pt
8749
2665170f104a Adding generated files
nipkow
parents:
diff changeset
    28
Isabelle rejects this ``definition'' because of the extra \isa{m} on the
11456
7eb63f63e6c6 revisions and indexing
paulson
parents: 10267
diff changeset
    29
right-hand side, which would introduce an inconsistency (why?). 
7eb63f63e6c6 revisions and indexing
paulson
parents: 10267
diff changeset
    30
The correct version is
9844
8016321c7de1 *** empty log message ***
nipkow
parents: 9722
diff changeset
    31
\begin{isabelle}%
10187
0376cccd9118 *** empty log message ***
nipkow
parents: 9924
diff changeset
    32
\ \ \ \ \ {\isachardoublequote}prime\ p\ {\isasymequiv}\ {\isadigit{1}}\ {\isacharless}\ p\ {\isasymand}\ {\isacharparenleft}{\isasymforall}m{\isachardot}\ m\ dvd\ p\ {\isasymlongrightarrow}\ m\ {\isacharequal}\ {\isadigit{1}}\ {\isasymor}\ m\ {\isacharequal}\ p{\isacharparenright}{\isachardoublequote}%
9924
3370f6aa3200 updated;
wenzelm
parents: 9844
diff changeset
    33
\end{isabelle}
9844
8016321c7de1 *** empty log message ***
nipkow
parents: 9722
diff changeset
    34
\end{warn}%
8749
2665170f104a Adding generated files
nipkow
parents:
diff changeset
    35
\end{isamarkuptext}%
17175
1eced27ee0e1 updated;
wenzelm
parents: 17056
diff changeset
    36
\isamarkuptrue%
17056
05fc32a23b8b updated;
wenzelm
parents: 13778
diff changeset
    37
%
05fc32a23b8b updated;
wenzelm
parents: 13778
diff changeset
    38
\isadelimtheory
05fc32a23b8b updated;
wenzelm
parents: 13778
diff changeset
    39
%
05fc32a23b8b updated;
wenzelm
parents: 13778
diff changeset
    40
\endisadelimtheory
05fc32a23b8b updated;
wenzelm
parents: 13778
diff changeset
    41
%
05fc32a23b8b updated;
wenzelm
parents: 13778
diff changeset
    42
\isatagtheory
05fc32a23b8b updated;
wenzelm
parents: 13778
diff changeset
    43
%
05fc32a23b8b updated;
wenzelm
parents: 13778
diff changeset
    44
\endisatagtheory
05fc32a23b8b updated;
wenzelm
parents: 13778
diff changeset
    45
{\isafoldtheory}%
05fc32a23b8b updated;
wenzelm
parents: 13778
diff changeset
    46
%
05fc32a23b8b updated;
wenzelm
parents: 13778
diff changeset
    47
\isadelimtheory
05fc32a23b8b updated;
wenzelm
parents: 13778
diff changeset
    48
%
05fc32a23b8b updated;
wenzelm
parents: 13778
diff changeset
    49
\endisadelimtheory
9844
8016321c7de1 *** empty log message ***
nipkow
parents: 9722
diff changeset
    50
\end{isabellebody}%
9145
9f7b8de5bfaf updated;
wenzelm
parents: 8749
diff changeset
    51
%%% Local Variables:
9f7b8de5bfaf updated;
wenzelm
parents: 8749
diff changeset
    52
%%% mode: latex
9f7b8de5bfaf updated;
wenzelm
parents: 8749
diff changeset
    53
%%% TeX-master: "root"
9f7b8de5bfaf updated;
wenzelm
parents: 8749
diff changeset
    54
%%% End: