doc-src/Locales/Locales/document/Examples.tex
author ballarin
Sat, 21 Nov 2009 18:25:53 +0100
changeset 33838 a3166a169793
parent 32983 a6914429005b
child 36176 3fe7e97ccca8
permissions -rw-r--r--
Publication details and minor correction of the text.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
     1
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
     2
\begin{isabellebody}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
     3
\def\isabellecontext{Examples}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
     4
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
     5
\isadelimtheory
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
     6
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
     7
\endisadelimtheory
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
     8
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
     9
\isatagtheory
27080
0ee385433247 updated generated file;
wenzelm
parents: 27063
diff changeset
    10
\isacommand{theory}\isamarkupfalse%
0ee385433247 updated generated file;
wenzelm
parents: 27063
diff changeset
    11
\ Examples\isanewline
32981
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
    12
\isakeyword{imports}\ Main\isanewline
27080
0ee385433247 updated generated file;
wenzelm
parents: 27063
diff changeset
    13
\isakeyword{begin}%
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    14
\endisatagtheory
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    15
{\isafoldtheory}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    16
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    17
\isadelimtheory
27080
0ee385433247 updated generated file;
wenzelm
parents: 27063
diff changeset
    18
\isanewline
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    19
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    20
\endisadelimtheory
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    21
%
27080
0ee385433247 updated generated file;
wenzelm
parents: 27063
diff changeset
    22
\isadeliminvisible
0ee385433247 updated generated file;
wenzelm
parents: 27063
diff changeset
    23
\isanewline
0ee385433247 updated generated file;
wenzelm
parents: 27063
diff changeset
    24
%
0ee385433247 updated generated file;
wenzelm
parents: 27063
diff changeset
    25
\endisadeliminvisible
0ee385433247 updated generated file;
wenzelm
parents: 27063
diff changeset
    26
%
0ee385433247 updated generated file;
wenzelm
parents: 27063
diff changeset
    27
\isataginvisible
0ee385433247 updated generated file;
wenzelm
parents: 27063
diff changeset
    28
\isacommand{hide}\isamarkupfalse%
0ee385433247 updated generated file;
wenzelm
parents: 27063
diff changeset
    29
\ const\ Lattices{\isachardot}lattice\isanewline
0ee385433247 updated generated file;
wenzelm
parents: 27063
diff changeset
    30
\isacommand{pretty{\isacharunderscore}setmargin}\isamarkupfalse%
0ee385433247 updated generated file;
wenzelm
parents: 27063
diff changeset
    31
\ {\isadigit{6}}{\isadigit{5}}%
0ee385433247 updated generated file;
wenzelm
parents: 27063
diff changeset
    32
\endisataginvisible
0ee385433247 updated generated file;
wenzelm
parents: 27063
diff changeset
    33
{\isafoldinvisible}%
0ee385433247 updated generated file;
wenzelm
parents: 27063
diff changeset
    34
%
0ee385433247 updated generated file;
wenzelm
parents: 27063
diff changeset
    35
\isadeliminvisible
0ee385433247 updated generated file;
wenzelm
parents: 27063
diff changeset
    36
%
0ee385433247 updated generated file;
wenzelm
parents: 27063
diff changeset
    37
\endisadeliminvisible
0ee385433247 updated generated file;
wenzelm
parents: 27063
diff changeset
    38
%
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    39
\isamarkupsection{Introduction%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    40
}
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    41
\isamarkuptrue%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    42
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    43
\begin{isamarkuptext}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    44
Locales are based on contexts.  A \emph{context} can be seen as a
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    45
  formula schema
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    46
\[
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    47
  \isa{{\isasymAnd}x\isactrlsub {\isadigit{1}}{\isasymdots}x\isactrlsub n{\isachardot}\ {\isasymlbrakk}\ A\isactrlsub {\isadigit{1}}{\isacharsemicolon}\ {\isasymdots}\ {\isacharsemicolon}A\isactrlsub m\ {\isasymrbrakk}\ {\isasymLongrightarrow}\ {\isasymdots}}
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    48
\]
33838
a3166a169793 Publication details and minor correction of the text.
ballarin
parents: 32983
diff changeset
    49
  where the variables~\isa{x\isactrlsub {\isadigit{1}}}, \ldots,~\isa{x\isactrlsub n} are called
32983
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
    50
  \emph{parameters} and the premises $\isa{A\isactrlsub {\isadigit{1}}}, \ldots,~\isa{A\isactrlsub m}$ \emph{assumptions}.  A formula~\isa{C}
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    51
  is a \emph{theorem} in the context if it is a conclusion
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    52
\[
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    53
  \isa{{\isasymAnd}x\isactrlsub {\isadigit{1}}{\isasymdots}x\isactrlsub n{\isachardot}\ {\isasymlbrakk}\ A\isactrlsub {\isadigit{1}}{\isacharsemicolon}\ {\isasymdots}\ {\isacharsemicolon}A\isactrlsub m\ {\isasymrbrakk}\ {\isasymLongrightarrow}\ C}.
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    54
\]
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    55
  Isabelle/Isar's notion of context goes beyond this logical view.
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    56
  Its contexts record, in a consecutive order, proved
32983
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
    57
  conclusions along with \emph{attributes}, which can provide context
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
    58
  specific configuration information for proof procedures and concrete
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
    59
  syntax.  From a logical perspective, locales are just contexts that
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
    60
  have been made persistent.  To the user, though, they provide
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
    61
  powerful means for declaring and combining contexts, and for the
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
    62
  reuse of theorems proved in these contexts.%
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    63
\end{isamarkuptext}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    64
\isamarkuptrue%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    65
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    66
\isamarkupsection{Simple Locales%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    67
}
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    68
\isamarkuptrue%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    69
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    70
\begin{isamarkuptext}%
32983
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
    71
In its simplest form, a
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    72
  \emph{locale declaration} consists of a sequence of context elements
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    73
  declaring parameters (keyword \isakeyword{fixes}) and assumptions
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    74
  (keyword \isakeyword{assumes}).  The following is the specification of
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    75
  partial orders, as locale \isa{partial{\isacharunderscore}order}.%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    76
