doc-src/Main/Docs/document/Main_Doc.tex
author nipkow
Tue, 20 Oct 2009 14:44:02 +0200
changeset 33019 bcf56a64ce1a
parent 32933 ba14400f7f34
child 33057 764547b68538
permissions -rw-r--r--
added Hilbert_Choice section
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
30442
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
     1
%
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
     2
\begin{isabellebody}%
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
     3
\def\isabellecontext{Main{\isacharunderscore}Doc}%
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
     4
%
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
     5
\isadelimtheory
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
     6
%
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
     7
\endisadelimtheory
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
     8
%
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
     9
\isatagtheory
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    10
%
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    11
\endisatagtheory
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    12
{\isafoldtheory}%
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    13
%
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    14
\isadelimtheory
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    15
%
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    16
\endisadelimtheory
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    17
%
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    18
\isadelimML
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    19
%
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    20
\endisadelimML
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    21
%
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    22
\isatagML
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    23
%
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    24
\endisatagML
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    25
{\isafoldML}%
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    26
%
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    27
\isadelimML
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    28
%
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    29
\endisadelimML
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    30
%
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    31
\begin{isamarkuptext}%
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    32
\begin{abstract}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    33
This document lists the main types, functions and syntax provided by theory \isa{Main}. It is meant as a quick overview of what is available. The sophisticated class structure is only hinted at. For details see \url{http://isabelle.in.tum.de/dist/library/HOL/}.
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    34
\end{abstract}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    35
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    36
\section{HOL}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    37
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    38
The basic logic: \isa{x\ {\isacharequal}\ y}, \isa{True}, \isa{False}, \isa{{\isasymnot}\ P}, \isa{P\ {\isasymand}\ Q}, \isa{P\ {\isasymor}\ Q}, \isa{P\ {\isasymlongrightarrow}\ Q}, \isa{{\isasymforall}x{\isachardot}\ P}, \isa{{\isasymexists}x{\isachardot}\ P}, \isa{{\isasymexists}{\isacharbang}x{\isachardot}\ P}, \isa{THE\ x{\isachardot}\ P}.
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    39
\smallskip
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    40
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    41
\begin{tabular}{@ {} l @ {~::~} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    42
\isa{undefined} & \isa{{\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    43
\isa{default} & \isa{{\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    44
\end{tabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    45
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    46
\subsubsection*{Syntax}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    47
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    48
\begin{supertabular}{@ {} l @ {\quad$\equiv$\quad} l l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    49
\isa{x\ {\isasymnoteq}\ y} & \isa{{\isachardoublequote}{\isasymnot}\ {\isacharparenleft}x\ {\isacharequal}\ y{\isacharparenright}{\isachardoublequote}} & (\verb$~=$)\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    50
\isa{{\isachardoublequote}P\ {\isasymlongleftrightarrow}\ Q{\isachardoublequote}} & \isa{P\ {\isacharequal}\ Q} \\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    51
\isa{if\ x\ then\ y\ else\ z} & \isa{{\isachardoublequote}If\ x\ y\ z{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    52
\isa{let\ x\ {\isacharequal}\ e\isactrlisub {\isadigit{1}}\ in\ e\isactrlisub {\isadigit{2}}} & \isa{{\isachardoublequote}Let\ e\isactrlisub {\isadigit{1}}\ {\isacharparenleft}{\isasymlambda}x{\isachardot}\ e\isactrlisub {\isadigit{2}}{\isacharparenright}{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    53
\end{supertabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    54
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    55
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    56
\section{Orderings}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    57
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    58
A collection of classes defining basic orderings:
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    59
preorder, partial order, linear order, dense linear order and wellorder.
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    60
\smallskip
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    61
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    62
\begin{supertabular}{@ {} l @ {~::~} l l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    63
\isa{op\ {\isasymle}} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ {\isasymRightarrow}\ bool} & (\verb$<=$)\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    64
\isa{op\ {\isacharless}} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ {\isasymRightarrow}\ bool}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    65
\isa{Least} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ bool{\isacharparenright}\ {\isasymRightarrow}\ {\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    66
\isa{min} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    67
\isa{max} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    68
\isa{top} & \isa{{\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    69
\isa{bot} & \isa{{\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    70
\isa{mono} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}b{\isacharparenright}\ {\isasymRightarrow}\ bool}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    71
\isa{strict{\isacharunderscore}mono} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}b{\isacharparenright}\ {\isasymRightarrow}\ bool}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    72
\end{supertabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    73
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    74
\subsubsection*{Syntax}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    75
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    76
\begin{supertabular}{@ {} l @ {\quad$\equiv$\quad} l l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    77
\isa{{\isachardoublequote}x\ {\isasymge}\ y{\isachardoublequote}} & \isa{y\ {\isasymle}\ x} & (\verb$>=$)\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    78
\isa{{\isachardoublequote}x\ {\isachargreater}\ y{\isachardoublequote}} & \isa{y\ {\isacharless}\ x}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    79
\isa{{\isasymforall}x{\isasymle}y{\isachardot}\ P} & \isa{{\isachardoublequote}{\isasymforall}x{\isachardot}\ x\ {\isasymle}\ y\ {\isasymlongrightarrow}\ P{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    80
\isa{{\isasymexists}x{\isasymle}y{\isachardot}\ P} & \isa{{\isachardoublequote}{\isasymexists}x{\isachardot}\ x\ {\isasymle}\ y\ {\isasymand}\ P{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    81
\multicolumn{2}{@ {}l@ {}}{Similarly for $<$, $\ge$ and $>$}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    82
\isa{LEAST\ x{\isachardot}\ P} & \isa{{\isachardoublequote}Least\ {\isacharparenleft}{\isasymlambda}x{\isachardot}\ P{\isacharparenright}{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    83
\end{supertabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    84
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    85
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    86
\section{Lattices}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    87
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    88
Classes semilattice, lattice, distributive lattice and complete lattice (the
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    89
latter in theory \isa{Set}).
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    90
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    91
\begin{tabular}{@ {} l @ {~::~} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    92
\isa{inf} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    93
\isa{sup} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    94
\isa{Inf} & \isa{{\isacharprime}a\ set\ {\isasymRightarrow}\ {\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    95
\isa{Sup} & \isa{{\isacharprime}a\ set\ {\isasymRightarrow}\ {\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    96
\end{tabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    97
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    98
\subsubsection*{Syntax}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
    99
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   100
Available by loading theory \isa{Lattice{\isacharunderscore}Syntax} in directory \isa{Library}.
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   101
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   102
\begin{supertabular}{@ {} l @ {\quad$\equiv$\quad} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   103
\isa{{\isachardoublequote}x\ {\isasymsqsubseteq}\ y{\isachardoublequote}} & \isa{x\ {\isasymle}\ y}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   104
\isa{{\isachardoublequote}x\ {\isasymsqsubset}\ y{\isachardoublequote}} & \isa{x\ {\isacharless}\ y}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   105
\isa{{\isachardoublequote}x\ {\isasymsqinter}\ y{\isachardoublequote}} & \isa{inf\ x\ y}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   106
\isa{{\isachardoublequote}x\ {\isasymsqunion}\ y{\isachardoublequote}} & \isa{sup\ x\ y}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   107
\isa{{\isachardoublequote}{\isasymSqinter}\ A{\isachardoublequote}} & \isa{Sup\ A}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   108
\isa{{\isachardoublequote}{\isasymSqunion}\ A{\isachardoublequote}} & \isa{Inf\ A}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   109
\isa{{\isachardoublequote}{\isasymtop}{\isachardoublequote}} & \isa{top}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   110
\isa{{\isachardoublequote}{\isasymbottom}{\isachardoublequote}} & \isa{bot}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   111
\end{supertabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   112
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   113
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   114
\section{Set}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   115
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   116
Sets are predicates: \isa{{\isachardoublequote}{\isacharprime}a\ set\ \ {\isacharequal}\ \ {\isacharprime}a\ {\isasymRightarrow}\ bool{\isachardoublequote}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   117
\bigskip
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   118
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   119
\begin{supertabular}{@ {} l @ {~::~} l l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   120
\isa{{\isacharbraceleft}{\isacharbraceright}} & \isa{{\isacharprime}a\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   121
\isa{insert} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ set\ {\isasymRightarrow}\ {\isacharprime}a\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   122
\isa{Collect} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ bool{\isacharparenright}\ {\isasymRightarrow}\ {\isacharprime}a\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   123
\isa{op\ {\isasymin}} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ set\ {\isasymRightarrow}\ bool} & (\texttt{:})\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   124
\isa{op\ {\isasymunion}} & \isa{{\isacharprime}a\ set\ {\isasymRightarrow}\ {\isacharprime}a\ set\ {\isasymRightarrow}\ {\isacharprime}a\ set} & (\texttt{Un})\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   125
\isa{op\ {\isasyminter}} & \isa{{\isacharprime}a\ set\ {\isasymRightarrow}\ {\isacharprime}a\ set\ {\isasymRightarrow}\ {\isacharprime}a\ set} & (\texttt{Int})\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   126
\isa{UNION} & \isa{{\isacharprime}a\ set\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}b\ set{\isacharparenright}\ {\isasymRightarrow}\ {\isacharprime}b\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   127
\isa{INTER} & \isa{{\isacharprime}a\ set\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}b\ set{\isacharparenright}\ {\isasymRightarrow}\ {\isacharprime}b\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   128
\isa{Union} & \isa{{\isacharprime}a\ set\ set\ {\isasymRightarrow}\ {\isacharprime}a\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   129
\isa{Inter} & \isa{{\isacharprime}a\ set\ set\ {\isasymRightarrow}\ {\isacharprime}a\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   130
\isa{Pow} & \isa{{\isacharprime}a\ set\ {\isasymRightarrow}\ {\isacharprime}a\ set\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   131
\isa{UNIV} & \isa{{\isacharprime}a\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   132
\isa{op\ {\isacharbackquote}} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}b{\isacharparenright}\ {\isasymRightarrow}\ {\isacharprime}a\ set\ {\isasymRightarrow}\ {\isacharprime}b\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   133
\isa{Ball} & \isa{{\isacharprime}a\ set\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ bool{\isacharparenright}\ {\isasymRightarrow}\ bool}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   134
\isa{Bex} & \isa{{\isacharprime}a\ set\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ bool{\isacharparenright}\ {\isasymRightarrow}\ bool}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   135
\end{supertabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   136
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   137
\subsubsection*{Syntax}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   138
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   139
\begin{supertabular}{@ {} l @ {\quad$\equiv$\quad} l l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   140
\isa{{\isacharbraceleft}x\isactrlisub {\isadigit{1}}{\isacharcomma}{\isasymdots}{\isacharcomma}x\isactrlisub n{\isacharbraceright}} & \isa{insert\ x\isactrlisub {\isadigit{1}}\ {\isacharparenleft}{\isasymdots}\ {\isacharparenleft}insert\ x\isactrlisub n\ {\isacharbraceleft}{\isacharbraceright}{\isacharparenright}{\isasymdots}{\isacharparenright}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   141
\isa{x\ {\isasymnotin}\ A} & \isa{{\isachardoublequote}{\isasymnot}{\isacharparenleft}x\ {\isasymin}\ A{\isacharparenright}{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   142
\isa{A\ {\isasymsubseteq}\ B} & \isa{{\isachardoublequote}A\ {\isasymle}\ B{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   143
\isa{A\ {\isasymsubset}\ B} & \isa{{\isachardoublequote}A\ {\isacharless}\ B{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   144
\isa{{\isachardoublequote}A\ {\isasymsupseteq}\ B{\isachardoublequote}} & \isa{{\isachardoublequote}B\ {\isasymle}\ A{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   145
\isa{{\isachardoublequote}A\ {\isasymsupset}\ B{\isachardoublequote}} & \isa{{\isachardoublequote}B\ {\isacharless}\ A{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   146
\isa{{\isacharbraceleft}x{\isachardot}\ P{\isacharbraceright}} & \isa{{\isachardoublequote}Collect\ {\isacharparenleft}{\isasymlambda}x{\isachardot}\ P{\isacharparenright}{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   147
\isa{{\isasymUnion}x{\isasymin}I{\isachardot}\ A} & \isa{{\isachardoublequote}UNION\ I\ {\isacharparenleft}{\isasymlambda}x{\isachardot}\ A{\isacharparenright}{\isachardoublequote}} & (\texttt{UN})\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   148
\isa{{\isasymUnion}x{\isachardot}\ A} & \isa{{\isachardoublequote}UNION\ UNIV\ {\isacharparenleft}{\isasymlambda}x{\isachardot}\ A{\isacharparenright}{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   149
\isa{{\isasymInter}x{\isasymin}I{\isachardot}\ A} & \isa{{\isachardoublequote}INTER\ I\ {\isacharparenleft}{\isasymlambda}x{\isachardot}\ A{\isacharparenright}{\isachardoublequote}} & (\texttt{INT})\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   150
\isa{{\isasymInter}x{\isachardot}\ A} & \isa{{\isachardoublequote}INTER\ UNIV\ {\isacharparenleft}{\isasymlambda}x{\isachardot}\ A{\isacharparenright}{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   151
\isa{{\isasymforall}x{\isasymin}A{\isachardot}\ P} & \isa{{\isachardoublequote}Ball\ A\ {\isacharparenleft}{\isasymlambda}x{\isachardot}\ P{\isacharparenright}{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   152
\isa{{\isasymexists}x{\isasymin}A{\isachardot}\ P} & \isa{{\isachardoublequote}Bex\ A\ {\isacharparenleft}{\isasymlambda}x{\isachardot}\ P{\isacharparenright}{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   153
\isa{range\ f} & \isa{{\isachardoublequote}f\ {\isacharbackquote}\ UNIV{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   154
\end{supertabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   155
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   156
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   157
\section{Fun}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   158
32933
ba14400f7f34 added List.nth
nipkow
parents: 32836
diff changeset
   159
\begin{supertabular}{@ {} l @ {~::~} l l @ {}}
30442
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   160
\isa{id} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a}\\
32933
ba14400f7f34 added List.nth
nipkow
parents: 32836
diff changeset
   161
\isa{op\ {\isasymcirc}} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}b{\isacharparenright}\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}c\ {\isasymRightarrow}\ {\isacharprime}a{\isacharparenright}\ {\isasymRightarrow}\ {\isacharprime}c\ {\isasymRightarrow}\ {\isacharprime}b} & (\texttt{o})\\
30442
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   162
\isa{inj{\isacharunderscore}on} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}b{\isacharparenright}\ {\isasymRightarrow}\ {\isacharprime}a\ set\ {\isasymRightarrow}\ bool}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   163
\isa{inj} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}b{\isacharparenright}\ {\isasymRightarrow}\ bool}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   164
\isa{surj} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}b{\isacharparenright}\ {\isasymRightarrow}\ bool}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   165
\isa{bij} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}b{\isacharparenright}\ {\isasymRightarrow}\ bool}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   166
\isa{bij{\isacharunderscore}betw} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}b{\isacharparenright}\ {\isasymRightarrow}\ {\isacharprime}a\ set\ {\isasymRightarrow}\ {\isacharprime}b\ set\ {\isasymRightarrow}\ bool}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   167
\isa{fun{\isacharunderscore}upd} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}b{\isacharparenright}\ {\isasymRightarrow}\ {\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}b\ {\isasymRightarrow}\ {\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}b}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   168
\end{supertabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   169
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   170
\subsubsection*{Syntax}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   171
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   172
\begin{tabular}{@ {} l @ {\quad$\equiv$\quad} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   173
\isa{f{\isacharparenleft}x\ {\isacharcolon}{\isacharequal}\ y{\isacharparenright}} & \isa{{\isachardoublequote}fun{\isacharunderscore}upd\ f\ x\ y{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   174
\isa{f{\isacharparenleft}x\isactrlisub {\isadigit{1}}{\isacharcolon}{\isacharequal}y\isactrlisub {\isadigit{1}}{\isacharcomma}{\isasymdots}{\isacharcomma}x\isactrlisub n{\isacharcolon}{\isacharequal}y\isactrlisub n{\isacharparenright}} & \isa{f{\isacharparenleft}x\isactrlisub {\isadigit{1}}{\isacharcolon}{\isacharequal}y\isactrlisub {\isadigit{1}}{\isacharparenright}{\isasymdots}{\isacharparenleft}x\isactrlisub n{\isacharcolon}{\isacharequal}y\isactrlisub n{\isacharparenright}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   175
\end{tabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   176
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   177
33019
bcf56a64ce1a added Hilbert_Choice section
nipkow
parents: 32933
diff changeset
   178
\section{Hilbert\_Choice}
bcf56a64ce1a added Hilbert_Choice section
nipkow
parents: 32933
diff changeset
   179
bcf56a64ce1a added Hilbert_Choice section
nipkow
parents: 32933
diff changeset
   180
Hilbert's selection ($\varepsilon$) operator: \isa{SOME\ x{\isachardot}\ P}.
bcf56a64ce1a added Hilbert_Choice section
nipkow
parents: 32933
diff changeset
   181
\smallskip
bcf56a64ce1a added Hilbert_Choice section
nipkow
parents: 32933
diff changeset
   182
bcf56a64ce1a added Hilbert_Choice section
nipkow
parents: 32933
diff changeset
   183
\begin{tabular}{@ {} l @ {~::~} l @ {}}
bcf56a64ce1a added Hilbert_Choice section
nipkow
parents: 32933
diff changeset
   184
\isa{inv{\isacharunderscore}onto} & \isa{{\isacharprime}a\ set\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}b{\isacharparenright}\ {\isasymRightarrow}\ {\isacharprime}b\ {\isasymRightarrow}\ {\isacharprime}a}
bcf56a64ce1a added Hilbert_Choice section
nipkow
parents: 32933
diff changeset
   185
\end{tabular}
bcf56a64ce1a added Hilbert_Choice section
nipkow
parents: 32933
diff changeset
   186
bcf56a64ce1a added Hilbert_Choice section
nipkow
parents: 32933
diff changeset
   187
\subsubsection*{Syntax}
bcf56a64ce1a added Hilbert_Choice section
nipkow
parents: 32933
diff changeset
   188
bcf56a64ce1a added Hilbert_Choice section
nipkow
parents: 32933
diff changeset
   189
\begin{tabular}{@ {} l @ {\quad$\equiv$\quad} l @ {}}
bcf56a64ce1a added Hilbert_Choice section
nipkow
parents: 32933
diff changeset
   190
\isa{inv} & \isa{{\isachardoublequote}inv{\isacharunderscore}onto\ UNIV{\isachardoublequote}}
bcf56a64ce1a added Hilbert_Choice section
nipkow
parents: 32933
diff changeset
   191
\end{tabular}
bcf56a64ce1a added Hilbert_Choice section
nipkow
parents: 32933
diff changeset
   192
30442
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   193
\section{Fixed Points}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   194
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   195
Theory: \isa{Inductive}.
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   196
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   197
Least and greatest fixed points in a complete lattice \isa{{\isacharprime}a}:
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   198
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   199
\begin{tabular}{@ {} l @ {~::~} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   200
\isa{lfp} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a{\isacharparenright}\ {\isasymRightarrow}\ {\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   201
\isa{gfp} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a{\isacharparenright}\ {\isasymRightarrow}\ {\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   202
\end{tabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   203
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   204
Note that in particular sets (\isa{{\isacharprime}a\ {\isasymRightarrow}\ bool}) are complete lattices.
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   205
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   206
\section{Sum\_Type}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   207
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   208
Type constructor \isa{{\isacharplus}}.
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   209
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   210
\begin{tabular}{@ {} l @ {~::~} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   211
\isa{Inl} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ {\isacharplus}\ {\isacharprime}b}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   212
\isa{Inr} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}b\ {\isacharplus}\ {\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   213
\isa{op\ {\isacharless}{\isacharplus}{\isachargreater}} & \isa{{\isacharprime}a\ set\ {\isasymRightarrow}\ {\isacharprime}b\ set\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}a\ {\isacharplus}\ {\isacharprime}b{\isacharparenright}\ set}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   214
\end{tabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   215
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   216
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   217
\section{Product\_Type}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   218
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   219
Types \isa{unit} and \isa{{\isasymtimes}}.
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   220
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   221
\begin{supertabular}{@ {} l @ {~::~} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   222
\isa{{\isacharparenleft}{\isacharparenright}} & \isa{unit}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   223
\isa{Pair} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}b\ {\isasymRightarrow}\ {\isacharprime}a\ {\isasymtimes}\ {\isacharprime}b}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   224
\isa{fst} & \isa{{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}b\ {\isasymRightarrow}\ {\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   225
\isa{snd} & \isa{{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}b\ {\isasymRightarrow}\ {\isacharprime}b}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   226
\isa{split} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}b\ {\isasymRightarrow}\ {\isacharprime}c{\isacharparenright}\ {\isasymRightarrow}\ {\isacharprime}a\ {\isasymtimes}\ {\isacharprime}b\ {\isasymRightarrow}\ {\isacharprime}c}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   227
\isa{curry} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}b\ {\isasymRightarrow}\ {\isacharprime}c{\isacharparenright}\ {\isasymRightarrow}\ {\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}b\ {\isasymRightarrow}\ {\isacharprime}c}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   228
\isa{Sigma} & \isa{{\isacharprime}a\ set\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}b\ set{\isacharparenright}\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}b{\isacharparenright}\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   229
\end{supertabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   230
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   231
\subsubsection*{Syntax}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   232
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   233
\begin{tabular}{@ {} l @ {\quad$\equiv$\quad} ll @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   234
\isa{{\isacharparenleft}a{\isacharcomma}\ b{\isacharparenright}} & \isa{{\isachardoublequote}Pair\ a\ b{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   235
\isa{{\isasymlambda}{\isacharparenleft}x{\isacharcomma}\ y{\isacharparenright}{\isachardot}\ t} & \isa{{\isachardoublequote}split\ {\isacharparenleft}{\isasymlambda}x\ y{\isachardot}\ t{\isacharparenright}{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   236
\isa{A\ {\isasymtimes}\ B} &  \isa{Sigma\ A\ {\isacharparenleft}{\isasymlambda}\_{\isachardot}\ B{\isacharparenright}} & (\verb$<*>$)
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   237
\end{tabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   238
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   239
Pairs may be nested. Nesting to the right is printed as a tuple,
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   240
e.g.\ \mbox{\isa{{\isacharparenleft}a{\isacharcomma}\ b{\isacharcomma}\ c{\isacharparenright}}} is really \mbox{\isa{{\isacharparenleft}a{\isacharcomma}\ {\isacharparenleft}b{\isacharcomma}\ c{\isacharparenright}{\isacharparenright}}.}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   241
Pattern matching with pairs and tuples extends to all binders,
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   242
e.g.\ \mbox{\isa{{\isasymforall}{\isacharparenleft}x{\isacharcomma}\ y{\isacharparenright}{\isasymin}A{\isachardot}\ P},} \isa{{\isacharbraceleft}{\isacharparenleft}x{\isacharcomma}\ y{\isacharparenright}{\isachardot}\ P{\isacharbraceright}}, etc.
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   243
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   244
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   245
\section{Relation}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   246
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   247
\begin{supertabular}{@ {} l @ {~::~} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   248
\isa{converse} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}b{\isacharparenright}\ set\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}b\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set}\\
32266
b1c2110ae681 updated generated document
haftmann
parents: 30988
diff changeset
   249
\isa{op\ O} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}b{\isacharparenright}\ set\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}b\ {\isasymtimes}\ {\isacharprime}c{\isacharparenright}\ set\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}c{\isacharparenright}\ set}\\
30442
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   250
\isa{op\ {\isacharbackquote}{\isacharbackquote}} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}b{\isacharparenright}\ set\ {\isasymRightarrow}\ {\isacharprime}a\ set\ {\isasymRightarrow}\ {\isacharprime}b\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   251
\isa{inv{\isacharunderscore}image} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}b\ {\isasymRightarrow}\ {\isacharprime}a{\isacharparenright}\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}b\ {\isasymtimes}\ {\isacharprime}b{\isacharparenright}\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   252
\isa{Id{\isacharunderscore}on} & \isa{{\isacharprime}a\ set\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   253
\isa{Id} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   254
\isa{Domain} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}b{\isacharparenright}\ set\ {\isasymRightarrow}\ {\isacharprime}a\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   255
\isa{Range} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}b{\isacharparenright}\ set\ {\isasymRightarrow}\ {\isacharprime}b\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   256
\isa{Field} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set\ {\isasymRightarrow}\ {\isacharprime}a\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   257
\isa{refl{\isacharunderscore}on} & \isa{{\isacharprime}a\ set\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set\ {\isasymRightarrow}\ bool}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   258
\isa{refl} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set\ {\isasymRightarrow}\ bool}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   259
\isa{sym} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set\ {\isasymRightarrow}\ bool}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   260
\isa{antisym} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set\ {\isasymRightarrow}\ bool}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   261
\isa{trans} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set\ {\isasymRightarrow}\ bool}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   262
\isa{irrefl} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set\ {\isasymRightarrow}\ bool}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   263
\isa{total{\isacharunderscore}on} & \isa{{\isacharprime}a\ set\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set\ {\isasymRightarrow}\ bool}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   264
\isa{total} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set\ {\isasymRightarrow}\ bool}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   265
\end{supertabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   266
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   267
\subsubsection*{Syntax}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   268
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   269
\begin{tabular}{@ {} l @ {\quad$\equiv$\quad} l l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   270
\isa{r{\isasyminverse}} & \isa{{\isachardoublequote}converse\ r{\isachardoublequote}} & (\verb$^-1$)
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   271
\end{tabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   272
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   273
\section{Equiv\_Relations}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   274
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   275
\begin{supertabular}{@ {} l @ {~::~} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   276
\isa{equiv} & \isa{{\isacharprime}a\ set\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set\ {\isasymRightarrow}\ bool}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   277
\isa{op\ {\isacharslash}{\isacharslash}} & \isa{{\isacharprime}a\ set\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set\ {\isasymRightarrow}\ {\isacharprime}a\ set\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   278
\isa{congruent} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}b{\isacharparenright}\ {\isasymRightarrow}\ bool}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   279
\isa{congruent{\isadigit{2}}} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}b\ {\isasymtimes}\ {\isacharprime}b{\isacharparenright}\ set\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}b\ {\isasymRightarrow}\ {\isacharprime}c{\isacharparenright}\ {\isasymRightarrow}\ bool}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   280
%@ {const Equiv_Relations.} & @ {term_type_only Equiv_Relations. ""}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   281
\end{supertabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   282
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   283
\subsubsection*{Syntax}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   284
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   285
\begin{tabular}{@ {} l @ {\quad$\equiv$\quad} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   286
\isa{f\ respects\ r} & \isa{{\isachardoublequote}congruent\ r\ f{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   287
\isa{f\ respects{\isadigit{2}}\ r} & \isa{{\isachardoublequote}congruent{\isadigit{2}}\ r\ r\ f{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   288
\end{tabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   289
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   290
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   291
\section{Transitive\_Closure}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   292
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   293
\begin{tabular}{@ {} l @ {~::~} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   294
\isa{rtrancl} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   295
\isa{trancl} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   296
\isa{reflcl} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set}\\
30988
b53800e3ee47 adjusted to changes in power syntax
haftmann
parents: 30457
diff changeset
   297
\isa{op\ {\isacharcircum}{\isacharcircum}} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set\ {\isasymRightarrow}\ nat\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set}\\
30442
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   298
\end{tabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   299
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   300
\subsubsection*{Syntax}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   301
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   302
\begin{tabular}{@ {} l @ {\quad$\equiv$\quad} l l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   303
\isa{r\isactrlsup {\isacharasterisk}} & \isa{{\isachardoublequote}rtrancl\ r{\isachardoublequote}} & (\verb$^*$)\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   304
\isa{r\isactrlsup {\isacharplus}} & \isa{{\isachardoublequote}trancl\ r{\isachardoublequote}} & (\verb$^+$)\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   305
\isa{r\isactrlsup {\isacharequal}} & \isa{{\isachardoublequote}reflcl\ r{\isachardoublequote}} & (\verb$^=$)
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   306
\end{tabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   307
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   308
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   309
\section{Algebra}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   310
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   311
Theories \isa{OrderedGroup}, \isa{Ring{\isacharunderscore}and{\isacharunderscore}Field} and \isa{Divides} define a large collection of classes describing common algebraic
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   312
structures from semigroups up to fields. Everything is done in terms of
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   313
overloaded operators:
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   314
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   315
\begin{supertabular}{@ {} l @ {~::~} l l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   316
\isa{{\isadigit{0}}} & \isa{{\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   317
\isa{{\isadigit{1}}} & \isa{{\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   318
\isa{op\ {\isacharplus}} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   319
\isa{op\ {\isacharminus}} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   320
\isa{uminus} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a} & (\verb$-$)\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   321
\isa{op\ {\isacharasterisk}} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   322
\isa{inverse} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   323
\isa{op\ {\isacharslash}} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   324
\isa{abs} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   325
\isa{sgn} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   326
\isa{op\ dvd} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ {\isasymRightarrow}\ bool}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   327
\isa{op\ div} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   328
\isa{op\ mod} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   329
\end{supertabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   330
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   331
\subsubsection*{Syntax}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   332
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   333
\begin{tabular}{@ {} l @ {\quad$\equiv$\quad} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   334
\isa{{\isasymbar}x{\isasymbar}} & \isa{{\isachardoublequote}abs\ x{\isachardoublequote}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   335
\end{tabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   336
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   337
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   338
\section{Nat}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   339
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   340
\isa{\isacommand{datatype}\ nat\ {\isacharequal}\ {\isadigit{0}}\ {\isacharbar}\ Suc\ nat}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   341
\bigskip
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   342
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   343
\begin{tabular}{@ {} lllllll @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   344
\isa{op\ {\isacharplus}} &
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   345
\isa{op\ {\isacharminus}} &
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   346
\isa{op\ {\isacharasterisk}} &
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   347
\isa{op\ div}&
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   348
\isa{op\ mod}&
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   349
\isa{op\ dvd}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   350
\isa{op\ {\isasymle}} &
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   351
\isa{op\ {\isacharless}} &
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   352
\isa{min} &
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   353
\isa{max} &
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   354
\isa{Min} &
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   355
\isa{Max}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   356
\end{tabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   357
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   358
\begin{tabular}{@ {} l @ {~::~} l @ {}}
30988
b53800e3ee47 adjusted to changes in power syntax
haftmann
parents: 30457
diff changeset
   359
\isa{of{\isacharunderscore}nat} & \isa{nat\ {\isasymRightarrow}\ {\isacharprime}a}\\
b53800e3ee47 adjusted to changes in power syntax
haftmann
parents: 30457
diff changeset
   360
\isa{op\ {\isacharcircum}{\isacharcircum}} &
b53800e3ee47 adjusted to changes in power syntax
haftmann
parents: 30457
diff changeset
   361
  \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a{\isacharparenright}\ {\isasymRightarrow}\ nat\ {\isasymRightarrow}\ {\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a}
30442
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   362
\end{tabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   363
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   364
\section{Int}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   365
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   366
Type \isa{int}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   367
\bigskip
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   368
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   369
\begin{tabular}{@ {} llllllll @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   370
\isa{op\ {\isacharplus}} &
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   371
\isa{op\ {\isacharminus}} &
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   372
\isa{uminus} &
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   373
\isa{op\ {\isacharasterisk}} &
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   374
\isa{op\ {\isacharcircum}} &
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   375
\isa{op\ div}&
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   376
\isa{op\ mod}&
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   377
\isa{op\ dvd}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   378
\isa{op\ {\isasymle}} &
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   379
\isa{op\ {\isacharless}} &
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   380
\isa{min} &
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   381
\isa{max} &
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   382
\isa{Min} &
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   383
\isa{Max}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   384
\isa{abs} &
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   385
\isa{sgn}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   386
\end{tabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   387
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   388
\begin{tabular}{@ {} l @ {~::~} l l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   389
\isa{nat} & \isa{int\ {\isasymRightarrow}\ nat}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   390
\isa{of{\isacharunderscore}int} & \isa{int\ {\isasymRightarrow}\ {\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   391
\isa{{\isasymint}} & \isa{{\isacharprime}a\ set} & (\verb$Ints$)
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   392
\end{tabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   393
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   394
\subsubsection*{Syntax}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   395
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   396
\begin{tabular}{@ {} l @ {\quad$\equiv$\quad} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   397
\isa{int} & \isa{{\isachardoublequote}of{\isacharunderscore}nat{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   398
\end{tabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   399
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   400
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   401
\section{Finite\_Set}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   402
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   403
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   404
\begin{supertabular}{@ {} l @ {~::~} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   405
\isa{finite} & \isa{{\isacharprime}a\ set\ {\isasymRightarrow}\ bool}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   406
\isa{card} & \isa{{\isacharprime}a\ set\ {\isasymRightarrow}\ nat}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   407
\isa{fold} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}b\ {\isasymRightarrow}\ {\isacharprime}b{\isacharparenright}\ {\isasymRightarrow}\ {\isacharprime}b\ {\isasymRightarrow}\ {\isacharprime}a\ set\ {\isasymRightarrow}\ {\isacharprime}b}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   408
\isa{fold{\isacharunderscore}image} & \isa{{\isacharparenleft}{\isacharprime}b\ {\isasymRightarrow}\ {\isacharprime}b\ {\isasymRightarrow}\ {\isacharprime}b{\isacharparenright}\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}b{\isacharparenright}\ {\isasymRightarrow}\ {\isacharprime}b\ {\isasymRightarrow}\ {\isacharprime}a\ set\ {\isasymRightarrow}\ {\isacharprime}b}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   409
\isa{setsum} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}b{\isacharparenright}\ {\isasymRightarrow}\ {\isacharprime}a\ set\ {\isasymRightarrow}\ {\isacharprime}b}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   410
\isa{setprod} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}b{\isacharparenright}\ {\isasymRightarrow}\ {\isacharprime}a\ set\ {\isasymRightarrow}\ {\isacharprime}b}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   411
\end{supertabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   412
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   413
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   414
\subsubsection*{Syntax}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   415
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   416
\begin{supertabular}{@ {} l @ {\quad$\equiv$\quad} l l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   417
\isa{{\isasymSum}A} & \isa{{\isachardoublequote}setsum\ {\isacharparenleft}{\isasymlambda}x{\isachardot}\ x{\isacharparenright}\ A{\isachardoublequote}} & (\verb$SUM$)\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   418
\isa{{\isasymSum}x{\isasymin}A{\isachardot}\ t} & \isa{{\isachardoublequote}setsum\ {\isacharparenleft}{\isasymlambda}x{\isachardot}\ t{\isacharparenright}\ A{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   419
\isa{{\isachardoublequote}{\isasymSum}x{\isacharbar}P{\isachardot}\ t{\isachardoublequote}} & \isa{{\isasymSum}x{\isasymin}{\isacharbraceleft}x{\isachardot}\ P{\isacharbraceright}{\isachardot}\ t}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   420
\multicolumn{2}{@ {}l@ {}}{Similarly for \isa{{\isasymProd}} instead of \isa{{\isasymSum}}} & (\verb$PROD$)\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   421
\end{supertabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   422
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   423
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   424
\section{Wellfounded}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   425
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   426
\begin{supertabular}{@ {} l @ {~::~} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   427
\isa{wf} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set\ {\isasymRightarrow}\ bool}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   428
\isa{acyclic} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set\ {\isasymRightarrow}\ bool}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   429
\isa{acc} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set\ {\isasymRightarrow}\ {\isacharprime}a\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   430
\isa{measure} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ nat{\isacharparenright}\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   431
\isa{op\ {\isacharless}{\isacharasterisk}lex{\isacharasterisk}{\isachargreater}} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}b\ {\isasymtimes}\ {\isacharprime}b{\isacharparenright}\ set\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}b{\isacharparenright}\ {\isasymtimes}\ {\isacharprime}a\ {\isasymtimes}\ {\isacharprime}b{\isacharparenright}\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   432
\isa{op\ {\isacharless}{\isacharasterisk}mlex{\isacharasterisk}{\isachargreater}} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ nat{\isacharparenright}\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   433
\isa{less{\isacharunderscore}than} & \isa{{\isacharparenleft}nat\ {\isasymtimes}\ nat{\isacharparenright}\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   434
\isa{pred{\isacharunderscore}nat} & \isa{{\isacharparenleft}nat\ {\isasymtimes}\ nat{\isacharparenright}\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   435
\end{supertabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   436
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   437
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   438
\section{SetInterval}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   439
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   440
\begin{supertabular}{@ {} l @ {~::~} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   441
\isa{lessThan} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   442
\isa{atMost} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   443
\isa{greaterThan} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   444
\isa{atLeast} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   445
\isa{greaterThanLessThan} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   446
\isa{atLeastLessThan} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   447
\isa{greaterThanAtMost} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   448
\isa{atLeastAtMost} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   449
\end{supertabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   450
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   451
\subsubsection*{Syntax}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   452
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   453
\begin{supertabular}{@ {} l @ {\quad$\equiv$\quad} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   454
\isa{{\isacharbraceleft}{\isachardot}{\isachardot}{\isacharless}y{\isacharbraceright}} & \isa{{\isachardoublequote}lessThan\ y{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   455
\isa{{\isacharbraceleft}{\isachardot}{\isachardot}y{\isacharbraceright}} & \isa{{\isachardoublequote}atMost\ y{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   456
\isa{{\isacharbraceleft}x{\isacharless}{\isachardot}{\isachardot}{\isacharbraceright}} & \isa{{\isachardoublequote}greaterThan\ x{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   457
\isa{{\isacharbraceleft}x{\isachardot}{\isachardot}{\isacharbraceright}} & \isa{{\isachardoublequote}atLeast\ x{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   458
\isa{{\isacharbraceleft}x{\isacharless}{\isachardot}{\isachardot}{\isacharless}y{\isacharbraceright}} & \isa{{\isachardoublequote}greaterThanLessThan\ x\ y{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   459
\isa{{\isacharbraceleft}x{\isachardot}{\isachardot}{\isacharless}y{\isacharbraceright}} & \isa{{\isachardoublequote}atLeastLessThan\ x\ y{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   460
\isa{{\isacharbraceleft}x{\isacharless}{\isachardot}{\isachardot}y{\isacharbraceright}} & \isa{{\isachardoublequote}greaterThanAtMost\ x\ y{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   461
\isa{{\isacharbraceleft}x{\isachardot}{\isachardot}y{\isacharbraceright}} & \isa{{\isachardoublequote}atLeastAtMost\ x\ y{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   462
\isa{{\isasymUnion}\ i{\isasymle}n{\isachardot}\ A} & \isa{{\isachardoublequote}{\isasymUnion}\ i\ {\isasymin}\ {\isacharbraceleft}{\isachardot}{\isachardot}n{\isacharbraceright}{\isachardot}\ A{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   463
\isa{{\isasymUnion}\ i{\isacharless}n{\isachardot}\ A} & \isa{{\isachardoublequote}{\isasymUnion}\ i\ {\isasymin}\ {\isacharbraceleft}{\isachardot}{\isachardot}{\isacharless}n{\isacharbraceright}{\isachardot}\ A{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   464
\multicolumn{2}{@ {}l@ {}}{Similarly for \isa{{\isasymInter}} instead of \isa{{\isasymUnion}}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   465
\isa{{\isasymSum}x\ {\isacharequal}\ a{\isachardot}{\isachardot}b{\isachardot}\ t} & \isa{{\isachardoublequote}setsum\ {\isacharparenleft}{\isasymlambda}x{\isachardot}\ t{\isacharparenright}\ {\isacharbraceleft}a{\isachardot}{\isachardot}b{\isacharbraceright}{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   466
\isa{{\isasymSum}x\ {\isacharequal}\ a{\isachardot}{\isachardot}{\isacharless}b{\isachardot}\ t} & \isa{{\isachardoublequote}setsum\ {\isacharparenleft}{\isasymlambda}x{\isachardot}\ t{\isacharparenright}\ {\isacharbraceleft}a{\isachardot}{\isachardot}{\isacharless}b{\isacharbraceright}{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   467
\isa{{\isasymSum}x{\isasymle}b{\isachardot}\ t} & \isa{{\isachardoublequote}setsum\ {\isacharparenleft}{\isasymlambda}x{\isachardot}\ t{\isacharparenright}\ {\isacharbraceleft}{\isachardot}{\isachardot}b{\isacharbraceright}{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   468
\isa{{\isasymSum}x{\isacharless}b{\isachardot}\ t} & \isa{{\isachardoublequote}setsum\ {\isacharparenleft}{\isasymlambda}x{\isachardot}\ t{\isacharparenright}\ {\isacharbraceleft}{\isachardot}{\isachardot}{\isacharless}b{\isacharbraceright}{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   469
\multicolumn{2}{@ {}l@ {}}{Similarly for \isa{{\isasymProd}} instead of \isa{{\isasymSum}}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   470
\end{supertabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   471
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   472
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   473
\section{Power}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   474
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   475
\begin{tabular}{@ {} l @ {~::~} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   476
\isa{op\ {\isacharcircum}} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ nat\ {\isasymRightarrow}\ {\isacharprime}a}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   477
\end{tabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   478
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   479
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   480
\section{Option}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   481
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   482
\isa{\isacommand{datatype}\ {\isacharprime}a\ option\ {\isacharequal}\ None\ {\isacharbar}\ Some\ {\isacharprime}a}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   483
\bigskip
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   484
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   485
\begin{tabular}{@ {} l @ {~::~} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   486
\isa{the} & \isa{{\isacharprime}a\ option\ {\isasymRightarrow}\ {\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   487
\isa{Option{\isachardot}map} & \isa{{\isachardoublequote}{\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}b{\isacharparenright}\ {\isasymRightarrow}\ {\isacharprime}a\ option\ {\isasymRightarrow}\ {\isacharprime}b\ option{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   488
\isa{Option{\isachardot}set} & \isa{{\isacharprime}a\ option\ {\isasymRightarrow}\ {\isacharprime}a\ set}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   489
\end{tabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   490
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   491
\section{List}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   492
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   493
\isa{\isacommand{datatype}\ {\isacharprime}a\ list\ {\isacharequal}\ {\isacharbrackleft}{\isacharbrackright}\ {\isacharbar}\ op\ {\isacharhash}\ {\isacharprime}a\ {\isacharparenleft}{\isacharprime}a\ list{\isacharparenright}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   494
\bigskip
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   495
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   496
\begin{supertabular}{@ {} l @ {~::~} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   497
\isa{op\ {\isacharat}} & \isa{{\isacharprime}a\ list\ {\isasymRightarrow}\ {\isacharprime}a\ list\ {\isasymRightarrow}\ {\isacharprime}a\ list}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   498
\isa{butlast} & \isa{{\isacharprime}a\ list\ {\isasymRightarrow}\ {\isacharprime}a\ list}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   499
\isa{concat} & \isa{{\isacharprime}a\ list\ list\ {\isasymRightarrow}\ {\isacharprime}a\ list}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   500
\isa{distinct} & \isa{{\isacharprime}a\ list\ {\isasymRightarrow}\ bool}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   501
\isa{drop} & \isa{nat\ {\isasymRightarrow}\ {\isacharprime}a\ list\ {\isasymRightarrow}\ {\isacharprime}a\ list}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   502
\isa{dropWhile} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ bool{\isacharparenright}\ {\isasymRightarrow}\ {\isacharprime}a\ list\ {\isasymRightarrow}\ {\isacharprime}a\ list}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   503
\isa{filter} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ bool{\isacharparenright}\ {\isasymRightarrow}\ {\isacharprime}a\ list\ {\isasymRightarrow}\ {\isacharprime}a\ list}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   504
\isa{foldl} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}b\ {\isasymRightarrow}\ {\isacharprime}a{\isacharparenright}\ {\isasymRightarrow}\ {\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}b\ list\ {\isasymRightarrow}\ {\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   505
\isa{foldr} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}b\ {\isasymRightarrow}\ {\isacharprime}b{\isacharparenright}\ {\isasymRightarrow}\ {\isacharprime}a\ list\ {\isasymRightarrow}\ {\isacharprime}b\ {\isasymRightarrow}\ {\isacharprime}b}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   506
\isa{hd} & \isa{{\isacharprime}a\ list\ {\isasymRightarrow}\ {\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   507
\isa{last} & \isa{{\isacharprime}a\ list\ {\isasymRightarrow}\ {\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   508
\isa{length} & \isa{{\isacharprime}a\ list\ {\isasymRightarrow}\ nat}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   509
\isa{lenlex} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}a\ list\ {\isasymtimes}\ {\isacharprime}a\ list{\isacharparenright}\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   510
\isa{lex} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}a\ list\ {\isasymtimes}\ {\isacharprime}a\ list{\isacharparenright}\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   511
\isa{lexn} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set\ {\isasymRightarrow}\ nat\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}a\ list\ {\isasymtimes}\ {\isacharprime}a\ list{\isacharparenright}\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   512
\isa{lexord} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}a\ list\ {\isasymtimes}\ {\isacharprime}a\ list{\isacharparenright}\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   513
\isa{listrel} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}a\ list\ {\isasymtimes}\ {\isacharprime}a\ list{\isacharparenright}\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   514
\isa{lists} & \isa{{\isacharprime}a\ set\ {\isasymRightarrow}\ {\isacharprime}a\ list\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   515
\isa{listset} & \isa{{\isacharprime}a\ set\ list\ {\isasymRightarrow}\ {\isacharprime}a\ list\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   516
\isa{listsum} & \isa{{\isacharprime}a\ list\ {\isasymRightarrow}\ {\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   517
\isa{list{\isacharunderscore}all{\isadigit{2}}} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}b\ {\isasymRightarrow}\ bool{\isacharparenright}\ {\isasymRightarrow}\ {\isacharprime}a\ list\ {\isasymRightarrow}\ {\isacharprime}b\ list\ {\isasymRightarrow}\ bool}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   518
\isa{list{\isacharunderscore}update} & \isa{{\isacharprime}a\ list\ {\isasymRightarrow}\ nat\ {\isasymRightarrow}\ {\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ list}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   519
\isa{map} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}b{\isacharparenright}\ {\isasymRightarrow}\ {\isacharprime}a\ list\ {\isasymRightarrow}\ {\isacharprime}b\ list}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   520
\isa{measures} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ nat{\isacharparenright}\ list\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set}\\
32933
ba14400f7f34 added List.nth
nipkow
parents: 32836
diff changeset
   521
\isa{op\ {\isacharbang}} & \isa{{\isacharprime}a\ list\ {\isasymRightarrow}\ nat\ {\isasymRightarrow}\ {\isacharprime}a}\\
30442
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   522
\isa{remdups} & \isa{{\isacharprime}a\ list\ {\isasymRightarrow}\ {\isacharprime}a\ list}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   523
\isa{removeAll} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ list\ {\isasymRightarrow}\ {\isacharprime}a\ list}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   524
\isa{remove{\isadigit{1}}} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ list\ {\isasymRightarrow}\ {\isacharprime}a\ list}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   525
\isa{replicate} & \isa{nat\ {\isasymRightarrow}\ {\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ list}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   526
\isa{rev} & \isa{{\isacharprime}a\ list\ {\isasymRightarrow}\ {\isacharprime}a\ list}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   527
\isa{rotate} & \isa{nat\ {\isasymRightarrow}\ {\isacharprime}a\ list\ {\isasymRightarrow}\ {\isacharprime}a\ list}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   528
\isa{rotate{\isadigit{1}}} & \isa{{\isacharprime}a\ list\ {\isasymRightarrow}\ {\isacharprime}a\ list}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   529
\isa{set} & \isa{{\isacharprime}a\ list\ {\isasymRightarrow}\ {\isacharprime}a\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   530
\isa{sort} & \isa{{\isacharprime}a\ list\ {\isasymRightarrow}\ {\isacharprime}a\ list}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   531
\isa{sorted} & \isa{{\isacharprime}a\ list\ {\isasymRightarrow}\ bool}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   532
\isa{splice} & \isa{{\isacharprime}a\ list\ {\isasymRightarrow}\ {\isacharprime}a\ list\ {\isasymRightarrow}\ {\isacharprime}a\ list}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   533
\isa{sublist} & \isa{{\isacharprime}a\ list\ {\isasymRightarrow}\ {\isacharparenleft}nat\ {\isasymRightarrow}\ bool{\isacharparenright}\ {\isasymRightarrow}\ {\isacharprime}a\ list}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   534
\isa{take} & \isa{nat\ {\isasymRightarrow}\ {\isacharprime}a\ list\ {\isasymRightarrow}\ {\isacharprime}a\ list}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   535
\isa{takeWhile} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ bool{\isacharparenright}\ {\isasymRightarrow}\ {\isacharprime}a\ list\ {\isasymRightarrow}\ {\isacharprime}a\ list}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   536
\isa{tl} & \isa{{\isacharprime}a\ list\ {\isasymRightarrow}\ {\isacharprime}a\ list}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   537
\isa{upt} & \isa{nat\ {\isasymRightarrow}\ nat\ {\isasymRightarrow}\ nat\ list}\\
32836
4c6e3e7ac2bf updated generated files;
wenzelm
parents: 32266
diff changeset
   538
\isa{upto} & \isa{int\ {\isasymRightarrow}\ int\ {\isasymRightarrow}\ int\ list}\\
30442
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   539
\isa{zip} & \isa{{\isacharprime}a\ list\ {\isasymRightarrow}\ {\isacharprime}b\ list\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}b{\isacharparenright}\ list}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   540
\end{supertabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   541
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   542
\subsubsection*{Syntax}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   543
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   544
\begin{supertabular}{@ {} l @ {\quad$\equiv$\quad} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   545
\isa{{\isacharbrackleft}x\isactrlisub {\isadigit{1}}{\isacharcomma}{\isasymdots}{\isacharcomma}x\isactrlisub n{\isacharbrackright}} & \isa{x\isactrlisub {\isadigit{1}}\ {\isacharhash}\ {\isasymdots}\ {\isacharhash}\ x\isactrlisub n\ {\isacharhash}\ {\isacharbrackleft}{\isacharbrackright}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   546
\isa{{\isacharbrackleft}m{\isachardot}{\isachardot}{\isacharless}n{\isacharbrackright}} & \isa{{\isachardoublequote}upt\ m\ n{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   547
\isa{{\isacharbrackleft}i{\isachardot}{\isachardot}j{\isacharbrackright}} & \isa{{\isachardoublequote}upto\ i\ j{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   548
\isa{{\isacharbrackleft}e{\isachardot}\ x\ {\isasymleftarrow}\ xs{\isacharbrackright}} & \isa{map\ {\isacharparenleft}{\isasymlambda}x{\isachardot}\ e{\isacharparenright}\ xs}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   549
\isa{{\isacharbrackleft}x{\isasymleftarrow}xs\ {\isachardot}\ b{\isacharbrackright}} & \isa{{\isachardoublequote}filter\ {\isacharparenleft}{\isasymlambda}x{\isachardot}\ b{\isacharparenright}\ xs{\isachardoublequote}} \\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   550
\isa{xs{\isacharbrackleft}n\ {\isacharcolon}{\isacharequal}\ x{\isacharbrackright}} & \isa{{\isachardoublequote}list{\isacharunderscore}update\ xs\ n\ x{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   551
\isa{{\isasymSum}x{\isasymleftarrow}xs{\isachardot}\ e} & \isa{{\isachardoublequote}listsum\ {\isacharparenleft}map\ {\isacharparenleft}{\isasymlambda}x{\isachardot}\ e{\isacharparenright}\ xs{\isacharparenright}{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   552
\end{supertabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   553
\medskip
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   554
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   555
List comprehension: \isa{{\isacharbrackleft}e{\isachardot}\ q\isactrlisub {\isadigit{1}}{\isacharcomma}\ {\isasymdots}{\isacharcomma}\ q\isactrlisub n{\isacharbrackright}} where each
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   556
qualifier \isa{q\isactrlisub i} is either a generator \mbox{\isa{pat\ {\isasymleftarrow}\ e}} or a
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   557
guard, i.e.\ boolean expression.
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   558
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   559
\section{Map}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   560
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   561
Maps model partial functions and are often used as finite tables. However,
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   562
the domain of a map may be infinite.
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   563
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   564
\isa{{\isacharprime}a\ {\isasymrightharpoonup}\ {\isacharprime}b\ \ {\isacharequal}\ \ {\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}b\ option}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   565
\bigskip
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   566
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   567
\begin{supertabular}{@ {} l @ {~::~} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   568
\isa{Map{\isachardot}empty} & \isa{{\isacharprime}a\ {\isasymrightharpoonup}\ {\isacharprime}b}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   569
\isa{op\ {\isacharplus}{\isacharplus}} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymrightharpoonup}\ {\isacharprime}b{\isacharparenright}\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}a\ {\isasymrightharpoonup}\ {\isacharprime}b{\isacharparenright}\ {\isasymRightarrow}\ {\isacharprime}a\ {\isasymrightharpoonup}\ {\isacharprime}b}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   570
\isa{op\ {\isasymcirc}\isactrlsub m} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymrightharpoonup}\ {\isacharprime}b{\isacharparenright}\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}c\ {\isasymrightharpoonup}\ {\isacharprime}a{\isacharparenright}\ {\isasymRightarrow}\ {\isacharprime}c\ {\isasymrightharpoonup}\ {\isacharprime}b}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   571
\isa{op\ {\isacharbar}{\isacharbackquote}} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymrightharpoonup}\ {\isacharprime}b{\isacharparenright}\ {\isasymRightarrow}\ {\isacharprime}a\ set\ {\isasymRightarrow}\ {\isacharprime}a\ {\isasymrightharpoonup}\ {\isacharprime}b}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   572
\isa{dom} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymrightharpoonup}\ {\isacharprime}b{\isacharparenright}\ {\isasymRightarrow}\ {\isacharprime}a\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   573
\isa{ran} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymrightharpoonup}\ {\isacharprime}b{\isacharparenright}\ {\isasymRightarrow}\ {\isacharprime}b\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   574
\isa{op\ {\isasymsubseteq}\isactrlsub m} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymrightharpoonup}\ {\isacharprime}b{\isacharparenright}\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}a\ {\isasymrightharpoonup}\ {\isacharprime}b{\isacharparenright}\ {\isasymRightarrow}\ bool}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   575
\isa{map{\isacharunderscore}of} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}b{\isacharparenright}\ list\ {\isasymRightarrow}\ {\isacharprime}a\ {\isasymrightharpoonup}\ {\isacharprime}b}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   576
\isa{map{\isacharunderscore}upds} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymrightharpoonup}\ {\isacharprime}b{\isacharparenright}\ {\isasymRightarrow}\ {\isacharprime}a\ list\ {\isasymRightarrow}\ {\isacharprime}b\ list\ {\isasymRightarrow}\ {\isacharprime}a\ {\isasymrightharpoonup}\ {\isacharprime}b}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   577
\end{supertabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   578
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   579
\subsubsection*{Syntax}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   580
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   581
\begin{tabular}{@ {} l @ {\quad$\equiv$\quad} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   582
\isa{Map{\isachardot}empty} & \isa{{\isasymlambda}x{\isachardot}\ None}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   583
\isa{m{\isacharparenleft}x\ {\isasymmapsto}\ y{\isacharparenright}} & \isa{{\isachardoublequote}m{\isacharparenleft}x{\isacharcolon}{\isacharequal}Some\ y{\isacharparenright}{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   584
\isa{m{\isacharparenleft}x\isactrlisub {\isadigit{1}}{\isasymmapsto}y\isactrlisub {\isadigit{1}}{\isacharcomma}{\isasymdots}{\isacharcomma}x\isactrlisub n{\isasymmapsto}y\isactrlisub n{\isacharparenright}} & \isa{{\isachardoublequote}m{\isacharparenleft}x\isactrlisub {\isadigit{1}}{\isasymmapsto}y\isactrlisub {\isadigit{1}}{\isacharparenright}{\isasymdots}{\isacharparenleft}x\isactrlisub n{\isasymmapsto}y\isactrlisub n{\isacharparenright}{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   585
\isa{{\isacharbrackleft}x\isactrlisub {\isadigit{1}}{\isasymmapsto}y\isactrlisub {\isadigit{1}}{\isacharcomma}{\isasymdots}{\isacharcomma}x\isactrlisub n{\isasymmapsto}y\isactrlisub n{\isacharbrackright}} & \isa{{\isachardoublequote}Map{\isachardot}empty{\isacharparenleft}x\isactrlisub {\isadigit{1}}{\isasymmapsto}y\isactrlisub {\isadigit{1}}{\isacharcomma}{\isasymdots}{\isacharcomma}x\isactrlisub n{\isasymmapsto}y\isactrlisub n{\isacharparenright}{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   586
\isa{m{\isacharparenleft}xs\ {\isacharbrackleft}{\isasymmapsto}{\isacharbrackright}\ ys{\isacharparenright}} & \isa{{\isachardoublequote}map{\isacharunderscore}upds\ m\ xs\ ys{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   587
\end{tabular}%
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   588
\end{isamarkuptext}%
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   589
\isamarkuptrue%
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   590
%
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   591
\isadelimtheory
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   592
%
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   593
\endisadelimtheory
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   594
%
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   595
\isatagtheory
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   596
%
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   597
\endisatagtheory
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   598
{\isafoldtheory}%
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   599
%
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   600
\isadelimtheory
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   601
%
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   602
\endisadelimtheory
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   603
\end{isabellebody}%
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   604
%%% Local Variables:
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   605
%%% mode: latex
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   606
%%% TeX-master: "root"
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   607
%%% End: