doc-src/AxClass/generated/isabelle.sty
author chaieb
Wed, 19 May 2004 11:23:59 +0200
changeset 14758 af3b71a46a1c
parent 11964 828ea309dc21
child 14981 e73f8140af78
permissions -rw-r--r--
A new implementation for presburger arithmetic following the one suggested in technical report Chaieb Amine and Tobias Nipkow. It is generic an smaller. the tactic has also changed and allows the abstaction over fuction occurences whose type is nat or int.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8890
9a44d8d98731 snapshot of new Isar'ized version;
wenzelm
parents:
diff changeset
     1
%%
9845
1206c7615a47 updated;
wenzelm
parents: 9767
diff changeset
     2
%% Author: Markus Wenzel, TU Muenchen
1206c7615a47 updated;
wenzelm
parents: 9767
diff changeset
     3
%% License: GPL (GNU GENERAL PUBLIC LICENSE)
8890
9a44d8d98731 snapshot of new Isar'ized version;
wenzelm
parents:
diff changeset
     4
%%
9a44d8d98731 snapshot of new Isar'ized version;
wenzelm
parents:
diff changeset
     5
%% macros for Isabelle generated LaTeX output
9a44d8d98731 snapshot of new Isar'ized version;
wenzelm
parents:
diff changeset
     6
%%
9a44d8d98731 snapshot of new Isar'ized version;
wenzelm
parents:
diff changeset
     7
9921
7acefd99e748 updated;
wenzelm
parents: 9845
diff changeset
     8
%%% Simple document preparation (based on theory token language and symbols)
8890
9a44d8d98731 snapshot of new Isar'ized version;
wenzelm
parents:
diff changeset
     9
9a44d8d98731 snapshot of new Isar'ized version;
wenzelm
parents:
diff changeset
    10
% isabelle environments
9a44d8d98731 snapshot of new Isar'ized version;
wenzelm
parents:
diff changeset
    11
9921
7acefd99e748 updated;
wenzelm
parents: 9845
diff changeset
    12
\newcommand{\isabellecontext}{UNKNOWN}
7acefd99e748 updated;
wenzelm
parents: 9845
diff changeset
    13
9665
2a6d7f1409f9 updated;
wenzelm
parents: 8890
diff changeset
    14
\newcommand{\isastyle}{\small\tt\slshape}
9672
2c208c98f541 updated;
wenzelm
parents: 9665
diff changeset
    15
\newcommand{\isastyleminor}{\small\tt\slshape}
10223
wenzelm
parents: 10207
diff changeset
    16
\newcommand{\isastylescript}{\footnotesize\tt\slshape}
9665
2a6d7f1409f9 updated;
wenzelm
parents: 8890
diff changeset
    17
\newcommand{\isastyletext}{\normalsize\rm}
2a6d7f1409f9 updated;
wenzelm
parents: 8890
diff changeset
    18
\newcommand{\isastyletxt}{\rm}
2a6d7f1409f9 updated;
wenzelm
parents: 8890
diff changeset
    19
\newcommand{\isastylecmt}{\rm}
8890
9a44d8d98731 snapshot of new Isar'ized version;
wenzelm
parents:
diff changeset
    20
10223
wenzelm
parents: 10207
diff changeset
    21
%symbol markup -- \emph achieves decent spacing via italic corrections
wenzelm
parents: 10207
diff changeset
    22
\newcommand{\isamath}[1]{\emph{$#1$}}
wenzelm
parents: 10207
diff changeset
    23
\newcommand{\isatext}[1]{\emph{#1}}
wenzelm
parents: 10207
diff changeset
    24
\newcommand{\isascriptstyle}{\def\isamath##1{##1}\def\isatext##1{\mbox{\isastylescript##1}}}
10267
325ead6d9457 updated;
wenzelm
parents: 10223
diff changeset
    25
\newcommand{\isactrlsub}[1]{\emph{\isascriptstyle${}\sb{#1}$}}
325ead6d9457 updated;
wenzelm
parents: 10223
diff changeset
    26
\newcommand{\isactrlsup}[1]{\emph{\isascriptstyle${}\sp{#1}$}}
11964
828ea309dc21 updated;
wenzelm
parents: 10950
diff changeset
    27
\newcommand{\isactrlbold}[1]{{\bfseries\upshape\boldmath#1}}
10223
wenzelm
parents: 10207
diff changeset
    28
8890
9a44d8d98731 snapshot of new Isar'ized version;
wenzelm
parents:
diff changeset
    29
\newdimen\isa@parindent\newdimen\isa@parskip
9665
2a6d7f1409f9 updated;
wenzelm
parents: 8890
diff changeset
    30
9767
dc2ee9b2e065 updated;
wenzelm
parents: 9694
diff changeset
    31
\newenvironment{isabellebody}{%
11964
828ea309dc21 updated;
wenzelm
parents: 10950
diff changeset
    32
\isamarkuptrue\par%
9767
dc2ee9b2e065 updated;
wenzelm
parents: 9694
diff changeset
    33
\isa@parindent\parindent\parindent0pt%
8890
9a44d8d98731 snapshot of new Isar'ized version;
wenzelm
parents:
diff changeset
    34
\isa@parskip\parskip\parskip0pt%
10510
d243553849ec *** empty log message ***
wenzelm
parents: 10424
diff changeset
    35
\isastyle}{\par}
9767
dc2ee9b2e065 updated;
wenzelm
parents: 9694
diff changeset
    36
dc2ee9b2e065 updated;
wenzelm
parents: 9694
diff changeset
    37
\newenvironment{isabelle}
10424
17491b8c7732 updated;
wenzelm
parents: 10267
diff changeset
    38
{\begin{trivlist}\begin{isabellebody}\item\relax}
17491b8c7732 updated;
wenzelm
parents: 10267
diff changeset
    39
{\end{isabellebody}\end{trivlist}}
8890
9a44d8d98731 snapshot of new Isar'ized version;
wenzelm
parents:
diff changeset
    40
9672
2c208c98f541 updated;
wenzelm
parents: 9665
diff changeset
    41
\newcommand{\isa}[1]{\emph{\isastyleminor #1}}
8890
9a44d8d98731 snapshot of new Isar'ized version;
wenzelm
parents:
diff changeset
    42
10950
aa788fcb75a5 updated;
wenzelm
parents: 10861
diff changeset
    43
\newcommand{\isaindent}[1]{\hphantom{#1}}
8890
9a44d8d98731 snapshot of new Isar'ized version;
wenzelm
parents:
diff changeset
    44
\newcommand{\isanewline}{\mbox{}\\\mbox{}}
9672
2c208c98f541 updated;
wenzelm
parents: 9665
diff changeset
    45
\newcommand{\isadigit}[1]{#1}
8890
9a44d8d98731 snapshot of new Isar'ized version;
wenzelm
parents:
diff changeset
    46
9672
2c208c98f541 updated;
wenzelm
parents: 9665
diff changeset
    47
\chardef\isacharbang=`\!
2c208c98f541 updated;
wenzelm
parents: 9665
diff changeset
    48
\chardef\isachardoublequote=`\"
9665
2a6d7f1409f9 updated;
wenzelm
parents: 8890
diff changeset
    49
\chardef\isacharhash=`\#
2a6d7f1409f9 updated;
wenzelm
parents: 8890
diff changeset
    50
\chardef\isachardollar=`\$
2a6d7f1409f9 updated;
wenzelm
parents: 8890
diff changeset
    51
\chardef\isacharpercent=`\%
2a6d7f1409f9 updated;
wenzelm
parents: 8890
diff changeset
    52
\chardef\isacharampersand=`\&
2a6d7f1409f9 updated;
wenzelm
parents: 8890
diff changeset
    53
\chardef\isacharprime=`\'
2a6d7f1409f9 updated;
wenzelm
parents: 8890
diff changeset
    54
\chardef\isacharparenleft=`\(
2a6d7f1409f9 updated;
wenzelm
parents: 8890
diff changeset
    55
\chardef\isacharparenright=`\)
2a6d7f1409f9 updated;
wenzelm
parents: 8890
diff changeset
    56
\chardef\isacharasterisk=`\*
9672
2c208c98f541 updated;
wenzelm
parents: 9665
diff changeset
    57
\chardef\isacharplus=`\+
2c208c98f541 updated;
wenzelm
parents: 9665
diff changeset
    58
\chardef\isacharcomma=`\,
9665
2a6d7f1409f9 updated;
wenzelm
parents: 8890
diff changeset
    59
\chardef\isacharminus=`\-
9672
2c208c98f541 updated;
wenzelm
parents: 9665
diff changeset
    60
\chardef\isachardot=`\.
2c208c98f541 updated;
wenzelm
parents: 9665
diff changeset
    61
\chardef\isacharslash=`\/
2c208c98f541 updated;
wenzelm
parents: 9665
diff changeset
    62
\chardef\isacharcolon=`\:
2c208c98f541 updated;
wenzelm
parents: 9665
diff changeset
    63
\chardef\isacharsemicolon=`\;
9665
2a6d7f1409f9 updated;
wenzelm
parents: 8890
diff changeset
    64
\chardef\isacharless=`\<
9672
2c208c98f541 updated;
wenzelm
parents: 9665
diff changeset
    65
\chardef\isacharequal=`\=
9665
2a6d7f1409f9 updated;
wenzelm
parents: 8890
diff changeset
    66
\chardef\isachargreater=`\>
9672
2c208c98f541 updated;
wenzelm
parents: 9665
diff changeset
    67
\chardef\isacharquery=`\?
2c208c98f541 updated;
wenzelm
parents: 9665
diff changeset
    68
\chardef\isacharat=`\@
9665
2a6d7f1409f9 updated;
wenzelm
parents: 8890
diff changeset
    69
\chardef\isacharbrackleft=`\[
2a6d7f1409f9 updated;
wenzelm
parents: 8890
diff changeset
    70
\chardef\isacharbackslash=`\\
2a6d7f1409f9 updated;
wenzelm
parents: 8890
diff changeset
    71
\chardef\isacharbrackright=`\]
2a6d7f1409f9 updated;
wenzelm
parents: 8890
diff changeset
    72
\chardef\isacharcircum=`\^
2a6d7f1409f9 updated;
wenzelm
parents: 8890
diff changeset
    73
\chardef\isacharunderscore=`\_
9672
2c208c98f541 updated;
wenzelm
parents: 9665
diff changeset
    74
\chardef\isacharbackquote=`\`
9665
2a6d7f1409f9 updated;
wenzelm
parents: 8890
diff changeset
    75
\chardef\isacharbraceleft=`\{
2a6d7f1409f9 updated;
wenzelm
parents: 8890
diff changeset
    76
\chardef\isacharbar=`\|
2a6d7f1409f9 updated;
wenzelm
parents: 8890
diff changeset
    77
\chardef\isacharbraceright=`\}
2a6d7f1409f9 updated;
wenzelm
parents: 8890
diff changeset
    78
\chardef\isachartilde=`\~
8890
9a44d8d98731 snapshot of new Isar'ized version;
wenzelm
parents:
diff changeset
    79
9a44d8d98731 snapshot of new Isar'ized version;
wenzelm
parents:
diff changeset
    80
9a44d8d98731 snapshot of new Isar'ized version;
wenzelm
parents:
diff changeset
    81
% keyword and section markup
9a44d8d98731 snapshot of new Isar'ized version;
wenzelm
parents:
diff changeset
    82
9767
dc2ee9b2e065 updated;
wenzelm
parents: 9694
diff changeset
    83
\newcommand{\isakeywordcharunderscore}{\_}
9672
2c208c98f541 updated;
wenzelm
parents: 9665
diff changeset
    84
\newcommand{\isakeyword}[1]
9767
dc2ee9b2e065 updated;
wenzelm
parents: 9694
diff changeset
    85
{\emph{\bf\def\isachardot{.}\def\isacharunderscore{\isakeywordcharunderscore}%
9672
2c208c98f541 updated;
wenzelm
parents: 9665
diff changeset
    86
\def\isacharbraceleft{\{}\def\isacharbraceright{\}}#1}}
2c208c98f541 updated;
wenzelm
parents: 9665
diff changeset
    87
\newcommand{\isacommand}[1]{\isakeyword{#1}}
8890
9a44d8d98731 snapshot of new Isar'ized version;
wenzelm
parents:
diff changeset
    88
9a44d8d98731 snapshot of new Isar'ized version;
wenzelm
parents:
diff changeset
    89
\newcommand{\isamarkupheader}[1]{\section{#1}}
9a44d8d98731 snapshot of new Isar'ized version;
wenzelm
parents:
diff changeset
    90
\newcommand{\isamarkupchapter}[1]{\chapter{#1}}
9a44d8d98731 snapshot of new Isar'ized version;
wenzelm
parents:
diff changeset
    91
\newcommand{\isamarkupsection}[1]{\section{#1}}
9a44d8d98731 snapshot of new Isar'ized version;
wenzelm
parents:
diff changeset
    92
\newcommand{\isamarkupsubsection}[1]{\subsection{#1}}
9a44d8d98731 snapshot of new Isar'ized version;
wenzelm
parents:
diff changeset
    93
\newcommand{\isamarkupsubsubsection}[1]{\subsubsection{#1}}
9a44d8d98731 snapshot of new Isar'ized version;
wenzelm
parents:
diff changeset
    94
\newcommand{\isamarkupsect}[1]{\section{#1}}
9a44d8d98731 snapshot of new Isar'ized version;
wenzelm
parents:
diff changeset
    95
\newcommand{\isamarkupsubsect}[1]{\subsection{#1}}
9a44d8d98731 snapshot of new Isar'ized version;
wenzelm
parents:
diff changeset
    96
\newcommand{\isamarkupsubsubsect}[1]{\subsubsection{#1}}
9a44d8d98731 snapshot of new Isar'ized version;
wenzelm
parents:
diff changeset
    97
11964
828ea309dc21 updated;
wenzelm
parents: 10950
diff changeset
    98
\newif\ifisamarkup
828ea309dc21 updated;
wenzelm
parents: 10950
diff changeset
    99
\newcommand{\isabeginpar}{\par\ifisamarkup\relax\else\medskip\fi}
10588
3a1755b37757 updated;
wenzelm
parents: 10510
diff changeset
   100
\newcommand{\isaendpar}{\par\medskip}
3a1755b37757 updated;
wenzelm
parents: 10510
diff changeset
   101
\newenvironment{isapar}{\parindent\isa@parindent\parskip\isa@parskip\isabeginpar}{\isaendpar}
9665
2a6d7f1409f9 updated;
wenzelm
parents: 8890
diff changeset
   102
\newenvironment{isamarkuptext}{\isastyletext\begin{isapar}}{\end{isapar}}
2a6d7f1409f9 updated;
wenzelm
parents: 8890
diff changeset
   103
\newenvironment{isamarkuptxt}{\isastyletxt\begin{isapar}}{\end{isapar}}
2a6d7f1409f9 updated;
wenzelm
parents: 8890
diff changeset
   104
\newcommand{\isamarkupcmt}[1]{{\isastylecmt--- #1}}
2a6d7f1409f9 updated;
wenzelm
parents: 8890
diff changeset
   105
2a6d7f1409f9 updated;
wenzelm
parents: 8890
diff changeset
   106
10037
0d2a6feeb634 updated;
wenzelm
parents: 10005
diff changeset
   107
% alternative styles
9665
2a6d7f1409f9 updated;
wenzelm
parents: 8890
diff changeset
   108
2a6d7f1409f9 updated;
wenzelm
parents: 8890
diff changeset
   109
\newcommand{\isabellestyle}{}
9672
2c208c98f541 updated;
wenzelm
parents: 9665
diff changeset
   110
\def\isabellestyle#1{\csname isabellestyle#1\endcsname}
9665
2a6d7f1409f9 updated;
wenzelm
parents: 8890
diff changeset
   111
10037
0d2a6feeb634 updated;
wenzelm
parents: 10005
diff changeset
   112
\newcommand{\isabellestylett}{%
0d2a6feeb634 updated;
wenzelm
parents: 10005
diff changeset
   113
\renewcommand{\isastyle}{\small\tt}%
10207
c7c64cd26fc9 updated;
wenzelm
parents: 10132
diff changeset
   114
\renewcommand{\isastyleminor}{\small\tt}%
10223
wenzelm
parents: 10207
diff changeset
   115
\renewcommand{\isastylescript}{\footnotesize\tt}%
10037
0d2a6feeb634 updated;
wenzelm
parents: 10005
diff changeset
   116
}
9672
2c208c98f541 updated;
wenzelm
parents: 9665
diff changeset
   117
\newcommand{\isabellestyleit}{%
2c208c98f541 updated;
wenzelm
parents: 9665
diff changeset
   118
\renewcommand{\isastyle}{\small\it}%
2c208c98f541 updated;
wenzelm
parents: 9665
diff changeset
   119
\renewcommand{\isastyleminor}{\it}%
10223
wenzelm
parents: 10207
diff changeset
   120
\renewcommand{\isastylescript}{\footnotesize\it}%
9767
dc2ee9b2e065 updated;
wenzelm
parents: 9694
diff changeset
   121
\renewcommand{\isakeywordcharunderscore}{\mbox{-}}%
10223
wenzelm
parents: 10207
diff changeset
   122
\renewcommand{\isacharbang}{\isamath{!}}%
9672
2c208c98f541 updated;
wenzelm
parents: 9665
diff changeset
   123
\renewcommand{\isachardoublequote}{}%
10223
wenzelm
parents: 10207
diff changeset
   124
\renewcommand{\isacharhash}{\isamath{\#}}%
wenzelm
parents: 10207
diff changeset
   125
\renewcommand{\isachardollar}{\isamath{\$}}%
wenzelm
parents: 10207
diff changeset
   126
\renewcommand{\isacharpercent}{\isamath{\%}}%
wenzelm
parents: 10207
diff changeset
   127
\renewcommand{\isacharampersand}{\isamath{\&}}%
wenzelm
parents: 10207
diff changeset
   128
\renewcommand{\isacharprime}{\isamath{\mskip2mu{'}\mskip-2mu}}%
wenzelm
parents: 10207
diff changeset
   129
\renewcommand{\isacharparenleft}{\isamath{(}}%
wenzelm
parents: 10207
diff changeset
   130
\renewcommand{\isacharparenright}{\isamath{)}}%
wenzelm
parents: 10207
diff changeset
   131
\renewcommand{\isacharasterisk}{\isamath{*}}%
wenzelm
parents: 10207
diff changeset
   132
\renewcommand{\isacharplus}{\isamath{+}}%
wenzelm
parents: 10207
diff changeset
   133
\renewcommand{\isacharcomma}{\isamath{\mathord,}}%
wenzelm
parents: 10207
diff changeset
   134
\renewcommand{\isacharminus}{\isamath{-}}%
wenzelm
parents: 10207
diff changeset
   135
\renewcommand{\isachardot}{\isamath{\mathord.}}%
wenzelm
parents: 10207
diff changeset
   136
\renewcommand{\isacharslash}{\isamath{/}}%
wenzelm
parents: 10207
diff changeset
   137
\renewcommand{\isacharcolon}{\isamath{\mathord:}}%
wenzelm
parents: 10207
diff changeset
   138
\renewcommand{\isacharsemicolon}{\isamath{\mathord;}}%
wenzelm
parents: 10207
diff changeset
   139
\renewcommand{\isacharless}{\isamath{<}}%
wenzelm
parents: 10207
diff changeset
   140
\renewcommand{\isacharequal}{\isamath{=}}%
wenzelm
parents: 10207
diff changeset
   141
\renewcommand{\isachargreater}{\isamath{>}}%
wenzelm
parents: 10207
diff changeset
   142
\renewcommand{\isacharat}{\isamath{@}}%
wenzelm
parents: 10207
diff changeset
   143
\renewcommand{\isacharbrackleft}{\isamath{[}}%
wenzelm
parents: 10207
diff changeset
   144
\renewcommand{\isacharbrackright}{\isamath{]}}%
9767
dc2ee9b2e065 updated;
wenzelm
parents: 9694
diff changeset
   145
\renewcommand{\isacharunderscore}{\mbox{-}}%
10223
wenzelm
parents: 10207
diff changeset
   146
\renewcommand{\isacharbraceleft}{\isamath{\{}}%
wenzelm
parents: 10207
diff changeset
   147
\renewcommand{\isacharbar}{\isamath{\mid}}%
wenzelm
parents: 10207
diff changeset
   148
\renewcommand{\isacharbraceright}{\isamath{\}}}%
10267
325ead6d9457 updated;
wenzelm
parents: 10223
diff changeset
   149
\renewcommand{\isachartilde}{\isamath{{}\sp{\sim}}}%
9665
2a6d7f1409f9 updated;
wenzelm
parents: 8890
diff changeset
   150
}
2a6d7f1409f9 updated;
wenzelm
parents: 8890
diff changeset
   151
10005
8cd7ef5b8f9d updated;
wenzelm
parents: 9921
diff changeset
   152
\newcommand{\isabellestylesl}{%
8cd7ef5b8f9d updated;
wenzelm
parents: 9921
diff changeset
   153
\isabellestyleit%
8cd7ef5b8f9d updated;
wenzelm
parents: 9921
diff changeset
   154
\renewcommand{\isastyle}{\small\sl}%
8cd7ef5b8f9d updated;
wenzelm
parents: 9921
diff changeset
   155
\renewcommand{\isastyleminor}{\sl}%
10223
wenzelm
parents: 10207
diff changeset
   156
\renewcommand{\isastylescript}{\footnotesize\sl}%
10005
8cd7ef5b8f9d updated;
wenzelm
parents: 9921
diff changeset
   157
}