46 \ \ % |
46 \ \ % |
47 \endisadelimvisible |
47 \endisadelimvisible |
48 % |
48 % |
49 \isatagvisible |
49 \isatagvisible |
50 \isacommand{interpretation}\isamarkupfalse% |
50 \isacommand{interpretation}\isamarkupfalse% |
51 \ int{\isacharcolon}\ partial{\isacharunderscore}order\ {\isachardoublequoteopen}op\ {\isasymle}\ {\isacharcolon}{\isacharcolon}\ int\ {\isasymRightarrow}\ int\ {\isasymRightarrow}\ bool{\isachardoublequoteclose}\isanewline |
51 \ int{\isaliteral{3A}{\isacharcolon}}\ partial{\isaliteral{5F}{\isacharunderscore}}order\ {\isaliteral{22}{\isachardoublequoteopen}}op\ {\isaliteral{5C3C6C653E}{\isasymle}}\ {\isaliteral{3A}{\isacharcolon}}{\isaliteral{3A}{\isacharcolon}}\ int\ {\isaliteral{5C3C52696768746172726F773E}{\isasymRightarrow}}\ int\ {\isaliteral{5C3C52696768746172726F773E}{\isasymRightarrow}}\ bool{\isaliteral{22}{\isachardoublequoteclose}}\isanewline |
52 \ \ \ \ \isakeyword{where}\ {\isachardoublequoteopen}partial{\isacharunderscore}order{\isachardot}less\ op\ {\isasymle}\ {\isacharparenleft}x{\isacharcolon}{\isacharcolon}int{\isacharparenright}\ y\ {\isacharequal}\ {\isacharparenleft}x\ {\isacharless}\ y{\isacharparenright}{\isachardoublequoteclose}\isanewline |
52 \ \ \ \ \isakeyword{where}\ {\isaliteral{22}{\isachardoublequoteopen}}partial{\isaliteral{5F}{\isacharunderscore}}order{\isaliteral{2E}{\isachardot}}less\ op\ {\isaliteral{5C3C6C653E}{\isasymle}}\ {\isaliteral{28}{\isacharparenleft}}x{\isaliteral{3A}{\isacharcolon}}{\isaliteral{3A}{\isacharcolon}}int{\isaliteral{29}{\isacharparenright}}\ y\ {\isaliteral{3D}{\isacharequal}}\ {\isaliteral{28}{\isacharparenleft}}x\ {\isaliteral{3C}{\isacharless}}\ y{\isaliteral{29}{\isacharparenright}}{\isaliteral{22}{\isachardoublequoteclose}}\isanewline |
53 \ \ \isacommand{proof}\isamarkupfalse% |
53 \ \ \isacommand{proof}\isamarkupfalse% |
54 \ {\isacharminus}\isanewline |
54 \ {\isaliteral{2D}{\isacharminus}}\isanewline |
55 \ \ \ \ \isacommand{show}\isamarkupfalse% |
55 \ \ \ \ \isacommand{show}\isamarkupfalse% |
56 \ {\isachardoublequoteopen}partial{\isacharunderscore}order\ {\isacharparenleft}op\ {\isasymle}\ {\isacharcolon}{\isacharcolon}\ int\ {\isasymRightarrow}\ int\ {\isasymRightarrow}\ bool{\isacharparenright}{\isachardoublequoteclose}\isanewline |
56 \ {\isaliteral{22}{\isachardoublequoteopen}}partial{\isaliteral{5F}{\isacharunderscore}}order\ {\isaliteral{28}{\isacharparenleft}}op\ {\isaliteral{5C3C6C653E}{\isasymle}}\ {\isaliteral{3A}{\isacharcolon}}{\isaliteral{3A}{\isacharcolon}}\ int\ {\isaliteral{5C3C52696768746172726F773E}{\isasymRightarrow}}\ int\ {\isaliteral{5C3C52696768746172726F773E}{\isasymRightarrow}}\ bool{\isaliteral{29}{\isacharparenright}}{\isaliteral{22}{\isachardoublequoteclose}}\isanewline |
57 \ \ \ \ \ \ \isacommand{by}\isamarkupfalse% |
57 \ \ \ \ \ \ \isacommand{by}\isamarkupfalse% |
58 \ unfold{\isacharunderscore}locales\ auto\isanewline |
58 \ unfold{\isaliteral{5F}{\isacharunderscore}}locales\ auto\isanewline |
59 \ \ \ \ \isacommand{then}\isamarkupfalse% |
59 \ \ \ \ \isacommand{then}\isamarkupfalse% |
60 \ \isacommand{interpret}\isamarkupfalse% |
60 \ \isacommand{interpret}\isamarkupfalse% |
61 \ int{\isacharcolon}\ partial{\isacharunderscore}order\ {\isachardoublequoteopen}op\ {\isasymle}\ {\isacharcolon}{\isacharcolon}\ {\isacharbrackleft}int{\isacharcomma}\ int{\isacharbrackright}\ {\isasymRightarrow}\ bool{\isachardoublequoteclose}\ \isacommand{{\isachardot}}\isamarkupfalse% |
61 \ int{\isaliteral{3A}{\isacharcolon}}\ partial{\isaliteral{5F}{\isacharunderscore}}order\ {\isaliteral{22}{\isachardoublequoteopen}}op\ {\isaliteral{5C3C6C653E}{\isasymle}}\ {\isaliteral{3A}{\isacharcolon}}{\isaliteral{3A}{\isacharcolon}}\ {\isaliteral{5B}{\isacharbrackleft}}int{\isaliteral{2C}{\isacharcomma}}\ int{\isaliteral{5D}{\isacharbrackright}}\ {\isaliteral{5C3C52696768746172726F773E}{\isasymRightarrow}}\ bool{\isaliteral{22}{\isachardoublequoteclose}}\ \isacommand{{\isaliteral{2E}{\isachardot}}}\isamarkupfalse% |
62 \isanewline |
62 \isanewline |
63 \ \ \ \ \isacommand{show}\isamarkupfalse% |
63 \ \ \ \ \isacommand{show}\isamarkupfalse% |
64 \ {\isachardoublequoteopen}partial{\isacharunderscore}order{\isachardot}less\ op\ {\isasymle}\ {\isacharparenleft}x{\isacharcolon}{\isacharcolon}int{\isacharparenright}\ y\ {\isacharequal}\ {\isacharparenleft}x\ {\isacharless}\ y{\isacharparenright}{\isachardoublequoteclose}\isanewline |
64 \ {\isaliteral{22}{\isachardoublequoteopen}}partial{\isaliteral{5F}{\isacharunderscore}}order{\isaliteral{2E}{\isachardot}}less\ op\ {\isaliteral{5C3C6C653E}{\isasymle}}\ {\isaliteral{28}{\isacharparenleft}}x{\isaliteral{3A}{\isacharcolon}}{\isaliteral{3A}{\isacharcolon}}int{\isaliteral{29}{\isacharparenright}}\ y\ {\isaliteral{3D}{\isacharequal}}\ {\isaliteral{28}{\isacharparenleft}}x\ {\isaliteral{3C}{\isacharless}}\ y{\isaliteral{29}{\isacharparenright}}{\isaliteral{22}{\isachardoublequoteclose}}\isanewline |
65 \ \ \ \ \ \ \isacommand{unfolding}\isamarkupfalse% |
65 \ \ \ \ \ \ \isacommand{unfolding}\isamarkupfalse% |
66 \ int{\isachardot}less{\isacharunderscore}def\ \isacommand{by}\isamarkupfalse% |
66 \ int{\isaliteral{2E}{\isachardot}}less{\isaliteral{5F}{\isacharunderscore}}def\ \isacommand{by}\isamarkupfalse% |
67 \ auto\isanewline |
67 \ auto\isanewline |
68 \ \ \isacommand{qed}\isamarkupfalse% |
68 \ \ \isacommand{qed}\isamarkupfalse% |
69 % |
69 % |
70 \endisatagvisible |
70 \endisatagvisible |
71 {\isafoldvisible}% |
71 {\isafoldvisible}% |
105 \ \ % |
105 \ \ % |
106 \endisadelimvisible |
106 \endisadelimvisible |
107 % |
107 % |
108 \isatagvisible |
108 \isatagvisible |
109 \isacommand{interpretation}\isamarkupfalse% |
109 \isacommand{interpretation}\isamarkupfalse% |
110 \ int{\isacharcolon}\ lattice\ {\isachardoublequoteopen}op\ {\isasymle}\ {\isacharcolon}{\isacharcolon}\ int\ {\isasymRightarrow}\ int\ {\isasymRightarrow}\ bool{\isachardoublequoteclose}\isanewline |
110 \ int{\isaliteral{3A}{\isacharcolon}}\ lattice\ {\isaliteral{22}{\isachardoublequoteopen}}op\ {\isaliteral{5C3C6C653E}{\isasymle}}\ {\isaliteral{3A}{\isacharcolon}}{\isaliteral{3A}{\isacharcolon}}\ int\ {\isaliteral{5C3C52696768746172726F773E}{\isasymRightarrow}}\ int\ {\isaliteral{5C3C52696768746172726F773E}{\isasymRightarrow}}\ bool{\isaliteral{22}{\isachardoublequoteclose}}\isanewline |
111 \ \ \ \ \isakeyword{where}\ int{\isacharunderscore}min{\isacharunderscore}eq{\isacharcolon}\ {\isachardoublequoteopen}lattice{\isachardot}meet\ op\ {\isasymle}\ {\isacharparenleft}x{\isacharcolon}{\isacharcolon}int{\isacharparenright}\ y\ {\isacharequal}\ min\ x\ y{\isachardoublequoteclose}\isanewline |
111 \ \ \ \ \isakeyword{where}\ int{\isaliteral{5F}{\isacharunderscore}}min{\isaliteral{5F}{\isacharunderscore}}eq{\isaliteral{3A}{\isacharcolon}}\ {\isaliteral{22}{\isachardoublequoteopen}}lattice{\isaliteral{2E}{\isachardot}}meet\ op\ {\isaliteral{5C3C6C653E}{\isasymle}}\ {\isaliteral{28}{\isacharparenleft}}x{\isaliteral{3A}{\isacharcolon}}{\isaliteral{3A}{\isacharcolon}}int{\isaliteral{29}{\isacharparenright}}\ y\ {\isaliteral{3D}{\isacharequal}}\ min\ x\ y{\isaliteral{22}{\isachardoublequoteclose}}\isanewline |
112 \ \ \ \ \ \ \isakeyword{and}\ int{\isacharunderscore}max{\isacharunderscore}eq{\isacharcolon}\ {\isachardoublequoteopen}lattice{\isachardot}join\ op\ {\isasymle}\ {\isacharparenleft}x{\isacharcolon}{\isacharcolon}int{\isacharparenright}\ y\ {\isacharequal}\ max\ x\ y{\isachardoublequoteclose}\isanewline |
112 \ \ \ \ \ \ \isakeyword{and}\ int{\isaliteral{5F}{\isacharunderscore}}max{\isaliteral{5F}{\isacharunderscore}}eq{\isaliteral{3A}{\isacharcolon}}\ {\isaliteral{22}{\isachardoublequoteopen}}lattice{\isaliteral{2E}{\isachardot}}join\ op\ {\isaliteral{5C3C6C653E}{\isasymle}}\ {\isaliteral{28}{\isacharparenleft}}x{\isaliteral{3A}{\isacharcolon}}{\isaliteral{3A}{\isacharcolon}}int{\isaliteral{29}{\isacharparenright}}\ y\ {\isaliteral{3D}{\isacharequal}}\ max\ x\ y{\isaliteral{22}{\isachardoublequoteclose}}\isanewline |
113 \ \ \isacommand{proof}\isamarkupfalse% |
113 \ \ \isacommand{proof}\isamarkupfalse% |
114 \ {\isacharminus}\isanewline |
114 \ {\isaliteral{2D}{\isacharminus}}\isanewline |
115 \ \ \ \ \isacommand{show}\isamarkupfalse% |
115 \ \ \ \ \isacommand{show}\isamarkupfalse% |
116 \ {\isachardoublequoteopen}lattice\ {\isacharparenleft}op\ {\isasymle}\ {\isacharcolon}{\isacharcolon}\ int\ {\isasymRightarrow}\ int\ {\isasymRightarrow}\ bool{\isacharparenright}{\isachardoublequoteclose}% |
116 \ {\isaliteral{22}{\isachardoublequoteopen}}lattice\ {\isaliteral{28}{\isacharparenleft}}op\ {\isaliteral{5C3C6C653E}{\isasymle}}\ {\isaliteral{3A}{\isacharcolon}}{\isaliteral{3A}{\isacharcolon}}\ int\ {\isaliteral{5C3C52696768746172726F773E}{\isasymRightarrow}}\ int\ {\isaliteral{5C3C52696768746172726F773E}{\isasymRightarrow}}\ bool{\isaliteral{29}{\isacharparenright}}{\isaliteral{22}{\isachardoublequoteclose}}% |
117 \begin{isamarkuptxt}% |
117 \begin{isamarkuptxt}% |
118 \normalsize We have already shown that this is a partial |
118 \normalsize We have already shown that this is a partial |
119 order,% |
119 order,% |
120 \end{isamarkuptxt}% |
120 \end{isamarkuptxt}% |
121 \isamarkuptrue% |
121 \isamarkuptrue% |
122 \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
122 \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
123 \ unfold{\isacharunderscore}locales% |
123 \ unfold{\isaliteral{5F}{\isacharunderscore}}locales% |
124 \begin{isamarkuptxt}% |
124 \begin{isamarkuptxt}% |
125 \normalsize hence only the lattice axioms remain to be |
125 \normalsize hence only the lattice axioms remain to be |
126 shown. |
126 shown. |
127 \begin{isabelle}% |
127 \begin{isabelle}% |
128 \ {\isadigit{1}}{\isachardot}\ {\isasymAnd}x\ y{\isachardot}\ {\isasymexists}inf{\isachardot}\ partial{\isacharunderscore}order{\isachardot}is{\isacharunderscore}inf\ op\ {\isasymle}\ x\ y\ inf\isanewline |
128 \ {\isadigit{1}}{\isaliteral{2E}{\isachardot}}\ {\isaliteral{5C3C416E643E}{\isasymAnd}}x\ y{\isaliteral{2E}{\isachardot}}\ {\isaliteral{5C3C6578697374733E}{\isasymexists}}inf{\isaliteral{2E}{\isachardot}}\ partial{\isaliteral{5F}{\isacharunderscore}}order{\isaliteral{2E}{\isachardot}}is{\isaliteral{5F}{\isacharunderscore}}inf\ op\ {\isaliteral{5C3C6C653E}{\isasymle}}\ x\ y\ inf\isanewline |
129 \ {\isadigit{2}}{\isachardot}\ {\isasymAnd}x\ y{\isachardot}\ {\isasymexists}sup{\isachardot}\ partial{\isacharunderscore}order{\isachardot}is{\isacharunderscore}sup\ op\ {\isasymle}\ x\ y\ sup% |
129 \ {\isadigit{2}}{\isaliteral{2E}{\isachardot}}\ {\isaliteral{5C3C416E643E}{\isasymAnd}}x\ y{\isaliteral{2E}{\isachardot}}\ {\isaliteral{5C3C6578697374733E}{\isasymexists}}sup{\isaliteral{2E}{\isachardot}}\ partial{\isaliteral{5F}{\isacharunderscore}}order{\isaliteral{2E}{\isachardot}}is{\isaliteral{5F}{\isacharunderscore}}sup\ op\ {\isaliteral{5C3C6C653E}{\isasymle}}\ x\ y\ sup% |
130 \end{isabelle} |
130 \end{isabelle} |
131 By \isa{is{\isacharunderscore}inf} and \isa{is{\isacharunderscore}sup},% |
131 By \isa{is{\isaliteral{5F}{\isacharunderscore}}inf} and \isa{is{\isaliteral{5F}{\isacharunderscore}}sup},% |
132 \end{isamarkuptxt}% |
132 \end{isamarkuptxt}% |
133 \isamarkuptrue% |
133 \isamarkuptrue% |
134 \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
134 \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
135 \ {\isacharparenleft}unfold\ int{\isachardot}is{\isacharunderscore}inf{\isacharunderscore}def\ int{\isachardot}is{\isacharunderscore}sup{\isacharunderscore}def{\isacharparenright}% |
135 \ {\isaliteral{28}{\isacharparenleft}}unfold\ int{\isaliteral{2E}{\isachardot}}is{\isaliteral{5F}{\isacharunderscore}}inf{\isaliteral{5F}{\isacharunderscore}}def\ int{\isaliteral{2E}{\isachardot}}is{\isaliteral{5F}{\isacharunderscore}}sup{\isaliteral{5F}{\isacharunderscore}}def{\isaliteral{29}{\isacharparenright}}% |
136 \begin{isamarkuptxt}% |
136 \begin{isamarkuptxt}% |
137 \normalsize the goals are transformed to these |
137 \normalsize the goals are transformed to these |
138 statements: |
138 statements: |
139 \begin{isabelle}% |
139 \begin{isabelle}% |
140 \ {\isadigit{1}}{\isachardot}\ {\isasymAnd}x\ y{\isachardot}\ {\isasymexists}inf{\isasymle}x{\isachardot}\ inf\ {\isasymle}\ y\ {\isasymand}\ {\isacharparenleft}{\isasymforall}z{\isachardot}\ z\ {\isasymle}\ x\ {\isasymand}\ z\ {\isasymle}\ y\ {\isasymlongrightarrow}\ z\ {\isasymle}\ inf{\isacharparenright}\isanewline |
140 \ {\isadigit{1}}{\isaliteral{2E}{\isachardot}}\ {\isaliteral{5C3C416E643E}{\isasymAnd}}x\ y{\isaliteral{2E}{\isachardot}}\ {\isaliteral{5C3C6578697374733E}{\isasymexists}}inf{\isaliteral{5C3C6C653E}{\isasymle}}x{\isaliteral{2E}{\isachardot}}\ inf\ {\isaliteral{5C3C6C653E}{\isasymle}}\ y\ {\isaliteral{5C3C616E643E}{\isasymand}}\ {\isaliteral{28}{\isacharparenleft}}{\isaliteral{5C3C666F72616C6C3E}{\isasymforall}}z{\isaliteral{2E}{\isachardot}}\ z\ {\isaliteral{5C3C6C653E}{\isasymle}}\ x\ {\isaliteral{5C3C616E643E}{\isasymand}}\ z\ {\isaliteral{5C3C6C653E}{\isasymle}}\ y\ {\isaliteral{5C3C6C6F6E6772696768746172726F773E}{\isasymlongrightarrow}}\ z\ {\isaliteral{5C3C6C653E}{\isasymle}}\ inf{\isaliteral{29}{\isacharparenright}}\isanewline |
141 \ {\isadigit{2}}{\isachardot}\ {\isasymAnd}x\ y{\isachardot}\ {\isasymexists}sup{\isasymge}x{\isachardot}\ y\ {\isasymle}\ sup\ {\isasymand}\ {\isacharparenleft}{\isasymforall}z{\isachardot}\ x\ {\isasymle}\ z\ {\isasymand}\ y\ {\isasymle}\ z\ {\isasymlongrightarrow}\ sup\ {\isasymle}\ z{\isacharparenright}% |
141 \ {\isadigit{2}}{\isaliteral{2E}{\isachardot}}\ {\isaliteral{5C3C416E643E}{\isasymAnd}}x\ y{\isaliteral{2E}{\isachardot}}\ {\isaliteral{5C3C6578697374733E}{\isasymexists}}sup{\isaliteral{5C3C67653E}{\isasymge}}x{\isaliteral{2E}{\isachardot}}\ y\ {\isaliteral{5C3C6C653E}{\isasymle}}\ sup\ {\isaliteral{5C3C616E643E}{\isasymand}}\ {\isaliteral{28}{\isacharparenleft}}{\isaliteral{5C3C666F72616C6C3E}{\isasymforall}}z{\isaliteral{2E}{\isachardot}}\ x\ {\isaliteral{5C3C6C653E}{\isasymle}}\ z\ {\isaliteral{5C3C616E643E}{\isasymand}}\ y\ {\isaliteral{5C3C6C653E}{\isasymle}}\ z\ {\isaliteral{5C3C6C6F6E6772696768746172726F773E}{\isasymlongrightarrow}}\ sup\ {\isaliteral{5C3C6C653E}{\isasymle}}\ z{\isaliteral{29}{\isacharparenright}}% |
142 \end{isabelle} |
142 \end{isabelle} |
143 This is Presburger arithmetic, which can be solved by the |
143 This is Presburger arithmetic, which can be solved by the |
144 method \isa{arith}.% |
144 method \isa{arith}.% |
145 \end{isamarkuptxt}% |
145 \end{isamarkuptxt}% |
146 \isamarkuptrue% |
146 \isamarkuptrue% |
147 \ \ \ \ \ \ \isacommand{by}\isamarkupfalse% |
147 \ \ \ \ \ \ \isacommand{by}\isamarkupfalse% |
148 \ arith{\isacharplus}% |
148 \ arith{\isaliteral{2B}{\isacharplus}}% |
149 \begin{isamarkuptxt}% |
149 \begin{isamarkuptxt}% |
150 \normalsize In order to show the equations, we put ourselves |
150 \normalsize In order to show the equations, we put ourselves |
151 in a situation where the lattice theorems can be used in a |
151 in a situation where the lattice theorems can be used in a |
152 convenient way.% |
152 convenient way.% |
153 \end{isamarkuptxt}% |
153 \end{isamarkuptxt}% |
154 \isamarkuptrue% |
154 \isamarkuptrue% |
155 \ \ \ \ \isacommand{then}\isamarkupfalse% |
155 \ \ \ \ \isacommand{then}\isamarkupfalse% |
156 \ \isacommand{interpret}\isamarkupfalse% |
156 \ \isacommand{interpret}\isamarkupfalse% |
157 \ int{\isacharcolon}\ lattice\ {\isachardoublequoteopen}op\ {\isasymle}\ {\isacharcolon}{\isacharcolon}\ int\ {\isasymRightarrow}\ int\ {\isasymRightarrow}\ bool{\isachardoublequoteclose}\ \isacommand{{\isachardot}}\isamarkupfalse% |
157 \ int{\isaliteral{3A}{\isacharcolon}}\ lattice\ {\isaliteral{22}{\isachardoublequoteopen}}op\ {\isaliteral{5C3C6C653E}{\isasymle}}\ {\isaliteral{3A}{\isacharcolon}}{\isaliteral{3A}{\isacharcolon}}\ int\ {\isaliteral{5C3C52696768746172726F773E}{\isasymRightarrow}}\ int\ {\isaliteral{5C3C52696768746172726F773E}{\isasymRightarrow}}\ bool{\isaliteral{22}{\isachardoublequoteclose}}\ \isacommand{{\isaliteral{2E}{\isachardot}}}\isamarkupfalse% |
158 \isanewline |
158 \isanewline |
159 \ \ \ \ \isacommand{show}\isamarkupfalse% |
159 \ \ \ \ \isacommand{show}\isamarkupfalse% |
160 \ {\isachardoublequoteopen}lattice{\isachardot}meet\ op\ {\isasymle}\ {\isacharparenleft}x{\isacharcolon}{\isacharcolon}int{\isacharparenright}\ y\ {\isacharequal}\ min\ x\ y{\isachardoublequoteclose}\isanewline |
160 \ {\isaliteral{22}{\isachardoublequoteopen}}lattice{\isaliteral{2E}{\isachardot}}meet\ op\ {\isaliteral{5C3C6C653E}{\isasymle}}\ {\isaliteral{28}{\isacharparenleft}}x{\isaliteral{3A}{\isacharcolon}}{\isaliteral{3A}{\isacharcolon}}int{\isaliteral{29}{\isacharparenright}}\ y\ {\isaliteral{3D}{\isacharequal}}\ min\ x\ y{\isaliteral{22}{\isachardoublequoteclose}}\isanewline |
161 \ \ \ \ \ \ \isacommand{by}\isamarkupfalse% |
161 \ \ \ \ \ \ \isacommand{by}\isamarkupfalse% |
162 \ {\isacharparenleft}bestsimp\ simp{\isacharcolon}\ int{\isachardot}meet{\isacharunderscore}def\ int{\isachardot}is{\isacharunderscore}inf{\isacharunderscore}def{\isacharparenright}\isanewline |
162 \ {\isaliteral{28}{\isacharparenleft}}bestsimp\ simp{\isaliteral{3A}{\isacharcolon}}\ int{\isaliteral{2E}{\isachardot}}meet{\isaliteral{5F}{\isacharunderscore}}def\ int{\isaliteral{2E}{\isachardot}}is{\isaliteral{5F}{\isacharunderscore}}inf{\isaliteral{5F}{\isacharunderscore}}def{\isaliteral{29}{\isacharparenright}}\isanewline |
163 \ \ \ \ \isacommand{show}\isamarkupfalse% |
163 \ \ \ \ \isacommand{show}\isamarkupfalse% |
164 \ {\isachardoublequoteopen}lattice{\isachardot}join\ op\ {\isasymle}\ {\isacharparenleft}x{\isacharcolon}{\isacharcolon}int{\isacharparenright}\ y\ {\isacharequal}\ max\ x\ y{\isachardoublequoteclose}\isanewline |
164 \ {\isaliteral{22}{\isachardoublequoteopen}}lattice{\isaliteral{2E}{\isachardot}}join\ op\ {\isaliteral{5C3C6C653E}{\isasymle}}\ {\isaliteral{28}{\isacharparenleft}}x{\isaliteral{3A}{\isacharcolon}}{\isaliteral{3A}{\isacharcolon}}int{\isaliteral{29}{\isacharparenright}}\ y\ {\isaliteral{3D}{\isacharequal}}\ max\ x\ y{\isaliteral{22}{\isachardoublequoteclose}}\isanewline |
165 \ \ \ \ \ \ \isacommand{by}\isamarkupfalse% |
165 \ \ \ \ \ \ \isacommand{by}\isamarkupfalse% |
166 \ {\isacharparenleft}bestsimp\ simp{\isacharcolon}\ int{\isachardot}join{\isacharunderscore}def\ int{\isachardot}is{\isacharunderscore}sup{\isacharunderscore}def{\isacharparenright}\isanewline |
166 \ {\isaliteral{28}{\isacharparenleft}}bestsimp\ simp{\isaliteral{3A}{\isacharcolon}}\ int{\isaliteral{2E}{\isachardot}}join{\isaliteral{5F}{\isacharunderscore}}def\ int{\isaliteral{2E}{\isachardot}}is{\isaliteral{5F}{\isacharunderscore}}sup{\isaliteral{5F}{\isacharunderscore}}def{\isaliteral{29}{\isacharparenright}}\isanewline |
167 \ \ \isacommand{qed}\isamarkupfalse% |
167 \ \ \isacommand{qed}\isamarkupfalse% |
168 % |
168 % |
169 \endisatagvisible |
169 \endisatagvisible |
170 {\isafoldvisible}% |
170 {\isafoldvisible}% |
171 % |
171 % |
172 \isadelimvisible |
172 \isadelimvisible |
173 % |
173 % |
174 \endisadelimvisible |
174 \endisadelimvisible |
175 % |
175 % |
176 \begin{isamarkuptext}% |
176 \begin{isamarkuptext}% |
177 Next follows that \isa{op\ {\isasymle}} is a total order, again for |
177 Next follows that \isa{op\ {\isaliteral{5C3C6C653E}{\isasymle}}} is a total order, again for |
178 the integers.% |
178 the integers.% |
179 \end{isamarkuptext}% |
179 \end{isamarkuptext}% |
180 \isamarkuptrue% |
180 \isamarkuptrue% |
181 % |
181 % |
182 \isadelimvisible |
182 \isadelimvisible |
183 \ \ % |
183 \ \ % |
184 \endisadelimvisible |
184 \endisadelimvisible |
185 % |
185 % |
186 \isatagvisible |
186 \isatagvisible |
187 \isacommand{interpretation}\isamarkupfalse% |
187 \isacommand{interpretation}\isamarkupfalse% |
188 \ int{\isacharcolon}\ total{\isacharunderscore}order\ {\isachardoublequoteopen}op\ {\isasymle}\ {\isacharcolon}{\isacharcolon}\ int\ {\isasymRightarrow}\ int\ {\isasymRightarrow}\ bool{\isachardoublequoteclose}\isanewline |
188 \ int{\isaliteral{3A}{\isacharcolon}}\ total{\isaliteral{5F}{\isacharunderscore}}order\ {\isaliteral{22}{\isachardoublequoteopen}}op\ {\isaliteral{5C3C6C653E}{\isasymle}}\ {\isaliteral{3A}{\isacharcolon}}{\isaliteral{3A}{\isacharcolon}}\ int\ {\isaliteral{5C3C52696768746172726F773E}{\isasymRightarrow}}\ int\ {\isaliteral{5C3C52696768746172726F773E}{\isasymRightarrow}}\ bool{\isaliteral{22}{\isachardoublequoteclose}}\isanewline |
189 \ \ \ \ \isacommand{by}\isamarkupfalse% |
189 \ \ \ \ \isacommand{by}\isamarkupfalse% |
190 \ unfold{\isacharunderscore}locales\ arith% |
190 \ unfold{\isaliteral{5F}{\isacharunderscore}}locales\ arith% |
191 \endisatagvisible |
191 \endisatagvisible |
192 {\isafoldvisible}% |
192 {\isafoldvisible}% |
193 % |
193 % |
194 \isadelimvisible |
194 \isadelimvisible |
195 % |
195 % |
202 \begin{table} |
202 \begin{table} |
203 \hrule |
203 \hrule |
204 \vspace{2ex} |
204 \vspace{2ex} |
205 \begin{center} |
205 \begin{center} |
206 \begin{tabular}{l} |
206 \begin{tabular}{l} |
207 \isa{int{\isachardot}less{\isacharunderscore}def} from locale \isa{partial{\isacharunderscore}order}: \\ |
207 \isa{int{\isaliteral{2E}{\isachardot}}less{\isaliteral{5F}{\isacharunderscore}}def} from locale \isa{partial{\isaliteral{5F}{\isacharunderscore}}order}: \\ |
208 \quad \isa{{\isacharparenleft}{\isacharquery}x\ {\isacharless}\ {\isacharquery}y{\isacharparenright}\ {\isacharequal}\ {\isacharparenleft}{\isacharquery}x\ {\isasymle}\ {\isacharquery}y\ {\isasymand}\ {\isacharquery}x\ {\isasymnoteq}\ {\isacharquery}y{\isacharparenright}} \\ |
208 \quad \isa{{\isaliteral{28}{\isacharparenleft}}{\isaliteral{3F}{\isacharquery}}x\ {\isaliteral{3C}{\isacharless}}\ {\isaliteral{3F}{\isacharquery}}y{\isaliteral{29}{\isacharparenright}}\ {\isaliteral{3D}{\isacharequal}}\ {\isaliteral{28}{\isacharparenleft}}{\isaliteral{3F}{\isacharquery}}x\ {\isaliteral{5C3C6C653E}{\isasymle}}\ {\isaliteral{3F}{\isacharquery}}y\ {\isaliteral{5C3C616E643E}{\isasymand}}\ {\isaliteral{3F}{\isacharquery}}x\ {\isaliteral{5C3C6E6F7465713E}{\isasymnoteq}}\ {\isaliteral{3F}{\isacharquery}}y{\isaliteral{29}{\isacharparenright}}} \\ |
209 \isa{int{\isachardot}meet{\isacharunderscore}left} from locale \isa{lattice}: \\ |
209 \isa{int{\isaliteral{2E}{\isachardot}}meet{\isaliteral{5F}{\isacharunderscore}}left} from locale \isa{lattice}: \\ |
210 \quad \isa{min\ {\isacharquery}x\ {\isacharquery}y\ {\isasymle}\ {\isacharquery}x} \\ |
210 \quad \isa{min\ {\isaliteral{3F}{\isacharquery}}x\ {\isaliteral{3F}{\isacharquery}}y\ {\isaliteral{5C3C6C653E}{\isasymle}}\ {\isaliteral{3F}{\isacharquery}}x} \\ |
211 \isa{int{\isachardot}join{\isacharunderscore}distr} from locale \isa{distrib{\isacharunderscore}lattice}: \\ |
211 \isa{int{\isaliteral{2E}{\isachardot}}join{\isaliteral{5F}{\isacharunderscore}}distr} from locale \isa{distrib{\isaliteral{5F}{\isacharunderscore}}lattice}: \\ |
212 \quad \isa{max\ {\isacharquery}x\ {\isacharparenleft}min\ {\isacharquery}y\ {\isacharquery}z{\isacharparenright}\ {\isacharequal}\ min\ {\isacharparenleft}max\ {\isacharquery}x\ {\isacharquery}y{\isacharparenright}\ {\isacharparenleft}max\ {\isacharquery}x\ {\isacharquery}z{\isacharparenright}} \\ |
212 \quad \isa{max\ {\isaliteral{3F}{\isacharquery}}x\ {\isaliteral{28}{\isacharparenleft}}min\ {\isaliteral{3F}{\isacharquery}}y\ {\isaliteral{3F}{\isacharquery}}z{\isaliteral{29}{\isacharparenright}}\ {\isaliteral{3D}{\isacharequal}}\ min\ {\isaliteral{28}{\isacharparenleft}}max\ {\isaliteral{3F}{\isacharquery}}x\ {\isaliteral{3F}{\isacharquery}}y{\isaliteral{29}{\isacharparenright}}\ {\isaliteral{28}{\isacharparenleft}}max\ {\isaliteral{3F}{\isacharquery}}x\ {\isaliteral{3F}{\isacharquery}}z{\isaliteral{29}{\isacharparenright}}} \\ |
213 \isa{int{\isachardot}less{\isacharunderscore}total} from locale \isa{total{\isacharunderscore}order}: \\ |
213 \isa{int{\isaliteral{2E}{\isachardot}}less{\isaliteral{5F}{\isacharunderscore}}total} from locale \isa{total{\isaliteral{5F}{\isacharunderscore}}order}: \\ |
214 \quad \isa{{\isacharquery}x\ {\isacharless}\ {\isacharquery}y\ {\isasymor}\ {\isacharquery}x\ {\isacharequal}\ {\isacharquery}y\ {\isasymor}\ {\isacharquery}y\ {\isacharless}\ {\isacharquery}x} |
214 \quad \isa{{\isaliteral{3F}{\isacharquery}}x\ {\isaliteral{3C}{\isacharless}}\ {\isaliteral{3F}{\isacharquery}}y\ {\isaliteral{5C3C6F723E}{\isasymor}}\ {\isaliteral{3F}{\isacharquery}}x\ {\isaliteral{3D}{\isacharequal}}\ {\isaliteral{3F}{\isacharquery}}y\ {\isaliteral{5C3C6F723E}{\isasymor}}\ {\isaliteral{3F}{\isacharquery}}y\ {\isaliteral{3C}{\isacharless}}\ {\isaliteral{3F}{\isacharquery}}x} |
215 \end{tabular} |
215 \end{tabular} |
216 \end{center} |
216 \end{center} |
217 \hrule |
217 \hrule |
218 \caption{Interpreted theorems for~\isa{{\isasymle}} on the integers.} |
218 \caption{Interpreted theorems for~\isa{{\isaliteral{5C3C6C653E}{\isasymle}}} on the integers.} |
219 \label{tab:int-lattice} |
219 \label{tab:int-lattice} |
220 \end{table} |
220 \end{table} |
221 |
221 |
222 \begin{itemize} |
222 \begin{itemize} |
223 \item |
223 \item |
224 Locale \isa{distrib{\isacharunderscore}lattice} was also interpreted. Since the |
224 Locale \isa{distrib{\isaliteral{5F}{\isacharunderscore}}lattice} was also interpreted. Since the |
225 locale hierarchy reflects that total orders are distributive |
225 locale hierarchy reflects that total orders are distributive |
226 lattices, the interpretation of the latter was inserted |
226 lattices, the interpretation of the latter was inserted |
227 automatically with the interpretation of the former. In general, |
227 automatically with the interpretation of the former. In general, |
228 interpretation traverses the locale hierarchy upwards and interprets |
228 interpretation traverses the locale hierarchy upwards and interprets |
229 all encountered locales, regardless whether imported or proved via |
229 all encountered locales, regardless whether imported or proved via |
230 the \isakeyword{sublocale} command. Existing interpretations are |
230 the \isakeyword{sublocale} command. Existing interpretations are |
231 skipped avoiding duplicate work. |
231 skipped avoiding duplicate work. |
232 \item |
232 \item |
233 The predicate \isa{op\ {\isacharless}} appears in theorem \isa{int{\isachardot}less{\isacharunderscore}total} |
233 The predicate \isa{op\ {\isaliteral{3C}{\isacharless}}} appears in theorem \isa{int{\isaliteral{2E}{\isachardot}}less{\isaliteral{5F}{\isacharunderscore}}total} |
234 although an equation for the replacement of \isa{op\ {\isasymsqsubset}} was only |
234 although an equation for the replacement of \isa{op\ {\isaliteral{5C3C73717375627365743E}{\isasymsqsubset}}} was only |
235 given in the interpretation of \isa{partial{\isacharunderscore}order}. The |
235 given in the interpretation of \isa{partial{\isaliteral{5F}{\isacharunderscore}}order}. The |
236 interpretation equations are pushed downwards the hierarchy for |
236 interpretation equations are pushed downwards the hierarchy for |
237 related interpretations --- that is, for interpretations that share |
237 related interpretations --- that is, for interpretations that share |
238 the instances of parameters they have in common. |
238 the instances of parameters they have in common. |
239 \end{itemize}% |
239 \end{itemize}% |
240 \end{isamarkuptext}% |
240 \end{isamarkuptext}% |
266 \isamarkupsection{Locale Expressions \label{sec:expressions}% |
266 \isamarkupsection{Locale Expressions \label{sec:expressions}% |
267 } |
267 } |
268 \isamarkuptrue% |
268 \isamarkuptrue% |
269 % |
269 % |
270 \begin{isamarkuptext}% |
270 \begin{isamarkuptext}% |
271 A map~\isa{{\isasymphi}} between partial orders~\isa{{\isasymsqsubseteq}} and~\isa{{\isasympreceq}} |
271 A map~\isa{{\isaliteral{5C3C7068693E}{\isasymphi}}} between partial orders~\isa{{\isaliteral{5C3C737173756273657465713E}{\isasymsqsubseteq}}} and~\isa{{\isaliteral{5C3C7072656365713E}{\isasympreceq}}} |
272 is called order preserving if \isa{x\ {\isasymsqsubseteq}\ y} implies \isa{{\isasymphi}\ x\ {\isasympreceq}\ {\isasymphi}\ y}. This situation is more complex than those encountered so |
272 is called order preserving if \isa{x\ {\isaliteral{5C3C737173756273657465713E}{\isasymsqsubseteq}}\ y} implies \isa{{\isaliteral{5C3C7068693E}{\isasymphi}}\ x\ {\isaliteral{5C3C7072656365713E}{\isasympreceq}}\ {\isaliteral{5C3C7068693E}{\isasymphi}}\ y}. This situation is more complex than those encountered so |
273 far: it involves two partial orders, and it is desirable to use the |
273 far: it involves two partial orders, and it is desirable to use the |
274 existing locale for both. |
274 existing locale for both. |
275 |
275 |
276 A locale for order preserving maps requires three parameters: \isa{le}~(\isakeyword{infixl}~\isa{{\isasymsqsubseteq}}) and \isa{le{\isacharprime}}~(\isakeyword{infixl}~\isa{{\isasympreceq}}) for the orders and~\isa{{\isasymphi}} |
276 A locale for order preserving maps requires three parameters: \isa{le}~(\isakeyword{infixl}~\isa{{\isaliteral{5C3C737173756273657465713E}{\isasymsqsubseteq}}}) and \isa{le{\isaliteral{27}{\isacharprime}}}~(\isakeyword{infixl}~\isa{{\isaliteral{5C3C7072656365713E}{\isasympreceq}}}) for the orders and~\isa{{\isaliteral{5C3C7068693E}{\isasymphi}}} |
277 for the map. |
277 for the map. |
278 |
278 |
279 In order to reuse the existing locale for partial orders, which has |
279 In order to reuse the existing locale for partial orders, which has |
280 the single parameter~\isa{le}, it must be imported twice, once |
280 the single parameter~\isa{le}, it must be imported twice, once |
281 mapping its parameter to~\isa{le} from the new locale and once |
281 mapping its parameter to~\isa{le} from the new locale and once |
282 to~\isa{le{\isacharprime}}. This can be achieved with a compound locale |
282 to~\isa{le{\isaliteral{27}{\isacharprime}}}. This can be achieved with a compound locale |
283 expression. |
283 expression. |
284 |
284 |
285 In general, a locale expression is a sequence of \emph{locale instances} |
285 In general, a locale expression is a sequence of \emph{locale instances} |
286 separated by~``$\textbf{+}$'' and followed by a \isakeyword{for} |
286 separated by~``$\textbf{+}$'' and followed by a \isakeyword{for} |
287 clause. |
287 clause. |
317 only occur after the import section, and therefore the parameters |
317 only occur after the import section, and therefore the parameters |
318 referred to in the instances must be declared in the \isakeyword{for} |
318 referred to in the instances must be declared in the \isakeyword{for} |
319 clause. The \isakeyword{for} clause is also where the syntax of these |
319 clause. The \isakeyword{for} clause is also where the syntax of these |
320 parameters is declared. |
320 parameters is declared. |
321 |
321 |
322 Two context elements for the map parameter~\isa{{\isasymphi}} and the |
322 Two context elements for the map parameter~\isa{{\isaliteral{5C3C7068693E}{\isasymphi}}} and the |
323 assumptions that it is order preserving complete the locale |
323 assumptions that it is order preserving complete the locale |
324 declaration.% |
324 declaration.% |
325 \end{isamarkuptext}% |
325 \end{isamarkuptext}% |
326 \isamarkuptrue% |
326 \isamarkuptrue% |
327 \ \ \isacommand{locale}\isamarkupfalse% |
327 \ \ \isacommand{locale}\isamarkupfalse% |
328 \ order{\isacharunderscore}preserving\ {\isacharequal}\isanewline |
328 \ order{\isaliteral{5F}{\isacharunderscore}}preserving\ {\isaliteral{3D}{\isacharequal}}\isanewline |
329 \ \ \ \ le{\isacharcolon}\ partial{\isacharunderscore}order\ le\ {\isacharplus}\ le{\isacharprime}{\isacharcolon}\ partial{\isacharunderscore}order\ le{\isacharprime}\isanewline |
329 \ \ \ \ le{\isaliteral{3A}{\isacharcolon}}\ partial{\isaliteral{5F}{\isacharunderscore}}order\ le\ {\isaliteral{2B}{\isacharplus}}\ le{\isaliteral{27}{\isacharprime}}{\isaliteral{3A}{\isacharcolon}}\ partial{\isaliteral{5F}{\isacharunderscore}}order\ le{\isaliteral{27}{\isacharprime}}\isanewline |
330 \ \ \ \ \ \ \isakeyword{for}\ le\ {\isacharparenleft}\isakeyword{infixl}\ {\isachardoublequoteopen}{\isasymsqsubseteq}{\isachardoublequoteclose}\ {\isadigit{5}}{\isadigit{0}}{\isacharparenright}\ \isakeyword{and}\ le{\isacharprime}\ {\isacharparenleft}\isakeyword{infixl}\ {\isachardoublequoteopen}{\isasympreceq}{\isachardoublequoteclose}\ {\isadigit{5}}{\isadigit{0}}{\isacharparenright}\ {\isacharplus}\isanewline |
330 \ \ \ \ \ \ \isakeyword{for}\ le\ {\isaliteral{28}{\isacharparenleft}}\isakeyword{infixl}\ {\isaliteral{22}{\isachardoublequoteopen}}{\isaliteral{5C3C737173756273657465713E}{\isasymsqsubseteq}}{\isaliteral{22}{\isachardoublequoteclose}}\ {\isadigit{5}}{\isadigit{0}}{\isaliteral{29}{\isacharparenright}}\ \isakeyword{and}\ le{\isaliteral{27}{\isacharprime}}\ {\isaliteral{28}{\isacharparenleft}}\isakeyword{infixl}\ {\isaliteral{22}{\isachardoublequoteopen}}{\isaliteral{5C3C7072656365713E}{\isasympreceq}}{\isaliteral{22}{\isachardoublequoteclose}}\ {\isadigit{5}}{\isadigit{0}}{\isaliteral{29}{\isacharparenright}}\ {\isaliteral{2B}{\isacharplus}}\isanewline |
331 \ \ \ \ \isakeyword{fixes}\ {\isasymphi}\isanewline |
331 \ \ \ \ \isakeyword{fixes}\ {\isaliteral{5C3C7068693E}{\isasymphi}}\isanewline |
332 \ \ \ \ \isakeyword{assumes}\ hom{\isacharunderscore}le{\isacharcolon}\ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ y\ {\isasymLongrightarrow}\ {\isasymphi}\ x\ {\isasympreceq}\ {\isasymphi}\ y{\isachardoublequoteclose}% |
332 \ \ \ \ \isakeyword{assumes}\ hom{\isaliteral{5F}{\isacharunderscore}}le{\isaliteral{3A}{\isacharcolon}}\ {\isaliteral{22}{\isachardoublequoteopen}}x\ {\isaliteral{5C3C737173756273657465713E}{\isasymsqsubseteq}}\ y\ {\isaliteral{5C3C4C6F6E6772696768746172726F773E}{\isasymLongrightarrow}}\ {\isaliteral{5C3C7068693E}{\isasymphi}}\ x\ {\isaliteral{5C3C7072656365713E}{\isasympreceq}}\ {\isaliteral{5C3C7068693E}{\isasymphi}}\ y{\isaliteral{22}{\isachardoublequoteclose}}% |
333 \begin{isamarkuptext}% |
333 \begin{isamarkuptext}% |
334 Here are examples of theorems that are |
334 Here are examples of theorems that are |
335 available in the locale: |
335 available in the locale: |
336 |
336 |
337 \hspace*{1em}\isa{hom{\isacharunderscore}le}: \isa{{\isacharquery}x\ {\isasymsqsubseteq}\ {\isacharquery}y\ {\isasymLongrightarrow}\ {\isasymphi}\ {\isacharquery}x\ {\isasympreceq}\ {\isasymphi}\ {\isacharquery}y} |
337 \hspace*{1em}\isa{hom{\isaliteral{5F}{\isacharunderscore}}le}: \isa{{\isaliteral{3F}{\isacharquery}}x\ {\isaliteral{5C3C737173756273657465713E}{\isasymsqsubseteq}}\ {\isaliteral{3F}{\isacharquery}}y\ {\isaliteral{5C3C4C6F6E6772696768746172726F773E}{\isasymLongrightarrow}}\ {\isaliteral{5C3C7068693E}{\isasymphi}}\ {\isaliteral{3F}{\isacharquery}}x\ {\isaliteral{5C3C7072656365713E}{\isasympreceq}}\ {\isaliteral{5C3C7068693E}{\isasymphi}}\ {\isaliteral{3F}{\isacharquery}}y} |
338 |
338 |
339 \hspace*{1em}\isa{le{\isachardot}less{\isacharunderscore}le{\isacharunderscore}trans}: \isa{{\isasymlbrakk}{\isacharquery}x\ {\isasymsqsubset}\ {\isacharquery}y{\isacharsemicolon}\ {\isacharquery}y\ {\isasymsqsubseteq}\ {\isacharquery}z{\isasymrbrakk}\ {\isasymLongrightarrow}\ {\isacharquery}x\ {\isasymsqsubset}\ {\isacharquery}z} |
339 \hspace*{1em}\isa{le{\isaliteral{2E}{\isachardot}}less{\isaliteral{5F}{\isacharunderscore}}le{\isaliteral{5F}{\isacharunderscore}}trans}: \isa{{\isaliteral{5C3C6C6272616B6B3E}{\isasymlbrakk}}{\isaliteral{3F}{\isacharquery}}x\ {\isaliteral{5C3C73717375627365743E}{\isasymsqsubset}}\ {\isaliteral{3F}{\isacharquery}}y{\isaliteral{3B}{\isacharsemicolon}}\ {\isaliteral{3F}{\isacharquery}}y\ {\isaliteral{5C3C737173756273657465713E}{\isasymsqsubseteq}}\ {\isaliteral{3F}{\isacharquery}}z{\isaliteral{5C3C726272616B6B3E}{\isasymrbrakk}}\ {\isaliteral{5C3C4C6F6E6772696768746172726F773E}{\isasymLongrightarrow}}\ {\isaliteral{3F}{\isacharquery}}x\ {\isaliteral{5C3C73717375627365743E}{\isasymsqsubset}}\ {\isaliteral{3F}{\isacharquery}}z} |
340 |
340 |
341 \hspace*{1em}\isa{le{\isacharprime}{\isachardot}less{\isacharunderscore}le{\isacharunderscore}trans}: |
341 \hspace*{1em}\isa{le{\isaliteral{27}{\isacharprime}}{\isaliteral{2E}{\isachardot}}less{\isaliteral{5F}{\isacharunderscore}}le{\isaliteral{5F}{\isacharunderscore}}trans}: |
342 \begin{isabelle}% |
342 \begin{isabelle}% |
343 \ \ \ \ {\isasymlbrakk}partial{\isacharunderscore}order{\isachardot}less\ op\ {\isasympreceq}\ {\isacharquery}x\ {\isacharquery}y{\isacharsemicolon}\ {\isacharquery}y\ {\isasympreceq}\ {\isacharquery}z{\isasymrbrakk}\isanewline |
343 \ \ \ \ {\isaliteral{5C3C6C6272616B6B3E}{\isasymlbrakk}}partial{\isaliteral{5F}{\isacharunderscore}}order{\isaliteral{2E}{\isachardot}}less\ op\ {\isaliteral{5C3C7072656365713E}{\isasympreceq}}\ {\isaliteral{3F}{\isacharquery}}x\ {\isaliteral{3F}{\isacharquery}}y{\isaliteral{3B}{\isacharsemicolon}}\ {\isaliteral{3F}{\isacharquery}}y\ {\isaliteral{5C3C7072656365713E}{\isasympreceq}}\ {\isaliteral{3F}{\isacharquery}}z{\isaliteral{5C3C726272616B6B3E}{\isasymrbrakk}}\isanewline |
344 \isaindent{\ \ \ \ }{\isasymLongrightarrow}\ partial{\isacharunderscore}order{\isachardot}less\ op\ {\isasympreceq}\ {\isacharquery}x\ {\isacharquery}z% |
344 \isaindent{\ \ \ \ }{\isaliteral{5C3C4C6F6E6772696768746172726F773E}{\isasymLongrightarrow}}\ partial{\isaliteral{5F}{\isacharunderscore}}order{\isaliteral{2E}{\isachardot}}less\ op\ {\isaliteral{5C3C7072656365713E}{\isasympreceq}}\ {\isaliteral{3F}{\isacharquery}}x\ {\isaliteral{3F}{\isacharquery}}z% |
345 \end{isabelle} |
345 \end{isabelle} |
346 While there is infix syntax for the strict operation associated to |
346 While there is infix syntax for the strict operation associated to |
347 \isa{op\ {\isasymsqsubseteq}}, there is none for the strict version of \isa{op\ {\isasympreceq}}. The abbreviation \isa{less} with its infix syntax is only |
347 \isa{op\ {\isaliteral{5C3C737173756273657465713E}{\isasymsqsubseteq}}}, there is none for the strict version of \isa{op\ {\isaliteral{5C3C7072656365713E}{\isasympreceq}}}. The abbreviation \isa{less} with its infix syntax is only |
348 available for the original instance it was declared for. We may |
348 available for the original instance it was declared for. We may |
349 introduce the abbreviation \isa{less{\isacharprime}} with infix syntax~\isa{{\isasymprec}} |
349 introduce the abbreviation \isa{less{\isaliteral{27}{\isacharprime}}} with infix syntax~\isa{{\isaliteral{5C3C707265633E}{\isasymprec}}} |
350 with the following declaration:% |
350 with the following declaration:% |
351 \end{isamarkuptext}% |
351 \end{isamarkuptext}% |
352 \isamarkuptrue% |
352 \isamarkuptrue% |
353 \ \ \isacommand{abbreviation}\isamarkupfalse% |
353 \ \ \isacommand{abbreviation}\isamarkupfalse% |
354 \ {\isacharparenleft}\isakeyword{in}\ order{\isacharunderscore}preserving{\isacharparenright}\isanewline |
354 \ {\isaliteral{28}{\isacharparenleft}}\isakeyword{in}\ order{\isaliteral{5F}{\isacharunderscore}}preserving{\isaliteral{29}{\isacharparenright}}\isanewline |
355 \ \ \ \ less{\isacharprime}\ {\isacharparenleft}\isakeyword{infixl}\ {\isachardoublequoteopen}{\isasymprec}{\isachardoublequoteclose}\ {\isadigit{5}}{\isadigit{0}}{\isacharparenright}\ \isakeyword{where}\ {\isachardoublequoteopen}less{\isacharprime}\ {\isasymequiv}\ partial{\isacharunderscore}order{\isachardot}less\ le{\isacharprime}{\isachardoublequoteclose}% |
355 \ \ \ \ less{\isaliteral{27}{\isacharprime}}\ {\isaliteral{28}{\isacharparenleft}}\isakeyword{infixl}\ {\isaliteral{22}{\isachardoublequoteopen}}{\isaliteral{5C3C707265633E}{\isasymprec}}{\isaliteral{22}{\isachardoublequoteclose}}\ {\isadigit{5}}{\isadigit{0}}{\isaliteral{29}{\isacharparenright}}\ \isakeyword{where}\ {\isaliteral{22}{\isachardoublequoteopen}}less{\isaliteral{27}{\isacharprime}}\ {\isaliteral{5C3C65717569763E}{\isasymequiv}}\ partial{\isaliteral{5F}{\isacharunderscore}}order{\isaliteral{2E}{\isachardot}}less\ le{\isaliteral{27}{\isacharprime}}{\isaliteral{22}{\isachardoublequoteclose}}% |
356 \begin{isamarkuptext}% |
356 \begin{isamarkuptext}% |
357 Now the theorem is displayed nicely as |
357 Now the theorem is displayed nicely as |
358 \isa{le{\isacharprime}{\isachardot}less{\isacharunderscore}le{\isacharunderscore}trans}: |
358 \isa{le{\isaliteral{27}{\isacharprime}}{\isaliteral{2E}{\isachardot}}less{\isaliteral{5F}{\isacharunderscore}}le{\isaliteral{5F}{\isacharunderscore}}trans}: |
359 \begin{isabelle}% |
359 \begin{isabelle}% |
360 \ \ {\isasymlbrakk}{\isacharquery}x\ {\isasymprec}\ {\isacharquery}y{\isacharsemicolon}\ {\isacharquery}y\ {\isasympreceq}\ {\isacharquery}z{\isasymrbrakk}\ {\isasymLongrightarrow}\ {\isacharquery}x\ {\isasymprec}\ {\isacharquery}z% |
360 \ \ {\isaliteral{5C3C6C6272616B6B3E}{\isasymlbrakk}}{\isaliteral{3F}{\isacharquery}}x\ {\isaliteral{5C3C707265633E}{\isasymprec}}\ {\isaliteral{3F}{\isacharquery}}y{\isaliteral{3B}{\isacharsemicolon}}\ {\isaliteral{3F}{\isacharquery}}y\ {\isaliteral{5C3C7072656365713E}{\isasympreceq}}\ {\isaliteral{3F}{\isacharquery}}z{\isaliteral{5C3C726272616B6B3E}{\isasymrbrakk}}\ {\isaliteral{5C3C4C6F6E6772696768746172726F773E}{\isasymLongrightarrow}}\ {\isaliteral{3F}{\isacharquery}}x\ {\isaliteral{5C3C707265633E}{\isasymprec}}\ {\isaliteral{3F}{\isacharquery}}z% |
361 \end{isabelle}% |
361 \end{isabelle}% |
362 \end{isamarkuptext}% |
362 \end{isamarkuptext}% |
363 \isamarkuptrue% |
363 \isamarkuptrue% |
364 % |
364 % |
365 \begin{isamarkuptext}% |
365 \begin{isamarkuptext}% |
416 \end{isamarkuptext}% |
416 \end{isamarkuptext}% |
417 \isamarkuptrue% |
417 \isamarkuptrue% |
418 % |
418 % |
419 \begin{isamarkuptext}% |
419 \begin{isamarkuptext}% |
420 The following locale declarations provide more examples. A |
420 The following locale declarations provide more examples. A |
421 map~\isa{{\isasymphi}} is a lattice homomorphism if it preserves meet and |
421 map~\isa{{\isaliteral{5C3C7068693E}{\isasymphi}}} is a lattice homomorphism if it preserves meet and |
422 join.% |
422 join.% |
423 \end{isamarkuptext}% |
423 \end{isamarkuptext}% |
424 \isamarkuptrue% |
424 \isamarkuptrue% |
425 \ \ \isacommand{locale}\isamarkupfalse% |
425 \ \ \isacommand{locale}\isamarkupfalse% |
426 \ lattice{\isacharunderscore}hom\ {\isacharequal}\isanewline |
426 \ lattice{\isaliteral{5F}{\isacharunderscore}}hom\ {\isaliteral{3D}{\isacharequal}}\isanewline |
427 \ \ \ \ le{\isacharcolon}\ lattice\ {\isacharplus}\ le{\isacharprime}{\isacharcolon}\ lattice\ le{\isacharprime}\ \isakeyword{for}\ le{\isacharprime}\ {\isacharparenleft}\isakeyword{infixl}\ {\isachardoublequoteopen}{\isasympreceq}{\isachardoublequoteclose}\ {\isadigit{5}}{\isadigit{0}}{\isacharparenright}\ {\isacharplus}\isanewline |
427 \ \ \ \ le{\isaliteral{3A}{\isacharcolon}}\ lattice\ {\isaliteral{2B}{\isacharplus}}\ le{\isaliteral{27}{\isacharprime}}{\isaliteral{3A}{\isacharcolon}}\ lattice\ le{\isaliteral{27}{\isacharprime}}\ \isakeyword{for}\ le{\isaliteral{27}{\isacharprime}}\ {\isaliteral{28}{\isacharparenleft}}\isakeyword{infixl}\ {\isaliteral{22}{\isachardoublequoteopen}}{\isaliteral{5C3C7072656365713E}{\isasympreceq}}{\isaliteral{22}{\isachardoublequoteclose}}\ {\isadigit{5}}{\isadigit{0}}{\isaliteral{29}{\isacharparenright}}\ {\isaliteral{2B}{\isacharplus}}\isanewline |
428 \ \ \ \ \isakeyword{fixes}\ {\isasymphi}\isanewline |
428 \ \ \ \ \isakeyword{fixes}\ {\isaliteral{5C3C7068693E}{\isasymphi}}\isanewline |
429 \ \ \ \ \isakeyword{assumes}\ hom{\isacharunderscore}meet{\isacharcolon}\ {\isachardoublequoteopen}{\isasymphi}\ {\isacharparenleft}x\ {\isasymsqinter}\ y{\isacharparenright}\ {\isacharequal}\ le{\isacharprime}{\isachardot}meet\ {\isacharparenleft}{\isasymphi}\ x{\isacharparenright}\ {\isacharparenleft}{\isasymphi}\ y{\isacharparenright}{\isachardoublequoteclose}\isanewline |
429 \ \ \ \ \isakeyword{assumes}\ hom{\isaliteral{5F}{\isacharunderscore}}meet{\isaliteral{3A}{\isacharcolon}}\ {\isaliteral{22}{\isachardoublequoteopen}}{\isaliteral{5C3C7068693E}{\isasymphi}}\ {\isaliteral{28}{\isacharparenleft}}x\ {\isaliteral{5C3C7371696E7465723E}{\isasymsqinter}}\ y{\isaliteral{29}{\isacharparenright}}\ {\isaliteral{3D}{\isacharequal}}\ le{\isaliteral{27}{\isacharprime}}{\isaliteral{2E}{\isachardot}}meet\ {\isaliteral{28}{\isacharparenleft}}{\isaliteral{5C3C7068693E}{\isasymphi}}\ x{\isaliteral{29}{\isacharparenright}}\ {\isaliteral{28}{\isacharparenleft}}{\isaliteral{5C3C7068693E}{\isasymphi}}\ y{\isaliteral{29}{\isacharparenright}}{\isaliteral{22}{\isachardoublequoteclose}}\isanewline |
430 \ \ \ \ \ \ \isakeyword{and}\ hom{\isacharunderscore}join{\isacharcolon}\ {\isachardoublequoteopen}{\isasymphi}\ {\isacharparenleft}x\ {\isasymsqunion}\ y{\isacharparenright}\ {\isacharequal}\ le{\isacharprime}{\isachardot}join\ {\isacharparenleft}{\isasymphi}\ x{\isacharparenright}\ {\isacharparenleft}{\isasymphi}\ y{\isacharparenright}{\isachardoublequoteclose}% |
430 \ \ \ \ \ \ \isakeyword{and}\ hom{\isaliteral{5F}{\isacharunderscore}}join{\isaliteral{3A}{\isacharcolon}}\ {\isaliteral{22}{\isachardoublequoteopen}}{\isaliteral{5C3C7068693E}{\isasymphi}}\ {\isaliteral{28}{\isacharparenleft}}x\ {\isaliteral{5C3C7371756E696F6E3E}{\isasymsqunion}}\ y{\isaliteral{29}{\isacharparenright}}\ {\isaliteral{3D}{\isacharequal}}\ le{\isaliteral{27}{\isacharprime}}{\isaliteral{2E}{\isachardot}}join\ {\isaliteral{28}{\isacharparenleft}}{\isaliteral{5C3C7068693E}{\isasymphi}}\ x{\isaliteral{29}{\isacharparenright}}\ {\isaliteral{28}{\isacharparenleft}}{\isaliteral{5C3C7068693E}{\isasymphi}}\ y{\isaliteral{29}{\isacharparenright}}{\isaliteral{22}{\isachardoublequoteclose}}% |
431 \begin{isamarkuptext}% |
431 \begin{isamarkuptext}% |
432 The parameter instantiation in the first instance of \isa{lattice} is omitted. This causes the parameter~\isa{le} to be |
432 The parameter instantiation in the first instance of \isa{lattice} is omitted. This causes the parameter~\isa{le} to be |
433 added to the \isakeyword{for} clause, and the locale has |
433 added to the \isakeyword{for} clause, and the locale has |
434 parameters~\isa{le},~\isa{le{\isacharprime}} and, of course,~\isa{{\isasymphi}}. |
434 parameters~\isa{le},~\isa{le{\isaliteral{27}{\isacharprime}}} and, of course,~\isa{{\isaliteral{5C3C7068693E}{\isasymphi}}}. |
435 |
435 |
436 Before turning to the second example, we complete the locale by |
436 Before turning to the second example, we complete the locale by |
437 providing infix syntax for the meet and join operations of the |
437 providing infix syntax for the meet and join operations of the |
438 second lattice.% |
438 second lattice.% |
439 \end{isamarkuptext}% |
439 \end{isamarkuptext}% |
440 \isamarkuptrue% |
440 \isamarkuptrue% |
441 \ \ \isacommand{context}\isamarkupfalse% |
441 \ \ \isacommand{context}\isamarkupfalse% |
442 \ lattice{\isacharunderscore}hom\ \isakeyword{begin}\isanewline |
442 \ lattice{\isaliteral{5F}{\isacharunderscore}}hom\ \isakeyword{begin}\isanewline |
443 \ \ \isacommand{abbreviation}\isamarkupfalse% |
443 \ \ \isacommand{abbreviation}\isamarkupfalse% |
444 \ meet{\isacharprime}\ {\isacharparenleft}\isakeyword{infixl}\ {\isachardoublequoteopen}{\isasymsqinter}{\isacharprime}{\isacharprime}{\isachardoublequoteclose}\ {\isadigit{5}}{\isadigit{0}}{\isacharparenright}\ \isakeyword{where}\ {\isachardoublequoteopen}meet{\isacharprime}\ {\isasymequiv}\ le{\isacharprime}{\isachardot}meet{\isachardoublequoteclose}\isanewline |
444 \ meet{\isaliteral{27}{\isacharprime}}\ {\isaliteral{28}{\isacharparenleft}}\isakeyword{infixl}\ {\isaliteral{22}{\isachardoublequoteopen}}{\isaliteral{5C3C7371696E7465723E}{\isasymsqinter}}{\isaliteral{27}{\isacharprime}}{\isaliteral{27}{\isacharprime}}{\isaliteral{22}{\isachardoublequoteclose}}\ {\isadigit{5}}{\isadigit{0}}{\isaliteral{29}{\isacharparenright}}\ \isakeyword{where}\ {\isaliteral{22}{\isachardoublequoteopen}}meet{\isaliteral{27}{\isacharprime}}\ {\isaliteral{5C3C65717569763E}{\isasymequiv}}\ le{\isaliteral{27}{\isacharprime}}{\isaliteral{2E}{\isachardot}}meet{\isaliteral{22}{\isachardoublequoteclose}}\isanewline |
445 \ \ \isacommand{abbreviation}\isamarkupfalse% |
445 \ \ \isacommand{abbreviation}\isamarkupfalse% |
446 \ join{\isacharprime}\ {\isacharparenleft}\isakeyword{infixl}\ {\isachardoublequoteopen}{\isasymsqunion}{\isacharprime}{\isacharprime}{\isachardoublequoteclose}\ {\isadigit{5}}{\isadigit{0}}{\isacharparenright}\ \isakeyword{where}\ {\isachardoublequoteopen}join{\isacharprime}\ {\isasymequiv}\ le{\isacharprime}{\isachardot}join{\isachardoublequoteclose}\isanewline |
446 \ join{\isaliteral{27}{\isacharprime}}\ {\isaliteral{28}{\isacharparenleft}}\isakeyword{infixl}\ {\isaliteral{22}{\isachardoublequoteopen}}{\isaliteral{5C3C7371756E696F6E3E}{\isasymsqunion}}{\isaliteral{27}{\isacharprime}}{\isaliteral{27}{\isacharprime}}{\isaliteral{22}{\isachardoublequoteclose}}\ {\isadigit{5}}{\isadigit{0}}{\isaliteral{29}{\isacharparenright}}\ \isakeyword{where}\ {\isaliteral{22}{\isachardoublequoteopen}}join{\isaliteral{27}{\isacharprime}}\ {\isaliteral{5C3C65717569763E}{\isasymequiv}}\ le{\isaliteral{27}{\isacharprime}}{\isaliteral{2E}{\isachardot}}join{\isaliteral{22}{\isachardoublequoteclose}}\isanewline |
447 \ \ \isacommand{end}\isamarkupfalse% |
447 \ \ \isacommand{end}\isamarkupfalse% |
448 % |
448 % |
449 \begin{isamarkuptext}% |
449 \begin{isamarkuptext}% |
450 The next example makes radical use of the short hand |
450 The next example makes radical use of the short hand |
451 facilities. A homomorphism is an endomorphism if both orders |
451 facilities. A homomorphism is an endomorphism if both orders |
452 coincide.% |
452 coincide.% |
453 \end{isamarkuptext}% |
453 \end{isamarkuptext}% |
454 \isamarkuptrue% |
454 \isamarkuptrue% |
455 \ \ \isacommand{locale}\isamarkupfalse% |
455 \ \ \isacommand{locale}\isamarkupfalse% |
456 \ lattice{\isacharunderscore}end\ {\isacharequal}\ lattice{\isacharunderscore}hom\ {\isacharunderscore}\ le% |
456 \ lattice{\isaliteral{5F}{\isacharunderscore}}end\ {\isaliteral{3D}{\isacharequal}}\ lattice{\isaliteral{5F}{\isacharunderscore}}hom\ {\isaliteral{5F}{\isacharunderscore}}\ le% |
457 \begin{isamarkuptext}% |
457 \begin{isamarkuptext}% |
458 The notation~\isa{{\isacharunderscore}} enables to omit a parameter in a |
458 The notation~\isa{{\isaliteral{5F}{\isacharunderscore}}} enables to omit a parameter in a |
459 positional instantiation. The omitted parameter,~\isa{le} becomes |
459 positional instantiation. The omitted parameter,~\isa{le} becomes |
460 the parameter of the declared locale and is, in the following |
460 the parameter of the declared locale and is, in the following |
461 position, used to instantiate the second parameter of \isa{lattice{\isacharunderscore}hom}. The effect is that of identifying the first in second |
461 position, used to instantiate the second parameter of \isa{lattice{\isaliteral{5F}{\isacharunderscore}}hom}. The effect is that of identifying the first in second |
462 parameter of the homomorphism locale.% |
462 parameter of the homomorphism locale.% |
463 \end{isamarkuptext}% |
463 \end{isamarkuptext}% |
464 \isamarkuptrue% |
464 \isamarkuptrue% |
465 % |
465 % |
466 \begin{isamarkuptext}% |
466 \begin{isamarkuptext}% |
467 The inheritance diagram of the situation we have now is shown |
467 The inheritance diagram of the situation we have now is shown |
468 in Figure~\ref{fig:hom}, where the dashed line depicts an |
468 in Figure~\ref{fig:hom}, where the dashed line depicts an |
469 interpretation which is introduced below. Parameter instantiations |
469 interpretation which is introduced below. Parameter instantiations |
470 are indicated by $\sqsubseteq \mapsto \preceq$ etc. By looking at |
470 are indicated by $\sqsubseteq \mapsto \preceq$ etc. By looking at |
471 the inheritance diagram it would seem |
471 the inheritance diagram it would seem |
472 that two identical copies of each of the locales \isa{partial{\isacharunderscore}order} and \isa{lattice} are imported by \isa{lattice{\isacharunderscore}end}. This is not the case! Inheritance paths with |
472 that two identical copies of each of the locales \isa{partial{\isaliteral{5F}{\isacharunderscore}}order} and \isa{lattice} are imported by \isa{lattice{\isaliteral{5F}{\isacharunderscore}}end}. This is not the case! Inheritance paths with |
473 identical morphisms are automatically detected and |
473 identical morphisms are automatically detected and |
474 the conclusions of the respective locales appear only once. |
474 the conclusions of the respective locales appear only once. |
475 |
475 |
476 \begin{figure} |
476 \begin{figure} |
477 \hrule \vspace{2ex} |
477 \hrule \vspace{2ex} |
478 \begin{center} |
478 \begin{center} |
479 \begin{tikzpicture} |
479 \begin{tikzpicture} |
480 \node (o) at (0,0) {\isa{partial{\isacharunderscore}order}}; |
480 \node (o) at (0,0) {\isa{partial{\isaliteral{5F}{\isacharunderscore}}order}}; |
481 \node (oh) at (1.5,-2) {\isa{order{\isacharunderscore}preserving}}; |
481 \node (oh) at (1.5,-2) {\isa{order{\isaliteral{5F}{\isacharunderscore}}preserving}}; |
482 \node (oh1) at (1.5,-0.7) {$\scriptscriptstyle \sqsubseteq \mapsto \sqsubseteq$}; |
482 \node (oh1) at (1.5,-0.7) {$\scriptscriptstyle \sqsubseteq \mapsto \sqsubseteq$}; |
483 \node (oh2) at (0,-1.3) {$\scriptscriptstyle \sqsubseteq \mapsto \preceq$}; |
483 \node (oh2) at (0,-1.3) {$\scriptscriptstyle \sqsubseteq \mapsto \preceq$}; |
484 \node (l) at (-1.5,-2) {\isa{lattice}}; |
484 \node (l) at (-1.5,-2) {\isa{lattice}}; |
485 \node (lh) at (0,-4) {\isa{lattice{\isacharunderscore}hom}}; |
485 \node (lh) at (0,-4) {\isa{lattice{\isaliteral{5F}{\isacharunderscore}}hom}}; |
486 \node (lh1) at (0,-2.7) {$\scriptscriptstyle \sqsubseteq \mapsto \sqsubseteq$}; |
486 \node (lh1) at (0,-2.7) {$\scriptscriptstyle \sqsubseteq \mapsto \sqsubseteq$}; |
487 \node (lh2) at (-1.5,-3.3) {$\scriptscriptstyle \sqsubseteq \mapsto \preceq$}; |
487 \node (lh2) at (-1.5,-3.3) {$\scriptscriptstyle \sqsubseteq \mapsto \preceq$}; |
488 \node (le) at (0,-6) {\isa{lattice{\isacharunderscore}end}}; |
488 \node (le) at (0,-6) {\isa{lattice{\isaliteral{5F}{\isacharunderscore}}end}}; |
489 \node (le1) at (0,-4.8) |
489 \node (le1) at (0,-4.8) |
490 [anchor=west]{$\scriptscriptstyle \sqsubseteq \mapsto \sqsubseteq$}; |
490 [anchor=west]{$\scriptscriptstyle \sqsubseteq \mapsto \sqsubseteq$}; |
491 \node (le2) at (0,-5.2) |
491 \node (le2) at (0,-5.2) |
492 [anchor=west]{$\scriptscriptstyle \preceq \mapsto \sqsubseteq$}; |
492 [anchor=west]{$\scriptscriptstyle \preceq \mapsto \sqsubseteq$}; |
493 \draw (o) -- (l); |
493 \draw (o) -- (l); |
511 preserving. As the final example of this section, a locale |
511 preserving. As the final example of this section, a locale |
512 interpretation is used to assert this:% |
512 interpretation is used to assert this:% |
513 \end{isamarkuptext}% |
513 \end{isamarkuptext}% |
514 \isamarkuptrue% |
514 \isamarkuptrue% |
515 \ \ \isacommand{sublocale}\isamarkupfalse% |
515 \ \ \isacommand{sublocale}\isamarkupfalse% |
516 \ lattice{\isacharunderscore}hom\ {\isasymsubseteq}\ order{\isacharunderscore}preserving% |
516 \ lattice{\isaliteral{5F}{\isacharunderscore}}hom\ {\isaliteral{5C3C73756273657465713E}{\isasymsubseteq}}\ order{\isaliteral{5F}{\isacharunderscore}}preserving% |
517 \isadelimproof |
517 \isadelimproof |
518 \ % |
518 \ % |
519 \endisadelimproof |
519 \endisadelimproof |
520 % |
520 % |
521 \isatagproof |
521 \isatagproof |
522 \isacommand{proof}\isamarkupfalse% |
522 \isacommand{proof}\isamarkupfalse% |
523 \ unfold{\isacharunderscore}locales\isanewline |
523 \ unfold{\isaliteral{5F}{\isacharunderscore}}locales\isanewline |
524 \ \ \ \ \isacommand{fix}\isamarkupfalse% |
524 \ \ \ \ \isacommand{fix}\isamarkupfalse% |
525 \ x\ y\isanewline |
525 \ x\ y\isanewline |
526 \ \ \ \ \isacommand{assume}\isamarkupfalse% |
526 \ \ \ \ \isacommand{assume}\isamarkupfalse% |
527 \ {\isachardoublequoteopen}x\ {\isasymsqsubseteq}\ y{\isachardoublequoteclose}\isanewline |
527 \ {\isaliteral{22}{\isachardoublequoteopen}}x\ {\isaliteral{5C3C737173756273657465713E}{\isasymsqsubseteq}}\ y{\isaliteral{22}{\isachardoublequoteclose}}\isanewline |
528 \ \ \ \ \isacommand{then}\isamarkupfalse% |
528 \ \ \ \ \isacommand{then}\isamarkupfalse% |
529 \ \isacommand{have}\isamarkupfalse% |
529 \ \isacommand{have}\isamarkupfalse% |
530 \ {\isachardoublequoteopen}y\ {\isacharequal}\ {\isacharparenleft}x\ {\isasymsqunion}\ y{\isacharparenright}{\isachardoublequoteclose}\ \isacommand{by}\isamarkupfalse% |
530 \ {\isaliteral{22}{\isachardoublequoteopen}}y\ {\isaliteral{3D}{\isacharequal}}\ {\isaliteral{28}{\isacharparenleft}}x\ {\isaliteral{5C3C7371756E696F6E3E}{\isasymsqunion}}\ y{\isaliteral{29}{\isacharparenright}}{\isaliteral{22}{\isachardoublequoteclose}}\ \isacommand{by}\isamarkupfalse% |
531 \ {\isacharparenleft}simp\ add{\isacharcolon}\ le{\isachardot}join{\isacharunderscore}connection{\isacharparenright}\isanewline |
531 \ {\isaliteral{28}{\isacharparenleft}}simp\ add{\isaliteral{3A}{\isacharcolon}}\ le{\isaliteral{2E}{\isachardot}}join{\isaliteral{5F}{\isacharunderscore}}connection{\isaliteral{29}{\isacharparenright}}\isanewline |
532 \ \ \ \ \isacommand{then}\isamarkupfalse% |
532 \ \ \ \ \isacommand{then}\isamarkupfalse% |
533 \ \isacommand{have}\isamarkupfalse% |
533 \ \isacommand{have}\isamarkupfalse% |
534 \ {\isachardoublequoteopen}{\isasymphi}\ y\ {\isacharequal}\ {\isacharparenleft}{\isasymphi}\ x\ {\isasymsqunion}{\isacharprime}\ {\isasymphi}\ y{\isacharparenright}{\isachardoublequoteclose}\ \isacommand{by}\isamarkupfalse% |
534 \ {\isaliteral{22}{\isachardoublequoteopen}}{\isaliteral{5C3C7068693E}{\isasymphi}}\ y\ {\isaliteral{3D}{\isacharequal}}\ {\isaliteral{28}{\isacharparenleft}}{\isaliteral{5C3C7068693E}{\isasymphi}}\ x\ {\isaliteral{5C3C7371756E696F6E3E}{\isasymsqunion}}{\isaliteral{27}{\isacharprime}}\ {\isaliteral{5C3C7068693E}{\isasymphi}}\ y{\isaliteral{29}{\isacharparenright}}{\isaliteral{22}{\isachardoublequoteclose}}\ \isacommand{by}\isamarkupfalse% |
535 \ {\isacharparenleft}simp\ add{\isacharcolon}\ hom{\isacharunderscore}join\ {\isacharbrackleft}symmetric{\isacharbrackright}{\isacharparenright}\isanewline |
535 \ {\isaliteral{28}{\isacharparenleft}}simp\ add{\isaliteral{3A}{\isacharcolon}}\ hom{\isaliteral{5F}{\isacharunderscore}}join\ {\isaliteral{5B}{\isacharbrackleft}}symmetric{\isaliteral{5D}{\isacharbrackright}}{\isaliteral{29}{\isacharparenright}}\isanewline |
536 \ \ \ \ \isacommand{then}\isamarkupfalse% |
536 \ \ \ \ \isacommand{then}\isamarkupfalse% |
537 \ \isacommand{show}\isamarkupfalse% |
537 \ \isacommand{show}\isamarkupfalse% |
538 \ {\isachardoublequoteopen}{\isasymphi}\ x\ {\isasympreceq}\ {\isasymphi}\ y{\isachardoublequoteclose}\ \isacommand{by}\isamarkupfalse% |
538 \ {\isaliteral{22}{\isachardoublequoteopen}}{\isaliteral{5C3C7068693E}{\isasymphi}}\ x\ {\isaliteral{5C3C7072656365713E}{\isasympreceq}}\ {\isaliteral{5C3C7068693E}{\isasymphi}}\ y{\isaliteral{22}{\isachardoublequoteclose}}\ \isacommand{by}\isamarkupfalse% |
539 \ {\isacharparenleft}simp\ add{\isacharcolon}\ le{\isacharprime}{\isachardot}join{\isacharunderscore}connection{\isacharparenright}\isanewline |
539 \ {\isaliteral{28}{\isacharparenleft}}simp\ add{\isaliteral{3A}{\isacharcolon}}\ le{\isaliteral{27}{\isacharprime}}{\isaliteral{2E}{\isachardot}}join{\isaliteral{5F}{\isacharunderscore}}connection{\isaliteral{29}{\isacharparenright}}\isanewline |
540 \ \ \isacommand{qed}\isamarkupfalse% |
540 \ \ \isacommand{qed}\isamarkupfalse% |
541 % |
541 % |
542 \endisatagproof |
542 \endisatagproof |
543 {\isafoldproof}% |
543 {\isafoldproof}% |
544 % |
544 % |
580 this can be done with the \isakeyword{sublocale} command. For this |
580 this can be done with the \isakeyword{sublocale} command. For this |
581 purpose, we introduce a locale for the condition.% |
581 purpose, we introduce a locale for the condition.% |
582 \end{isamarkuptext}% |
582 \end{isamarkuptext}% |
583 \isamarkuptrue% |
583 \isamarkuptrue% |
584 \ \ \isacommand{locale}\isamarkupfalse% |
584 \ \ \isacommand{locale}\isamarkupfalse% |
585 \ non{\isacharunderscore}negative\ {\isacharequal}\isanewline |
585 \ non{\isaliteral{5F}{\isacharunderscore}}negative\ {\isaliteral{3D}{\isacharequal}}\isanewline |
586 \ \ \ \ \isakeyword{fixes}\ n\ {\isacharcolon}{\isacharcolon}\ int\isanewline |
586 \ \ \ \ \isakeyword{fixes}\ n\ {\isaliteral{3A}{\isacharcolon}}{\isaliteral{3A}{\isacharcolon}}\ int\isanewline |
587 \ \ \ \ \isakeyword{assumes}\ non{\isacharunderscore}neg{\isacharcolon}\ {\isachardoublequoteopen}{\isadigit{0}}\ {\isasymle}\ n{\isachardoublequoteclose}% |
587 \ \ \ \ \isakeyword{assumes}\ non{\isaliteral{5F}{\isacharunderscore}}neg{\isaliteral{3A}{\isacharcolon}}\ {\isaliteral{22}{\isachardoublequoteopen}}{\isadigit{0}}\ {\isaliteral{5C3C6C653E}{\isasymle}}\ n{\isaliteral{22}{\isachardoublequoteclose}}% |
588 \begin{isamarkuptext}% |
588 \begin{isamarkuptext}% |
589 It is again convenient to make the interpretation in an |
589 It is again convenient to make the interpretation in an |
590 incremental fashion, first for order preserving maps, the for |
590 incremental fashion, first for order preserving maps, the for |
591 lattice endomorphisms.% |
591 lattice endomorphisms.% |
592 \end{isamarkuptext}% |
592 \end{isamarkuptext}% |
593 \isamarkuptrue% |
593 \isamarkuptrue% |
594 \ \ \isacommand{sublocale}\isamarkupfalse% |
594 \ \ \isacommand{sublocale}\isamarkupfalse% |
595 \ non{\isacharunderscore}negative\ {\isasymsubseteq}\isanewline |
595 \ non{\isaliteral{5F}{\isacharunderscore}}negative\ {\isaliteral{5C3C73756273657465713E}{\isasymsubseteq}}\isanewline |
596 \ \ \ \ \ \ order{\isacharunderscore}preserving\ {\isachardoublequoteopen}op\ {\isasymle}{\isachardoublequoteclose}\ {\isachardoublequoteopen}op\ {\isasymle}{\isachardoublequoteclose}\ {\isachardoublequoteopen}{\isasymlambda}i{\isachardot}\ n\ {\isacharasterisk}\ i{\isachardoublequoteclose}\isanewline |
596 \ \ \ \ \ \ order{\isaliteral{5F}{\isacharunderscore}}preserving\ {\isaliteral{22}{\isachardoublequoteopen}}op\ {\isaliteral{5C3C6C653E}{\isasymle}}{\isaliteral{22}{\isachardoublequoteclose}}\ {\isaliteral{22}{\isachardoublequoteopen}}op\ {\isaliteral{5C3C6C653E}{\isasymle}}{\isaliteral{22}{\isachardoublequoteclose}}\ {\isaliteral{22}{\isachardoublequoteopen}}{\isaliteral{5C3C6C616D6264613E}{\isasymlambda}}i{\isaliteral{2E}{\isachardot}}\ n\ {\isaliteral{2A}{\isacharasterisk}}\ i{\isaliteral{22}{\isachardoublequoteclose}}\isanewline |
597 % |
597 % |
598 \isadelimproof |
598 \isadelimproof |
599 \ \ \ \ % |
599 \ \ \ \ % |
600 \endisadelimproof |
600 \endisadelimproof |
601 % |
601 % |
602 \isatagproof |
602 \isatagproof |
603 \isacommand{using}\isamarkupfalse% |
603 \isacommand{using}\isamarkupfalse% |
604 \ non{\isacharunderscore}neg\ \isacommand{by}\isamarkupfalse% |
604 \ non{\isaliteral{5F}{\isacharunderscore}}neg\ \isacommand{by}\isamarkupfalse% |
605 \ unfold{\isacharunderscore}locales\ {\isacharparenleft}rule\ mult{\isacharunderscore}left{\isacharunderscore}mono{\isacharparenright}% |
605 \ unfold{\isaliteral{5F}{\isacharunderscore}}locales\ {\isaliteral{28}{\isacharparenleft}}rule\ mult{\isaliteral{5F}{\isacharunderscore}}left{\isaliteral{5F}{\isacharunderscore}}mono{\isaliteral{29}{\isacharparenright}}% |
606 \endisatagproof |
606 \endisatagproof |
607 {\isafoldproof}% |
607 {\isafoldproof}% |
608 % |
608 % |
609 \isadelimproof |
609 \isadelimproof |
610 % |
610 % |
611 \endisadelimproof |
611 \endisadelimproof |
612 % |
612 % |
613 \begin{isamarkuptext}% |
613 \begin{isamarkuptext}% |
614 While the proof of the previous interpretation |
614 While the proof of the previous interpretation |
615 is straightforward from monotonicity lemmas for~\isa{op\ {\isacharasterisk}}, the |
615 is straightforward from monotonicity lemmas for~\isa{op\ {\isaliteral{2A}{\isacharasterisk}}}, the |
616 second proof follows a useful pattern.% |
616 second proof follows a useful pattern.% |
617 \end{isamarkuptext}% |
617 \end{isamarkuptext}% |
618 \isamarkuptrue% |
618 \isamarkuptrue% |
619 % |
619 % |
620 \isadelimvisible |
620 \isadelimvisible |
621 \ \ % |
621 \ \ % |
622 \endisadelimvisible |
622 \endisadelimvisible |
623 % |
623 % |
624 \isatagvisible |
624 \isatagvisible |
625 \isacommand{sublocale}\isamarkupfalse% |
625 \isacommand{sublocale}\isamarkupfalse% |
626 \ non{\isacharunderscore}negative\ {\isasymsubseteq}\ lattice{\isacharunderscore}end\ {\isachardoublequoteopen}op\ {\isasymle}{\isachardoublequoteclose}\ {\isachardoublequoteopen}{\isasymlambda}i{\isachardot}\ n\ {\isacharasterisk}\ i{\isachardoublequoteclose}\isanewline |
626 \ non{\isaliteral{5F}{\isacharunderscore}}negative\ {\isaliteral{5C3C73756273657465713E}{\isasymsubseteq}}\ lattice{\isaliteral{5F}{\isacharunderscore}}end\ {\isaliteral{22}{\isachardoublequoteopen}}op\ {\isaliteral{5C3C6C653E}{\isasymle}}{\isaliteral{22}{\isachardoublequoteclose}}\ {\isaliteral{22}{\isachardoublequoteopen}}{\isaliteral{5C3C6C616D6264613E}{\isasymlambda}}i{\isaliteral{2E}{\isachardot}}\ n\ {\isaliteral{2A}{\isacharasterisk}}\ i{\isaliteral{22}{\isachardoublequoteclose}}\isanewline |
627 \ \ \isacommand{proof}\isamarkupfalse% |
627 \ \ \isacommand{proof}\isamarkupfalse% |
628 \ {\isacharparenleft}unfold{\isacharunderscore}locales{\isacharcomma}\ unfold\ int{\isacharunderscore}min{\isacharunderscore}eq\ int{\isacharunderscore}max{\isacharunderscore}eq{\isacharparenright}% |
628 \ {\isaliteral{28}{\isacharparenleft}}unfold{\isaliteral{5F}{\isacharunderscore}}locales{\isaliteral{2C}{\isacharcomma}}\ unfold\ int{\isaliteral{5F}{\isacharunderscore}}min{\isaliteral{5F}{\isacharunderscore}}eq\ int{\isaliteral{5F}{\isacharunderscore}}max{\isaliteral{5F}{\isacharunderscore}}eq{\isaliteral{29}{\isacharparenright}}% |
629 \begin{isamarkuptxt}% |
629 \begin{isamarkuptxt}% |
630 \normalsize Unfolding the locale predicates \emph{and} the |
630 \normalsize Unfolding the locale predicates \emph{and} the |
631 interpretation equations immediately yields two subgoals that |
631 interpretation equations immediately yields two subgoals that |
632 reflect the core conjecture. |
632 reflect the core conjecture. |
633 \begin{isabelle}% |
633 \begin{isabelle}% |
634 \ {\isadigit{1}}{\isachardot}\ {\isasymAnd}x\ y{\isachardot}\ n\ {\isacharasterisk}\ min\ x\ y\ {\isacharequal}\ min\ {\isacharparenleft}n\ {\isacharasterisk}\ x{\isacharparenright}\ {\isacharparenleft}n\ {\isacharasterisk}\ y{\isacharparenright}\isanewline |
634 \ {\isadigit{1}}{\isaliteral{2E}{\isachardot}}\ {\isaliteral{5C3C416E643E}{\isasymAnd}}x\ y{\isaliteral{2E}{\isachardot}}\ n\ {\isaliteral{2A}{\isacharasterisk}}\ min\ x\ y\ {\isaliteral{3D}{\isacharequal}}\ min\ {\isaliteral{28}{\isacharparenleft}}n\ {\isaliteral{2A}{\isacharasterisk}}\ x{\isaliteral{29}{\isacharparenright}}\ {\isaliteral{28}{\isacharparenleft}}n\ {\isaliteral{2A}{\isacharasterisk}}\ y{\isaliteral{29}{\isacharparenright}}\isanewline |
635 \ {\isadigit{2}}{\isachardot}\ {\isasymAnd}x\ y{\isachardot}\ n\ {\isacharasterisk}\ max\ x\ y\ {\isacharequal}\ max\ {\isacharparenleft}n\ {\isacharasterisk}\ x{\isacharparenright}\ {\isacharparenleft}n\ {\isacharasterisk}\ y{\isacharparenright}% |
635 \ {\isadigit{2}}{\isaliteral{2E}{\isachardot}}\ {\isaliteral{5C3C416E643E}{\isasymAnd}}x\ y{\isaliteral{2E}{\isachardot}}\ n\ {\isaliteral{2A}{\isacharasterisk}}\ max\ x\ y\ {\isaliteral{3D}{\isacharequal}}\ max\ {\isaliteral{28}{\isacharparenleft}}n\ {\isaliteral{2A}{\isacharasterisk}}\ x{\isaliteral{29}{\isacharparenright}}\ {\isaliteral{28}{\isacharparenleft}}n\ {\isaliteral{2A}{\isacharasterisk}}\ y{\isaliteral{29}{\isacharparenright}}% |
636 \end{isabelle} |
636 \end{isabelle} |
637 It is now necessary to show, in the context of \isa{non{\isacharunderscore}negative}, that multiplication by~\isa{n} commutes with |
637 It is now necessary to show, in the context of \isa{non{\isaliteral{5F}{\isacharunderscore}}negative}, that multiplication by~\isa{n} commutes with |
638 \isa{min} and \isa{max}.% |
638 \isa{min} and \isa{max}.% |
639 \end{isamarkuptxt}% |
639 \end{isamarkuptxt}% |
640 \isamarkuptrue% |
640 \isamarkuptrue% |
641 \ \ \isacommand{qed}\isamarkupfalse% |
641 \ \ \isacommand{qed}\isamarkupfalse% |
642 \ {\isacharparenleft}auto\ simp{\isacharcolon}\ hom{\isacharunderscore}le{\isacharparenright}% |
642 \ {\isaliteral{28}{\isacharparenleft}}auto\ simp{\isaliteral{3A}{\isacharcolon}}\ hom{\isaliteral{5F}{\isacharunderscore}}le{\isaliteral{29}{\isacharparenright}}% |
643 \endisatagvisible |
643 \endisatagvisible |
644 {\isafoldvisible}% |
644 {\isafoldvisible}% |
645 % |
645 % |
646 \isadelimvisible |
646 \isadelimvisible |
647 % |
647 % |
648 \endisadelimvisible |
648 \endisadelimvisible |
649 % |
649 % |
650 \begin{isamarkuptext}% |
650 \begin{isamarkuptext}% |
651 The lemma \isa{hom{\isacharunderscore}le} |
651 The lemma \isa{hom{\isaliteral{5F}{\isacharunderscore}}le} |
652 simplifies a proof that would have otherwise been lengthy and we may |
652 simplifies a proof that would have otherwise been lengthy and we may |
653 consider making it a default rule for the simplifier:% |
653 consider making it a default rule for the simplifier:% |
654 \end{isamarkuptext}% |
654 \end{isamarkuptext}% |
655 \isamarkuptrue% |
655 \isamarkuptrue% |
656 \ \ \isacommand{lemmas}\isamarkupfalse% |
656 \ \ \isacommand{lemmas}\isamarkupfalse% |
657 \ {\isacharparenleft}\isakeyword{in}\ order{\isacharunderscore}preserving{\isacharparenright}\ hom{\isacharunderscore}le\ {\isacharbrackleft}simp{\isacharbrackright}% |
657 \ {\isaliteral{28}{\isacharparenleft}}\isakeyword{in}\ order{\isaliteral{5F}{\isacharunderscore}}preserving{\isaliteral{29}{\isacharparenright}}\ hom{\isaliteral{5F}{\isacharunderscore}}le\ {\isaliteral{5B}{\isacharbrackleft}}simp{\isaliteral{5D}{\isacharbrackright}}% |
658 \isamarkupsubsection{Avoiding Infinite Chains of Interpretations |
658 \isamarkupsubsection{Avoiding Infinite Chains of Interpretations |
659 \label{sec:infinite-chains}% |
659 \label{sec:infinite-chains}% |
660 } |
660 } |
661 \isamarkuptrue% |
661 \isamarkuptrue% |
662 % |
662 % |
690 % |
690 % |
691 \begin{isamarkuptext}% |
691 \begin{isamarkuptext}% |
692 Unfortunately this is a cyclic interpretation that leads to an |
692 Unfortunately this is a cyclic interpretation that leads to an |
693 infinite chain, namely |
693 infinite chain, namely |
694 \begin{isabelle}% |
694 \begin{isabelle}% |
695 \ \ partial{\isacharunderscore}order\ {\isasymsubseteq}\ partial{\isacharunderscore}order\ {\isacharparenleft}{\isasymlambda}f\ g{\isachardot}\ {\isasymforall}x{\isachardot}\ f\ x\ {\isasymsqsubseteq}\ g\ x{\isacharparenright}\ {\isasymsubseteq}\isanewline |
695 \ \ partial{\isaliteral{5F}{\isacharunderscore}}order\ {\isaliteral{5C3C73756273657465713E}{\isasymsubseteq}}\ partial{\isaliteral{5F}{\isacharunderscore}}order\ {\isaliteral{28}{\isacharparenleft}}{\isaliteral{5C3C6C616D6264613E}{\isasymlambda}}f\ g{\isaliteral{2E}{\isachardot}}\ {\isaliteral{5C3C666F72616C6C3E}{\isasymforall}}x{\isaliteral{2E}{\isachardot}}\ f\ x\ {\isaliteral{5C3C737173756273657465713E}{\isasymsqsubseteq}}\ g\ x{\isaliteral{29}{\isacharparenright}}\ {\isaliteral{5C3C73756273657465713E}{\isasymsubseteq}}\isanewline |
696 \isaindent{\ \ }\ \ partial{\isacharunderscore}order\ {\isacharparenleft}{\isasymlambda}f\ g{\isachardot}\ {\isasymforall}x\ y{\isachardot}\ f\ x\ y\ {\isasymsqsubseteq}\ g\ x\ y{\isacharparenright}\ {\isasymsubseteq}\ \ {\isasymdots}% |
696 \isaindent{\ \ }\ \ partial{\isaliteral{5F}{\isacharunderscore}}order\ {\isaliteral{28}{\isacharparenleft}}{\isaliteral{5C3C6C616D6264613E}{\isasymlambda}}f\ g{\isaliteral{2E}{\isachardot}}\ {\isaliteral{5C3C666F72616C6C3E}{\isasymforall}}x\ y{\isaliteral{2E}{\isachardot}}\ f\ x\ y\ {\isaliteral{5C3C737173756273657465713E}{\isasymsqsubseteq}}\ g\ x\ y{\isaliteral{29}{\isacharparenright}}\ {\isaliteral{5C3C73756273657465713E}{\isasymsubseteq}}\ \ {\isaliteral{5C3C646F74733E}{\isasymdots}}% |
697 \end{isabelle} |
697 \end{isabelle} |
698 and the interpretation is rejected. |
698 and the interpretation is rejected. |
699 |
699 |
700 Instead it is necessary to declare a locale that is logically |
700 Instead it is necessary to declare a locale that is logically |
701 equivalent to \isa{partial{\isacharunderscore}order} but serves to collect facts |
701 equivalent to \isa{partial{\isaliteral{5F}{\isacharunderscore}}order} but serves to collect facts |
702 about functions spaces where the co-domain is a partial order, and |
702 about functions spaces where the co-domain is a partial order, and |
703 to make the interpretation in its context:% |
703 to make the interpretation in its context:% |
704 \end{isamarkuptext}% |
704 \end{isamarkuptext}% |
705 \isamarkuptrue% |
705 \isamarkuptrue% |
706 \ \ \isacommand{locale}\isamarkupfalse% |
706 \ \ \isacommand{locale}\isamarkupfalse% |
707 \ fun{\isacharunderscore}partial{\isacharunderscore}order\ {\isacharequal}\ partial{\isacharunderscore}order\isanewline |
707 \ fun{\isaliteral{5F}{\isacharunderscore}}partial{\isaliteral{5F}{\isacharunderscore}}order\ {\isaliteral{3D}{\isacharequal}}\ partial{\isaliteral{5F}{\isacharunderscore}}order\isanewline |
708 \isanewline |
708 \isanewline |
709 \ \ \isacommand{sublocale}\isamarkupfalse% |
709 \ \ \isacommand{sublocale}\isamarkupfalse% |
710 \ fun{\isacharunderscore}partial{\isacharunderscore}order\ {\isasymsubseteq}\isanewline |
710 \ fun{\isaliteral{5F}{\isacharunderscore}}partial{\isaliteral{5F}{\isacharunderscore}}order\ {\isaliteral{5C3C73756273657465713E}{\isasymsubseteq}}\isanewline |
711 \ \ \ \ \ \ f{\isacharcolon}\ partial{\isacharunderscore}order\ {\isachardoublequoteopen}{\isasymlambda}f\ g{\isachardot}\ {\isasymforall}x{\isachardot}\ f\ x\ {\isasymsqsubseteq}\ g\ x{\isachardoublequoteclose}\isanewline |
711 \ \ \ \ \ \ f{\isaliteral{3A}{\isacharcolon}}\ partial{\isaliteral{5F}{\isacharunderscore}}order\ {\isaliteral{22}{\isachardoublequoteopen}}{\isaliteral{5C3C6C616D6264613E}{\isasymlambda}}f\ g{\isaliteral{2E}{\isachardot}}\ {\isaliteral{5C3C666F72616C6C3E}{\isasymforall}}x{\isaliteral{2E}{\isachardot}}\ f\ x\ {\isaliteral{5C3C737173756273657465713E}{\isasymsqsubseteq}}\ g\ x{\isaliteral{22}{\isachardoublequoteclose}}\isanewline |
712 % |
712 % |
713 \isadelimproof |
713 \isadelimproof |
714 \ \ \ \ % |
714 \ \ \ \ % |
715 \endisadelimproof |
715 \endisadelimproof |
716 % |
716 % |
717 \isatagproof |
717 \isatagproof |
718 \isacommand{by}\isamarkupfalse% |
718 \isacommand{by}\isamarkupfalse% |
719 \ unfold{\isacharunderscore}locales\ {\isacharparenleft}fast{\isacharcomma}rule{\isacharcomma}fast{\isacharcomma}blast\ intro{\isacharcolon}\ trans{\isacharparenright}% |
719 \ unfold{\isaliteral{5F}{\isacharunderscore}}locales\ {\isaliteral{28}{\isacharparenleft}}fast{\isaliteral{2C}{\isacharcomma}}rule{\isaliteral{2C}{\isacharcomma}}fast{\isaliteral{2C}{\isacharcomma}}blast\ intro{\isaliteral{3A}{\isacharcolon}}\ trans{\isaliteral{29}{\isacharparenright}}% |
720 \endisatagproof |
720 \endisatagproof |
721 {\isafoldproof}% |
721 {\isafoldproof}% |
722 % |
722 % |
723 \isadelimproof |
723 \isadelimproof |
724 % |
724 % |
730 related hierarchy. By means of the same lifting, a function space |
730 related hierarchy. By means of the same lifting, a function space |
731 is a lattice if its co-domain is a lattice:% |
731 is a lattice if its co-domain is a lattice:% |
732 \end{isamarkuptext}% |
732 \end{isamarkuptext}% |
733 \isamarkuptrue% |
733 \isamarkuptrue% |
734 \ \ \isacommand{locale}\isamarkupfalse% |
734 \ \ \isacommand{locale}\isamarkupfalse% |
735 \ fun{\isacharunderscore}lattice\ {\isacharequal}\ fun{\isacharunderscore}partial{\isacharunderscore}order\ {\isacharplus}\ lattice\isanewline |
735 \ fun{\isaliteral{5F}{\isacharunderscore}}lattice\ {\isaliteral{3D}{\isacharequal}}\ fun{\isaliteral{5F}{\isacharunderscore}}partial{\isaliteral{5F}{\isacharunderscore}}order\ {\isaliteral{2B}{\isacharplus}}\ lattice\isanewline |
736 \isanewline |
736 \isanewline |
737 \ \ \isacommand{sublocale}\isamarkupfalse% |
737 \ \ \isacommand{sublocale}\isamarkupfalse% |
738 \ fun{\isacharunderscore}lattice\ {\isasymsubseteq}\ f{\isacharcolon}\ lattice\ {\isachardoublequoteopen}{\isasymlambda}f\ g{\isachardot}\ {\isasymforall}x{\isachardot}\ f\ x\ {\isasymsqsubseteq}\ g\ x{\isachardoublequoteclose}\isanewline |
738 \ fun{\isaliteral{5F}{\isacharunderscore}}lattice\ {\isaliteral{5C3C73756273657465713E}{\isasymsubseteq}}\ f{\isaliteral{3A}{\isacharcolon}}\ lattice\ {\isaliteral{22}{\isachardoublequoteopen}}{\isaliteral{5C3C6C616D6264613E}{\isasymlambda}}f\ g{\isaliteral{2E}{\isachardot}}\ {\isaliteral{5C3C666F72616C6C3E}{\isasymforall}}x{\isaliteral{2E}{\isachardot}}\ f\ x\ {\isaliteral{5C3C737173756273657465713E}{\isasymsqsubseteq}}\ g\ x{\isaliteral{22}{\isachardoublequoteclose}}\isanewline |
739 % |
739 % |
740 \isadelimproof |
740 \isadelimproof |
741 \ \ \ \ % |
741 \ \ \ \ % |
742 \endisadelimproof |
742 \endisadelimproof |
743 % |
743 % |
744 \isatagproof |
744 \isatagproof |
745 \isacommand{proof}\isamarkupfalse% |
745 \isacommand{proof}\isamarkupfalse% |
746 \ unfold{\isacharunderscore}locales\isanewline |
746 \ unfold{\isaliteral{5F}{\isacharunderscore}}locales\isanewline |
747 \ \ \ \ \isacommand{fix}\isamarkupfalse% |
747 \ \ \ \ \isacommand{fix}\isamarkupfalse% |
748 \ f\ g\isanewline |
748 \ f\ g\isanewline |
749 \ \ \ \ \isacommand{have}\isamarkupfalse% |
749 \ \ \ \ \isacommand{have}\isamarkupfalse% |
750 \ {\isachardoublequoteopen}partial{\isacharunderscore}order{\isachardot}is{\isacharunderscore}inf\ {\isacharparenleft}{\isasymlambda}f\ g{\isachardot}\ {\isasymforall}x{\isachardot}\ f\ x\ {\isasymsqsubseteq}\ g\ x{\isacharparenright}\ f\ g\ {\isacharparenleft}{\isasymlambda}x{\isachardot}\ f\ x\ {\isasymsqinter}\ g\ x{\isacharparenright}{\isachardoublequoteclose}\isanewline |
750 \ {\isaliteral{22}{\isachardoublequoteopen}}partial{\isaliteral{5F}{\isacharunderscore}}order{\isaliteral{2E}{\isachardot}}is{\isaliteral{5F}{\isacharunderscore}}inf\ {\isaliteral{28}{\isacharparenleft}}{\isaliteral{5C3C6C616D6264613E}{\isasymlambda}}f\ g{\isaliteral{2E}{\isachardot}}\ {\isaliteral{5C3C666F72616C6C3E}{\isasymforall}}x{\isaliteral{2E}{\isachardot}}\ f\ x\ {\isaliteral{5C3C737173756273657465713E}{\isasymsqsubseteq}}\ g\ x{\isaliteral{29}{\isacharparenright}}\ f\ g\ {\isaliteral{28}{\isacharparenleft}}{\isaliteral{5C3C6C616D6264613E}{\isasymlambda}}x{\isaliteral{2E}{\isachardot}}\ f\ x\ {\isaliteral{5C3C7371696E7465723E}{\isasymsqinter}}\ g\ x{\isaliteral{29}{\isacharparenright}}{\isaliteral{22}{\isachardoublequoteclose}}\isanewline |
751 \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
751 \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
752 \ {\isacharparenleft}rule\ is{\isacharunderscore}infI{\isacharparenright}\ \isacommand{apply}\isamarkupfalse% |
752 \ {\isaliteral{28}{\isacharparenleft}}rule\ is{\isaliteral{5F}{\isacharunderscore}}infI{\isaliteral{29}{\isacharparenright}}\ \isacommand{apply}\isamarkupfalse% |
753 \ rule{\isacharplus}\ \isacommand{apply}\isamarkupfalse% |
753 \ rule{\isaliteral{2B}{\isacharplus}}\ \isacommand{apply}\isamarkupfalse% |
754 \ {\isacharparenleft}drule\ spec{\isacharcomma}\ assumption{\isacharparenright}{\isacharplus}\ \isacommand{done}\isamarkupfalse% |
754 \ {\isaliteral{28}{\isacharparenleft}}drule\ spec{\isaliteral{2C}{\isacharcomma}}\ assumption{\isaliteral{29}{\isacharparenright}}{\isaliteral{2B}{\isacharplus}}\ \isacommand{done}\isamarkupfalse% |
755 \isanewline |
755 \isanewline |
756 \ \ \ \ \isacommand{then}\isamarkupfalse% |
756 \ \ \ \ \isacommand{then}\isamarkupfalse% |
757 \ \isacommand{show}\isamarkupfalse% |
757 \ \isacommand{show}\isamarkupfalse% |
758 \ {\isachardoublequoteopen}{\isasymexists}inf{\isachardot}\ partial{\isacharunderscore}order{\isachardot}is{\isacharunderscore}inf\ {\isacharparenleft}{\isasymlambda}f\ g{\isachardot}\ {\isasymforall}x{\isachardot}\ f\ x\ {\isasymsqsubseteq}\ g\ x{\isacharparenright}\ f\ g\ inf{\isachardoublequoteclose}\isanewline |
758 \ {\isaliteral{22}{\isachardoublequoteopen}}{\isaliteral{5C3C6578697374733E}{\isasymexists}}inf{\isaliteral{2E}{\isachardot}}\ partial{\isaliteral{5F}{\isacharunderscore}}order{\isaliteral{2E}{\isachardot}}is{\isaliteral{5F}{\isacharunderscore}}inf\ {\isaliteral{28}{\isacharparenleft}}{\isaliteral{5C3C6C616D6264613E}{\isasymlambda}}f\ g{\isaliteral{2E}{\isachardot}}\ {\isaliteral{5C3C666F72616C6C3E}{\isasymforall}}x{\isaliteral{2E}{\isachardot}}\ f\ x\ {\isaliteral{5C3C737173756273657465713E}{\isasymsqsubseteq}}\ g\ x{\isaliteral{29}{\isacharparenright}}\ f\ g\ inf{\isaliteral{22}{\isachardoublequoteclose}}\isanewline |
759 \ \ \ \ \ \ \isacommand{by}\isamarkupfalse% |
759 \ \ \ \ \ \ \isacommand{by}\isamarkupfalse% |
760 \ fast\isanewline |
760 \ fast\isanewline |
761 \ \ \isacommand{next}\isamarkupfalse% |
761 \ \ \isacommand{next}\isamarkupfalse% |
762 \isanewline |
762 \isanewline |
763 \ \ \ \ \isacommand{fix}\isamarkupfalse% |
763 \ \ \ \ \isacommand{fix}\isamarkupfalse% |
764 \ f\ g\isanewline |
764 \ f\ g\isanewline |
765 \ \ \ \ \isacommand{have}\isamarkupfalse% |
765 \ \ \ \ \isacommand{have}\isamarkupfalse% |
766 \ {\isachardoublequoteopen}partial{\isacharunderscore}order{\isachardot}is{\isacharunderscore}sup\ {\isacharparenleft}{\isasymlambda}f\ g{\isachardot}\ {\isasymforall}x{\isachardot}\ f\ x\ {\isasymsqsubseteq}\ g\ x{\isacharparenright}\ f\ g\ {\isacharparenleft}{\isasymlambda}x{\isachardot}\ f\ x\ {\isasymsqunion}\ g\ x{\isacharparenright}{\isachardoublequoteclose}\isanewline |
766 \ {\isaliteral{22}{\isachardoublequoteopen}}partial{\isaliteral{5F}{\isacharunderscore}}order{\isaliteral{2E}{\isachardot}}is{\isaliteral{5F}{\isacharunderscore}}sup\ {\isaliteral{28}{\isacharparenleft}}{\isaliteral{5C3C6C616D6264613E}{\isasymlambda}}f\ g{\isaliteral{2E}{\isachardot}}\ {\isaliteral{5C3C666F72616C6C3E}{\isasymforall}}x{\isaliteral{2E}{\isachardot}}\ f\ x\ {\isaliteral{5C3C737173756273657465713E}{\isasymsqsubseteq}}\ g\ x{\isaliteral{29}{\isacharparenright}}\ f\ g\ {\isaliteral{28}{\isacharparenleft}}{\isaliteral{5C3C6C616D6264613E}{\isasymlambda}}x{\isaliteral{2E}{\isachardot}}\ f\ x\ {\isaliteral{5C3C7371756E696F6E3E}{\isasymsqunion}}\ g\ x{\isaliteral{29}{\isacharparenright}}{\isaliteral{22}{\isachardoublequoteclose}}\isanewline |
767 \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
767 \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
768 \ {\isacharparenleft}rule\ is{\isacharunderscore}supI{\isacharparenright}\ \isacommand{apply}\isamarkupfalse% |
768 \ {\isaliteral{28}{\isacharparenleft}}rule\ is{\isaliteral{5F}{\isacharunderscore}}supI{\isaliteral{29}{\isacharparenright}}\ \isacommand{apply}\isamarkupfalse% |
769 \ rule{\isacharplus}\ \isacommand{apply}\isamarkupfalse% |
769 \ rule{\isaliteral{2B}{\isacharplus}}\ \isacommand{apply}\isamarkupfalse% |
770 \ {\isacharparenleft}drule\ spec{\isacharcomma}\ assumption{\isacharparenright}{\isacharplus}\ \isacommand{done}\isamarkupfalse% |
770 \ {\isaliteral{28}{\isacharparenleft}}drule\ spec{\isaliteral{2C}{\isacharcomma}}\ assumption{\isaliteral{29}{\isacharparenright}}{\isaliteral{2B}{\isacharplus}}\ \isacommand{done}\isamarkupfalse% |
771 \isanewline |
771 \isanewline |
772 \ \ \ \ \isacommand{then}\isamarkupfalse% |
772 \ \ \ \ \isacommand{then}\isamarkupfalse% |
773 \ \isacommand{show}\isamarkupfalse% |
773 \ \isacommand{show}\isamarkupfalse% |
774 \ {\isachardoublequoteopen}{\isasymexists}sup{\isachardot}\ partial{\isacharunderscore}order{\isachardot}is{\isacharunderscore}sup\ {\isacharparenleft}{\isasymlambda}f\ g{\isachardot}\ {\isasymforall}x{\isachardot}\ f\ x\ {\isasymsqsubseteq}\ g\ x{\isacharparenright}\ f\ g\ sup{\isachardoublequoteclose}\isanewline |
774 \ {\isaliteral{22}{\isachardoublequoteopen}}{\isaliteral{5C3C6578697374733E}{\isasymexists}}sup{\isaliteral{2E}{\isachardot}}\ partial{\isaliteral{5F}{\isacharunderscore}}order{\isaliteral{2E}{\isachardot}}is{\isaliteral{5F}{\isacharunderscore}}sup\ {\isaliteral{28}{\isacharparenleft}}{\isaliteral{5C3C6C616D6264613E}{\isasymlambda}}f\ g{\isaliteral{2E}{\isachardot}}\ {\isaliteral{5C3C666F72616C6C3E}{\isasymforall}}x{\isaliteral{2E}{\isachardot}}\ f\ x\ {\isaliteral{5C3C737173756273657465713E}{\isasymsqsubseteq}}\ g\ x{\isaliteral{29}{\isacharparenright}}\ f\ g\ sup{\isaliteral{22}{\isachardoublequoteclose}}\isanewline |
775 \ \ \ \ \ \ \isacommand{by}\isamarkupfalse% |
775 \ \ \ \ \ \ \isacommand{by}\isamarkupfalse% |
776 \ fast\isanewline |
776 \ fast\isanewline |
777 \ \ \isacommand{qed}\isamarkupfalse% |
777 \ \ \isacommand{qed}\isamarkupfalse% |
778 % |
778 % |
779 \endisatagproof |
779 \endisatagproof |