\end{isamarkuptext}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    77
\isamarkuptrue%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    78
\ \ \isacommand{locale}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    79
\ partial{\isacharunderscore}order\ {\isacharequal}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    80
\ \ \ \ \isakeyword{fixes}\ le\ {\isacharcolon}{\isacharcolon}\ {\isachardoublequoteopen}{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ {\isasymRightarrow}\ bool{\isachardoublequoteclose}\ {\isacharparenleft}\isakeyword{infixl}\ {\isachardoublequoteopen}{\isasymsqsubseteq}{\isachardoublequoteclose}\ {\isadigit{5}}{\isadigit{0}}{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    81
\ \ \ \ \isakeyword{assumes}\ refl\ {\isacharbrackleft}intro{\isacharcomma}\ simp{\isacharbrackright}{\isacharcolon}\ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ x{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    82
\ \ \ \ \ \ \isakeyword{and}\ anti{\isacharunderscore}sym\ {\isacharbrackleft}intro{\isacharbrackright}{\isacharcolon}\ {\isachardoublequoteopen}{\isasymlbrakk}\ x\ {\isasymsqsubseteq}\ y{\isacharsemicolon}\ y\ {\isasymsqsubseteq}\ x\ {\isasymrbrakk}\ {\isasymLongrightarrow}\ x\ {\isacharequal}\ y{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    83
\ \ \ \ \ \ \isakeyword{and}\ trans\ {\isacharbrackleft}trans{\isacharbrackright}{\isacharcolon}\ {\isachardoublequoteopen}{\isasymlbrakk}\ x\ {\isasymsqsubseteq}\ y{\isacharsemicolon}\ y\ {\isasymsqsubseteq}\ z\ {\isasymrbrakk}\ {\isasymLongrightarrow}\ x\ {\isasymsqsubseteq}\ z{\isachardoublequoteclose}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    84
\begin{isamarkuptext}%
32983
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
    85
The parameter of this locale is~\isa{le},
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
    86
  which is a binary predicate with infix syntax~\isa{{\isasymsqsubseteq}}.  The
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
    87
  parameter syntax is available in the subsequent
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
    88
  assumptions, which are the familiar partial order axioms.
32981
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
    89
32983
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
    90
  Isabelle recognises unbound names as free variables.  In locale
32981
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
    91
  assumptions, these are implicitly universally quantified.  That is,
32983
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
    92
  \isa{{\isasymlbrakk}x\ {\isasymsqsubseteq}\ y{\isacharsemicolon}\ y\ {\isasymsqsubseteq}\ z{\isasymrbrakk}\ {\isasymLongrightarrow}\ x\ {\isasymsqsubseteq}\ z} in fact means
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
    93
  \isa{{\isasymAnd}x\ y\ z{\isachardot}\ {\isasymlbrakk}x\ {\isasymsqsubseteq}\ y{\isacharsemicolon}\ y\ {\isasymsqsubseteq}\ z{\isasymrbrakk}\ {\isasymLongrightarrow}\ x\ {\isasymsqsubseteq}\ z}.
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
    94
32981
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
    95
  Two commands are provided to inspect locales:
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
    96
  \isakeyword{print\_locales} lists the names of all locales of the
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
    97
  current theory; \isakeyword{print\_locale}~$n$ prints the parameters
32983
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
    98
  and assumptions of locale $n$; the variation \isakeyword{print\_locale!}~$n$
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
    99
  additionally outputs the conclusions that are stored in the locale.
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
   100
  We may inspect the new locale
32981
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   101
  by issuing \isakeyword{print\_locale!} \isa{partial{\isacharunderscore}order}.  The output
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   102
  is the following list of context elements.
32983
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
   103
\begin{small}
32981
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   104
\begin{alltt}
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   105
  \isakeyword{fixes} le :: "'a \(\Rightarrow\) 'a \(\Rightarrow\)  bool" (\isakeyword{infixl} "\(\sqsubseteq\)" 50)
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   106
  \isakeyword{assumes} "partial_order op \(\sqsubseteq\)"
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   107
  \isakeyword{notes} assumption
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   108
    refl [intro, simp] = `?x \(\sqsubseteq\) ?x`
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   109
    \isakeyword{and}
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   110
    anti_sym [intro] = `\(\isasymlbrakk\)?x \(\sqsubseteq\) ?y; ?y \(\sqsubseteq\) ?x\(\isasymrbrakk\) \(\Longrightarrow\) ?x = ?y`
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   111
    \isakeyword{and}
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   112
    trans [trans] = `\(\isasymlbrakk\)?x \(\sqsubseteq\) ?y; ?y \(\sqsubseteq\) ?z\(\isasymrbrakk\) \(\Longrightarrow\) ?x \(\sqsubseteq\) ?z`
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   113
\end{alltt}
32983
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
   114
\end{small}
32981
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   115
  The keyword \isakeyword{notes} denotes a conclusion element.  There
32983
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
   116
  is one conclusion, which was added automatically.  Instead, there is
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
   117
  only one assumption, namely \isa{partial{\isacharunderscore}order\ op\ {\isasymsqsubseteq}}.  The locale
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
   118
  declaration has introduced the predicate \isa{partial{\isacharunderscore}order} to the theory.  This predicate is the
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
   119
  \emph{locale predicate}.  Its definition may be inspected by
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
   120
  issuing \isakeyword{thm} \isa{partial{\isacharunderscore}order{\isacharunderscore}def}.
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   121
  \begin{isabelle}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   122
\ \ partial{\isacharunderscore}order\ {\isacharquery}le\ {\isasymequiv}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   123
\isaindent{\ \ }{\isacharparenleft}{\isasymforall}x{\isachardot}\ {\isacharquery}le\ x\ x{\isacharparenright}\ {\isasymand}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   124
\isaindent{\ \ }{\isacharparenleft}{\isasymforall}x\ y{\isachardot}\ {\isacharquery}le\ x\ y\ {\isasymlongrightarrow}\ {\isacharquery}le\ y\ x\ {\isasymlongrightarrow}\ x\ {\isacharequal}\ y{\isacharparenright}\ {\isasymand}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   125
\isaindent{\ \ }{\isacharparenleft}{\isasymforall}x\ y\ z{\isachardot}\ {\isacharquery}le\ x\ y\ {\isasymlongrightarrow}\ {\isacharquery}le\ y\ z\ {\isasymlongrightarrow}\ {\isacharquery}le\ x\ z{\isacharparenright}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   126
\end{isabelle}
32983
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
   127
  In our example, this is a unary predicate over the parameter of the
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
   128
  locale.  It is equivalent to the original assumptions, which have
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
   129
  been turned into conclusions and are
32981
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   130
  available as theorems in the context of the locale.  The names and
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   131
  attributes from the locale declaration are associated to these
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   132
  theorems and are effective in the context of the locale.
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   133
32983
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
   134
  Each conclusion has a \emph{foundational theorem} as counterpart
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
   135
  in the theory.  Technically, this is simply the theorem composed
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
   136
  of context and conclusion.  For the transitivity theorem, this is
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
   137
  \isa{partial{\isacharunderscore}order{\isachardot}trans}:
32981
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   138
  \begin{isabelle}%
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   139
\ \ partial{\isacharunderscore}order\ {\isacharquery}le\ {\isasymequiv}\isanewline
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   140
\isaindent{\ \ }{\isacharparenleft}{\isasymforall}x{\isachardot}\ {\isacharquery}le\ x\ x{\isacharparenright}\ {\isasymand}\isanewline
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   141
\isaindent{\ \ }{\isacharparenleft}{\isasymforall}x\ y{\isachardot}\ {\isacharquery}le\ x\ y\ {\isasymlongrightarrow}\ {\isacharquery}le\ y\ x\ {\isasymlongrightarrow}\ x\ {\isacharequal}\ y{\isacharparenright}\ {\isasymand}\isanewline
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   142
\isaindent{\ \ }{\isacharparenleft}{\isasymforall}x\ y\ z{\isachardot}\ {\isacharquery}le\ x\ y\ {\isasymlongrightarrow}\ {\isacharquery}le\ y\ z\ {\isasymlongrightarrow}\ {\isacharquery}le\ x\ z{\isacharparenright}%
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   143
\end{isabelle}%
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   144
\end{isamarkuptext}%
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   145
\isamarkuptrue%
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   146
%
32983
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
   147
\isamarkupsubsection{Targets: Extending Locales%
32981
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   148
}
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   149
\isamarkuptrue%
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   150
%
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   151
\begin{isamarkuptext}%
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   152
The specification of a locale is fixed, but its list of conclusions
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   153
  may be extended through Isar commands that take a \emph{target} argument.
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   154
  In the following, \isakeyword{definition} and 
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   155
  \isakeyword{theorem} are illustrated.
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   156
  Table~\ref{tab:commands-with-target} lists Isar commands that accept
32983
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
   157
  a target.  Isar provides various ways of specifying the target.  A
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   158
  target for a single command may be indicated with keyword
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   159
  \isakeyword{in} in the following way:
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   160
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   161
\begin{table}
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   162
\hrule
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   163
\vspace{2ex}
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   164
\begin{center}
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   165
\begin{tabular}{ll}
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   166
  \isakeyword{definition} & definition through an equation \\
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   167
  \isakeyword{inductive} & inductive definition \\
30826
a53f4872400e Improvements to the text.
ballarin
parents: 30780
diff changeset
   168
  \isakeyword{primrec} & primitive recursion \\
a53f4872400e Improvements to the text.
ballarin
parents: 30780
diff changeset
   169
  \isakeyword{fun}, \isakeyword{function} & general recursion \\
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   170
  \isakeyword{abbreviation} & syntactic abbreviation \\
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   171
  \isakeyword{theorem}, etc.\ & theorem statement with proof \\
30826
a53f4872400e Improvements to the text.
ballarin
parents: 30780
diff changeset
   172
  \isakeyword{theorems}, etc.\ & redeclaration of theorems \\
a53f4872400e Improvements to the text.
ballarin
parents: 30780
diff changeset
   173
  \isakeyword{text}, etc.\ & document markup
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   174
\end{tabular}
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   175
\end{center}
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   176
\hrule
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   177
\caption{Isar commands that accept a target.}
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   178
\label{tab:commands-with-target}
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   179
\end{table}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   180
\end{isamarkuptext}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   181
\isamarkuptrue%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   182
\ \ \isacommand{definition}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   183
\ {\isacharparenleft}\isakeyword{in}\ partial{\isacharunderscore}order{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   184
\ \ \ \ less\ {\isacharcolon}{\isacharcolon}\ {\isachardoublequoteopen}{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a\ {\isasymRightarrow}\ bool{\isachardoublequoteclose}\ {\isacharparenleft}\isakeyword{infixl}\ {\isachardoublequoteopen}{\isasymsqsubset}{\isachardoublequoteclose}\ {\isadigit{5}}{\isadigit{0}}{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   185
\ \ \ \ \isakeyword{where}\ {\isachardoublequoteopen}{\isacharparenleft}x\ {\isasymsqsubset}\ y{\isacharparenright}\ {\isacharequal}\ {\isacharparenleft}x\ {\isasymsqsubseteq}\ y\ {\isasymand}\ x\ {\isasymnoteq}\ y{\isacharparenright}{\isachardoublequoteclose}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   186
\begin{isamarkuptext}%
32981
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   187
The strict order \isa{less} with infix
32983
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
   188
  syntax~\isa{{\isasymsqsubset}} is
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
   189
  defined in terms of the locale parameter~\isa{le} and the general
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
   190
  equality of the object logic we work in.  The definition generates a
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
   191
  \emph{foundational constant}
32981
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   192
  \isa{partial{\isacharunderscore}order{\isachardot}less} with definition \isa{partial{\isacharunderscore}order{\isachardot}less{\isacharunderscore}def}:
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   193
  \begin{isabelle}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   194
\ \ partial{\isacharunderscore}order\ {\isacharquery}le\ {\isasymLongrightarrow}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   195
\isaindent{\ \ }partial{\isacharunderscore}order{\isachardot}less\ {\isacharquery}le\ {\isacharquery}x\ {\isacharquery}y\ {\isacharequal}\ {\isacharparenleft}{\isacharquery}le\ {\isacharquery}x\ {\isacharquery}y\ {\isasymand}\ {\isacharquery}x\ {\isasymnoteq}\ {\isacharquery}y{\isacharparenright}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   196
\end{isabelle}
30826
a53f4872400e Improvements to the text.
ballarin
parents: 30780
diff changeset
   197
  At the same time, the locale is extended by syntax transformations
32983
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
   198
  hiding this construction in the context of the locale.  Here, the
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
   199
  abbreviation \isa{less} is available for
32981
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   200
  \isa{partial{\isacharunderscore}order{\isachardot}less\ le}, and it is printed
32983
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
   201
  and parsed as infix~\isa{{\isasymsqsubset}}.  Finally, the conclusion \isa{less{\isacharunderscore}def} is added to the locale:
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   202
  \begin{isabelle}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   203
\ \ {\isacharparenleft}{\isacharquery}x\ {\isasymsqsubset}\ {\isacharquery}y{\isacharparenright}\ {\isacharequal}\ {\isacharparenleft}{\isacharquery}x\ {\isasymsqsubseteq}\ {\isacharquery}y\ {\isasymand}\ {\isacharquery}x\ {\isasymnoteq}\ {\isacharquery}y{\isacharparenright}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   204
\end{isabelle}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   205
\end{isamarkuptext}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   206
\isamarkuptrue%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   207
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   208
\begin{isamarkuptext}%
32981
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   209
The treatment of theorem statements is more straightforward.
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   210
  As an example, here is the derivation of a transitivity law for the
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   211
  strict order relation.%
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   212
\end{isamarkuptext}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   213
\isamarkuptrue%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   214
\ \ \isacommand{lemma}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   215
\ {\isacharparenleft}\isakeyword{in}\ partial{\isacharunderscore}order{\isacharparenright}\ less{\isacharunderscore}le{\isacharunderscore}trans\ {\isacharbrackleft}trans{\isacharbrackright}{\isacharcolon}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   216
\ \ \ \ {\isachardoublequoteopen}{\isasymlbrakk}\ x\ {\isasymsqsubset}\ y{\isacharsemicolon}\ y\ {\isasymsqsubseteq}\ z\ {\isasymrbrakk}\ {\isasymLongrightarrow}\ x\ {\isasymsqsubset}\ z{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   217
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   218
\isadelimvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   219
\ \ \ \ %
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   220
\endisadelimvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   221
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   222
\isatagvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   223
\isacommand{unfolding}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   224
\ less{\isacharunderscore}def\ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   225
\ {\isacharparenleft}blast\ intro{\isacharcolon}\ trans{\isacharparenright}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   226
\endisatagvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   227
{\isafoldvisible}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   228
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   229
\isadelimvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   230
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   231
\endisadelimvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   232
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   233
\begin{isamarkuptext}%
32983
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
   234
In the context of the proof, conclusions of the
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
   235
  locale may be used like theorems.  Attributes are effective: \isa{anti{\isacharunderscore}sym} was
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   236
  declared as introduction rule, hence it is in the context's set of
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   237
  rules used by the classical reasoner by default.%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   238
\end{isamarkuptext}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   239
\isamarkuptrue%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   240
%
32981
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   241
\isamarkupsubsection{Context Blocks%
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   242
}
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   243
\isamarkuptrue%
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   244
%
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   245
\begin{isamarkuptext}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   246
When working with locales, sequences of commands with the same
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   247
  target are frequent.  A block of commands, delimited by
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   248
  \isakeyword{begin} and \isakeyword{end}, makes a theory-like style
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   249
  of working possible.  All commands inside the block refer to the
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   250
  same target.  A block may immediately follow a locale
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   251
  declaration, which makes that locale the target.  Alternatively the
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   252
  target for a block may be given with the \isakeyword{context}
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   253
  command.
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   254
30580
cc5a55d7a5be Updated chapters 1-5 to locale reimplementation.
ballarin
parents: 30393
diff changeset
   255
  This style of working is illustrated in the block below, where
cc5a55d7a5be Updated chapters 1-5 to locale reimplementation.
ballarin
parents: 30393
diff changeset
   256
  notions of infimum and supremum for partial orders are introduced,
32981
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   257
  together with theorems about their uniqueness.%
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   258
\end{isamarkuptext}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   259
\isamarkuptrue%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   260
\ \ \isacommand{context}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   261
\ partial{\isacharunderscore}order\ \isakeyword{begin}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   262
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   263
\ \ \isacommand{definition}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   264
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   265
\ \ \ \ is{\isacharunderscore}inf\ \isakeyword{where}\ {\isachardoublequoteopen}is{\isacharunderscore}inf\ x\ y\ i\ {\isacharequal}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   266
\ \ \ \ \ \ {\isacharparenleft}i\ {\isasymsqsubseteq}\ x\ {\isasymand}\ i\ {\isasymsqsubseteq}\ y\ {\isasymand}\ {\isacharparenleft}{\isasymforall}z{\isachardot}\ z\ {\isasymsqsubseteq}\ x\ {\isasymand}\ z\ {\isasymsqsubseteq}\ y\ {\isasymlongrightarrow}\ z\ {\isasymsqsubseteq}\ i{\isacharparenright}{\isacharparenright}{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   267
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   268
\ \ \isacommand{definition}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   269
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   270
\ \ \ \ is{\isacharunderscore}sup\ \isakeyword{where}\ {\isachardoublequoteopen}is{\isacharunderscore}sup\ x\ y\ s\ {\isacharequal}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   271
\ \ \ \ \ \ {\isacharparenleft}x\ {\isasymsqsubseteq}\ s\ {\isasymand}\ y\ {\isasymsqsubseteq}\ s\ {\isasymand}\ {\isacharparenleft}{\isasymforall}z{\isachardot}\ x\ {\isasymsqsubseteq}\ z\ {\isasymand}\ y\ {\isasymsqsubseteq}\ z\ {\isasymlongrightarrow}\ s\ {\isasymsqsubseteq}\ z{\isacharparenright}{\isacharparenright}{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   272
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   273
\isadeliminvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   274
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   275
\ \ %
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   276
\endisadeliminvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   277
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   278
\isataginvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   279
\isacommand{lemma}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   280
\ is{\isacharunderscore}infI\ {\isacharbrackleft}intro{\isacharquery}{\isacharbrackright}{\isacharcolon}\ {\isachardoublequoteopen}i\ {\isasymsqsubseteq}\ x\ {\isasymLongrightarrow}\ i\ {\isasymsqsubseteq}\ y\ {\isasymLongrightarrow}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   281
\ \ \ \ \ \ {\isacharparenleft}{\isasymAnd}z{\isachardot}\ z\ {\isasymsqsubseteq}\ x\ {\isasymLongrightarrow}\ z\ {\isasymsqsubseteq}\ y\ {\isasymLongrightarrow}\ z\ {\isasymsqsubseteq}\ i{\isacharparenright}\ {\isasymLongrightarrow}\ is{\isacharunderscore}inf\ x\ y\ i{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   282
\ \ \ \ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   283
\ {\isacharparenleft}unfold\ is{\isacharunderscore}inf{\isacharunderscore}def{\isacharparenright}\ blast\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   284
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   285
\ \ \isacommand{lemma}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   286
\ is{\isacharunderscore}inf{\isacharunderscore}lower\ {\isacharbrackleft}elim{\isacharquery}{\isacharbrackright}{\isacharcolon}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   287
\ \ \ \ {\isachardoublequoteopen}is{\isacharunderscore}inf\ x\ y\ i\ {\isasymLongrightarrow}\ {\isacharparenleft}i\ {\isasymsqsubseteq}\ x\ {\isasymLongrightarrow}\ i\ {\isasymsqsubseteq}\ y\ {\isasymLongrightarrow}\ C{\isacharparenright}\ {\isasymLongrightarrow}\ C{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   288
\ \ \ \ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   289
\ {\isacharparenleft}unfold\ is{\isacharunderscore}inf{\isacharunderscore}def{\isacharparenright}\ blast\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   290
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   291
\ \ \isacommand{lemma}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   292
\ is{\isacharunderscore}inf{\isacharunderscore}greatest\ {\isacharbrackleft}elim{\isacharquery}{\isacharbrackright}{\isacharcolon}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   293
\ \ \ \ \ \ {\isachardoublequoteopen}is{\isacharunderscore}inf\ x\ y\ i\ {\isasymLongrightarrow}\ z\ {\isasymsqsubseteq}\ x\ {\isasymLongrightarrow}\ z\ {\isasymsqsubseteq}\ y\ {\isasymLongrightarrow}\ z\ {\isasymsqsubseteq}\ i{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   294
\ \ \ \ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   295
\ {\isacharparenleft}unfold\ is{\isacharunderscore}inf{\isacharunderscore}def{\isacharparenright}\ blast%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   296
\endisataginvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   297
{\isafoldinvisible}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   298
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   299
\isadeliminvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   300
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   301
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   302
\endisadeliminvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   303
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   304
\ \ \isacommand{theorem}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   305
\ is{\isacharunderscore}inf{\isacharunderscore}uniq{\isacharcolon}\ {\isachardoublequoteopen}{\isasymlbrakk}is{\isacharunderscore}inf\ x\ y\ i{\isacharsemicolon}\ is{\isacharunderscore}inf\ x\ y\ i{\isacharprime}{\isasymrbrakk}\ {\isasymLongrightarrow}\ i\ {\isacharequal}\ i{\isacharprime}{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   306
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   307
\isadelimproof
32983
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
   308
\ \ \ \ %
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   309
\endisadelimproof
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   310
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   311
\isatagproof
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   312
\isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   313
\ {\isacharminus}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   314
\ \ \ \ \isacommand{assume}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   315
\ inf{\isacharcolon}\ {\isachardoublequoteopen}is{\isacharunderscore}inf\ x\ y\ i{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   316
\ \ \ \ \isacommand{assume}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   317
\ inf{\isacharprime}{\isacharcolon}\ {\isachardoublequoteopen}is{\isacharunderscore}inf\ x\ y\ i{\isacharprime}{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   318
\ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   319
\ {\isacharquery}thesis\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   320
\ \ \ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   321
\ {\isacharparenleft}rule\ anti{\isacharunderscore}sym{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   322
\ \ \ \ \ \ \isacommand{from}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   323
\ inf{\isacharprime}\ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   324
\ {\isachardoublequoteopen}i\ {\isasymsqsubseteq}\ i{\isacharprime}{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   325
\ \ \ \ \ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   326
\ {\isacharparenleft}rule\ is{\isacharunderscore}inf{\isacharunderscore}greatest{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   327
\ \ \ \ \ \ \ \ \isacommand{from}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   328
\ inf\ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   329
\ {\isachardoublequoteopen}i\ {\isasymsqsubseteq}\ x{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   330
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   331
\ \ \ \ \ \ \ \ \isacommand{from}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   332
\ inf\ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   333
\ {\isachardoublequoteopen}i\ {\isasymsqsubseteq}\ y{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   334
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   335
\ \ \ \ \ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   336
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   337
\ \ \ \ \ \ \isacommand{from}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   338
\ inf\ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   339
\ {\isachardoublequoteopen}i{\isacharprime}\ {\isasymsqsubseteq}\ i{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   340
\ \ \ \ \ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   341
\ {\isacharparenleft}rule\ is{\isacharunderscore}inf{\isacharunderscore}greatest{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   342
\ \ \ \ \ \ \ \ \isacommand{from}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   343
\ inf{\isacharprime}\ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   344
\ {\isachardoublequoteopen}i{\isacharprime}\ {\isasymsqsubseteq}\ x{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   345
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   346
\ \ \ \ \ \ \ \ \isacommand{from}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   347
\ inf{\isacharprime}\ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   348
\ {\isachardoublequoteopen}i{\isacharprime}\ {\isasymsqsubseteq}\ y{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   349
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   350
\ \ \ \ \ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   351
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   352
\ \ \ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   353
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   354
\ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   355
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   356
\endisatagproof
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   357
{\isafoldproof}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   358
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   359
\isadelimproof
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   360
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   361
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   362
\endisadelimproof
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   363
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   364
\isadeliminvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   365
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   366
\ \ %
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   367
\endisadeliminvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   368
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   369
\isataginvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   370
\isacommand{theorem}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   371
\ is{\isacharunderscore}inf{\isacharunderscore}related\ {\isacharbrackleft}elim{\isacharquery}{\isacharbrackright}{\isacharcolon}\ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ y\ {\isasymLongrightarrow}\ is{\isacharunderscore}inf\ x\ y\ x{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   372
\ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   373
\ {\isacharminus}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   374
\ \ \ \ \isacommand{assume}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   375
\ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ y{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   376
\ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   377
\ {\isacharquery}thesis\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   378
\ \ \ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   379
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   380
\ \ \ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   381
\ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ x{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   382
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   383
\ \ \ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   384
\ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ y{\isachardoublequoteclose}\ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   385
\ fact\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   386
\ \ \ \ \ \ \isacommand{fix}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   387
\ z\ \isacommand{assume}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   388
\ {\isachardoublequoteopen}z\ {\isasymsqsubseteq}\ x{\isachardoublequoteclose}\ \isakeyword{and}\ {\isachardoublequoteopen}z\ {\isasymsqsubseteq}\ y{\isachardoublequoteclose}\ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   389
\ {\isachardoublequoteopen}z\ {\isasymsqsubseteq}\ x{\isachardoublequoteclose}\ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   390
\ fact\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   391
\ \ \ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   392
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   393
\ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   394
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   395
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   396
\ \ \isacommand{lemma}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   397
\ is{\isacharunderscore}supI\ {\isacharbrackleft}intro{\isacharquery}{\isacharbrackright}{\isacharcolon}\ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ s\ {\isasymLongrightarrow}\ y\ {\isasymsqsubseteq}\ s\ {\isasymLongrightarrow}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   398
\ \ \ \ \ \ {\isacharparenleft}{\isasymAnd}z{\isachardot}\ x\ {\isasymsqsubseteq}\ z\ {\isasymLongrightarrow}\ y\ {\isasymsqsubseteq}\ z\ {\isasymLongrightarrow}\ s\ {\isasymsqsubseteq}\ z{\isacharparenright}\ {\isasymLongrightarrow}\ is{\isacharunderscore}sup\ x\ y\ s{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   399
\ \ \ \ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   400
\ {\isacharparenleft}unfold\ is{\isacharunderscore}sup{\isacharunderscore}def{\isacharparenright}\ blast\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   401
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   402
\ \ \isacommand{lemma}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   403
\ is{\isacharunderscore}sup{\isacharunderscore}least\ {\isacharbrackleft}elim{\isacharquery}{\isacharbrackright}{\isacharcolon}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   404
\ \ \ \ \ \ {\isachardoublequoteopen}is{\isacharunderscore}sup\ x\ y\ s\ {\isasymLongrightarrow}\ x\ {\isasymsqsubseteq}\ z\ {\isasymLongrightarrow}\ y\ {\isasymsqsubseteq}\ z\ {\isasymLongrightarrow}\ s\ {\isasymsqsubseteq}\ z{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   405
\ \ \ \ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   406
\ {\isacharparenleft}unfold\ is{\isacharunderscore}sup{\isacharunderscore}def{\isacharparenright}\ blast\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   407
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   408
\ \ \isacommand{lemma}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   409
\ is{\isacharunderscore}sup{\isacharunderscore}upper\ {\isacharbrackleft}elim{\isacharquery}{\isacharbrackright}{\isacharcolon}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   410
\ \ \ \ \ \ {\isachardoublequoteopen}is{\isacharunderscore}sup\ x\ y\ s\ {\isasymLongrightarrow}\ {\isacharparenleft}x\ {\isasymsqsubseteq}\ s\ {\isasymLongrightarrow}\ y\ {\isasymsqsubseteq}\ s\ {\isasymLongrightarrow}\ C{\isacharparenright}\ {\isasymLongrightarrow}\ C{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   411
\ \ \ \ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   412
\ {\isacharparenleft}unfold\ is{\isacharunderscore}sup{\isacharunderscore}def{\isacharparenright}\ blast%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   413
\endisataginvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   414
{\isafoldinvisible}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   415
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   416
\isadeliminvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   417
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   418
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   419
\endisadeliminvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   420
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   421
\ \ \isacommand{theorem}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   422
\ is{\isacharunderscore}sup{\isacharunderscore}uniq{\isacharcolon}\ {\isachardoublequoteopen}{\isasymlbrakk}is{\isacharunderscore}sup\ x\ y\ s{\isacharsemicolon}\ is{\isacharunderscore}sup\ x\ y\ s{\isacharprime}{\isasymrbrakk}\ {\isasymLongrightarrow}\ s\ {\isacharequal}\ s{\isacharprime}{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   423
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   424
\isadelimproof
32983
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
   425
\ \ \ \ %
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   426
\endisadelimproof
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   427
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   428
\isatagproof
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   429
\isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   430
\ {\isacharminus}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   431
\ \ \ \ \isacommand{assume}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   432
\ sup{\isacharcolon}\ {\isachardoublequoteopen}is{\isacharunderscore}sup\ x\ y\ s{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   433
\ \ \ \ \isacommand{assume}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   434
\ sup{\isacharprime}{\isacharcolon}\ {\isachardoublequoteopen}is{\isacharunderscore}sup\ x\ y\ s{\isacharprime}{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   435
\ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   436
\ {\isacharquery}thesis\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   437
\ \ \ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   438
\ {\isacharparenleft}rule\ anti{\isacharunderscore}sym{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   439
\ \ \ \ \ \ \isacommand{from}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   440
\ sup\ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   441
\ {\isachardoublequoteopen}s\ {\isasymsqsubseteq}\ s{\isacharprime}{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   442
\ \ \ \ \ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   443
\ {\isacharparenleft}rule\ is{\isacharunderscore}sup{\isacharunderscore}least{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   444
\ \ \ \ \ \ \ \ \isacommand{from}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   445
\ sup{\isacharprime}\ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   446
\ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ s{\isacharprime}{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   447
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   448
\ \ \ \ \ \ \ \ \isacommand{from}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   449
\ sup{\isacharprime}\ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   450
\ {\isachardoublequoteopen}y\ {\isasymsqsubseteq}\ s{\isacharprime}{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   451
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   452
\ \ \ \ \ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   453
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   454
\ \ \ \ \ \ \isacommand{from}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   455
\ sup{\isacharprime}\ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   456
\ {\isachardoublequoteopen}s{\isacharprime}\ {\isasymsqsubseteq}\ s{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   457
\ \ \ \ \ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   458
\ {\isacharparenleft}rule\ is{\isacharunderscore}sup{\isacharunderscore}least{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   459
\ \ \ \ \ \ \ \ \isacommand{from}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   460
\ sup\ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   461
\ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ s{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   462
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   463
\ \ \ \ \ \ \ \ \isacommand{from}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   464
\ sup\ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   465
\ {\isachardoublequoteopen}y\ {\isasymsqsubseteq}\ s{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   466
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   467
\ \ \ \ \ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   468
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   469
\ \ \ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   470
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   471
\ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   472
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   473
\endisatagproof
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   474
{\isafoldproof}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   475
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   476
\isadelimproof
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   477
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   478
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   479
\endisadelimproof
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   480
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   481
\isadeliminvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   482
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   483
\ \ %
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   484
\endisadeliminvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   485
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   486
\isataginvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   487
\isacommand{theorem}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   488
\ is{\isacharunderscore}sup{\isacharunderscore}related\ {\isacharbrackleft}elim{\isacharquery}{\isacharbrackright}{\isacharcolon}\ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ y\ {\isasymLongrightarrow}\ is{\isacharunderscore}sup\ x\ y\ y{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   489
\ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   490
\ {\isacharminus}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   491
\ \ \ \ \isacommand{assume}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   492
\ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ y{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   493
\ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   494
\ {\isacharquery}thesis\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   495
\ \ \ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   496
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   497
\ \ \ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   498
\ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ y{\isachardoublequoteclose}\ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   499
\ fact\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   500
\ \ \ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   501
\ {\isachardoublequoteopen}y\ {\isasymsqsubseteq}\ y{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   502
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   503
\ \ \ \ \ \ \isacommand{fix}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   504
\ z\ \isacommand{assume}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   505
\ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ z{\isachardoublequoteclose}\ \isakeyword{and}\ {\isachardoublequoteopen}y\ {\isasymsqsubseteq}\ z{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   506
\ \ \ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   507
\ {\isachardoublequoteopen}y\ {\isasymsqsubseteq}\ z{\isachardoublequoteclose}\ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   508
\ fact\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   509
\ \ \ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   510
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   511
\ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   512
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   513
\endisataginvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   514
{\isafoldinvisible}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   515
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   516
\isadeliminvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   517
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   518
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   519
\endisadeliminvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   520
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   521
\ \ \isacommand{end}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   522
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   523
\begin{isamarkuptext}%
32981
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   524
The syntax of the locale commands discussed in this tutorial is
32983
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
   525
  shown in Table~\ref{tab:commands}.  The grammar is complete with the
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
   526
  exception of the context elements \isakeyword{constrains} and
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
   527
  \isakeyword{defines}, which are provided for backward
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
   528
  compatibility.  See the Isabelle/Isar Reference
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
   529
  Manual~\cite{IsarRef} for full documentation.%
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   530
\end{isamarkuptext}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   531
\isamarkuptrue%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   532
%
30580
cc5a55d7a5be Updated chapters 1-5 to locale reimplementation.
ballarin
parents: 30393
diff changeset
   533
\isamarkupsection{Import \label{sec:import}%
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   534
}
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   535
\isamarkuptrue%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   536
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   537
\begin{isamarkuptext}%
30580
cc5a55d7a5be Updated chapters 1-5 to locale reimplementation.
ballarin
parents: 30393
diff changeset
   538
Algebraic structures are commonly defined by adding operations and
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   539
  properties to existing structures.  For example, partial orders
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   540
  are extended to lattices and total orders.  Lattices are extended to
32981
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   541
  distributive lattices.%
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   542
\end{isamarkuptext}%
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   543
\isamarkuptrue%
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   544
%
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   545
\begin{isamarkuptext}%
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   546
With locales, this kind of inheritance is achieved through
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   547
  \emph{import} of locales.  The import part of a locale declaration,
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   548
  if present, precedes the context elements.  Here is an example,
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   549
  where partial orders are extended to lattices.%
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   550
\end{isamarkuptext}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   551
\isamarkuptrue%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   552
\ \ \isacommand{locale}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   553
\ lattice\ {\isacharequal}\ partial{\isacharunderscore}order\ {\isacharplus}\isanewline
30580
cc5a55d7a5be Updated chapters 1-5 to locale reimplementation.
ballarin
parents: 30393
diff changeset
   554
\ \ \ \ \isakeyword{assumes}\ ex{\isacharunderscore}inf{\isacharcolon}\ {\isachardoublequoteopen}{\isasymexists}inf{\isachardot}\ is{\isacharunderscore}inf\ x\ y\ inf{\isachardoublequoteclose}\isanewline
cc5a55d7a5be Updated chapters 1-5 to locale reimplementation.
ballarin
parents: 30393
diff changeset
   555
\ \ \ \ \ \ \isakeyword{and}\ ex{\isacharunderscore}sup{\isacharcolon}\ {\isachardoublequoteopen}{\isasymexists}sup{\isachardot}\ is{\isacharunderscore}sup\ x\ y\ sup{\isachardoublequoteclose}\isanewline
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   556
\ \ \isakeyword{begin}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   557
\begin{isamarkuptext}%
30580
cc5a55d7a5be Updated chapters 1-5 to locale reimplementation.
ballarin
parents: 30393
diff changeset
   558
These assumptions refer to the predicates for infimum
32981
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   559
  and supremum defined for \isa{partial{\isacharunderscore}order} in the previous
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
   560
  section.  We now introduce the notions of meet and join.%
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   561
\end{isamarkuptext}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   562
\isamarkuptrue%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   563
\ \ \isacommand{definition}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   564
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   565
\ \ \ \ meet\ {\isacharparenleft}\isakeyword{infixl}\ {\isachardoublequoteopen}{\isasymsqinter}{\isachardoublequoteclose}\ {\isadigit{7}}{\isadigit{0}}{\isacharparenright}\ \isakeyword{where}\ {\isachardoublequoteopen}x\ {\isasymsqinter}\ y\ {\isacharequal}\ {\isacharparenleft}THE\ inf{\isachardot}\ is{\isacharunderscore}inf\ x\ y\ inf{\isacharparenright}{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   566
\ \ \isacommand{definition}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   567
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   568
\ \ \ \ join\ {\isacharparenleft}\isakeyword{infixl}\ {\isachardoublequoteopen}{\isasymsqunion}{\isachardoublequoteclose}\ {\isadigit{6}}{\isadigit{5}}{\isacharparenright}\ \isakeyword{where}\ {\isachardoublequoteopen}x\ {\isasymsqunion}\ y\ {\isacharequal}\ {\isacharparenleft}THE\ sup{\isachardot}\ is{\isacharunderscore}sup\ x\ y\ sup{\isacharparenright}{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   569
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   570
\isadeliminvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   571
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   572
\ \ %
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   573
\endisadeliminvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   574
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   575
\isataginvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   576
\isacommand{lemma}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   577
\ meet{\isacharunderscore}equality\ {\isacharbrackleft}elim{\isacharquery}{\isacharbrackright}{\isacharcolon}\ {\isachardoublequoteopen}is{\isacharunderscore}inf\ x\ y\ i\ {\isasymLongrightarrow}\ x\ {\isasymsqinter}\ y\ {\isacharequal}\ i{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   578
\ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   579
\ {\isacharparenleft}unfold\ meet{\isacharunderscore}def{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   580
\ \ \ \ \isacommand{assume}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   581
\ {\isachardoublequoteopen}is{\isacharunderscore}inf\ x\ y\ i{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   582
\ \ \ \ \isacommand{then}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   583
\ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   584
\ {\isachardoublequoteopen}{\isacharparenleft}THE\ i{\isachardot}\ is{\isacharunderscore}inf\ x\ y\ i{\isacharparenright}\ {\isacharequal}\ i{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   585
\ \ \ \ \ \ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   586
\ {\isacharparenleft}rule\ the{\isacharunderscore}equality{\isacharparenright}\ {\isacharparenleft}rule\ is{\isacharunderscore}inf{\isacharunderscore}uniq\ {\isacharbrackleft}OF\ {\isacharunderscore}\ {\isacharbackquoteopen}is{\isacharunderscore}inf\ x\ y\ i{\isacharbackquoteclose}{\isacharbrackright}{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   587
\ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   588
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   589
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   590
\ \ \isacommand{lemma}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   591
\ meetI\ {\isacharbrackleft}intro{\isacharquery}{\isacharbrackright}{\isacharcolon}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   592
\ \ \ \ \ \ {\isachardoublequoteopen}i\ {\isasymsqsubseteq}\ x\ {\isasymLongrightarrow}\ i\ {\isasymsqsubseteq}\ y\ {\isasymLongrightarrow}\ {\isacharparenleft}{\isasymAnd}z{\isachardot}\ z\ {\isasymsqsubseteq}\ x\ {\isasymLongrightarrow}\ z\ {\isasymsqsubseteq}\ y\ {\isasymLongrightarrow}\ z\ {\isasymsqsubseteq}\ i{\isacharparenright}\ {\isasymLongrightarrow}\ x\ {\isasymsqinter}\ y\ {\isacharequal}\ i{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   593
\ \ \ \ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   594
\ {\isacharparenleft}rule\ meet{\isacharunderscore}equality{\isacharcomma}\ rule\ is{\isacharunderscore}infI{\isacharparenright}\ blast{\isacharplus}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   595
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   596
\ \ \isacommand{lemma}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   597
\ is{\isacharunderscore}inf{\isacharunderscore}meet\ {\isacharbrackleft}intro{\isacharquery}{\isacharbrackright}{\isacharcolon}\ {\isachardoublequoteopen}is{\isacharunderscore}inf\ x\ y\ {\isacharparenleft}x\ {\isasymsqinter}\ y{\isacharparenright}{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   598
\ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   599
\ {\isacharparenleft}unfold\ meet{\isacharunderscore}def{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   600
\ \ \ \ \isacommand{from}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   601
\ ex{\isacharunderscore}inf\ \isacommand{obtain}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   602
\ i\ \isakeyword{where}\ {\isachardoublequoteopen}is{\isacharunderscore}inf\ x\ y\ i{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   603
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   604
\ \ \ \ \isacommand{then}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   605
\ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   606
\ {\isachardoublequoteopen}is{\isacharunderscore}inf\ x\ y\ {\isacharparenleft}THE\ i{\isachardot}\ is{\isacharunderscore}inf\ x\ y\ i{\isacharparenright}{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   607
\ \ \ \ \ \ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   608
\ {\isacharparenleft}rule\ theI{\isacharparenright}\ {\isacharparenleft}rule\ is{\isacharunderscore}inf{\isacharunderscore}uniq\ {\isacharbrackleft}OF\ {\isacharunderscore}\ {\isacharbackquoteopen}is{\isacharunderscore}inf\ x\ y\ i{\isacharbackquoteclose}{\isacharbrackright}{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   609
\ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   610
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   611
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   612
\ \ \isacommand{lemma}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   613
\ meet{\isacharunderscore}left\ {\isacharbrackleft}intro{\isacharquery}{\isacharbrackright}{\isacharcolon}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   614
\ \ \ \ {\isachardoublequoteopen}x\ {\isasymsqinter}\ y\ {\isasymsqsubseteq}\ x{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   615
\ \ \ \ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   616
\ {\isacharparenleft}rule\ is{\isacharunderscore}inf{\isacharunderscore}lower{\isacharparenright}\ {\isacharparenleft}rule\ is{\isacharunderscore}inf{\isacharunderscore}meet{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   617
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   618
\ \ \isacommand{lemma}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   619
\ meet{\isacharunderscore}right\ {\isacharbrackleft}intro{\isacharquery}{\isacharbrackright}{\isacharcolon}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   620
\ \ \ \ {\isachardoublequoteopen}x\ {\isasymsqinter}\ y\ {\isasymsqsubseteq}\ y{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   621
\ \ \ \ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   622
\ {\isacharparenleft}rule\ is{\isacharunderscore}inf{\isacharunderscore}lower{\isacharparenright}\ {\isacharparenleft}rule\ is{\isacharunderscore}inf{\isacharunderscore}meet{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   623
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   624
\ \ \isacommand{lemma}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   625
\ meet{\isacharunderscore}le\ {\isacharbrackleft}intro{\isacharquery}{\isacharbrackright}{\isacharcolon}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   626
\ \ \ \ {\isachardoublequoteopen}{\isasymlbrakk}\ z\ {\isasymsqsubseteq}\ x{\isacharsemicolon}\ z\ {\isasymsqsubseteq}\ y\ {\isasymrbrakk}\ {\isasymLongrightarrow}\ z\ {\isasymsqsubseteq}\ x\ {\isasymsqinter}\ y{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   627
\ \ \ \ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   628
\ {\isacharparenleft}rule\ is{\isacharunderscore}inf{\isacharunderscore}greatest{\isacharparenright}\ {\isacharparenleft}rule\ is{\isacharunderscore}inf{\isacharunderscore}meet{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   629
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   630
\ \ \isacommand{lemma}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   631
\ join{\isacharunderscore}equality\ {\isacharbrackleft}elim{\isacharquery}{\isacharbrackright}{\isacharcolon}\ {\isachardoublequoteopen}is{\isacharunderscore}sup\ x\ y\ s\ {\isasymLongrightarrow}\ x\ {\isasymsqunion}\ y\ {\isacharequal}\ s{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   632
\ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   633
\ {\isacharparenleft}unfold\ join{\isacharunderscore}def{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   634
\ \ \ \ \isacommand{assume}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   635
\ {\isachardoublequoteopen}is{\isacharunderscore}sup\ x\ y\ s{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   636
\ \ \ \ \isacommand{then}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   637
\ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   638
\ {\isachardoublequoteopen}{\isacharparenleft}THE\ s{\isachardot}\ is{\isacharunderscore}sup\ x\ y\ s{\isacharparenright}\ {\isacharequal}\ s{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   639
\ \ \ \ \ \ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   640
\ {\isacharparenleft}rule\ the{\isacharunderscore}equality{\isacharparenright}\ {\isacharparenleft}rule\ is{\isacharunderscore}sup{\isacharunderscore}uniq\ {\isacharbrackleft}OF\ {\isacharunderscore}\ {\isacharbackquoteopen}is{\isacharunderscore}sup\ x\ y\ s{\isacharbackquoteclose}{\isacharbrackright}{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   641
\ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   642
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   643
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   644
\ \ \isacommand{lemma}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   645
\ joinI\ {\isacharbrackleft}intro{\isacharquery}{\isacharbrackright}{\isacharcolon}\ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ s\ {\isasymLongrightarrow}\ y\ {\isasymsqsubseteq}\ s\ {\isasymLongrightarrow}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   646
\ \ \ \ \ \ {\isacharparenleft}{\isasymAnd}z{\isachardot}\ x\ {\isasymsqsubseteq}\ z\ {\isasymLongrightarrow}\ y\ {\isasymsqsubseteq}\ z\ {\isasymLongrightarrow}\ s\ {\isasymsqsubseteq}\ z{\isacharparenright}\ {\isasymLongrightarrow}\ x\ {\isasymsqunion}\ y\ {\isacharequal}\ s{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   647
\ \ \ \ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   648
\ {\isacharparenleft}rule\ join{\isacharunderscore}equality{\isacharcomma}\ rule\ is{\isacharunderscore}supI{\isacharparenright}\ blast{\isacharplus}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   649
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   650
\ \ \isacommand{lemma}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   651
\ is{\isacharunderscore}sup{\isacharunderscore}join\ {\isacharbrackleft}intro{\isacharquery}{\isacharbrackright}{\isacharcolon}\ {\isachardoublequoteopen}is{\isacharunderscore}sup\ x\ y\ {\isacharparenleft}x\ {\isasymsqunion}\ y{\isacharparenright}{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   652
\ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   653
\ {\isacharparenleft}unfold\ join{\isacharunderscore}def{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   654
\ \ \ \ \isacommand{from}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   655
\ ex{\isacharunderscore}sup\ \isacommand{obtain}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   656
\ s\ \isakeyword{where}\ {\isachardoublequoteopen}is{\isacharunderscore}sup\ x\ y\ s{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   657
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   658
\ \ \ \ \isacommand{then}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   659
\ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   660
\ {\isachardoublequoteopen}is{\isacharunderscore}sup\ x\ y\ {\isacharparenleft}THE\ s{\isachardot}\ is{\isacharunderscore}sup\ x\ y\ s{\isacharparenright}{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   661
\ \ \ \ \ \ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   662
\ {\isacharparenleft}rule\ theI{\isacharparenright}\ {\isacharparenleft}rule\ is{\isacharunderscore}sup{\isacharunderscore}uniq\ {\isacharbrackleft}OF\ {\isacharunderscore}\ {\isacharbackquoteopen}is{\isacharunderscore}sup\ x\ y\ s{\isacharbackquoteclose}{\isacharbrackright}{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   663
\ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   664
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   665
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   666
\ \ \isacommand{lemma}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   667
\ join{\isacharunderscore}left\ {\isacharbrackleft}intro{\isacharquery}{\isacharbrackright}{\isacharcolon}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   668
\ \ \ \ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ x\ {\isasymsqunion}\ y{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   669
\ \ \ \ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   670
\ {\isacharparenleft}rule\ is{\isacharunderscore}sup{\isacharunderscore}upper{\isacharparenright}\ {\isacharparenleft}rule\ is{\isacharunderscore}sup{\isacharunderscore}join{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   671
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   672
\ \ \isacommand{lemma}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   673
\ join{\isacharunderscore}right\ {\isacharbrackleft}intro{\isacharquery}{\isacharbrackright}{\isacharcolon}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   674
\ \ \ \ {\isachardoublequoteopen}y\ {\isasymsqsubseteq}\ x\ {\isasymsqunion}\ y{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   675
\ \ \ \ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   676
\ {\isacharparenleft}rule\ is{\isacharunderscore}sup{\isacharunderscore}upper{\isacharparenright}\ {\isacharparenleft}rule\ is{\isacharunderscore}sup{\isacharunderscore}join{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   677
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   678
\ \ \isacommand{lemma}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   679
\ join{\isacharunderscore}le\ {\isacharbrackleft}intro{\isacharquery}{\isacharbrackright}{\isacharcolon}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   680
\ \ \ \ {\isachardoublequoteopen}{\isasymlbrakk}\ x\ {\isasymsqsubseteq}\ z{\isacharsemicolon}\ y\ {\isasymsqsubseteq}\ z\ {\isasymrbrakk}\ {\isasymLongrightarrow}\ x\ {\isasymsqunion}\ y\ {\isasymsqsubseteq}\ z{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   681
\ \ \ \ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   682
\ {\isacharparenleft}rule\ is{\isacharunderscore}sup{\isacharunderscore}least{\isacharparenright}\ {\isacharparenleft}rule\ is{\isacharunderscore}sup{\isacharunderscore}join{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   683
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   684
\ \ \isacommand{theorem}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   685
\ meet{\isacharunderscore}assoc{\isacharcolon}\ {\isachardoublequoteopen}{\isacharparenleft}x\ {\isasymsqinter}\ y{\isacharparenright}\ {\isasymsqinter}\ z\ {\isacharequal}\ x\ {\isasymsqinter}\ {\isacharparenleft}y\ {\isasymsqinter}\ z{\isacharparenright}{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   686
\ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   687
\ {\isacharparenleft}rule\ meetI{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   688
\ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   689
\ {\isachardoublequoteopen}x\ {\isasymsqinter}\ {\isacharparenleft}y\ {\isasymsqinter}\ z{\isacharparenright}\ {\isasymsqsubseteq}\ x\ {\isasymsqinter}\ y{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   690
\ \ \ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   691
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   692
\ \ \ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   693
\ {\isachardoublequoteopen}x\ {\isasymsqinter}\ {\isacharparenleft}y\ {\isasymsqinter}\ z{\isacharparenright}\ {\isasymsqsubseteq}\ x{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   694
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   695
\ \ \ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   696
\ {\isachardoublequoteopen}x\ {\isasymsqinter}\ {\isacharparenleft}y\ {\isasymsqinter}\ z{\isacharparenright}\ {\isasymsqsubseteq}\ y{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   697
\ \ \ \ \ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   698
\ {\isacharminus}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   699
\ \ \ \ \ \ \ \ \isacommand{have}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   700
\ {\isachardoublequoteopen}x\ {\isasymsqinter}\ {\isacharparenleft}y\ {\isasymsqinter}\ z{\isacharparenright}\ {\isasymsqsubseteq}\ y\ {\isasymsqinter}\ z{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   701
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   702
\ \ \ \ \ \ \ \ \isacommand{also}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   703
\ \isacommand{have}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   704
\ {\isachardoublequoteopen}{\isasymdots}\ {\isasymsqsubseteq}\ y{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   705
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   706
\ \ \ \ \ \ \ \ \isacommand{finally}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   707
\ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   708
\ {\isacharquery}thesis\ \isacommand{{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   709
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   710
\ \ \ \ \ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   711
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   712
\ \ \ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   713
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   714
\ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   715
\ {\isachardoublequoteopen}x\ {\isasymsqinter}\ {\isacharparenleft}y\ {\isasymsqinter}\ z{\isacharparenright}\ {\isasymsqsubseteq}\ z{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   716
\ \ \ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   717
\ {\isacharminus}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   718
\ \ \ \ \ \ \isacommand{have}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   719
\ {\isachardoublequoteopen}x\ {\isasymsqinter}\ {\isacharparenleft}y\ {\isasymsqinter}\ z{\isacharparenright}\ {\isasymsqsubseteq}\ y\ {\isasymsqinter}\ z{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   720
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   721
\ \ \ \ \ \ \isacommand{also}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   722
\ \isacommand{have}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   723
\ {\isachardoublequoteopen}{\isasymdots}\ {\isasymsqsubseteq}\ z{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   724
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   725
\ \ \ \ \ \ \isacommand{finally}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   726
\ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   727
\ {\isacharquery}thesis\ \isacommand{{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   728
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   729
\ \ \ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   730
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   731
\ \ \ \ \isacommand{fix}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   732
\ w\ \isacommand{assume}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   733
\ {\isachardoublequoteopen}w\ {\isasymsqsubseteq}\ x\ {\isasymsqinter}\ y{\isachardoublequoteclose}\ \isakeyword{and}\ {\isachardoublequoteopen}w\ {\isasymsqsubseteq}\ z{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   734
\ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   735
\ {\isachardoublequoteopen}w\ {\isasymsqsubseteq}\ x\ {\isasymsqinter}\ {\isacharparenleft}y\ {\isasymsqinter}\ z{\isacharparenright}{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   736
\ \ \ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   737
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   738
\ \ \ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   739
\ {\isachardoublequoteopen}w\ {\isasymsqsubseteq}\ x{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   740
\ \ \ \ \ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   741
\ {\isacharminus}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   742
\ \ \ \ \ \ \ \ \isacommand{have}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   743
\ {\isachardoublequoteopen}w\ {\isasymsqsubseteq}\ x\ {\isasymsqinter}\ y{\isachardoublequoteclose}\ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   744
\ fact\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   745
\ \ \ \ \ \ \ \ \isacommand{also}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   746
\ \isacommand{have}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   747
\ {\isachardoublequoteopen}{\isasymdots}\ {\isasymsqsubseteq}\ x{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   748
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   749
\ \ \ \ \ \ \ \ \isacommand{finally}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   750
\ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   751
\ {\isacharquery}thesis\ \isacommand{{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   752
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   753
\ \ \ \ \ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   754
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   755
\ \ \ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   756
\ {\isachardoublequoteopen}w\ {\isasymsqsubseteq}\ y\ {\isasymsqinter}\ z{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   757
\ \ \ \ \ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   758
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   759
\ \ \ \ \ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   760
\ {\isachardoublequoteopen}w\ {\isasymsqsubseteq}\ y{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   761
\ \ \ \ \ \ \ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   762
\ {\isacharminus}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   763
\ \ \ \ \ \ \ \ \ \ \isacommand{have}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   764
\ {\isachardoublequoteopen}w\ {\isasymsqsubseteq}\ x\ {\isasymsqinter}\ y{\isachardoublequoteclose}\ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   765
\ fact\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   766
\ \ \ \ \ \ \ \ \ \ \isacommand{also}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   767
\ \isacommand{have}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   768
\ {\isachardoublequoteopen}{\isasymdots}\ {\isasymsqsubseteq}\ y{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   769
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   770
\ \ \ \ \ \ \ \ \ \ \isacommand{finally}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   771
\ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   772
\ {\isacharquery}thesis\ \isacommand{{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   773
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   774
\ \ \ \ \ \ \ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   775
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   776
\ \ \ \ \ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   777
\ {\isachardoublequoteopen}w\ {\isasymsqsubseteq}\ z{\isachardoublequoteclose}\ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   778
\ fact\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   779
\ \ \ \ \ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   780
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   781
\ \ \ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   782
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   783
\ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   784
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   785
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   786
\ \ \isacommand{theorem}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   787
\ meet{\isacharunderscore}commute{\isacharcolon}\ {\isachardoublequoteopen}x\ {\isasymsqinter}\ y\ {\isacharequal}\ y\ {\isasymsqinter}\ x{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   788
\ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   789
\ {\isacharparenleft}rule\ meetI{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   790
\ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   791
\ {\isachardoublequoteopen}y\ {\isasymsqinter}\ x\ {\isasymsqsubseteq}\ x{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   792
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   793
\ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   794
\ {\isachardoublequoteopen}y\ {\isasymsqinter}\ x\ {\isasymsqsubseteq}\ y{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   795
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   796
\ \ \ \ \isacommand{fix}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   797
\ z\ \isacommand{assume}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   798
\ {\isachardoublequoteopen}z\ {\isasymsqsubseteq}\ y{\isachardoublequoteclose}\ \isakeyword{and}\ {\isachardoublequoteopen}z\ {\isasymsqsubseteq}\ x{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   799
\ \ \ \ \isacommand{then}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   800
\ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   801
\ {\isachardoublequoteopen}z\ {\isasymsqsubseteq}\ y\ {\isasymsqinter}\ x{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   802
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   803
\ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   804
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   805
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   806
\ \ \isacommand{theorem}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   807
\ meet{\isacharunderscore}join{\isacharunderscore}absorb{\isacharcolon}\ {\isachardoublequoteopen}x\ {\isasymsqinter}\ {\isacharparenleft}x\ {\isasymsqunion}\ y{\isacharparenright}\ {\isacharequal}\ x{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   808
\ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   809
\ {\isacharparenleft}rule\ meetI{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   810
\ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   811
\ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ x{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   812
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   813
\ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   814
\ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ x\ {\isasymsqunion}\ y{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   815
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   816
\ \ \ \ \isacommand{fix}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   817
\ z\ \isacommand{assume}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   818
\ {\isachardoublequoteopen}z\ {\isasymsqsubseteq}\ x{\isachardoublequoteclose}\ \isakeyword{and}\ {\isachardoublequoteopen}z\ {\isasymsqsubseteq}\ x\ {\isasymsqunion}\ y{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   819
\ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   820
\ {\isachardoublequoteopen}z\ {\isasymsqsubseteq}\ x{\isachardoublequoteclose}\ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   821
\ fact\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   822
\ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   823
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   824
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   825
\ \ \isacommand{theorem}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   826
\ join{\isacharunderscore}assoc{\isacharcolon}\ {\isachardoublequoteopen}{\isacharparenleft}x\ {\isasymsqunion}\ y{\isacharparenright}\ {\isasymsqunion}\ z\ {\isacharequal}\ x\ {\isasymsqunion}\ {\isacharparenleft}y\ {\isasymsqunion}\ z{\isacharparenright}{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   827
\ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   828
\ {\isacharparenleft}rule\ joinI{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   829
\ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   830
\ {\isachardoublequoteopen}x\ {\isasymsqunion}\ y\ {\isasymsqsubseteq}\ x\ {\isasymsqunion}\ {\isacharparenleft}y\ {\isasymsqunion}\ z{\isacharparenright}{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   831
\ \ \ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   832
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   833
\ \ \ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   834
\ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ x\ {\isasymsqunion}\ {\isacharparenleft}y\ {\isasymsqunion}\ z{\isacharparenright}{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   835
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   836
\ \ \ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   837
\ {\isachardoublequoteopen}y\ {\isasymsqsubseteq}\ x\ {\isasymsqunion}\ {\isacharparenleft}y\ {\isasymsqunion}\ z{\isacharparenright}{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   838
\ \ \ \ \ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   839
\ {\isacharminus}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   840
\ \ \ \ \ \ \ \ \isacommand{have}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   841
\ {\isachardoublequoteopen}y\ {\isasymsqsubseteq}\ y\ {\isasymsqunion}\ z{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   842
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   843
\ \ \ \ \ \ \ \ \isacommand{also}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   844
\ \isacommand{have}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   845
\ {\isachardoublequoteopen}{\isachardot}{\isachardot}{\isachardot}\ {\isasymsqsubseteq}\ x\ {\isasymsqunion}\ {\isacharparenleft}y\ {\isasymsqunion}\ z{\isacharparenright}{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   846
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   847
\ \ \ \ \ \ \ \ \isacommand{finally}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   848
\ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   849
\ {\isacharquery}thesis\ \isacommand{{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   850
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   851
\ \ \ \ \ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   852
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   853
\ \ \ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   854
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   855
\ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   856
\ {\isachardoublequoteopen}z\ {\isasymsqsubseteq}\ x\ {\isasymsqunion}\ {\isacharparenleft}y\ {\isasymsqunion}\ z{\isacharparenright}{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   857
\ \ \ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   858
\ {\isacharminus}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   859
\ \ \ \ \ \ \isacommand{have}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   860
\ {\isachardoublequoteopen}z\ {\isasymsqsubseteq}\ y\ {\isasymsqunion}\ z{\isachardoublequoteclose}\ \ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   861
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   862
\ \ \ \ \ \ \isacommand{also}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   863
\ \isacommand{have}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   864
\ {\isachardoublequoteopen}{\isachardot}{\isachardot}{\isachardot}\ {\isasymsqsubseteq}\ x\ {\isasymsqunion}\ {\isacharparenleft}y\ {\isasymsqunion}\ z{\isacharparenright}{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   865
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   866
\ \ \ \ \ \ \isacommand{finally}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   867
\ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   868
\ {\isacharquery}thesis\ \isacommand{{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   869
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   870
\ \ \ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   871
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   872
\ \ \ \ \isacommand{fix}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   873
\ w\ \isacommand{assume}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   874
\ {\isachardoublequoteopen}x\ {\isasymsqunion}\ y\ {\isasymsqsubseteq}\ w{\isachardoublequoteclose}\ \isakeyword{and}\ {\isachardoublequoteopen}z\ {\isasymsqsubseteq}\ w{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   875
\ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   876
\ {\isachardoublequoteopen}x\ {\isasymsqunion}\ {\isacharparenleft}y\ {\isasymsqunion}\ z{\isacharparenright}\ {\isasymsqsubseteq}\ w{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   877
\ \ \ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   878
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   879
\ \ \ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   880
\ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ w{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   881
\ \ \ \ \ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   882
\ {\isacharminus}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   883
\ \ \ \ \ \ \ \ \isacommand{have}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   884
\ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ x\ {\isasymsqunion}\ y{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   885
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   886
\ \ \ \ \ \ \ \ \isacommand{also}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   887
\ \isacommand{have}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   888
\ {\isachardoublequoteopen}{\isasymdots}\ {\isasymsqsubseteq}\ w{\isachardoublequoteclose}\ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   889
\ fact\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   890
\ \ \ \ \ \ \ \ \isacommand{finally}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   891
\ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   892
\ {\isacharquery}thesis\ \isacommand{{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   893
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   894
\ \ \ \ \ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   895
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   896
\ \ \ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   897
\ {\isachardoublequoteopen}y\ {\isasymsqunion}\ z\ {\isasymsqsubseteq}\ w{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   898
\ \ \ \ \ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   899
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   900
\ \ \ \ \ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   901
\ {\isachardoublequoteopen}y\ {\isasymsqsubseteq}\ w{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   902
\ \ \ \ \ \ \ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   903
\ {\isacharminus}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   904
\ \ \ \ \ \ \ \ \ \ \isacommand{have}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   905
\ {\isachardoublequoteopen}y\ {\isasymsqsubseteq}\ x\ {\isasymsqunion}\ y{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   906
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   907
\ \ \ \ \ \ \ \ \ \ \isacommand{also}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   908
\ \isacommand{have}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   909
\ {\isachardoublequoteopen}{\isachardot}{\isachardot}{\isachardot}\ {\isasymsqsubseteq}\ w{\isachardoublequoteclose}\ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   910
\ fact\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   911
\ \ \ \ \ \ \ \ \ \ \isacommand{finally}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   912
\ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   913
\ {\isacharquery}thesis\ \isacommand{{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   914
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   915
\ \ \ \ \ \ \ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   916
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   917
\ \ \ \ \ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   918
\ {\isachardoublequoteopen}z\ {\isasymsqsubseteq}\ w{\isachardoublequoteclose}\ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   919
\ fact\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   920
\ \ \ \ \ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   921
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   922
\ \ \ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   923
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   924
\ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   925
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   926
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   927
\ \ \isacommand{theorem}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   928
\ join{\isacharunderscore}commute{\isacharcolon}\ {\isachardoublequoteopen}x\ {\isasymsqunion}\ y\ {\isacharequal}\ y\ {\isasymsqunion}\ x{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   929
\ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   930
\ {\isacharparenleft}rule\ joinI{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   931
\ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   932
\ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ y\ {\isasymsqunion}\ x{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   933
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   934
\ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   935
\ {\isachardoublequoteopen}y\ {\isasymsqsubseteq}\ y\ {\isasymsqunion}\ x{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   936
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   937
\ \ \ \ \isacommand{fix}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   938
\ z\ \isacommand{assume}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   939
\ {\isachardoublequoteopen}y\ {\isasymsqsubseteq}\ z{\isachardoublequoteclose}\ \isakeyword{and}\ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ z{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   940
\ \ \ \ \isacommand{then}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   941
\ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   942
\ {\isachardoublequoteopen}y\ {\isasymsqunion}\ x\ {\isasymsqsubseteq}\ z{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   943
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   944
\ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   945
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   946
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   947
\ \ \isacommand{theorem}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   948
\ join{\isacharunderscore}meet{\isacharunderscore}absorb{\isacharcolon}\ {\isachardoublequoteopen}x\ {\isasymsqunion}\ {\isacharparenleft}x\ {\isasymsqinter}\ y{\isacharparenright}\ {\isacharequal}\ x{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   949
\ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   950
\ {\isacharparenleft}rule\ joinI{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   951
\ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   952
\ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ x{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   953
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   954
\ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   955
\ {\isachardoublequoteopen}x\ {\isasymsqinter}\ y\ {\isasymsqsubseteq}\ x{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   956
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   957
\ \ \ \ \isacommand{fix}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   958
\ z\ \isacommand{assume}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   959
\ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ z{\isachardoublequoteclose}\ \isakeyword{and}\ {\isachardoublequoteopen}x\ {\isasymsqinter}\ y\ {\isasymsqsubseteq}\ z{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   960
\ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   961
\ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ z{\isachardoublequoteclose}\ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   962
\ fact\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   963
\ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   964
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   965
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   966
\ \ \isacommand{theorem}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   967
\ meet{\isacharunderscore}idem{\isacharcolon}\ {\isachardoublequoteopen}x\ {\isasymsqinter}\ x\ {\isacharequal}\ x{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   968
\ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   969
\ {\isacharminus}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   970
\ \ \ \ \isacommand{have}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   971
\ {\isachardoublequoteopen}x\ {\isasymsqinter}\ {\isacharparenleft}x\ {\isasymsqunion}\ {\isacharparenleft}x\ {\isasymsqinter}\ x{\isacharparenright}{\isacharparenright}\ {\isacharequal}\ x{\isachardoublequoteclose}\ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   972
\ {\isacharparenleft}rule\ meet{\isacharunderscore}join{\isacharunderscore}absorb{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   973
\ \ \ \ \isacommand{also}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   974
\ \isacommand{have}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   975
\ {\isachardoublequoteopen}x\ {\isasymsqunion}\ {\isacharparenleft}x\ {\isasymsqinter}\ x{\isacharparenright}\ {\isacharequal}\ x{\isachardoublequoteclose}\ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   976
\ {\isacharparenleft}rule\ join{\isacharunderscore}meet{\isacharunderscore}absorb{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   977
\ \ \ \ \isacommand{finally}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   978
\ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   979
\ {\isacharquery}thesis\ \isacommand{{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   980
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   981
\ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   982
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   983
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   984
\ \ \isacommand{theorem}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   985
\ meet{\isacharunderscore}related\ {\isacharbrackleft}elim{\isacharquery}{\isacharbrackright}{\isacharcolon}\ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ y\ {\isasymLongrightarrow}\ x\ {\isasymsqinter}\ y\ {\isacharequal}\ x{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   986
\ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   987
\ {\isacharparenleft}rule\ meetI{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   988
\ \ \ \ \isacommand{assume}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   989
\ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ y{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   990
\ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   991
\ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ x{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   992
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   993
\ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   994
\ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ y{\isachardoublequoteclose}\ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   995
\ fact\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   996
\ \ \ \ \isacommand{fix}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   997
\ z\ \isacommand{assume}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   998
\ {\isachardoublequoteopen}z\ {\isasymsqsubseteq}\ x{\isachardoublequoteclose}\ \isakeyword{and}\ {\isachardoublequoteopen}z\ {\isasymsqsubseteq}\ y{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
   999
\ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1000
\ {\isachardoublequoteopen}z\ {\isasymsqsubseteq}\ x{\isachardoublequoteclose}\ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1001
\ fact\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1002
\ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1003
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1004
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1005
\ \ \isacommand{theorem}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1006
\ meet{\isacharunderscore}related{\isadigit{2}}\ {\isacharbrackleft}elim{\isacharquery}{\isacharbrackright}{\isacharcolon}\ {\isachardoublequoteopen}y\ {\isasymsqsubseteq}\ x\ {\isasymLongrightarrow}\ x\ {\isasymsqinter}\ y\ {\isacharequal}\ y{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1007
\ \ \ \ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1008
\ {\isacharparenleft}drule\ meet{\isacharunderscore}related{\isacharparenright}\ {\isacharparenleft}simp\ add{\isacharcolon}\ meet{\isacharunderscore}commute{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1009
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1010
\ \ \isacommand{theorem}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1011
\ join{\isacharunderscore}related\ {\isacharbrackleft}elim{\isacharquery}{\isacharbrackright}{\isacharcolon}\ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ y\ {\isasymLongrightarrow}\ x\ {\isasymsqunion}\ y\ {\isacharequal}\ y{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1012
\ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1013
\ {\isacharparenleft}rule\ joinI{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1014
\ \ \ \ \isacommand{assume}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1015
\ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ y{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1016
\ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1017
\ {\isachardoublequoteopen}y\ {\isasymsqsubseteq}\ y{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1018
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1019
\ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1020
\ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ y{\isachardoublequoteclose}\ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1021
\ fact\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1022
\ \ \ \ \isacommand{fix}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1023
\ z\ \isacommand{assume}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1024
\ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ z{\isachardoublequoteclose}\ \isakeyword{and}\ {\isachardoublequoteopen}y\ {\isasymsqsubseteq}\ z{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1025
\ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1026
\ {\isachardoublequoteopen}y\ {\isasymsqsubseteq}\ z{\isachardoublequoteclose}\ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1027
\ fact\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1028
\ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1029
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1030
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1031
\ \ \isacommand{theorem}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1032
\ join{\isacharunderscore}related{\isadigit{2}}\ {\isacharbrackleft}elim{\isacharquery}{\isacharbrackright}{\isacharcolon}\ {\isachardoublequoteopen}y\ {\isasymsqsubseteq}\ x\ {\isasymLongrightarrow}\ x\ {\isasymsqunion}\ y\ {\isacharequal}\ x{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1033
\ \ \ \ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1034
\ {\isacharparenleft}drule\ join{\isacharunderscore}related{\isacharparenright}\ {\isacharparenleft}simp\ add{\isacharcolon}\ join{\isacharunderscore}commute{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1035
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1036
\ \ \isacommand{theorem}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1037
\ meet{\isacharunderscore}connection{\isacharcolon}\ {\isachardoublequoteopen}{\isacharparenleft}x\ {\isasymsqsubseteq}\ y{\isacharparenright}\ {\isacharequal}\ {\isacharparenleft}x\ {\isasymsqinter}\ y\ {\isacharequal}\ x{\isacharparenright}{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1038
\ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1039
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1040
\ \ \ \ \isacommand{assume}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1041
\ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ y{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1042
\ \ \ \ \isacommand{then}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1043
\ \isacommand{have}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1044
\ {\isachardoublequoteopen}is{\isacharunderscore}inf\ x\ y\ x{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1045
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1046
\ \ \ \ \isacommand{then}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1047
\ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1048
\ {\isachardoublequoteopen}x\ {\isasymsqinter}\ y\ {\isacharequal}\ x{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1049
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1050
\ \ \isacommand{next}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1051
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1052
\ \ \ \ \isacommand{have}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1053
\ {\isachardoublequoteopen}x\ {\isasymsqinter}\ y\ {\isasymsqsubseteq}\ y{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1054
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1055
\ \ \ \ \isacommand{also}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1056
\ \isacommand{assume}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1057
\ {\isachardoublequoteopen}x\ {\isasymsqinter}\ y\ {\isacharequal}\ x{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1058
\ \ \ \ \isacommand{finally}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1059
\ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1060
\ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ y{\isachardoublequoteclose}\ \isacommand{{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1061
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1062
\ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1063
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1064
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1065
\ \ \isacommand{theorem}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1066
\ join{\isacharunderscore}connection{\isacharcolon}\ {\isachardoublequoteopen}{\isacharparenleft}x\ {\isasymsqsubseteq}\ y{\isacharparenright}\ {\isacharequal}\ {\isacharparenleft}x\ {\isasymsqunion}\ y\ {\isacharequal}\ y{\isacharparenright}{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1067
\ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1068
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1069
\ \ \ \ \isacommand{assume}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1070
\ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ y{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1071
\ \ \ \ \isacommand{then}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1072
\ \isacommand{have}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1073
\ {\isachardoublequoteopen}is{\isacharunderscore}sup\ x\ y\ y{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1074
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1075
\ \ \ \ \isacommand{then}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1076
\ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1077
\ {\isachardoublequoteopen}x\ {\isasymsqunion}\ y\ {\isacharequal}\ y{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1078
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1079
\ \ \isacommand{next}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1080
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1081
\ \ \ \ \isacommand{have}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1082
\ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ x\ {\isasymsqunion}\ y{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1083
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1084
\ \ \ \ \isacommand{also}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1085
\ \isacommand{assume}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1086
\ {\isachardoublequoteopen}x\ {\isasymsqunion}\ y\ {\isacharequal}\ y{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1087
\ \ \ \ \isacommand{finally}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1088
\ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1089
\ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ y{\isachardoublequoteclose}\ \isacommand{{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1090
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1091
\ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1092
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1093
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1094
\ \ \isacommand{theorem}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1095
\ meet{\isacharunderscore}connection{\isadigit{2}}{\isacharcolon}\ {\isachardoublequoteopen}{\isacharparenleft}x\ {\isasymsqsubseteq}\ y{\isacharparenright}\ {\isacharequal}\ {\isacharparenleft}y\ {\isasymsqinter}\ x\ {\isacharequal}\ x{\isacharparenright}{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1096
\ \ \ \ \isacommand{using}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1097
\ meet{\isacharunderscore}commute\ meet{\isacharunderscore}connection\ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1098
\ simp\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1099
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1100
\ \ \isacommand{theorem}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1101
\ join{\isacharunderscore}connection{\isadigit{2}}{\isacharcolon}\ {\isachardoublequoteopen}{\isacharparenleft}x\ {\isasymsqsubseteq}\ y{\isacharparenright}\ {\isacharequal}\ {\isacharparenleft}x\ {\isasymsqunion}\ y\ {\isacharequal}\ y{\isacharparenright}{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1102
\ \ \ \ \isacommand{using}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1103
\ join{\isacharunderscore}commute\ join{\isacharunderscore}connection\ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1104
\ simp%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1105
\begin{isamarkuptext}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1106
Naming according to Jacobson I, p.\ 459.%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1107
\end{isamarkuptext}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1108
\isamarkuptrue%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1109
\ \ \isacommand{lemmas}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1110
\ L{\isadigit{1}}\ {\isacharequal}\ join{\isacharunderscore}commute\ meet{\isacharunderscore}commute\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1111
\ \ \isacommand{lemmas}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1112
\ L{\isadigit{2}}\ {\isacharequal}\ join{\isacharunderscore}assoc\ meet{\isacharunderscore}assoc\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1113
\ \ \isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1114
\ \ \isacommand{lemmas}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1115
\ L{\isadigit{4}}\ {\isacharequal}\ join{\isacharunderscore}meet{\isacharunderscore}absorb\ meet{\isacharunderscore}join{\isacharunderscore}absorb%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1116
\endisataginvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1117
{\isafoldinvisible}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1118
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1119
\isadeliminvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1120
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1121
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1122
\endisadeliminvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1123
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1124
\ \ \isacommand{end}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1125
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1126
\begin{isamarkuptext}%
32983
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
  1127
Locales for total orders and distributive lattices follow to
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
  1128
  establish a sufficiently rich landscape of locales for
32981
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1129
  further examples in this tutorial.  Each comes with an example
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1130
  theorem.%
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1131
\end{isamarkuptext}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1132
\isamarkuptrue%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1133
\ \ \isacommand{locale}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1134
\ total{\isacharunderscore}order\ {\isacharequal}\ partial{\isacharunderscore}order\ {\isacharplus}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1135
\ \ \ \ \isakeyword{assumes}\ total{\isacharcolon}\ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ y\ {\isasymor}\ y\ {\isasymsqsubseteq}\ x{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1136
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1137
\ \ \isacommand{lemma}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1138
\ {\isacharparenleft}\isakeyword{in}\ total{\isacharunderscore}order{\isacharparenright}\ less{\isacharunderscore}total{\isacharcolon}\ {\isachardoublequoteopen}x\ {\isasymsqsubset}\ y\ {\isasymor}\ x\ {\isacharequal}\ y\ {\isasymor}\ y\ {\isasymsqsubset}\ x{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1139
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1140
\isadelimproof
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1141
\ \ \ \ %
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1142
\endisadelimproof
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1143
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1144
\isatagproof
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1145
\isacommand{using}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1146
\ total\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1147
\ \ \ \ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1148
\ {\isacharparenleft}unfold\ less{\isacharunderscore}def{\isacharparenright}\ blast%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1149
\endisatagproof
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1150
{\isafoldproof}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1151
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1152
\isadelimproof
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1153
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1154
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1155
\endisadelimproof
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1156
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1157
\ \ \isacommand{locale}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1158
\ distrib{\isacharunderscore}lattice\ {\isacharequal}\ lattice\ {\isacharplus}\isanewline
30580
cc5a55d7a5be Updated chapters 1-5 to locale reimplementation.
ballarin
parents: 30393
diff changeset
  1159
\ \ \ \ \isakeyword{assumes}\ meet{\isacharunderscore}distr{\isacharcolon}\ {\isachardoublequoteopen}x\ {\isasymsqinter}\ {\isacharparenleft}y\ {\isasymsqunion}\ z{\isacharparenright}\ {\isacharequal}\ x\ {\isasymsqinter}\ y\ {\isasymsqunion}\ x\ {\isasymsqinter}\ z{\isachardoublequoteclose}\isanewline
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1160
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1161
\ \ \isacommand{lemma}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1162
\ {\isacharparenleft}\isakeyword{in}\ distrib{\isacharunderscore}lattice{\isacharparenright}\ join{\isacharunderscore}distr{\isacharcolon}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1163
\ \ \ \ {\isachardoublequoteopen}x\ {\isasymsqunion}\ {\isacharparenleft}y\ {\isasymsqinter}\ z{\isacharparenright}\ {\isacharequal}\ {\isacharparenleft}x\ {\isasymsqunion}\ y{\isacharparenright}\ {\isasymsqinter}\ {\isacharparenleft}x\ {\isasymsqunion}\ z{\isacharparenright}{\isachardoublequoteclose}\ \ \isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1164
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1165
\isadelimproof
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1166
\ \ \ \ %
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1167
\endisadelimproof
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1168
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1169
\isatagproof
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1170
\isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1171
\ {\isacharminus}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1172
\ \ \ \ \isacommand{have}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1173
\ {\isachardoublequoteopen}x\ {\isasymsqunion}\ {\isacharparenleft}y\ {\isasymsqinter}\ z{\isacharparenright}\ {\isacharequal}\ {\isacharparenleft}x\ {\isasymsqunion}\ {\isacharparenleft}x\ {\isasymsqinter}\ z{\isacharparenright}{\isacharparenright}\ {\isasymsqunion}\ {\isacharparenleft}y\ {\isasymsqinter}\ z{\isacharparenright}{\isachardoublequoteclose}\ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1174
\ {\isacharparenleft}simp\ add{\isacharcolon}\ L{\isadigit{4}}{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1175
\ \ \ \ \isacommand{also}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1176
\ \isacommand{have}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1177
\ {\isachardoublequoteopen}{\isachardot}{\isachardot}{\isachardot}\ {\isacharequal}\ x\ {\isasymsqunion}\ {\isacharparenleft}{\isacharparenleft}x\ {\isasymsqinter}\ z{\isacharparenright}\ {\isasymsqunion}\ {\isacharparenleft}y\ {\isasymsqinter}\ z{\isacharparenright}{\isacharparenright}{\isachardoublequoteclose}\ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1178
\ {\isacharparenleft}simp\ add{\isacharcolon}\ L{\isadigit{2}}{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1179
\ \ \ \ \isacommand{also}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1180
\ \isacommand{have}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1181
\ {\isachardoublequoteopen}{\isachardot}{\isachardot}{\isachardot}\ {\isacharequal}\ x\ {\isasymsqunion}\ {\isacharparenleft}{\isacharparenleft}x\ {\isasymsqunion}\ y{\isacharparenright}\ {\isasymsqinter}\ z{\isacharparenright}{\isachardoublequoteclose}\ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1182
\ {\isacharparenleft}simp\ add{\isacharcolon}\ L{\isadigit{1}}\ meet{\isacharunderscore}distr{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1183
\ \ \ \ \isacommand{also}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1184
\ \isacommand{have}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1185
\ {\isachardoublequoteopen}{\isachardot}{\isachardot}{\isachardot}\ {\isacharequal}\ {\isacharparenleft}{\isacharparenleft}x\ {\isasymsqunion}\ y{\isacharparenright}\ {\isasymsqinter}\ x{\isacharparenright}\ {\isasymsqunion}\ {\isacharparenleft}{\isacharparenleft}x\ {\isasymsqunion}\ y{\isacharparenright}\ {\isasymsqinter}\ z{\isacharparenright}{\isachardoublequoteclose}\ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1186
\ {\isacharparenleft}simp\ add{\isacharcolon}\ L{\isadigit{1}}\ L{\isadigit{4}}{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1187
\ \ \ \ \isacommand{also}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1188
\ \isacommand{have}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1189
\ {\isachardoublequoteopen}{\isachardot}{\isachardot}{\isachardot}\ {\isacharequal}\ {\isacharparenleft}x\ {\isasymsqunion}\ y{\isacharparenright}\ {\isasymsqinter}\ {\isacharparenleft}x\ {\isasymsqunion}\ z{\isacharparenright}{\isachardoublequoteclose}\ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1190
\ {\isacharparenleft}simp\ add{\isacharcolon}\ meet{\isacharunderscore}distr{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1191
\ \ \ \ \isacommand{finally}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1192
\ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1193
\ {\isacharquery}thesis\ \isacommand{{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1194
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1195
\ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1196
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1197
\endisatagproof
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1198
{\isafoldproof}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1199
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1200
\isadelimproof
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1201
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1202
\endisadelimproof
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1203
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1204
\begin{isamarkuptext}%
32983
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
  1205
The locale hierarchy obtained through these declarations is shown in
32981
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1206
  Figure~\ref{fig:lattices}(a).
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1207
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1208
\begin{figure}
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1209
\hrule \vspace{2ex}
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1210
\begin{center}
32983
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
  1211
\subfigure[Declared hierarchy]{
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1212
\begin{tikzpicture}
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1213
  \node (po) at (0,0) {\isa{partial{\isacharunderscore}order}};
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1214
  \node (lat) at (-1.5,-1) {\isa{lattice}};
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1215
  \node (dlat) at (-1.5,-2) {\isa{distrib{\isacharunderscore}lattice}};
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1216
  \node (to) at (1.5,-1) {\isa{total{\isacharunderscore}order}};
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1217
  \draw (po) -- (lat);
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1218
  \draw (lat) -- (dlat);
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1219
  \draw (po) -- (to);
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1220
%  \draw[->, dashed] (lat) -- (to);
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1221
\end{tikzpicture}
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1222
} \\
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1223
\subfigure[Total orders are lattices]{
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1224
\begin{tikzpicture}
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1225
  \node (po) at (0,0) {\isa{partial{\isacharunderscore}order}};
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1226
  \node (lat) at (0,-1) {\isa{lattice}};
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1227
  \node (dlat) at (-1.5,-2) {\isa{distrib{\isacharunderscore}lattice}};
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1228
  \node (to) at (1.5,-2) {\isa{total{\isacharunderscore}order}};
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1229
  \draw (po) -- (lat);
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1230
  \draw (lat) -- (dlat);
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1231
  \draw (lat) -- (to);
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1232
%  \draw[->, dashed] (dlat) -- (to);
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1233
\end{tikzpicture}
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1234
} \quad
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1235
\subfigure[Total orders are distributive lattices]{
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1236
\begin{tikzpicture}
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1237
  \node (po) at (0,0) {\isa{partial{\isacharunderscore}order}};
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1238
  \node (lat) at (0,-1) {\isa{lattice}};
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1239
  \node (dlat) at (0,-2) {\isa{distrib{\isacharunderscore}lattice}};
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1240
  \node (to) at (0,-3) {\isa{total{\isacharunderscore}order}};
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1241
  \draw (po) -- (lat);
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1242
  \draw (lat) -- (dlat);
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1243
  \draw (dlat) -- (to);
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1244
\end{tikzpicture}
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1245
}
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1246
\end{center}
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1247
\hrule
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1248
\caption{Hierarchy of Lattice Locales.}
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1249
\label{fig:lattices}
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1250
\end{figure}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1251
\end{isamarkuptext}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1252
\isamarkuptrue%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1253
%
30580
cc5a55d7a5be Updated chapters 1-5 to locale reimplementation.
ballarin
parents: 30393
diff changeset
  1254
\isamarkupsection{Changing the Locale Hierarchy
cc5a55d7a5be Updated chapters 1-5 to locale reimplementation.
ballarin
parents: 30393
diff changeset
  1255
  \label{sec:changing-the-hierarchy}%
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1256
}
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1257
\isamarkuptrue%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1258
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1259
\begin{isamarkuptext}%
32981
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1260
Locales enable to prove theorems abstractly, relative to
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1261
  sets of assumptions.  These theorems can then be used in other
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1262
  contexts where the assumptions themselves, or
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1263
  instances of the assumptions, are theorems.  This form of theorem
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1264
  reuse is called \emph{interpretation}.  Locales generalise
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1265
  interpretation from theorems to conclusions, enabling the reuse of
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1266
  definitions and other constructs that are not part of the
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1267
  specifications of the locales.
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1268
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1269
  The first from of interpretation we will consider in this tutorial
32983
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
  1270
  is provided by the \isakeyword{sublocale} command.  It enables to
32981
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1271
  modify the import hierarchy to reflect the \emph{logical} relation
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1272
  between locales.
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1273
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1274
  Consider the locale hierarchy from Figure~\ref{fig:lattices}(a).
32983
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
  1275
  Total orders are lattices, although this is not reflected here, and
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
  1276
  definitions, theorems and other conclusions
32981
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1277
  from \isa{lattice} are not available in \isa{total{\isacharunderscore}order}.  To
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1278
  obtain the situation in Figure~\ref{fig:lattices}(b), it is
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1279
  sufficient to add the conclusions of the latter locale to the former.
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1280
  The \isakeyword{sublocale} command does exactly this.
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1281
  The declaration \isakeyword{sublocale} $l_1
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1282
  \subseteq l_2$ causes locale $l_2$ to be \emph{interpreted} in the
32983
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
  1283
  context of $l_1$.  This means that all conclusions of $l_2$ are made
32981
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1284
  available in $l_1$.
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1285
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1286
  Of course, the change of hierarchy must be supported by a theorem
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1287
  that reflects, in our example, that total orders are indeed
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1288
  lattices.  Therefore the \isakeyword{sublocale} command generates a
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1289
  goal, which must be discharged by the user.  This is illustrated in
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1290
  the following paragraphs.  First the sublocale relation is stated.%
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1291
\end{isamarkuptext}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1292
\isamarkuptrue%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1293
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1294
\isadelimvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1295
\ \ %
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1296
\endisadelimvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1297
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1298
\isatagvisible
29566
937baa077df2 Fixed tutorial to compile with new locales; grammar of new locale commands.
ballarin
parents: 27375
diff changeset
  1299
\isacommand{sublocale}\isamarkupfalse%
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1300
\ total{\isacharunderscore}order\ {\isasymsubseteq}\ lattice%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1301
\begin{isamarkuptxt}%
32981
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1302
\normalsize
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1303
  This enters the context of locale \isa{total{\isacharunderscore}order}, in
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1304
  which the goal \begin{isabelle}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1305
\ {\isadigit{1}}{\isachardot}\ lattice\ op\ {\isasymsqsubseteq}%
32981
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1306
\end{isabelle} must be shown.
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1307
  Now the
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1308
  locale predicate needs to be unfolded --- for example, using its
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1309
  definition or by introduction rules
32983
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
  1310
  provided by the locale package.  For automation, the locale package
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
  1311
  provides the methods \isa{intro{\isacharunderscore}locales} and \isa{unfold{\isacharunderscore}locales}.  They are aware of the
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1312
  current context and dependencies between locales and automatically
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1313
  discharge goals implied by these.  While \isa{unfold{\isacharunderscore}locales}
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1314
  always unfolds locale predicates to assumptions, \isa{intro{\isacharunderscore}locales} only unfolds definitions along the locale
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1315
  hierarchy, leaving a goal consisting of predicates defined by the
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1316
  locale package.  Occasionally the latter is of advantage since the goal
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1317
  is smaller.
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1318
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1319
  For the current goal, we would like to get hold of
32981
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1320
  the assumptions of \isa{lattice}, which need to be shown, hence
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1321
  \isa{unfold{\isacharunderscore}locales} is appropriate.%
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1322
\end{isamarkuptxt}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1323
\isamarkuptrue%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1324
\ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1325
\ unfold{\isacharunderscore}locales%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1326
\begin{isamarkuptxt}%
32981
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1327
\normalsize
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1328
  Since the fact that both lattices and total orders are partial
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1329
  orders is already reflected in the locale hierarchy, the assumptions
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1330
  of \isa{partial{\isacharunderscore}order} are discharged automatically, and only the
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1331
  assumptions introduced in \isa{lattice} remain as subgoals
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1332
  \begin{isabelle}%
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1333
\ {\isadigit{1}}{\isachardot}\ {\isasymAnd}x\ y{\isachardot}\ {\isasymexists}inf{\isachardot}\ is{\isacharunderscore}inf\ x\ y\ inf\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1334
\ {\isadigit{2}}{\isachardot}\ {\isasymAnd}x\ y{\isachardot}\ {\isasymexists}sup{\isachardot}\ is{\isacharunderscore}sup\ x\ y\ sup%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1335
\end{isabelle}
32981
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1336
  The proof for the first subgoal is obtained by constructing an
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1337
  infimum, whose existence is implied by totality.%
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1338
\end{isamarkuptxt}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1339
\isamarkuptrue%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1340
\ \ \ \ \isacommand{fix}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1341
\ x\ y\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1342
\ \ \ \ \isacommand{from}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1343
\ total\ \isacommand{have}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1344
\ {\isachardoublequoteopen}is{\isacharunderscore}inf\ x\ y\ {\isacharparenleft}if\ x\ {\isasymsqsubseteq}\ y\ then\ x\ else\ y{\isacharparenright}{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1345
\ \ \ \ \ \ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1346
\ {\isacharparenleft}auto\ simp{\isacharcolon}\ is{\isacharunderscore}inf{\isacharunderscore}def{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1347
\ \ \ \ \isacommand{then}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1348
\ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1349
\ {\isachardoublequoteopen}{\isasymexists}inf{\isachardot}\ is{\isacharunderscore}inf\ x\ y\ inf{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1350
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1351
\begin{isamarkuptxt}%
32981
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1352
\normalsize
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1353
   The proof for the second subgoal is analogous and not
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1354
  reproduced here.%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1355
\end{isamarkuptxt}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1356
\isamarkuptrue%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1357
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1358
\endisatagvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1359
{\isafoldvisible}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1360
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1361
\isadelimvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1362
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1363
\endisadelimvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1364
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1365
\isadeliminvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1366
\ \ %
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1367
\endisadeliminvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1368
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1369
\isataginvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1370
\isacommand{next}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1371
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1372
\ \ \ \ \isacommand{fix}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1373
\ x\ y\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1374
\ \ \ \ \isacommand{from}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1375
\ total\ \isacommand{have}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1376
\ {\isachardoublequoteopen}is{\isacharunderscore}sup\ x\ y\ {\isacharparenleft}if\ x\ {\isasymsqsubseteq}\ y\ then\ y\ else\ x{\isacharparenright}{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1377
\ \ \ \ \ \ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1378
\ {\isacharparenleft}auto\ simp{\isacharcolon}\ is{\isacharunderscore}sup{\isacharunderscore}def{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1379
\ \ \ \ \isacommand{then}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1380
\ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1381
\ {\isachardoublequoteopen}{\isasymexists}sup{\isachardot}\ is{\isacharunderscore}sup\ x\ y\ sup{\isachardoublequoteclose}\ \isacommand{{\isachardot}{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1382
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1383
\endisataginvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1384
{\isafoldinvisible}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1385
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1386
\isadeliminvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1387
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1388
\endisadeliminvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1389
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1390
\isadelimvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1391
\ %
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1392
\endisadelimvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1393
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1394
\isatagvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1395
\isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1396
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1397
\endisatagvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1398
{\isafoldvisible}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1399
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1400
\isadelimvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1401
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1402
\endisadelimvisible
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1403
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1404
\begin{isamarkuptext}%
32983
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
  1405
Similarly, we may establish that total orders are distributive
32981
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1406
  lattices with a second \isakeyword{sublocale} statement.%
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1407
\end{isamarkuptext}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1408
\isamarkuptrue%
29566
937baa077df2 Fixed tutorial to compile with new locales; grammar of new locale commands.
ballarin
parents: 27375
diff changeset
  1409
\ \ \isacommand{sublocale}\isamarkupfalse%
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1410
\ total{\isacharunderscore}order\ {\isasymsubseteq}\ distrib{\isacharunderscore}lattice\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1411
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1412
\isadelimproof
32983
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
  1413
\ \ \ \ %
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1414
\endisadelimproof
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1415
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1416
\isatagproof
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1417
\isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1418
\ unfold{\isacharunderscore}locales\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1419
\ \ \ \ \isacommand{fix}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1420
\ x\ y\ z\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1421
\ \ \ \ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1422
\ {\isachardoublequoteopen}x\ {\isasymsqinter}\ {\isacharparenleft}y\ {\isasymsqunion}\ z{\isacharparenright}\ {\isacharequal}\ x\ {\isasymsqinter}\ y\ {\isasymsqunion}\ x\ {\isasymsqinter}\ z{\isachardoublequoteclose}\ {\isacharparenleft}\isakeyword{is}\ {\isachardoublequoteopen}{\isacharquery}l\ {\isacharequal}\ {\isacharquery}r{\isachardoublequoteclose}{\isacharparenright}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1423
\begin{isamarkuptxt}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1424
Jacobson I, p.\ 462%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1425
\end{isamarkuptxt}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1426
\isamarkuptrue%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1427
\ \ \ \ \isacommand{proof}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1428
\ {\isacharminus}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1429
\ \ \ \ \ \ \isacommand{{\isacharbraceleft}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1430
\ \isacommand{assume}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1431
\ c{\isacharcolon}\ {\isachardoublequoteopen}y\ {\isasymsqsubseteq}\ x{\isachardoublequoteclose}\ {\isachardoublequoteopen}z\ {\isasymsqsubseteq}\ x{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1432
\ \ \ \ \ \ \ \ \isacommand{from}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1433
\ c\ \isacommand{have}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1434
\ {\isachardoublequoteopen}{\isacharquery}l\ {\isacharequal}\ y\ {\isasymsqunion}\ z{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1435
\ \ \ \ \ \ \ \ \ \ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1436
\ {\isacharparenleft}metis\ c\ join{\isacharunderscore}connection{\isadigit{2}}\ join{\isacharunderscore}related{\isadigit{2}}\ meet{\isacharunderscore}related{\isadigit{2}}\ total{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1437
\ \ \ \ \ \ \ \ \isacommand{also}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1438
\ \isacommand{from}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1439
\ c\ \isacommand{have}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1440
\ {\isachardoublequoteopen}{\isachardot}{\isachardot}{\isachardot}\ {\isacharequal}\ {\isacharquery}r{\isachardoublequoteclose}\ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1441
\ {\isacharparenleft}metis\ meet{\isacharunderscore}related{\isadigit{2}}{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1442
\ \ \ \ \ \ \ \ \isacommand{finally}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1443
\ \isacommand{have}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1444
\ {\isachardoublequoteopen}{\isacharquery}l\ {\isacharequal}\ {\isacharquery}r{\isachardoublequoteclose}\ \isacommand{{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1445
\ \isacommand{{\isacharbraceright}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1446
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1447
\ \ \ \ \ \ \isacommand{moreover}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1448
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1449
\ \ \ \ \ \ \isacommand{{\isacharbraceleft}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1450
\ \isacommand{assume}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1451
\ c{\isacharcolon}\ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ y\ {\isasymor}\ x\ {\isasymsqsubseteq}\ z{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1452
\ \ \ \ \ \ \ \ \isacommand{from}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1453
\ c\ \isacommand{have}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1454
\ {\isachardoublequoteopen}{\isacharquery}l\ {\isacharequal}\ x{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1455
\ \ \ \ \ \ \ \ \ \ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1456
\ {\isacharparenleft}metis\ join{\isacharunderscore}connection{\isadigit{2}}\ join{\isacharunderscore}related{\isadigit{2}}\ meet{\isacharunderscore}connection\ total\ trans{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1457
\ \ \ \ \ \ \ \ \isacommand{also}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1458
\ \isacommand{from}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1459
\ c\ \isacommand{have}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1460
\ {\isachardoublequoteopen}{\isachardot}{\isachardot}{\isachardot}\ {\isacharequal}\ {\isacharquery}r{\isachardoublequoteclose}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1461
\ \ \ \ \ \ \ \ \ \ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1462
\ {\isacharparenleft}metis\ join{\isacharunderscore}commute\ join{\isacharunderscore}related{\isadigit{2}}\ meet{\isacharunderscore}connection\ meet{\isacharunderscore}related{\isadigit{2}}\ total{\isacharparenright}\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1463
\ \ \ \ \ \ \ \ \isacommand{finally}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1464
\ \isacommand{have}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1465
\ {\isachardoublequoteopen}{\isacharquery}l\ {\isacharequal}\ {\isacharquery}r{\isachardoublequoteclose}\ \isacommand{{\isachardot}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1466
\ \isacommand{{\isacharbraceright}}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1467
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1468
\ \ \ \ \ \ \isacommand{moreover}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1469
\ \isacommand{note}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1470
\ total\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1471
\ \ \ \ \ \ \isacommand{ultimately}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1472
\ \isacommand{show}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1473
\ {\isacharquery}thesis\ \isacommand{by}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1474
\ blast\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1475
\ \ \ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1476
\isanewline
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1477
\ \ \isacommand{qed}\isamarkupfalse%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1478
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1479
\endisatagproof
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1480
{\isafoldproof}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1481
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1482
\isadelimproof
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1483
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1484
\endisadelimproof
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1485
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1486
\begin{isamarkuptext}%
32981
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1487
The locale hierarchy is now as shown in
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1488
  Figure~\ref{fig:lattices}(c).%
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1489
\end{isamarkuptext}%
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1490
\isamarkuptrue%
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1491
%
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1492
\begin{isamarkuptext}%
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1493
Locale interpretation is \emph{dynamic}.  The statement
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1494
  \isakeyword{sublocale} $l_1 \subseteq l_2$ will not just add the
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1495
  current conclusions of $l_2$ to $l_1$.  Rather the dependency is
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1496
  stored, and conclusions that will be
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1497
  added to $l_2$ in future are automatically propagated to $l_1$.
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1498
  The sublocale relation is transitive --- that is, propagation takes
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1499
  effect along chains of sublocales.  Even cycles in the sublocale relation are
0114e04a0d64 Save current state of locales tutorial.
ballarin
parents: 30826
diff changeset
  1500
  supported, as long as these cycles do not lead to infinite chains.
32983
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
  1501
  Details are discussed in the technical report \cite{Ballarin2006a}.
a6914429005b Finished revisions of locales tutorial.
ballarin
parents: 32981
diff changeset
  1502
  See also Section~\ref{sec:infinite-chains} of this tutorial.%
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1503
\end{isamarkuptext}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1504
\isamarkuptrue%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1505
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1506
\isadelimtheory
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1507
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1508
\endisadelimtheory
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1509
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1510
\isatagtheory
27080
0ee385433247 updated generated file;
wenzelm
parents: 27063
diff changeset
  1511
\isacommand{end}\isamarkupfalse%
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1512
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1513
\endisatagtheory
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1514
{\isafoldtheory}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1515
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1516
\isadelimtheory
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1517
%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1518
\endisadelimtheory
27080
0ee385433247 updated generated file;
wenzelm
parents: 27063
diff changeset
  1519
\isanewline
27063
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1520
\end{isabellebody}%
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1521
%%% Local Variables:
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1522
%%% mode: latex
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1523
%%% TeX-master: "root"
d1d35284542f New version covering interpretation.
ballarin
parents:
diff changeset
  1524
%%% End: