doc-src/Main/Main_Doc.tex
author nipkow
Wed, 11 Mar 2009 12:51:00 +0100
changeset 30442 1bc0638d554d
permissions -rw-r--r--
Added "What's in Main" to doc sources
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
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   159
\begin{supertabular}{@ {} l @ {~::~} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   160
\isa{id} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
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}\\
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
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   178
\section{Fixed Points}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   179
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   180
Theory: \isa{Inductive}.
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   181
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   182
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
   183
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   184
\begin{tabular}{@ {} l @ {~::~} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   185
\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
   186
\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
   187
\end{tabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   188
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   189
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
   190
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   191
\section{Sum\_Type}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   192
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   193
Type constructor \isa{{\isacharplus}}.
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
\begin{tabular}{@ {} l @ {~::~} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   196
\isa{Inl} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ {\isacharplus}\ {\isacharprime}b}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   197
\isa{Inr} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}b\ {\isacharplus}\ {\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   198
\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
   199
\end{tabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   200
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   201
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   202
\section{Product\_Type}
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
Types \isa{unit} and \isa{{\isasymtimes}}.
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
\begin{supertabular}{@ {} l @ {~::~} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   207
\isa{{\isacharparenleft}{\isacharparenright}} & \isa{unit}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   208
\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
   209
\isa{fst} & \isa{{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}b\ {\isasymRightarrow}\ {\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   210
\isa{snd} & \isa{{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}b\ {\isasymRightarrow}\ {\isacharprime}b}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   211
\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
   212
\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
   213
\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
   214
\end{supertabular}
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
\subsubsection*{Syntax}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   217
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   218
\begin{tabular}{@ {} l @ {\quad$\equiv$\quad} ll @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   219
\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
   220
\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
   221
\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
   222
\end{tabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   223
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   224
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
   225
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
   226
Pattern matching with pairs and tuples extends to all binders,
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   227
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
   228
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   229
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   230
\section{Relation}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   231
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   232
\begin{supertabular}{@ {} l @ {~::~} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   233
\isa{converse} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}b{\isacharparenright}\ set\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}b\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   234
\isa{op\ O} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}b{\isacharparenright}\ set\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}c\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}c\ {\isasymtimes}\ {\isacharprime}b{\isacharparenright}\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   235
\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
   236
\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
   237
\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
   238
\isa{Id} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   239
\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
   240
\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
   241
\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
   242
\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
   243
\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
   244
\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
   245
\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
   246
\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
   247
\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
   248
\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
   249
\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
   250
\end{supertabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   251
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   252
\subsubsection*{Syntax}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   253
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   254
\begin{tabular}{@ {} l @ {\quad$\equiv$\quad} l l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   255
\isa{r{\isasyminverse}} & \isa{{\isachardoublequote}converse\ r{\isachardoublequote}} & (\verb$^-1$)
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   256
\end{tabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   257
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   258
\section{Equiv\_Relations}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   259
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   260
\begin{supertabular}{@ {} l @ {~::~} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   261
\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
   262
\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
   263
\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
   264
\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
   265
%@ {const Equiv_Relations.} & @ {term_type_only Equiv_Relations. ""}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   266
\end{supertabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   267
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   268
\subsubsection*{Syntax}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   269
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   270
\begin{tabular}{@ {} l @ {\quad$\equiv$\quad} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   271
\isa{f\ respects\ r} & \isa{{\isachardoublequote}congruent\ r\ f{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   272
\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
   273
\end{tabular}
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
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   276
\section{Transitive\_Closure}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   277
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   278
\begin{tabular}{@ {} l @ {~::~} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   279
\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
   280
\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
   281
\isa{reflcl} & \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
   282
\end{tabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   283
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   284
\subsubsection*{Syntax}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   285
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   286
\begin{tabular}{@ {} l @ {\quad$\equiv$\quad} l l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   287
\isa{r\isactrlsup {\isacharasterisk}} & \isa{{\isachardoublequote}rtrancl\ r{\isachardoublequote}} & (\verb$^*$)\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   288
\isa{r\isactrlsup {\isacharplus}} & \isa{{\isachardoublequote}trancl\ r{\isachardoublequote}} & (\verb$^+$)\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   289
\isa{r\isactrlsup {\isacharequal}} & \isa{{\isachardoublequote}reflcl\ r{\isachardoublequote}} & (\verb$^=$)
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   290
\end{tabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   291
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
\section{Algebra}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   294
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   295
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
   296
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
   297
overloaded operators:
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   298
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   299
\begin{supertabular}{@ {} l @ {~::~} l l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   300
\isa{{\isadigit{0}}} & \isa{{\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   301
\isa{{\isadigit{1}}} & \isa{{\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   302
\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
   303
\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
   304
\isa{uminus} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a} & (\verb$-$)\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   305
\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
   306
\isa{inverse} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   307
\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
   308
\isa{abs} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   309
\isa{sgn} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   310
\isa{op\ dvd} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ {\isasymRightarrow}\ bool}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   311
\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
   312
\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
   313
\end{supertabular}
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
\subsubsection*{Syntax}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   316
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   317
\begin{tabular}{@ {} l @ {\quad$\equiv$\quad} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   318
\isa{{\isasymbar}x{\isasymbar}} & \isa{{\isachardoublequote}abs\ x{\isachardoublequote}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   319
\end{tabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   320
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   321
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   322
\section{Nat}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   323
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   324
\isa{\isacommand{datatype}\ nat\ {\isacharequal}\ {\isadigit{0}}\ {\isacharbar}\ Suc\ nat}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   325
\bigskip
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   326
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   327
\begin{tabular}{@ {} lllllll @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   328
\isa{op\ {\isacharplus}} &
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   329
\isa{op\ {\isacharminus}} &
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   330
\isa{op\ {\isacharasterisk}} &
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   331
\isa{op\ {\isacharcircum}} &
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   332
\isa{op\ div}&
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   333
\isa{op\ mod}&
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   334
\isa{op\ dvd}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   335
\isa{op\ {\isasymle}} &
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   336
\isa{op\ {\isacharless}} &
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   337
\isa{min} &
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   338
\isa{max} &
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   339
\isa{Min} &
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   340
\isa{Max}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   341
\end{tabular}
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}{@ {} l @ {~::~} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   344
\isa{of{\isacharunderscore}nat} & \isa{nat\ {\isasymRightarrow}\ {\isacharprime}a}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   345
\end{tabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   346
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   347
\section{Int}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   348
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   349
Type \isa{int}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   350
\bigskip
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   351
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   352
\begin{tabular}{@ {} llllllll @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   353
\isa{op\ {\isacharplus}} &
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   354
\isa{op\ {\isacharminus}} &
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   355
\isa{uminus} &
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   356
\isa{op\ {\isacharasterisk}} &
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   357
\isa{op\ {\isacharcircum}} &
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   358
\isa{op\ div}&
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   359
\isa{op\ mod}&
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   360
\isa{op\ dvd}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   361
\isa{op\ {\isasymle}} &
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   362
\isa{op\ {\isacharless}} &
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   363
\isa{min} &
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   364
\isa{max} &
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   365
\isa{Min} &
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   366
\isa{Max}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   367
\isa{abs} &
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   368
\isa{sgn}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   369
\end{tabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   370
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   371
\begin{tabular}{@ {} l @ {~::~} l l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   372
\isa{nat} & \isa{int\ {\isasymRightarrow}\ nat}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   373
\isa{of{\isacharunderscore}int} & \isa{int\ {\isasymRightarrow}\ {\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   374
\isa{{\isasymint}} & \isa{{\isacharprime}a\ set} & (\verb$Ints$)
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   375
\end{tabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   376
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   377
\subsubsection*{Syntax}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   378
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   379
\begin{tabular}{@ {} l @ {\quad$\equiv$\quad} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   380
\isa{int} & \isa{{\isachardoublequote}of{\isacharunderscore}nat{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   381
\end{tabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   382
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   383
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   384
\section{Finite\_Set}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   385
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   386
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   387
\begin{supertabular}{@ {} l @ {~::~} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   388
\isa{finite} & \isa{{\isacharprime}a\ set\ {\isasymRightarrow}\ bool}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   389
\isa{card} & \isa{{\isacharprime}a\ set\ {\isasymRightarrow}\ nat}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   390
\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
   391
\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
   392
\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
   393
\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
   394
\end{supertabular}
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
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   397
\subsubsection*{Syntax}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   398
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   399
\begin{supertabular}{@ {} l @ {\quad$\equiv$\quad} l l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   400
\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
   401
\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
   402
\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
   403
\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
   404
\end{supertabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   405
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   406
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   407
\section{Wellfounded}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   408
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   409
\begin{supertabular}{@ {} l @ {~::~} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   410
\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
   411
\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
   412
\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
   413
\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
   414
\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
   415
\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
   416
\isa{less{\isacharunderscore}than} & \isa{{\isacharparenleft}nat\ {\isasymtimes}\ nat{\isacharparenright}\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   417
\isa{pred{\isacharunderscore}nat} & \isa{{\isacharparenleft}nat\ {\isasymtimes}\ nat{\isacharparenright}\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   418
\end{supertabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   419
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   420
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   421
\section{SetInterval}
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
\begin{supertabular}{@ {} l @ {~::~} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   424
\isa{lessThan} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   425
\isa{atMost} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   426
\isa{greaterThan} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   427
\isa{atLeast} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   428
\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
   429
\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
   430
\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
   431
\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
   432
\end{supertabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   433
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   434
\subsubsection*{Syntax}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   435
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   436
\begin{supertabular}{@ {} l @ {\quad$\equiv$\quad} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   437
\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
   438
\isa{{\isacharbraceleft}{\isachardot}{\isachardot}y{\isacharbraceright}} & \isa{{\isachardoublequote}atMost\ y{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   439
\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
   440
\isa{{\isacharbraceleft}x{\isachardot}{\isachardot}{\isacharbraceright}} & \isa{{\isachardoublequote}atLeast\ x{\isachardoublequote}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   441
\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
   442
\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
   443
\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
   444
\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
   445
\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
   446
\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
   447
\multicolumn{2}{@ {}l@ {}}{Similarly for \isa{{\isasymInter}} instead of \isa{{\isasymUnion}}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   448
\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
   449
\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
   450
\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
   451
\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
   452
\multicolumn{2}{@ {}l@ {}}{Similarly for \isa{{\isasymProd}} instead of \isa{{\isasymSum}}}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   453
\end{supertabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   454
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   455
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   456
\section{Power}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   457
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   458
\begin{tabular}{@ {} l @ {~::~} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   459
\isa{op\ {\isacharcircum}} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ nat\ {\isasymRightarrow}\ {\isacharprime}a}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   460
\end{tabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   461
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   462
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   463
\section{Iterated Functions and Relations}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   464
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   465
Theory: \isa{Relation{\isacharunderscore}Power}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   466
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   467
Iterated functions \ \isa{{\isachardoublequote}{\isacharparenleft}f{\isacharcolon}{\isacharcolon}{\isacharprime}a{\isasymRightarrow}{\isacharprime}a{\isacharparenright}\ {\isacharcircum}\ n{\isachardoublequote}} \
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   468
and relations \ \isa{{\isachardoublequote}{\isacharparenleft}r{\isacharcolon}{\isacharcolon}{\isacharparenleft}{\isacharprime}a{\isasymtimes}{\isacharprime}a{\isacharparenright}set{\isacharparenright}\ {\isacharcircum}\ n{\isachardoublequote}}.
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   469
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   470
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   471
\section{Option}
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
\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
   474
\bigskip
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   475
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   476
\begin{tabular}{@ {} l @ {~::~} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   477
\isa{the} & \isa{{\isacharprime}a\ option\ {\isasymRightarrow}\ {\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   478
\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
   479
\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
   480
\end{tabular}
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
\section{List}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   483
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   484
\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
   485
\bigskip
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   486
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   487
\begin{supertabular}{@ {} l @ {~::~} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   488
\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
   489
\isa{butlast} & \isa{{\isacharprime}a\ list\ {\isasymRightarrow}\ {\isacharprime}a\ list}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   490
\isa{concat} & \isa{{\isacharprime}a\ list\ list\ {\isasymRightarrow}\ {\isacharprime}a\ list}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   491
\isa{distinct} & \isa{{\isacharprime}a\ list\ {\isasymRightarrow}\ bool}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   492
\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
   493
\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
   494
\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
   495
\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
   496
\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
   497
\isa{hd} & \isa{{\isacharprime}a\ list\ {\isasymRightarrow}\ {\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   498
\isa{last} & \isa{{\isacharprime}a\ list\ {\isasymRightarrow}\ {\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   499
\isa{length} & \isa{{\isacharprime}a\ list\ {\isasymRightarrow}\ nat}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   500
\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
   501
\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
   502
\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
   503
\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
   504
\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
   505
\isa{lists} & \isa{{\isacharprime}a\ set\ {\isasymRightarrow}\ {\isacharprime}a\ list\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   506
\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
   507
\isa{listsum} & \isa{{\isacharprime}a\ list\ {\isasymRightarrow}\ {\isacharprime}a}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   508
\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
   509
\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
   510
\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
   511
\isa{measures} & \isa{{\isacharparenleft}{\isacharprime}a\ {\isasymRightarrow}\ nat{\isacharparenright}\ list\ {\isasymRightarrow}\ {\isacharparenleft}{\isacharprime}a\ {\isasymtimes}\ {\isacharprime}a{\isacharparenright}\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   512
\isa{remdups} & \isa{{\isacharprime}a\ list\ {\isasymRightarrow}\ {\isacharprime}a\ list}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   513
\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
   514
\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
   515
\isa{replicate} & \isa{nat\ {\isasymRightarrow}\ {\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ list}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   516
\isa{rev} & \isa{{\isacharprime}a\ list\ {\isasymRightarrow}\ {\isacharprime}a\ list}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   517
\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
   518
\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
   519
\isa{set} & \isa{{\isacharprime}a\ list\ {\isasymRightarrow}\ {\isacharprime}a\ set}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   520
\isa{sort} & \isa{{\isacharprime}a\ list\ {\isasymRightarrow}\ {\isacharprime}a\ list}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   521
\isa{sorted} & \isa{{\isacharprime}a\ list\ {\isasymRightarrow}\ bool}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   522
\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
   523
\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
   524
\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
   525
\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
   526
\isa{tl} & \isa{{\isacharprime}a\ list\ {\isasymRightarrow}\ {\isacharprime}a\ list}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   527
\isa{upt} & \isa{nat\ {\isasymRightarrow}\ nat\ {\isasymRightarrow}\ nat\ list}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   528
\isa{upto} & \isa{{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ list}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   529
\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
   530
\end{supertabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   531
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   532
\subsubsection*{Syntax}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   533
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   534
\begin{supertabular}{@ {} l @ {\quad$\equiv$\quad} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   535
\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
   536
\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
   537
\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
   538
\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
   539
\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
   540
\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
   541
\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
   542
\end{supertabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   543
\medskip
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   544
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   545
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
   546
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
   547
guard, i.e.\ boolean expression.
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   548
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   549
\section{Map}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   550
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   551
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
   552
the domain of a map may be infinite.
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   553
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   554
\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
   555
\bigskip
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   556
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   557
\begin{supertabular}{@ {} l @ {~::~} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   558
\isa{Map{\isachardot}empty} & \isa{{\isacharprime}a\ {\isasymrightharpoonup}\ {\isacharprime}b}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   559
\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
   560
\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
   561
\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
   562
\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
   563
\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
   564
\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
   565
\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
   566
\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
   567
\end{supertabular}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   568
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   569
\subsubsection*{Syntax}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   570
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   571
\begin{tabular}{@ {} l @ {\quad$\equiv$\quad} l @ {}}
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   572
\isa{Map{\isachardot}empty} & \isa{{\isasymlambda}x{\isachardot}\ None}\\
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   573
\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
   574
\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
   575
\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
   576
\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
   577
\end{tabular}%
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   578
\end{isamarkuptext}%
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   579
\isamarkuptrue%
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
\isadelimtheory
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   582
%
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   583
\endisadelimtheory
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   584
%
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   585
\isatagtheory
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   586
%
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   587
\endisatagtheory
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   588
{\isafoldtheory}%
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   589
%
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   590
\isadelimtheory
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   591
%
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   592
\endisadelimtheory
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   593
\end{isabellebody}%
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   594
%%% Local Variables:
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   595
%%% mode: latex
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   596
%%% TeX-master: "root"
1bc0638d554d Added "What's in Main" to doc sources
nipkow
parents:
diff changeset
   597
%%% End: