|
1 % |
|
2 \begin{isabellebody}% |
|
3 \setisabellecontext{SizeBound}% |
|
4 % |
|
5 \isadelimtheory |
|
6 \isanewline |
|
7 % |
|
8 \endisadelimtheory |
|
9 % |
|
10 \isatagtheory |
|
11 \isacommand{theory}\isamarkupfalse% |
|
12 \ SizeBound\isanewline |
|
13 \ \ \isakeyword{imports}\ {\isachardoublequoteopen}Lexer{\isachardoublequoteclose}\ \isanewline |
|
14 \isakeyword{begin}% |
|
15 \endisatagtheory |
|
16 {\isafoldtheory}% |
|
17 % |
|
18 \isadelimtheory |
|
19 % |
|
20 \endisadelimtheory |
|
21 % |
|
22 \isadelimdocument |
|
23 % |
|
24 \endisadelimdocument |
|
25 % |
|
26 \isatagdocument |
|
27 % |
|
28 \isamarkupsection{Bit-Encodings% |
|
29 } |
|
30 \isamarkuptrue% |
|
31 % |
|
32 \endisatagdocument |
|
33 {\isafolddocument}% |
|
34 % |
|
35 \isadelimdocument |
|
36 % |
|
37 \endisadelimdocument |
|
38 \isacommand{datatype}\isamarkupfalse% |
|
39 \ bit\ {\isacharequal}{\kern0pt}\ Z\ {\isacharbar}{\kern0pt}\ S\isanewline |
|
40 \isanewline |
|
41 \isacommand{fun}\isamarkupfalse% |
|
42 \ code\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}val\ {\isasymRightarrow}\ bit\ list{\isachardoublequoteclose}\isanewline |
|
43 \isakeyword{where}\isanewline |
|
44 \ \ {\isachardoublequoteopen}code\ Void\ {\isacharequal}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
45 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}code\ {\isacharparenleft}{\kern0pt}Char\ c{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
46 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}code\ {\isacharparenleft}{\kern0pt}Left\ v{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ Z\ {\isacharhash}{\kern0pt}\ {\isacharparenleft}{\kern0pt}code\ v{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
47 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}code\ {\isacharparenleft}{\kern0pt}Right\ v{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ S\ {\isacharhash}{\kern0pt}\ {\isacharparenleft}{\kern0pt}code\ v{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
48 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}code\ {\isacharparenleft}{\kern0pt}Seq\ v{\isadigit{1}}\ v{\isadigit{2}}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isacharparenleft}{\kern0pt}code\ v{\isadigit{1}}{\isacharparenright}{\kern0pt}\ {\isacharat}{\kern0pt}\ {\isacharparenleft}{\kern0pt}code\ v{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
49 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}code\ {\isacharparenleft}{\kern0pt}Stars\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}S{\isacharbrackright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
50 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}code\ {\isacharparenleft}{\kern0pt}Stars\ {\isacharparenleft}{\kern0pt}v\ {\isacharhash}{\kern0pt}\ vs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ \ {\isacharparenleft}{\kern0pt}Z\ {\isacharhash}{\kern0pt}\ code\ v{\isacharparenright}{\kern0pt}\ {\isacharat}{\kern0pt}\ code\ {\isacharparenleft}{\kern0pt}Stars\ vs{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
51 \isanewline |
|
52 \isanewline |
|
53 \isacommand{fun}\isamarkupfalse% |
|
54 \ \isanewline |
|
55 \ \ Stars{\isacharunderscore}{\kern0pt}add\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}val\ {\isasymRightarrow}\ val\ {\isasymRightarrow}\ val{\isachardoublequoteclose}\isanewline |
|
56 \isakeyword{where}\isanewline |
|
57 \ \ {\isachardoublequoteopen}Stars{\isacharunderscore}{\kern0pt}add\ v\ {\isacharparenleft}{\kern0pt}Stars\ vs{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ Stars\ {\isacharparenleft}{\kern0pt}v\ {\isacharhash}{\kern0pt}\ vs{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
58 \isanewline |
|
59 \isacommand{function}\isamarkupfalse% |
|
60 \isanewline |
|
61 \ \ decode{\isacharprime}{\kern0pt}\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}bit\ list\ {\isasymRightarrow}\ rexp\ {\isasymRightarrow}\ {\isacharparenleft}{\kern0pt}val\ {\isacharasterisk}{\kern0pt}\ bit\ list{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
62 \isakeyword{where}\isanewline |
|
63 \ \ {\isachardoublequoteopen}decode{\isacharprime}{\kern0pt}\ ds\ ZERO\ {\isacharequal}{\kern0pt}\ {\isacharparenleft}{\kern0pt}Void{\isacharcomma}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
64 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}decode{\isacharprime}{\kern0pt}\ ds\ ONE\ {\isacharequal}{\kern0pt}\ {\isacharparenleft}{\kern0pt}Void{\isacharcomma}{\kern0pt}\ ds{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
65 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}decode{\isacharprime}{\kern0pt}\ ds\ {\isacharparenleft}{\kern0pt}CH\ d{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isacharparenleft}{\kern0pt}Char\ d{\isacharcomma}{\kern0pt}\ ds{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
66 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}decode{\isacharprime}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}ALT\ r{\isadigit{1}}\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isacharparenleft}{\kern0pt}Void{\isacharcomma}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
67 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}decode{\isacharprime}{\kern0pt}\ {\isacharparenleft}{\kern0pt}Z\ {\isacharhash}{\kern0pt}\ ds{\isacharparenright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}ALT\ r{\isadigit{1}}\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isacharparenleft}{\kern0pt}let\ {\isacharparenleft}{\kern0pt}v{\isacharcomma}{\kern0pt}\ ds{\isacharprime}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ decode{\isacharprime}{\kern0pt}\ ds\ r{\isadigit{1}}\ in\ {\isacharparenleft}{\kern0pt}Left\ v{\isacharcomma}{\kern0pt}\ ds{\isacharprime}{\kern0pt}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
68 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}decode{\isacharprime}{\kern0pt}\ {\isacharparenleft}{\kern0pt}S\ {\isacharhash}{\kern0pt}\ ds{\isacharparenright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}ALT\ r{\isadigit{1}}\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isacharparenleft}{\kern0pt}let\ {\isacharparenleft}{\kern0pt}v{\isacharcomma}{\kern0pt}\ ds{\isacharprime}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ decode{\isacharprime}{\kern0pt}\ ds\ r{\isadigit{2}}\ in\ {\isacharparenleft}{\kern0pt}Right\ v{\isacharcomma}{\kern0pt}\ ds{\isacharprime}{\kern0pt}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
69 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}decode{\isacharprime}{\kern0pt}\ ds\ {\isacharparenleft}{\kern0pt}SEQ\ r{\isadigit{1}}\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isacharparenleft}{\kern0pt}let\ {\isacharparenleft}{\kern0pt}v{\isadigit{1}}{\isacharcomma}{\kern0pt}\ ds{\isacharprime}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ decode{\isacharprime}{\kern0pt}\ ds\ r{\isadigit{1}}\ in\isanewline |
|
70 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ let\ {\isacharparenleft}{\kern0pt}v{\isadigit{2}}{\isacharcomma}{\kern0pt}\ ds{\isacharprime}{\kern0pt}{\isacharprime}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ decode{\isacharprime}{\kern0pt}\ ds{\isacharprime}{\kern0pt}\ r{\isadigit{2}}\ in\ {\isacharparenleft}{\kern0pt}Seq\ v{\isadigit{1}}\ v{\isadigit{2}}{\isacharcomma}{\kern0pt}\ ds{\isacharprime}{\kern0pt}{\isacharprime}{\kern0pt}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
71 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}decode{\isacharprime}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}STAR\ r{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isacharparenleft}{\kern0pt}Void{\isacharcomma}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
72 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}decode{\isacharprime}{\kern0pt}\ {\isacharparenleft}{\kern0pt}S\ {\isacharhash}{\kern0pt}\ ds{\isacharparenright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}STAR\ r{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isacharparenleft}{\kern0pt}Stars\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}{\isacharcomma}{\kern0pt}\ ds{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
73 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}decode{\isacharprime}{\kern0pt}\ {\isacharparenleft}{\kern0pt}Z\ {\isacharhash}{\kern0pt}\ ds{\isacharparenright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}STAR\ r{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isacharparenleft}{\kern0pt}let\ {\isacharparenleft}{\kern0pt}v{\isacharcomma}{\kern0pt}\ ds{\isacharprime}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ decode{\isacharprime}{\kern0pt}\ ds\ r\ in\isanewline |
|
74 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ let\ {\isacharparenleft}{\kern0pt}vs{\isacharcomma}{\kern0pt}\ ds{\isacharprime}{\kern0pt}{\isacharprime}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ decode{\isacharprime}{\kern0pt}\ ds{\isacharprime}{\kern0pt}\ {\isacharparenleft}{\kern0pt}STAR\ r{\isacharparenright}{\kern0pt}\ \isanewline |
|
75 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ in\ {\isacharparenleft}{\kern0pt}Stars{\isacharunderscore}{\kern0pt}add\ v\ vs{\isacharcomma}{\kern0pt}\ ds{\isacharprime}{\kern0pt}{\isacharprime}{\kern0pt}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
76 % |
|
77 \isadelimproof |
|
78 % |
|
79 \endisadelimproof |
|
80 % |
|
81 \isatagproof |
|
82 \isacommand{by}\isamarkupfalse% |
|
83 \ pat{\isacharunderscore}{\kern0pt}completeness\ auto% |
|
84 \endisatagproof |
|
85 {\isafoldproof}% |
|
86 % |
|
87 \isadelimproof |
|
88 \isanewline |
|
89 % |
|
90 \endisadelimproof |
|
91 \isanewline |
|
92 \isacommand{lemma}\isamarkupfalse% |
|
93 \ decode{\isacharprime}{\kern0pt}{\isacharunderscore}{\kern0pt}smaller{\isacharcolon}{\kern0pt}\isanewline |
|
94 \ \ \isakeyword{assumes}\ {\isachardoublequoteopen}decode{\isacharprime}{\kern0pt}{\isacharunderscore}{\kern0pt}dom\ {\isacharparenleft}{\kern0pt}ds{\isacharcomma}{\kern0pt}\ r{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
95 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}length\ {\isacharparenleft}{\kern0pt}snd\ {\isacharparenleft}{\kern0pt}decode{\isacharprime}{\kern0pt}\ ds\ r{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isasymle}\ length\ ds{\isachardoublequoteclose}\isanewline |
|
96 % |
|
97 \isadelimproof |
|
98 % |
|
99 \endisadelimproof |
|
100 % |
|
101 \isatagproof |
|
102 \isacommand{using}\isamarkupfalse% |
|
103 \ assms\isanewline |
|
104 \isacommand{apply}\isamarkupfalse% |
|
105 {\isacharparenleft}{\kern0pt}induct\ ds\ r{\isacharparenright}{\kern0pt}\isanewline |
|
106 \isacommand{apply}\isamarkupfalse% |
|
107 {\isacharparenleft}{\kern0pt}auto\ simp\ add{\isacharcolon}{\kern0pt}\ decode{\isacharprime}{\kern0pt}{\isachardot}{\kern0pt}psimps\ split{\isacharcolon}{\kern0pt}\ prod{\isachardot}{\kern0pt}split{\isacharparenright}{\kern0pt}\isanewline |
|
108 \isacommand{using}\isamarkupfalse% |
|
109 \ dual{\isacharunderscore}{\kern0pt}order{\isachardot}{\kern0pt}trans\ \isacommand{apply}\isamarkupfalse% |
|
110 \ blast\isanewline |
|
111 \isacommand{by}\isamarkupfalse% |
|
112 \ {\isacharparenleft}{\kern0pt}meson\ dual{\isacharunderscore}{\kern0pt}order{\isachardot}{\kern0pt}trans\ le{\isacharunderscore}{\kern0pt}SucI{\isacharparenright}{\kern0pt}% |
|
113 \endisatagproof |
|
114 {\isafoldproof}% |
|
115 % |
|
116 \isadelimproof |
|
117 \isanewline |
|
118 % |
|
119 \endisadelimproof |
|
120 \isanewline |
|
121 \isacommand{termination}\isamarkupfalse% |
|
122 \ {\isachardoublequoteopen}decode{\isacharprime}{\kern0pt}{\isachardoublequoteclose}\ \ \isanewline |
|
123 % |
|
124 \isadelimproof |
|
125 % |
|
126 \endisadelimproof |
|
127 % |
|
128 \isatagproof |
|
129 \isacommand{apply}\isamarkupfalse% |
|
130 {\isacharparenleft}{\kern0pt}relation\ {\isachardoublequoteopen}inv{\isacharunderscore}{\kern0pt}image\ {\isacharparenleft}{\kern0pt}measure{\isacharparenleft}{\kern0pt}{\isacharpercent}{\kern0pt}cs{\isachardot}{\kern0pt}\ size\ cs{\isacharparenright}{\kern0pt}\ {\isacharless}{\kern0pt}{\isacharasterisk}{\kern0pt}lex{\isacharasterisk}{\kern0pt}{\isachargreater}{\kern0pt}\ measure{\isacharparenleft}{\kern0pt}{\isacharpercent}{\kern0pt}s{\isachardot}{\kern0pt}\ size\ s{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}{\isacharpercent}{\kern0pt}{\isacharparenleft}{\kern0pt}ds{\isacharcomma}{\kern0pt}r{\isacharparenright}{\kern0pt}{\isachardot}{\kern0pt}\ {\isacharparenleft}{\kern0pt}r{\isacharcomma}{\kern0pt}ds{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\ \isanewline |
|
131 \isacommand{apply}\isamarkupfalse% |
|
132 {\isacharparenleft}{\kern0pt}auto\ dest{\isacharbang}{\kern0pt}{\isacharcolon}{\kern0pt}\ decode{\isacharprime}{\kern0pt}{\isacharunderscore}{\kern0pt}smaller{\isacharparenright}{\kern0pt}\isanewline |
|
133 \isacommand{by}\isamarkupfalse% |
|
134 \ {\isacharparenleft}{\kern0pt}metis\ less{\isacharunderscore}{\kern0pt}Suc{\isacharunderscore}{\kern0pt}eq{\isacharunderscore}{\kern0pt}le\ snd{\isacharunderscore}{\kern0pt}conv{\isacharparenright}{\kern0pt}% |
|
135 \endisatagproof |
|
136 {\isafoldproof}% |
|
137 % |
|
138 \isadelimproof |
|
139 \isanewline |
|
140 % |
|
141 \endisadelimproof |
|
142 \isanewline |
|
143 \isacommand{definition}\isamarkupfalse% |
|
144 \isanewline |
|
145 \ \ decode\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}bit\ list\ {\isasymRightarrow}\ rexp\ {\isasymRightarrow}\ val\ option{\isachardoublequoteclose}\isanewline |
|
146 \isakeyword{where}\isanewline |
|
147 \ \ {\isachardoublequoteopen}decode\ ds\ r\ {\isasymequiv}\ {\isacharparenleft}{\kern0pt}let\ {\isacharparenleft}{\kern0pt}v{\isacharcomma}{\kern0pt}\ ds{\isacharprime}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ decode{\isacharprime}{\kern0pt}\ ds\ r\ \isanewline |
|
148 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ in\ {\isacharparenleft}{\kern0pt}if\ ds{\isacharprime}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ then\ Some\ v\ else\ None{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
149 \isanewline |
|
150 \isacommand{lemma}\isamarkupfalse% |
|
151 \ decode{\isacharprime}{\kern0pt}{\isacharunderscore}{\kern0pt}code{\isacharunderscore}{\kern0pt}Stars{\isacharcolon}{\kern0pt}\isanewline |
|
152 \ \ \isakeyword{assumes}\ {\isachardoublequoteopen}{\isasymforall}v{\isasymin}set\ vs{\isachardot}{\kern0pt}\ {\isasymTurnstile}\ v\ {\isacharcolon}{\kern0pt}\ r\ {\isasymand}\ {\isacharparenleft}{\kern0pt}{\isasymforall}x{\isachardot}{\kern0pt}\ decode{\isacharprime}{\kern0pt}\ {\isacharparenleft}{\kern0pt}code\ v\ {\isacharat}{\kern0pt}\ x{\isacharparenright}{\kern0pt}\ r\ {\isacharequal}{\kern0pt}\ {\isacharparenleft}{\kern0pt}v{\isacharcomma}{\kern0pt}\ x{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isasymand}\ flat\ v\ {\isasymnoteq}\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}{\isachardoublequoteclose}\ \isanewline |
|
153 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}decode{\isacharprime}{\kern0pt}\ {\isacharparenleft}{\kern0pt}code\ {\isacharparenleft}{\kern0pt}Stars\ vs{\isacharparenright}{\kern0pt}\ {\isacharat}{\kern0pt}\ ds{\isacharparenright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}STAR\ r{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isacharparenleft}{\kern0pt}Stars\ vs{\isacharcomma}{\kern0pt}\ ds{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
154 % |
|
155 \isadelimproof |
|
156 \ \ % |
|
157 \endisadelimproof |
|
158 % |
|
159 \isatagproof |
|
160 \isacommand{using}\isamarkupfalse% |
|
161 \ assms\isanewline |
|
162 \ \ \isacommand{apply}\isamarkupfalse% |
|
163 {\isacharparenleft}{\kern0pt}induct\ vs{\isacharparenright}{\kern0pt}\isanewline |
|
164 \ \ \isacommand{apply}\isamarkupfalse% |
|
165 {\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline |
|
166 \ \ \isacommand{done}\isamarkupfalse% |
|
167 % |
|
168 \endisatagproof |
|
169 {\isafoldproof}% |
|
170 % |
|
171 \isadelimproof |
|
172 \isanewline |
|
173 % |
|
174 \endisadelimproof |
|
175 \isanewline |
|
176 \isacommand{lemma}\isamarkupfalse% |
|
177 \ decode{\isacharprime}{\kern0pt}{\isacharunderscore}{\kern0pt}code{\isacharcolon}{\kern0pt}\isanewline |
|
178 \ \ \isakeyword{assumes}\ {\isachardoublequoteopen}{\isasymTurnstile}\ v\ {\isacharcolon}{\kern0pt}\ r{\isachardoublequoteclose}\isanewline |
|
179 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}decode{\isacharprime}{\kern0pt}\ {\isacharparenleft}{\kern0pt}{\isacharparenleft}{\kern0pt}code\ v{\isacharparenright}{\kern0pt}\ {\isacharat}{\kern0pt}\ ds{\isacharparenright}{\kern0pt}\ r\ {\isacharequal}{\kern0pt}\ {\isacharparenleft}{\kern0pt}v{\isacharcomma}{\kern0pt}\ ds{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
180 % |
|
181 \isadelimproof |
|
182 % |
|
183 \endisadelimproof |
|
184 % |
|
185 \isatagproof |
|
186 \isacommand{using}\isamarkupfalse% |
|
187 \ assms\isanewline |
|
188 \ \ \isacommand{apply}\isamarkupfalse% |
|
189 {\isacharparenleft}{\kern0pt}induct\ v\ r\ arbitrary{\isacharcolon}{\kern0pt}\ ds{\isacharparenright}{\kern0pt}\ \isanewline |
|
190 \ \ \isacommand{apply}\isamarkupfalse% |
|
191 {\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline |
|
192 \ \ \isacommand{using}\isamarkupfalse% |
|
193 \ decode{\isacharprime}{\kern0pt}{\isacharunderscore}{\kern0pt}code{\isacharunderscore}{\kern0pt}Stars\ \isacommand{by}\isamarkupfalse% |
|
194 \ blast% |
|
195 \endisatagproof |
|
196 {\isafoldproof}% |
|
197 % |
|
198 \isadelimproof |
|
199 \isanewline |
|
200 % |
|
201 \endisadelimproof |
|
202 \isanewline |
|
203 \isacommand{lemma}\isamarkupfalse% |
|
204 \ decode{\isacharunderscore}{\kern0pt}code{\isacharcolon}{\kern0pt}\isanewline |
|
205 \ \ \isakeyword{assumes}\ {\isachardoublequoteopen}{\isasymTurnstile}\ v\ {\isacharcolon}{\kern0pt}\ r{\isachardoublequoteclose}\isanewline |
|
206 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}decode\ {\isacharparenleft}{\kern0pt}code\ v{\isacharparenright}{\kern0pt}\ r\ {\isacharequal}{\kern0pt}\ Some\ v{\isachardoublequoteclose}\isanewline |
|
207 % |
|
208 \isadelimproof |
|
209 \ \ % |
|
210 \endisadelimproof |
|
211 % |
|
212 \isatagproof |
|
213 \isacommand{using}\isamarkupfalse% |
|
214 \ assms\ \isacommand{unfolding}\isamarkupfalse% |
|
215 \ decode{\isacharunderscore}{\kern0pt}def\isanewline |
|
216 \ \ \isacommand{by}\isamarkupfalse% |
|
217 \ {\isacharparenleft}{\kern0pt}smt\ append{\isacharunderscore}{\kern0pt}Nil{\isadigit{2}}\ decode{\isacharprime}{\kern0pt}{\isacharunderscore}{\kern0pt}code\ old{\isachardot}{\kern0pt}prod{\isachardot}{\kern0pt}case{\isacharparenright}{\kern0pt}% |
|
218 \endisatagproof |
|
219 {\isafoldproof}% |
|
220 % |
|
221 \isadelimproof |
|
222 % |
|
223 \endisadelimproof |
|
224 % |
|
225 \isadelimdocument |
|
226 % |
|
227 \endisadelimdocument |
|
228 % |
|
229 \isatagdocument |
|
230 % |
|
231 \isamarkupsection{Annotated Regular Expressions% |
|
232 } |
|
233 \isamarkuptrue% |
|
234 % |
|
235 \endisatagdocument |
|
236 {\isafolddocument}% |
|
237 % |
|
238 \isadelimdocument |
|
239 % |
|
240 \endisadelimdocument |
|
241 \isacommand{datatype}\isamarkupfalse% |
|
242 \ arexp\ {\isacharequal}{\kern0pt}\ \isanewline |
|
243 \ \ AZERO\isanewline |
|
244 {\isacharbar}{\kern0pt}\ AONE\ {\isachardoublequoteopen}bit\ list{\isachardoublequoteclose}\isanewline |
|
245 {\isacharbar}{\kern0pt}\ ACHAR\ {\isachardoublequoteopen}bit\ list{\isachardoublequoteclose}\ char\isanewline |
|
246 {\isacharbar}{\kern0pt}\ ASEQ\ {\isachardoublequoteopen}bit\ list{\isachardoublequoteclose}\ arexp\ arexp\isanewline |
|
247 {\isacharbar}{\kern0pt}\ AALTs\ {\isachardoublequoteopen}bit\ list{\isachardoublequoteclose}\ {\isachardoublequoteopen}arexp\ list{\isachardoublequoteclose}\isanewline |
|
248 {\isacharbar}{\kern0pt}\ ASTAR\ {\isachardoublequoteopen}bit\ list{\isachardoublequoteclose}\ arexp\isanewline |
|
249 \isanewline |
|
250 \isacommand{abbreviation}\isamarkupfalse% |
|
251 \isanewline |
|
252 \ \ {\isachardoublequoteopen}AALT\ bs\ r{\isadigit{1}}\ r{\isadigit{2}}\ {\isasymequiv}\ AALTs\ bs\ {\isacharbrackleft}{\kern0pt}r{\isadigit{1}}{\isacharcomma}{\kern0pt}\ r{\isadigit{2}}{\isacharbrackright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
253 \isanewline |
|
254 \isacommand{fun}\isamarkupfalse% |
|
255 \ asize\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}arexp\ {\isasymRightarrow}\ nat{\isachardoublequoteclose}\ \isakeyword{where}\isanewline |
|
256 \ \ {\isachardoublequoteopen}asize\ AZERO\ {\isacharequal}{\kern0pt}\ {\isadigit{1}}{\isachardoublequoteclose}\isanewline |
|
257 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}asize\ {\isacharparenleft}{\kern0pt}AONE\ cs{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isadigit{1}}{\isachardoublequoteclose}\ \isanewline |
|
258 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}asize\ {\isacharparenleft}{\kern0pt}ACHAR\ cs\ c{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isadigit{1}}{\isachardoublequoteclose}\isanewline |
|
259 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}asize\ {\isacharparenleft}{\kern0pt}AALTs\ cs\ rs{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ Suc\ {\isacharparenleft}{\kern0pt}sum{\isacharunderscore}{\kern0pt}list\ {\isacharparenleft}{\kern0pt}map\ asize\ rs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
260 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}asize\ {\isacharparenleft}{\kern0pt}ASEQ\ cs\ r{\isadigit{1}}\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ Suc\ {\isacharparenleft}{\kern0pt}asize\ r{\isadigit{1}}\ {\isacharplus}{\kern0pt}\ asize\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
261 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}asize\ {\isacharparenleft}{\kern0pt}ASTAR\ cs\ r{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ Suc\ {\isacharparenleft}{\kern0pt}asize\ r{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
262 \isanewline |
|
263 \isacommand{fun}\isamarkupfalse% |
|
264 \ \isanewline |
|
265 \ \ erase\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}arexp\ {\isasymRightarrow}\ rexp{\isachardoublequoteclose}\isanewline |
|
266 \isakeyword{where}\isanewline |
|
267 \ \ {\isachardoublequoteopen}erase\ AZERO\ {\isacharequal}{\kern0pt}\ ZERO{\isachardoublequoteclose}\isanewline |
|
268 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}erase\ {\isacharparenleft}{\kern0pt}AONE\ {\isacharunderscore}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ ONE{\isachardoublequoteclose}\isanewline |
|
269 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}erase\ {\isacharparenleft}{\kern0pt}ACHAR\ {\isacharunderscore}{\kern0pt}\ c{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ CH\ c{\isachardoublequoteclose}\isanewline |
|
270 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}erase\ {\isacharparenleft}{\kern0pt}AALTs\ {\isacharunderscore}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ ZERO{\isachardoublequoteclose}\isanewline |
|
271 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}erase\ {\isacharparenleft}{\kern0pt}AALTs\ {\isacharunderscore}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}r{\isacharbrackright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isacharparenleft}{\kern0pt}erase\ r{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
272 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}erase\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}r{\isacharhash}{\kern0pt}rs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ ALT\ {\isacharparenleft}{\kern0pt}erase\ r{\isacharparenright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}erase\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
273 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}erase\ {\isacharparenleft}{\kern0pt}ASEQ\ {\isacharunderscore}{\kern0pt}\ r{\isadigit{1}}\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ SEQ\ {\isacharparenleft}{\kern0pt}erase\ r{\isadigit{1}}{\isacharparenright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}erase\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
274 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}erase\ {\isacharparenleft}{\kern0pt}ASTAR\ {\isacharunderscore}{\kern0pt}\ r{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ STAR\ {\isacharparenleft}{\kern0pt}erase\ r{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
275 \isanewline |
|
276 \isanewline |
|
277 \isanewline |
|
278 \isanewline |
|
279 \isacommand{fun}\isamarkupfalse% |
|
280 \ nonalt\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}arexp\ {\isasymRightarrow}\ bool{\isachardoublequoteclose}\isanewline |
|
281 \ \ \isakeyword{where}\isanewline |
|
282 \ \ {\isachardoublequoteopen}nonalt\ {\isacharparenleft}{\kern0pt}AALTs\ bs{\isadigit{2}}\ rs{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ False{\isachardoublequoteclose}\isanewline |
|
283 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}nonalt\ r\ {\isacharequal}{\kern0pt}\ True{\isachardoublequoteclose}\isanewline |
|
284 \isanewline |
|
285 \isanewline |
|
286 \isacommand{fun}\isamarkupfalse% |
|
287 \ good\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}arexp\ {\isasymRightarrow}\ bool{\isachardoublequoteclose}\ \isakeyword{where}\isanewline |
|
288 \ \ {\isachardoublequoteopen}good\ AZERO\ {\isacharequal}{\kern0pt}\ False{\isachardoublequoteclose}\isanewline |
|
289 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}good\ {\isacharparenleft}{\kern0pt}AONE\ cs{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ True{\isachardoublequoteclose}\ \isanewline |
|
290 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}good\ {\isacharparenleft}{\kern0pt}ACHAR\ cs\ c{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ True{\isachardoublequoteclose}\isanewline |
|
291 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}good\ {\isacharparenleft}{\kern0pt}AALTs\ cs\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ False{\isachardoublequoteclose}\isanewline |
|
292 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}good\ {\isacharparenleft}{\kern0pt}AALTs\ cs\ {\isacharbrackleft}{\kern0pt}r{\isacharbrackright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ False{\isachardoublequoteclose}\isanewline |
|
293 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}good\ {\isacharparenleft}{\kern0pt}AALTs\ cs\ {\isacharparenleft}{\kern0pt}r{\isadigit{1}}{\isacharhash}{\kern0pt}r{\isadigit{2}}{\isacharhash}{\kern0pt}rs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isacharparenleft}{\kern0pt}{\isasymforall}r{\isacharprime}{\kern0pt}\ {\isasymin}\ set\ {\isacharparenleft}{\kern0pt}r{\isadigit{1}}{\isacharhash}{\kern0pt}r{\isadigit{2}}{\isacharhash}{\kern0pt}rs{\isacharparenright}{\kern0pt}{\isachardot}{\kern0pt}\ good\ r{\isacharprime}{\kern0pt}\ {\isasymand}\ nonalt\ r{\isacharprime}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
294 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}good\ {\isacharparenleft}{\kern0pt}ASEQ\ {\isacharunderscore}{\kern0pt}\ AZERO\ {\isacharunderscore}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ False{\isachardoublequoteclose}\isanewline |
|
295 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}good\ {\isacharparenleft}{\kern0pt}ASEQ\ {\isacharunderscore}{\kern0pt}\ {\isacharparenleft}{\kern0pt}AONE\ {\isacharunderscore}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharunderscore}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ False{\isachardoublequoteclose}\isanewline |
|
296 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}good\ {\isacharparenleft}{\kern0pt}ASEQ\ {\isacharunderscore}{\kern0pt}\ {\isacharunderscore}{\kern0pt}\ AZERO{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ False{\isachardoublequoteclose}\isanewline |
|
297 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}good\ {\isacharparenleft}{\kern0pt}ASEQ\ cs\ r{\isadigit{1}}\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isacharparenleft}{\kern0pt}good\ r{\isadigit{1}}\ {\isasymand}\ good\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
298 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}good\ {\isacharparenleft}{\kern0pt}ASTAR\ cs\ r{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ True{\isachardoublequoteclose}\isanewline |
|
299 \isanewline |
|
300 \isanewline |
|
301 \isanewline |
|
302 \isanewline |
|
303 \isacommand{fun}\isamarkupfalse% |
|
304 \ fuse\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}bit\ list\ {\isasymRightarrow}\ arexp\ {\isasymRightarrow}\ arexp{\isachardoublequoteclose}\ \isakeyword{where}\isanewline |
|
305 \ \ {\isachardoublequoteopen}fuse\ bs\ AZERO\ {\isacharequal}{\kern0pt}\ AZERO{\isachardoublequoteclose}\isanewline |
|
306 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}fuse\ bs\ {\isacharparenleft}{\kern0pt}AONE\ cs{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ AONE\ {\isacharparenleft}{\kern0pt}bs\ {\isacharat}{\kern0pt}\ cs{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\ \isanewline |
|
307 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}fuse\ bs\ {\isacharparenleft}{\kern0pt}ACHAR\ cs\ c{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ ACHAR\ {\isacharparenleft}{\kern0pt}bs\ {\isacharat}{\kern0pt}\ cs{\isacharparenright}{\kern0pt}\ c{\isachardoublequoteclose}\isanewline |
|
308 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}fuse\ bs\ {\isacharparenleft}{\kern0pt}AALTs\ cs\ rs{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ AALTs\ {\isacharparenleft}{\kern0pt}bs\ {\isacharat}{\kern0pt}\ cs{\isacharparenright}{\kern0pt}\ rs{\isachardoublequoteclose}\isanewline |
|
309 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}fuse\ bs\ {\isacharparenleft}{\kern0pt}ASEQ\ cs\ r{\isadigit{1}}\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ ASEQ\ {\isacharparenleft}{\kern0pt}bs\ {\isacharat}{\kern0pt}\ cs{\isacharparenright}{\kern0pt}\ r{\isadigit{1}}\ r{\isadigit{2}}{\isachardoublequoteclose}\isanewline |
|
310 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}fuse\ bs\ {\isacharparenleft}{\kern0pt}ASTAR\ cs\ r{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ ASTAR\ {\isacharparenleft}{\kern0pt}bs\ {\isacharat}{\kern0pt}\ cs{\isacharparenright}{\kern0pt}\ r{\isachardoublequoteclose}\isanewline |
|
311 \isanewline |
|
312 \isacommand{lemma}\isamarkupfalse% |
|
313 \ fuse{\isacharunderscore}{\kern0pt}append{\isacharcolon}{\kern0pt}\isanewline |
|
314 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}fuse\ {\isacharparenleft}{\kern0pt}bs{\isadigit{1}}\ {\isacharat}{\kern0pt}\ bs{\isadigit{2}}{\isacharparenright}{\kern0pt}\ r\ {\isacharequal}{\kern0pt}\ fuse\ bs{\isadigit{1}}\ {\isacharparenleft}{\kern0pt}fuse\ bs{\isadigit{2}}\ r{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
315 % |
|
316 \isadelimproof |
|
317 \ \ % |
|
318 \endisadelimproof |
|
319 % |
|
320 \isatagproof |
|
321 \isacommand{apply}\isamarkupfalse% |
|
322 {\isacharparenleft}{\kern0pt}induct\ r{\isacharparenright}{\kern0pt}\isanewline |
|
323 \ \ \isacommand{apply}\isamarkupfalse% |
|
324 {\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline |
|
325 \ \ \isacommand{done}\isamarkupfalse% |
|
326 % |
|
327 \endisatagproof |
|
328 {\isafoldproof}% |
|
329 % |
|
330 \isadelimproof |
|
331 \isanewline |
|
332 % |
|
333 \endisadelimproof |
|
334 \isanewline |
|
335 \isanewline |
|
336 \isacommand{fun}\isamarkupfalse% |
|
337 \ intern\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}rexp\ {\isasymRightarrow}\ arexp{\isachardoublequoteclose}\ \isakeyword{where}\isanewline |
|
338 \ \ {\isachardoublequoteopen}intern\ ZERO\ {\isacharequal}{\kern0pt}\ AZERO{\isachardoublequoteclose}\isanewline |
|
339 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}intern\ ONE\ {\isacharequal}{\kern0pt}\ AONE\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
340 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}intern\ {\isacharparenleft}{\kern0pt}CH\ c{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ ACHAR\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ c{\isachardoublequoteclose}\isanewline |
|
341 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}intern\ {\isacharparenleft}{\kern0pt}ALT\ r{\isadigit{1}}\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ AALT\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}fuse\ {\isacharbrackleft}{\kern0pt}Z{\isacharbrackright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}intern\ r{\isadigit{1}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ \isanewline |
|
342 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {\isacharparenleft}{\kern0pt}fuse\ {\isacharbrackleft}{\kern0pt}S{\isacharbrackright}{\kern0pt}\ \ {\isacharparenleft}{\kern0pt}intern\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
343 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}intern\ {\isacharparenleft}{\kern0pt}SEQ\ r{\isadigit{1}}\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ ASEQ\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}intern\ r{\isadigit{1}}{\isacharparenright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}intern\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
344 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}intern\ {\isacharparenleft}{\kern0pt}STAR\ r{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ ASTAR\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}intern\ r{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
345 \isanewline |
|
346 \isanewline |
|
347 \isacommand{fun}\isamarkupfalse% |
|
348 \ retrieve\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}arexp\ {\isasymRightarrow}\ val\ {\isasymRightarrow}\ bit\ list{\isachardoublequoteclose}\ \isakeyword{where}\isanewline |
|
349 \ \ {\isachardoublequoteopen}retrieve\ {\isacharparenleft}{\kern0pt}AONE\ bs{\isacharparenright}{\kern0pt}\ Void\ {\isacharequal}{\kern0pt}\ bs{\isachardoublequoteclose}\isanewline |
|
350 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}retrieve\ {\isacharparenleft}{\kern0pt}ACHAR\ bs\ c{\isacharparenright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}Char\ d{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ bs{\isachardoublequoteclose}\isanewline |
|
351 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}retrieve\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharbrackleft}{\kern0pt}r{\isacharbrackright}{\kern0pt}{\isacharparenright}{\kern0pt}\ v\ {\isacharequal}{\kern0pt}\ bs\ {\isacharat}{\kern0pt}\ retrieve\ r\ v{\isachardoublequoteclose}\ \isanewline |
|
352 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}retrieve\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}r{\isacharhash}{\kern0pt}rs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}Left\ v{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ bs\ {\isacharat}{\kern0pt}\ retrieve\ r\ v{\isachardoublequoteclose}\isanewline |
|
353 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}retrieve\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}r{\isacharhash}{\kern0pt}rs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}Right\ v{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ bs\ {\isacharat}{\kern0pt}\ retrieve\ {\isacharparenleft}{\kern0pt}AALTs\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ rs{\isacharparenright}{\kern0pt}\ v{\isachardoublequoteclose}\isanewline |
|
354 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}retrieve\ {\isacharparenleft}{\kern0pt}ASEQ\ bs\ r{\isadigit{1}}\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}Seq\ v{\isadigit{1}}\ v{\isadigit{2}}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ bs\ {\isacharat}{\kern0pt}\ retrieve\ r{\isadigit{1}}\ v{\isadigit{1}}\ {\isacharat}{\kern0pt}\ retrieve\ r{\isadigit{2}}\ v{\isadigit{2}}{\isachardoublequoteclose}\isanewline |
|
355 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}retrieve\ {\isacharparenleft}{\kern0pt}ASTAR\ bs\ r{\isacharparenright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}Stars\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ bs\ {\isacharat}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}S{\isacharbrackright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
356 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}retrieve\ {\isacharparenleft}{\kern0pt}ASTAR\ bs\ r{\isacharparenright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}Stars\ {\isacharparenleft}{\kern0pt}v{\isacharhash}{\kern0pt}vs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ \isanewline |
|
357 \ \ \ \ \ bs\ {\isacharat}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}Z{\isacharbrackright}{\kern0pt}\ {\isacharat}{\kern0pt}\ retrieve\ r\ v\ {\isacharat}{\kern0pt}\ retrieve\ {\isacharparenleft}{\kern0pt}ASTAR\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ r{\isacharparenright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}Stars\ vs{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
358 \isanewline |
|
359 \isanewline |
|
360 \isanewline |
|
361 \isacommand{fun}\isamarkupfalse% |
|
362 \isanewline |
|
363 \ bnullable\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}arexp\ {\isasymRightarrow}\ bool{\isachardoublequoteclose}\isanewline |
|
364 \isakeyword{where}\isanewline |
|
365 \ \ {\isachardoublequoteopen}bnullable\ {\isacharparenleft}{\kern0pt}AZERO{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ False{\isachardoublequoteclose}\isanewline |
|
366 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}bnullable\ {\isacharparenleft}{\kern0pt}AONE\ bs{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ True{\isachardoublequoteclose}\isanewline |
|
367 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}bnullable\ {\isacharparenleft}{\kern0pt}ACHAR\ bs\ c{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ False{\isachardoublequoteclose}\isanewline |
|
368 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}bnullable\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isacharparenleft}{\kern0pt}{\isasymexists}r\ {\isasymin}\ set\ rs{\isachardot}{\kern0pt}\ bnullable\ r{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
369 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}bnullable\ {\isacharparenleft}{\kern0pt}ASEQ\ bs\ r{\isadigit{1}}\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isacharparenleft}{\kern0pt}bnullable\ r{\isadigit{1}}\ {\isasymand}\ bnullable\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
370 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}bnullable\ {\isacharparenleft}{\kern0pt}ASTAR\ bs\ r{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ True{\isachardoublequoteclose}\isanewline |
|
371 \isanewline |
|
372 \isacommand{fun}\isamarkupfalse% |
|
373 \ \isanewline |
|
374 \ \ bmkeps\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}arexp\ {\isasymRightarrow}\ bit\ list{\isachardoublequoteclose}\isanewline |
|
375 \isakeyword{where}\isanewline |
|
376 \ \ {\isachardoublequoteopen}bmkeps{\isacharparenleft}{\kern0pt}AONE\ bs{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ bs{\isachardoublequoteclose}\isanewline |
|
377 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}bmkeps{\isacharparenleft}{\kern0pt}ASEQ\ bs\ r{\isadigit{1}}\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ bs\ {\isacharat}{\kern0pt}\ {\isacharparenleft}{\kern0pt}bmkeps\ r{\isadigit{1}}{\isacharparenright}{\kern0pt}\ {\isacharat}{\kern0pt}\ {\isacharparenleft}{\kern0pt}bmkeps\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
378 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}bmkeps{\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharbrackleft}{\kern0pt}r{\isacharbrackright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ bs\ {\isacharat}{\kern0pt}\ {\isacharparenleft}{\kern0pt}bmkeps\ r{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
379 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}bmkeps{\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}r{\isacharhash}{\kern0pt}rs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isacharparenleft}{\kern0pt}if\ bnullable{\isacharparenleft}{\kern0pt}r{\isacharparenright}{\kern0pt}\ then\ bs\ {\isacharat}{\kern0pt}\ {\isacharparenleft}{\kern0pt}bmkeps\ r{\isacharparenright}{\kern0pt}\ else\ {\isacharparenleft}{\kern0pt}bmkeps\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
380 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}bmkeps{\isacharparenleft}{\kern0pt}ASTAR\ bs\ r{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ bs\ {\isacharat}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}S{\isacharbrackright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
381 \isanewline |
|
382 \isanewline |
|
383 \isacommand{fun}\isamarkupfalse% |
|
384 \isanewline |
|
385 \ bder\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}char\ {\isasymRightarrow}\ arexp\ {\isasymRightarrow}\ arexp{\isachardoublequoteclose}\isanewline |
|
386 \isakeyword{where}\isanewline |
|
387 \ \ {\isachardoublequoteopen}bder\ c\ {\isacharparenleft}{\kern0pt}AZERO{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ AZERO{\isachardoublequoteclose}\isanewline |
|
388 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}bder\ c\ {\isacharparenleft}{\kern0pt}AONE\ bs{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ AZERO{\isachardoublequoteclose}\isanewline |
|
389 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}bder\ c\ {\isacharparenleft}{\kern0pt}ACHAR\ bs\ d{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isacharparenleft}{\kern0pt}if\ c\ {\isacharequal}{\kern0pt}\ d\ then\ AONE\ bs\ else\ AZERO{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
390 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}bder\ c\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ AALTs\ bs\ {\isacharparenleft}{\kern0pt}map\ {\isacharparenleft}{\kern0pt}bder\ c{\isacharparenright}{\kern0pt}\ rs{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
391 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}bder\ c\ {\isacharparenleft}{\kern0pt}ASEQ\ bs\ r{\isadigit{1}}\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ \isanewline |
|
392 \ \ \ \ \ {\isacharparenleft}{\kern0pt}if\ bnullable\ r{\isadigit{1}}\isanewline |
|
393 \ \ \ \ \ \ then\ AALT\ bs\ {\isacharparenleft}{\kern0pt}ASEQ\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}bder\ c\ r{\isadigit{1}}{\isacharparenright}{\kern0pt}\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}fuse\ {\isacharparenleft}{\kern0pt}bmkeps\ r{\isadigit{1}}{\isacharparenright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}bder\ c\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline |
|
394 \ \ \ \ \ \ else\ ASEQ\ bs\ {\isacharparenleft}{\kern0pt}bder\ c\ r{\isadigit{1}}{\isacharparenright}{\kern0pt}\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
395 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}bder\ c\ {\isacharparenleft}{\kern0pt}ASTAR\ bs\ r{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ ASEQ\ bs\ {\isacharparenleft}{\kern0pt}fuse\ {\isacharbrackleft}{\kern0pt}Z{\isacharbrackright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}bder\ c\ r{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}ASTAR\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ r{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
396 \isanewline |
|
397 \isanewline |
|
398 \isacommand{fun}\isamarkupfalse% |
|
399 \ \isanewline |
|
400 \ \ bders\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}arexp\ {\isasymRightarrow}\ string\ {\isasymRightarrow}\ arexp{\isachardoublequoteclose}\isanewline |
|
401 \isakeyword{where}\isanewline |
|
402 \ \ {\isachardoublequoteopen}bders\ r\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ r{\isachardoublequoteclose}\isanewline |
|
403 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}bders\ r\ {\isacharparenleft}{\kern0pt}c{\isacharhash}{\kern0pt}s{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ bders\ {\isacharparenleft}{\kern0pt}bder\ c\ r{\isacharparenright}{\kern0pt}\ s{\isachardoublequoteclose}\isanewline |
|
404 \isanewline |
|
405 \isacommand{lemma}\isamarkupfalse% |
|
406 \ bders{\isacharunderscore}{\kern0pt}append{\isacharcolon}{\kern0pt}\isanewline |
|
407 \ \ {\isachardoublequoteopen}bders\ r\ {\isacharparenleft}{\kern0pt}s{\isadigit{1}}\ {\isacharat}{\kern0pt}\ s{\isadigit{2}}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ bders\ {\isacharparenleft}{\kern0pt}bders\ r\ s{\isadigit{1}}{\isacharparenright}{\kern0pt}\ s{\isadigit{2}}{\isachardoublequoteclose}\isanewline |
|
408 % |
|
409 \isadelimproof |
|
410 \ \ % |
|
411 \endisadelimproof |
|
412 % |
|
413 \isatagproof |
|
414 \isacommand{apply}\isamarkupfalse% |
|
415 {\isacharparenleft}{\kern0pt}induct\ s{\isadigit{1}}\ arbitrary{\isacharcolon}{\kern0pt}\ r\ s{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline |
|
416 \ \ \isacommand{apply}\isamarkupfalse% |
|
417 {\isacharparenleft}{\kern0pt}simp{\isacharunderscore}{\kern0pt}all{\isacharparenright}{\kern0pt}\isanewline |
|
418 \ \ \isacommand{done}\isamarkupfalse% |
|
419 % |
|
420 \endisatagproof |
|
421 {\isafoldproof}% |
|
422 % |
|
423 \isadelimproof |
|
424 \isanewline |
|
425 % |
|
426 \endisadelimproof |
|
427 \isanewline |
|
428 \isacommand{lemma}\isamarkupfalse% |
|
429 \ bnullable{\isacharunderscore}{\kern0pt}correctness{\isacharcolon}{\kern0pt}\isanewline |
|
430 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}nullable\ {\isacharparenleft}{\kern0pt}erase\ r{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ bnullable\ r{\isachardoublequoteclose}\isanewline |
|
431 % |
|
432 \isadelimproof |
|
433 \ \ % |
|
434 \endisadelimproof |
|
435 % |
|
436 \isatagproof |
|
437 \isacommand{apply}\isamarkupfalse% |
|
438 {\isacharparenleft}{\kern0pt}induct\ r\ rule{\isacharcolon}{\kern0pt}\ erase{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline |
|
439 \ \ \isacommand{apply}\isamarkupfalse% |
|
440 {\isacharparenleft}{\kern0pt}simp{\isacharunderscore}{\kern0pt}all{\isacharparenright}{\kern0pt}\isanewline |
|
441 \ \ \isacommand{done}\isamarkupfalse% |
|
442 % |
|
443 \endisatagproof |
|
444 {\isafoldproof}% |
|
445 % |
|
446 \isadelimproof |
|
447 \isanewline |
|
448 % |
|
449 \endisadelimproof |
|
450 \isanewline |
|
451 \isacommand{lemma}\isamarkupfalse% |
|
452 \ erase{\isacharunderscore}{\kern0pt}fuse{\isacharcolon}{\kern0pt}\isanewline |
|
453 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}erase\ {\isacharparenleft}{\kern0pt}fuse\ bs\ r{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ erase\ r{\isachardoublequoteclose}\isanewline |
|
454 % |
|
455 \isadelimproof |
|
456 \ \ % |
|
457 \endisadelimproof |
|
458 % |
|
459 \isatagproof |
|
460 \isacommand{apply}\isamarkupfalse% |
|
461 {\isacharparenleft}{\kern0pt}induct\ r\ rule{\isacharcolon}{\kern0pt}\ erase{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline |
|
462 \ \ \isacommand{apply}\isamarkupfalse% |
|
463 {\isacharparenleft}{\kern0pt}simp{\isacharunderscore}{\kern0pt}all{\isacharparenright}{\kern0pt}\isanewline |
|
464 \ \ \isacommand{done}\isamarkupfalse% |
|
465 % |
|
466 \endisatagproof |
|
467 {\isafoldproof}% |
|
468 % |
|
469 \isadelimproof |
|
470 \isanewline |
|
471 % |
|
472 \endisadelimproof |
|
473 \isanewline |
|
474 \isacommand{thm}\isamarkupfalse% |
|
475 \ Posix{\isachardot}{\kern0pt}induct\isanewline |
|
476 \isanewline |
|
477 \isacommand{lemma}\isamarkupfalse% |
|
478 \ erase{\isacharunderscore}{\kern0pt}intern\ {\isacharbrackleft}{\kern0pt}simp{\isacharbrackright}{\kern0pt}{\isacharcolon}{\kern0pt}\isanewline |
|
479 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}erase\ {\isacharparenleft}{\kern0pt}intern\ r{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ r{\isachardoublequoteclose}\isanewline |
|
480 % |
|
481 \isadelimproof |
|
482 \ \ % |
|
483 \endisadelimproof |
|
484 % |
|
485 \isatagproof |
|
486 \isacommand{apply}\isamarkupfalse% |
|
487 {\isacharparenleft}{\kern0pt}induct\ r{\isacharparenright}{\kern0pt}\isanewline |
|
488 \ \ \isacommand{apply}\isamarkupfalse% |
|
489 {\isacharparenleft}{\kern0pt}simp{\isacharunderscore}{\kern0pt}all\ add{\isacharcolon}{\kern0pt}\ erase{\isacharunderscore}{\kern0pt}fuse{\isacharparenright}{\kern0pt}\isanewline |
|
490 \ \ \isacommand{done}\isamarkupfalse% |
|
491 % |
|
492 \endisatagproof |
|
493 {\isafoldproof}% |
|
494 % |
|
495 \isadelimproof |
|
496 \isanewline |
|
497 % |
|
498 \endisadelimproof |
|
499 \isanewline |
|
500 \isacommand{lemma}\isamarkupfalse% |
|
501 \ erase{\isacharunderscore}{\kern0pt}bder\ {\isacharbrackleft}{\kern0pt}simp{\isacharbrackright}{\kern0pt}{\isacharcolon}{\kern0pt}\isanewline |
|
502 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}erase\ {\isacharparenleft}{\kern0pt}bder\ a\ r{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ der\ a\ {\isacharparenleft}{\kern0pt}erase\ r{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
503 % |
|
504 \isadelimproof |
|
505 \ \ % |
|
506 \endisadelimproof |
|
507 % |
|
508 \isatagproof |
|
509 \isacommand{apply}\isamarkupfalse% |
|
510 {\isacharparenleft}{\kern0pt}induct\ r\ rule{\isacharcolon}{\kern0pt}\ erase{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline |
|
511 \ \ \isacommand{apply}\isamarkupfalse% |
|
512 {\isacharparenleft}{\kern0pt}simp{\isacharunderscore}{\kern0pt}all\ add{\isacharcolon}{\kern0pt}\ erase{\isacharunderscore}{\kern0pt}fuse\ bnullable{\isacharunderscore}{\kern0pt}correctness{\isacharparenright}{\kern0pt}\isanewline |
|
513 \ \ \isacommand{done}\isamarkupfalse% |
|
514 % |
|
515 \endisatagproof |
|
516 {\isafoldproof}% |
|
517 % |
|
518 \isadelimproof |
|
519 \isanewline |
|
520 % |
|
521 \endisadelimproof |
|
522 \isanewline |
|
523 \isacommand{lemma}\isamarkupfalse% |
|
524 \ erase{\isacharunderscore}{\kern0pt}bders\ {\isacharbrackleft}{\kern0pt}simp{\isacharbrackright}{\kern0pt}{\isacharcolon}{\kern0pt}\isanewline |
|
525 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}erase\ {\isacharparenleft}{\kern0pt}bders\ r\ s{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ ders\ s\ {\isacharparenleft}{\kern0pt}erase\ r{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
526 % |
|
527 \isadelimproof |
|
528 \ \ % |
|
529 \endisadelimproof |
|
530 % |
|
531 \isatagproof |
|
532 \isacommand{apply}\isamarkupfalse% |
|
533 {\isacharparenleft}{\kern0pt}induct\ s\ arbitrary{\isacharcolon}{\kern0pt}\ r\ {\isacharparenright}{\kern0pt}\isanewline |
|
534 \ \ \isacommand{apply}\isamarkupfalse% |
|
535 {\isacharparenleft}{\kern0pt}simp{\isacharunderscore}{\kern0pt}all{\isacharparenright}{\kern0pt}\isanewline |
|
536 \ \ \isacommand{done}\isamarkupfalse% |
|
537 % |
|
538 \endisatagproof |
|
539 {\isafoldproof}% |
|
540 % |
|
541 \isadelimproof |
|
542 \isanewline |
|
543 % |
|
544 \endisadelimproof |
|
545 \isanewline |
|
546 \isacommand{lemma}\isamarkupfalse% |
|
547 \ retrieve{\isacharunderscore}{\kern0pt}encode{\isacharunderscore}{\kern0pt}STARS{\isacharcolon}{\kern0pt}\isanewline |
|
548 \ \ \isakeyword{assumes}\ {\isachardoublequoteopen}{\isasymforall}v{\isasymin}set\ vs{\isachardot}{\kern0pt}\ {\isasymTurnstile}\ v\ {\isacharcolon}{\kern0pt}\ r\ {\isasymand}\ code\ v\ {\isacharequal}{\kern0pt}\ retrieve\ {\isacharparenleft}{\kern0pt}intern\ r{\isacharparenright}{\kern0pt}\ v{\isachardoublequoteclose}\isanewline |
|
549 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}code\ {\isacharparenleft}{\kern0pt}Stars\ vs{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ retrieve\ {\isacharparenleft}{\kern0pt}ASTAR\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}intern\ r{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}Stars\ vs{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
550 % |
|
551 \isadelimproof |
|
552 \ \ % |
|
553 \endisadelimproof |
|
554 % |
|
555 \isatagproof |
|
556 \isacommand{using}\isamarkupfalse% |
|
557 \ assms\isanewline |
|
558 \ \ \isacommand{apply}\isamarkupfalse% |
|
559 {\isacharparenleft}{\kern0pt}induct\ vs{\isacharparenright}{\kern0pt}\isanewline |
|
560 \ \ \isacommand{apply}\isamarkupfalse% |
|
561 {\isacharparenleft}{\kern0pt}simp{\isacharunderscore}{\kern0pt}all{\isacharparenright}{\kern0pt}\isanewline |
|
562 \ \ \isacommand{done}\isamarkupfalse% |
|
563 % |
|
564 \endisatagproof |
|
565 {\isafoldproof}% |
|
566 % |
|
567 \isadelimproof |
|
568 \isanewline |
|
569 % |
|
570 \endisadelimproof |
|
571 \isanewline |
|
572 \isanewline |
|
573 \isacommand{lemma}\isamarkupfalse% |
|
574 \ retrieve{\isacharunderscore}{\kern0pt}fuse{\isadigit{2}}{\isacharcolon}{\kern0pt}\isanewline |
|
575 \ \ \isakeyword{assumes}\ {\isachardoublequoteopen}{\isasymTurnstile}\ v\ {\isacharcolon}{\kern0pt}\ {\isacharparenleft}{\kern0pt}erase\ r{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
576 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}retrieve\ {\isacharparenleft}{\kern0pt}fuse\ bs\ r{\isacharparenright}{\kern0pt}\ v\ {\isacharequal}{\kern0pt}\ bs\ {\isacharat}{\kern0pt}\ retrieve\ r\ v{\isachardoublequoteclose}\isanewline |
|
577 % |
|
578 \isadelimproof |
|
579 \ \ % |
|
580 \endisadelimproof |
|
581 % |
|
582 \isatagproof |
|
583 \isacommand{using}\isamarkupfalse% |
|
584 \ assms\isanewline |
|
585 \ \ \isacommand{apply}\isamarkupfalse% |
|
586 {\isacharparenleft}{\kern0pt}induct\ r\ arbitrary{\isacharcolon}{\kern0pt}\ v\ bs{\isacharparenright}{\kern0pt}\isanewline |
|
587 \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
588 {\isacharparenleft}{\kern0pt}auto\ elim{\isacharcolon}{\kern0pt}\ Prf{\isacharunderscore}{\kern0pt}elims{\isacharparenright}{\kern0pt}{\isacharbrackleft}{\kern0pt}{\isadigit{4}}{\isacharbrackright}{\kern0pt}\isanewline |
|
589 \ \ \ \isacommand{defer}\isamarkupfalse% |
|
590 \isanewline |
|
591 \ \ \isacommand{using}\isamarkupfalse% |
|
592 \ retrieve{\isacharunderscore}{\kern0pt}encode{\isacharunderscore}{\kern0pt}STARS\isanewline |
|
593 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
594 {\isacharparenleft}{\kern0pt}auto\ elim{\isacharbang}{\kern0pt}{\isacharcolon}{\kern0pt}\ Prf{\isacharunderscore}{\kern0pt}elims{\isacharparenright}{\kern0pt}{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
595 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
596 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ vs{\isacharparenright}{\kern0pt}\isanewline |
|
597 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
598 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
599 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
600 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
601 \ \ \isanewline |
|
602 \ \ \isacommand{apply}\isamarkupfalse% |
|
603 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
604 \ \ \isacommand{apply}\isamarkupfalse% |
|
605 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ x{\isadigit{2}}a{\isacharparenright}{\kern0pt}\isanewline |
|
606 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
607 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
608 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
609 {\isacharparenleft}{\kern0pt}auto\ elim{\isacharbang}{\kern0pt}{\isacharcolon}{\kern0pt}\ Prf{\isacharunderscore}{\kern0pt}elims{\isacharparenright}{\kern0pt}{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
610 \ \ \isacommand{apply}\isamarkupfalse% |
|
611 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
612 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
613 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ list{\isacharparenright}{\kern0pt}\isanewline |
|
614 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
615 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
616 \ \ \isacommand{apply}\isamarkupfalse% |
|
617 {\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline |
|
618 \ \ \isacommand{apply}\isamarkupfalse% |
|
619 {\isacharparenleft}{\kern0pt}auto\ elim{\isacharbang}{\kern0pt}{\isacharcolon}{\kern0pt}\ Prf{\isacharunderscore}{\kern0pt}elims{\isacharparenright}{\kern0pt}{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
620 \ \ \isacommand{done}\isamarkupfalse% |
|
621 % |
|
622 \endisatagproof |
|
623 {\isafoldproof}% |
|
624 % |
|
625 \isadelimproof |
|
626 \isanewline |
|
627 % |
|
628 \endisadelimproof |
|
629 \isanewline |
|
630 \isacommand{lemma}\isamarkupfalse% |
|
631 \ retrieve{\isacharunderscore}{\kern0pt}fuse{\isacharcolon}{\kern0pt}\isanewline |
|
632 \ \ \isakeyword{assumes}\ {\isachardoublequoteopen}{\isasymTurnstile}\ v\ {\isacharcolon}{\kern0pt}\ r{\isachardoublequoteclose}\isanewline |
|
633 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}retrieve\ {\isacharparenleft}{\kern0pt}fuse\ bs\ {\isacharparenleft}{\kern0pt}intern\ r{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ v\ {\isacharequal}{\kern0pt}\ bs\ {\isacharat}{\kern0pt}\ retrieve\ {\isacharparenleft}{\kern0pt}intern\ r{\isacharparenright}{\kern0pt}\ v{\isachardoublequoteclose}\isanewline |
|
634 % |
|
635 \isadelimproof |
|
636 \ \ % |
|
637 \endisadelimproof |
|
638 % |
|
639 \isatagproof |
|
640 \isacommand{using}\isamarkupfalse% |
|
641 \ assms\ \isanewline |
|
642 \ \ \isacommand{by}\isamarkupfalse% |
|
643 \ {\isacharparenleft}{\kern0pt}simp{\isacharunderscore}{\kern0pt}all\ add{\isacharcolon}{\kern0pt}\ retrieve{\isacharunderscore}{\kern0pt}fuse{\isadigit{2}}{\isacharparenright}{\kern0pt}% |
|
644 \endisatagproof |
|
645 {\isafoldproof}% |
|
646 % |
|
647 \isadelimproof |
|
648 \isanewline |
|
649 % |
|
650 \endisadelimproof |
|
651 \isanewline |
|
652 \isanewline |
|
653 \isacommand{lemma}\isamarkupfalse% |
|
654 \ retrieve{\isacharunderscore}{\kern0pt}code{\isacharcolon}{\kern0pt}\isanewline |
|
655 \ \ \isakeyword{assumes}\ {\isachardoublequoteopen}{\isasymTurnstile}\ v\ {\isacharcolon}{\kern0pt}\ r{\isachardoublequoteclose}\isanewline |
|
656 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}code\ v\ {\isacharequal}{\kern0pt}\ retrieve\ {\isacharparenleft}{\kern0pt}intern\ r{\isacharparenright}{\kern0pt}\ v{\isachardoublequoteclose}\isanewline |
|
657 % |
|
658 \isadelimproof |
|
659 \ \ % |
|
660 \endisadelimproof |
|
661 % |
|
662 \isatagproof |
|
663 \isacommand{using}\isamarkupfalse% |
|
664 \ assms\isanewline |
|
665 \ \ \isacommand{apply}\isamarkupfalse% |
|
666 {\isacharparenleft}{\kern0pt}induct\ v\ r\ {\isacharparenright}{\kern0pt}\isanewline |
|
667 \ \ \isacommand{apply}\isamarkupfalse% |
|
668 {\isacharparenleft}{\kern0pt}simp{\isacharunderscore}{\kern0pt}all\ add{\isacharcolon}{\kern0pt}\ retrieve{\isacharunderscore}{\kern0pt}fuse\ retrieve{\isacharunderscore}{\kern0pt}encode{\isacharunderscore}{\kern0pt}STARS{\isacharparenright}{\kern0pt}\isanewline |
|
669 \ \ \isacommand{done}\isamarkupfalse% |
|
670 % |
|
671 \endisatagproof |
|
672 {\isafoldproof}% |
|
673 % |
|
674 \isadelimproof |
|
675 \isanewline |
|
676 % |
|
677 \endisadelimproof |
|
678 \isanewline |
|
679 \isanewline |
|
680 \isacommand{lemma}\isamarkupfalse% |
|
681 \ bnullable{\isacharunderscore}{\kern0pt}Hdbmkeps{\isacharunderscore}{\kern0pt}Hd{\isacharcolon}{\kern0pt}\isanewline |
|
682 \ \ \isakeyword{assumes}\ {\isachardoublequoteopen}bnullable\ a{\isachardoublequoteclose}\ \isanewline |
|
683 \ \ \isakeyword{shows}\ \ {\isachardoublequoteopen}bmkeps\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}a\ {\isacharhash}{\kern0pt}\ rs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ bs\ {\isacharat}{\kern0pt}\ {\isacharparenleft}{\kern0pt}bmkeps\ a{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
684 % |
|
685 \isadelimproof |
|
686 \ \ % |
|
687 \endisadelimproof |
|
688 % |
|
689 \isatagproof |
|
690 \isacommand{using}\isamarkupfalse% |
|
691 \ assms\isanewline |
|
692 \ \ \isacommand{by}\isamarkupfalse% |
|
693 \ {\isacharparenleft}{\kern0pt}metis\ bmkeps{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{3}}{\isacharparenright}{\kern0pt}\ bmkeps{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{4}}{\isacharparenright}{\kern0pt}\ list{\isachardot}{\kern0pt}exhaust{\isacharparenright}{\kern0pt}% |
|
694 \endisatagproof |
|
695 {\isafoldproof}% |
|
696 % |
|
697 \isadelimproof |
|
698 \isanewline |
|
699 % |
|
700 \endisadelimproof |
|
701 \isanewline |
|
702 \isacommand{lemma}\isamarkupfalse% |
|
703 \ r{\isadigit{1}}{\isacharcolon}{\kern0pt}\isanewline |
|
704 \ \ \isakeyword{assumes}\ {\isachardoublequoteopen}{\isasymnot}\ bnullable\ a{\isachardoublequoteclose}\ {\isachardoublequoteopen}bnullable\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
705 \ \ \isakeyword{shows}\ \ {\isachardoublequoteopen}bmkeps\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}a\ {\isacharhash}{\kern0pt}\ rs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ bmkeps\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
706 % |
|
707 \isadelimproof |
|
708 \ \ % |
|
709 \endisadelimproof |
|
710 % |
|
711 \isatagproof |
|
712 \isacommand{using}\isamarkupfalse% |
|
713 \ assms\isanewline |
|
714 \ \ \isacommand{apply}\isamarkupfalse% |
|
715 {\isacharparenleft}{\kern0pt}induct\ rs{\isacharparenright}{\kern0pt}\isanewline |
|
716 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
717 {\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline |
|
718 \ \ \isacommand{done}\isamarkupfalse% |
|
719 % |
|
720 \endisatagproof |
|
721 {\isafoldproof}% |
|
722 % |
|
723 \isadelimproof |
|
724 \isanewline |
|
725 % |
|
726 \endisadelimproof |
|
727 \isanewline |
|
728 \isacommand{lemma}\isamarkupfalse% |
|
729 \ r{\isadigit{2}}{\isacharcolon}{\kern0pt}\isanewline |
|
730 \ \ \isakeyword{assumes}\ {\isachardoublequoteopen}x\ {\isasymin}\ set\ rs{\isachardoublequoteclose}\ {\isachardoublequoteopen}bnullable\ x{\isachardoublequoteclose}\isanewline |
|
731 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}bnullable\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
732 % |
|
733 \isadelimproof |
|
734 \ \ % |
|
735 \endisadelimproof |
|
736 % |
|
737 \isatagproof |
|
738 \isacommand{using}\isamarkupfalse% |
|
739 \ assms\isanewline |
|
740 \ \ \isacommand{apply}\isamarkupfalse% |
|
741 {\isacharparenleft}{\kern0pt}induct\ rs{\isacharparenright}{\kern0pt}\isanewline |
|
742 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
743 {\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline |
|
744 \ \ \isacommand{done}\isamarkupfalse% |
|
745 % |
|
746 \endisatagproof |
|
747 {\isafoldproof}% |
|
748 % |
|
749 \isadelimproof |
|
750 \isanewline |
|
751 % |
|
752 \endisadelimproof |
|
753 \isanewline |
|
754 \isacommand{lemma}\isamarkupfalse% |
|
755 \ \ r{\isadigit{3}}{\isacharcolon}{\kern0pt}\isanewline |
|
756 \ \ \isakeyword{assumes}\ {\isachardoublequoteopen}{\isasymnot}\ bnullable\ r{\isachardoublequoteclose}\ \isanewline |
|
757 \ \ \ \ \ \ \ \ \ \ {\isachardoublequoteopen}\ {\isasymexists}\ x\ {\isasymin}\ set\ rs{\isachardot}{\kern0pt}\ bnullable\ x{\isachardoublequoteclose}\isanewline |
|
758 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}retrieve\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isacharparenright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}mkeps\ {\isacharparenleft}{\kern0pt}erase\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\isanewline |
|
759 \ \ \ \ \ \ \ \ \ retrieve\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}r\ {\isacharhash}{\kern0pt}\ rs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}mkeps\ {\isacharparenleft}{\kern0pt}erase\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}r\ {\isacharhash}{\kern0pt}\ rs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
760 % |
|
761 \isadelimproof |
|
762 \ \ % |
|
763 \endisadelimproof |
|
764 % |
|
765 \isatagproof |
|
766 \isacommand{using}\isamarkupfalse% |
|
767 \ assms\isanewline |
|
768 \ \ \isacommand{apply}\isamarkupfalse% |
|
769 {\isacharparenleft}{\kern0pt}induct\ rs\ arbitrary{\isacharcolon}{\kern0pt}\ r\ bs{\isacharparenright}{\kern0pt}\isanewline |
|
770 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
771 {\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
772 \ \ \isacommand{apply}\isamarkupfalse% |
|
773 {\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline |
|
774 \ \ \isacommand{using}\isamarkupfalse% |
|
775 \ bnullable{\isacharunderscore}{\kern0pt}correctness\ \isacommand{apply}\isamarkupfalse% |
|
776 \ blast\isanewline |
|
777 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
778 {\isacharparenleft}{\kern0pt}auto\ simp\ add{\isacharcolon}{\kern0pt}\ bnullable{\isacharunderscore}{\kern0pt}correctness\ mkeps{\isacharunderscore}{\kern0pt}nullable\ retrieve{\isacharunderscore}{\kern0pt}fuse{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline |
|
779 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
780 {\isacharparenleft}{\kern0pt}subst\ retrieve{\isacharunderscore}{\kern0pt}fuse{\isadigit{2}}{\isacharbrackleft}{\kern0pt}symmetric{\isacharbrackright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline |
|
781 \ \ \isacommand{apply}\isamarkupfalse% |
|
782 \ {\isacharparenleft}{\kern0pt}smt\ bnullable{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{4}}{\isacharparenright}{\kern0pt}\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{5}}{\isacharparenright}{\kern0pt}\ erase{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{6}}{\isacharparenright}{\kern0pt}\ insert{\isacharunderscore}{\kern0pt}iff\ list{\isachardot}{\kern0pt}exhaust\ list{\isachardot}{\kern0pt}set{\isacharparenleft}{\kern0pt}{\isadigit{2}}{\isacharparenright}{\kern0pt}\ mkeps{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{3}}{\isacharparenright}{\kern0pt}\ mkeps{\isacharunderscore}{\kern0pt}nullable{\isacharparenright}{\kern0pt}\isanewline |
|
783 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
784 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
785 \ \ \isacommand{apply}\isamarkupfalse% |
|
786 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bnullable\ a{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
787 \ \ \isacommand{apply}\isamarkupfalse% |
|
788 \ {\isacharparenleft}{\kern0pt}smt\ append{\isacharunderscore}{\kern0pt}Nil{\isadigit{2}}\ bnullable{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{4}}{\isacharparenright}{\kern0pt}\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{5}}{\isacharparenright}{\kern0pt}\ erase{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{6}}{\isacharparenright}{\kern0pt}\ fuse{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{4}}{\isacharparenright}{\kern0pt}\ insert{\isacharunderscore}{\kern0pt}iff\ list{\isachardot}{\kern0pt}exhaust\ list{\isachardot}{\kern0pt}set{\isacharparenleft}{\kern0pt}{\isadigit{2}}{\isacharparenright}{\kern0pt}\ mkeps{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{3}}{\isacharparenright}{\kern0pt}\ mkeps{\isacharunderscore}{\kern0pt}nullable\ retrieve{\isacharunderscore}{\kern0pt}fuse{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline |
|
789 \ \ \isacommand{apply}\isamarkupfalse% |
|
790 {\isacharparenleft}{\kern0pt}drule{\isacharunderscore}{\kern0pt}tac\ x{\isacharequal}{\kern0pt}{\isachardoublequoteopen}a{\isachardoublequoteclose}\ \isakeyword{in}\ meta{\isacharunderscore}{\kern0pt}spec{\isacharparenright}{\kern0pt}\isanewline |
|
791 \ \ \isacommand{apply}\isamarkupfalse% |
|
792 {\isacharparenleft}{\kern0pt}drule{\isacharunderscore}{\kern0pt}tac\ x{\isacharequal}{\kern0pt}{\isachardoublequoteopen}bs{\isachardoublequoteclose}\ \isakeyword{in}\ meta{\isacharunderscore}{\kern0pt}spec{\isacharparenright}{\kern0pt}\isanewline |
|
793 \ \ \isacommand{apply}\isamarkupfalse% |
|
794 {\isacharparenleft}{\kern0pt}drule\ meta{\isacharunderscore}{\kern0pt}mp{\isacharparenright}{\kern0pt}\isanewline |
|
795 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
796 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
797 \ \ \isacommand{apply}\isamarkupfalse% |
|
798 {\isacharparenleft}{\kern0pt}drule\ meta{\isacharunderscore}{\kern0pt}mp{\isacharparenright}{\kern0pt}\isanewline |
|
799 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
800 {\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline |
|
801 \ \ \isacommand{apply}\isamarkupfalse% |
|
802 {\isacharparenleft}{\kern0pt}subst\ retrieve{\isacharunderscore}{\kern0pt}fuse{\isadigit{2}}{\isacharbrackleft}{\kern0pt}symmetric{\isacharbrackright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline |
|
803 \ \ \isacommand{apply}\isamarkupfalse% |
|
804 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ rs{\isacharparenright}{\kern0pt}\isanewline |
|
805 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
806 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
807 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
808 {\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
809 \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
810 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ bnullable{\isacharunderscore}{\kern0pt}correctness{\isacharparenright}{\kern0pt}\isanewline |
|
811 \ \ \isacommand{apply}\isamarkupfalse% |
|
812 \ {\isacharparenleft}{\kern0pt}metis\ append{\isacharunderscore}{\kern0pt}Nil{\isadigit{2}}\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isacharunderscore}{\kern0pt}fuse\ fuse{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{4}}{\isacharparenright}{\kern0pt}\ list{\isachardot}{\kern0pt}set{\isacharunderscore}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isacharparenright}{\kern0pt}\ mkeps{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{3}}{\isacharparenright}{\kern0pt}\ mkeps{\isacharunderscore}{\kern0pt}nullable\ nullable{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{4}}{\isacharparenright}{\kern0pt}\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline |
|
813 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
814 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ bnullable{\isacharunderscore}{\kern0pt}correctness{\isacharparenright}{\kern0pt}\isanewline |
|
815 \ \ \isacommand{apply}\isamarkupfalse% |
|
816 \ {\isacharparenleft}{\kern0pt}metis\ append{\isacharunderscore}{\kern0pt}Nil{\isadigit{2}}\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{6}}{\isacharparenright}{\kern0pt}\ erase{\isacharunderscore}{\kern0pt}fuse\ fuse{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{4}}{\isacharparenright}{\kern0pt}\ list{\isachardot}{\kern0pt}set{\isacharunderscore}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{2}}{\isacharparenright}{\kern0pt}\ mkeps{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{3}}{\isacharparenright}{\kern0pt}\ mkeps{\isacharunderscore}{\kern0pt}nullable\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline |
|
817 \ \ \isacommand{apply}\isamarkupfalse% |
|
818 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
819 \ \ \isacommand{done}\isamarkupfalse% |
|
820 % |
|
821 \endisatagproof |
|
822 {\isafoldproof}% |
|
823 % |
|
824 \isadelimproof |
|
825 \isanewline |
|
826 % |
|
827 \endisadelimproof |
|
828 \isanewline |
|
829 \isanewline |
|
830 \isacommand{lemma}\isamarkupfalse% |
|
831 \ t{\isacharcolon}{\kern0pt}\ \isanewline |
|
832 \ \ \isakeyword{assumes}\ {\isachardoublequoteopen}{\isasymforall}r\ {\isasymin}\ set\ rs{\isachardot}{\kern0pt}\ nullable\ {\isacharparenleft}{\kern0pt}erase\ r{\isacharparenright}{\kern0pt}\ {\isasymlongrightarrow}\ bmkeps\ r\ {\isacharequal}{\kern0pt}\ retrieve\ r\ {\isacharparenleft}{\kern0pt}mkeps\ {\isacharparenleft}{\kern0pt}erase\ r{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\ \isanewline |
|
833 \ \ \ \ \ \ \ \ \ \ {\isachardoublequoteopen}nullable\ {\isacharparenleft}{\kern0pt}erase\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
834 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}\ bmkeps\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ retrieve\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isacharparenright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}mkeps\ {\isacharparenleft}{\kern0pt}erase\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
835 % |
|
836 \isadelimproof |
|
837 \ \ % |
|
838 \endisadelimproof |
|
839 % |
|
840 \isatagproof |
|
841 \isacommand{using}\isamarkupfalse% |
|
842 \ assms\isanewline |
|
843 \ \ \isacommand{apply}\isamarkupfalse% |
|
844 {\isacharparenleft}{\kern0pt}induct\ rs\ arbitrary{\isacharcolon}{\kern0pt}\ bs{\isacharparenright}{\kern0pt}\isanewline |
|
845 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
846 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
847 \ \ \isacommand{apply}\isamarkupfalse% |
|
848 {\isacharparenleft}{\kern0pt}auto\ simp\ add{\isacharcolon}{\kern0pt}\ bnullable{\isacharunderscore}{\kern0pt}correctness{\isacharparenright}{\kern0pt}\isanewline |
|
849 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
850 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ rs{\isacharparenright}{\kern0pt}\isanewline |
|
851 \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
852 {\isacharparenleft}{\kern0pt}auto\ simp\ add{\isacharcolon}{\kern0pt}\ bnullable{\isacharunderscore}{\kern0pt}correctness{\isacharparenright}{\kern0pt}{\isacharbrackleft}{\kern0pt}{\isadigit{2}}{\isacharbrackright}{\kern0pt}\isanewline |
|
853 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
854 {\isacharparenleft}{\kern0pt}subst\ r{\isadigit{1}}{\isacharparenright}{\kern0pt}\isanewline |
|
855 \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
856 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
857 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
858 {\isacharparenleft}{\kern0pt}rule\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline |
|
859 \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
860 {\isacharparenleft}{\kern0pt}assumption{\isacharparenright}{\kern0pt}\isanewline |
|
861 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
862 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
863 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
864 {\isacharparenleft}{\kern0pt}drule{\isacharunderscore}{\kern0pt}tac\ x{\isacharequal}{\kern0pt}{\isachardoublequoteopen}bs{\isachardoublequoteclose}\ \isakeyword{in}\ meta{\isacharunderscore}{\kern0pt}spec{\isacharparenright}{\kern0pt}\isanewline |
|
865 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
866 {\isacharparenleft}{\kern0pt}drule\ meta{\isacharunderscore}{\kern0pt}mp{\isacharparenright}{\kern0pt}\isanewline |
|
867 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
868 {\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
869 \ \ \ \isacommand{prefer}\isamarkupfalse% |
|
870 \ {\isadigit{2}}\isanewline |
|
871 \ \ \isacommand{apply}\isamarkupfalse% |
|
872 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bnullable\ a{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
873 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
874 {\isacharparenleft}{\kern0pt}subst\ bnullable{\isacharunderscore}{\kern0pt}Hdbmkeps{\isacharunderscore}{\kern0pt}Hd{\isacharparenright}{\kern0pt}\isanewline |
|
875 \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
876 \ blast\isanewline |
|
877 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
878 {\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}nullable\ {\isacharparenleft}{\kern0pt}erase\ a{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
879 \ \ \isacommand{prefer}\isamarkupfalse% |
|
880 \ {\isadigit{2}}\isanewline |
|
881 \ \ \isacommand{using}\isamarkupfalse% |
|
882 \ bnullable{\isacharunderscore}{\kern0pt}correctness\ \isacommand{apply}\isamarkupfalse% |
|
883 \ blast\isanewline |
|
884 \ \ \isacommand{apply}\isamarkupfalse% |
|
885 \ {\isacharparenleft}{\kern0pt}metis\ {\isacharparenleft}{\kern0pt}no{\isacharunderscore}{\kern0pt}types{\isacharcomma}{\kern0pt}\ lifting{\isacharparenright}{\kern0pt}\ erase{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{5}}{\isacharparenright}{\kern0pt}\ erase{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{6}}{\isacharparenright}{\kern0pt}\ list{\isachardot}{\kern0pt}exhaust\ mkeps{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{3}}{\isacharparenright}{\kern0pt}\ retrieve{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{3}}{\isacharparenright}{\kern0pt}\ retrieve{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{4}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline |
|
886 \ \ \isacommand{apply}\isamarkupfalse% |
|
887 {\isacharparenleft}{\kern0pt}subst\ r{\isadigit{1}}{\isacharparenright}{\kern0pt}\isanewline |
|
888 \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
889 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
890 \ \ \isacommand{using}\isamarkupfalse% |
|
891 \ r{\isadigit{2}}\ \isacommand{apply}\isamarkupfalse% |
|
892 \ blast\isanewline |
|
893 \ \ \isacommand{apply}\isamarkupfalse% |
|
894 {\isacharparenleft}{\kern0pt}drule{\isacharunderscore}{\kern0pt}tac\ x{\isacharequal}{\kern0pt}{\isachardoublequoteopen}bs{\isachardoublequoteclose}\ \isakeyword{in}\ meta{\isacharunderscore}{\kern0pt}spec{\isacharparenright}{\kern0pt}\isanewline |
|
895 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
896 {\isacharparenleft}{\kern0pt}drule\ meta{\isacharunderscore}{\kern0pt}mp{\isacharparenright}{\kern0pt}\isanewline |
|
897 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
898 {\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
899 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
900 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
901 \ \ \isacommand{using}\isamarkupfalse% |
|
902 \ r{\isadigit{3}}\ \isacommand{apply}\isamarkupfalse% |
|
903 \ blast\isanewline |
|
904 \ \ \isacommand{apply}\isamarkupfalse% |
|
905 {\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline |
|
906 \ \ \isacommand{using}\isamarkupfalse% |
|
907 \ r{\isadigit{3}}\ \isacommand{by}\isamarkupfalse% |
|
908 \ blast% |
|
909 \endisatagproof |
|
910 {\isafoldproof}% |
|
911 % |
|
912 \isadelimproof |
|
913 \isanewline |
|
914 % |
|
915 \endisadelimproof |
|
916 \isanewline |
|
917 \isacommand{lemma}\isamarkupfalse% |
|
918 \ bmkeps{\isacharunderscore}{\kern0pt}retrieve{\isacharcolon}{\kern0pt}\isanewline |
|
919 \ \ \isakeyword{assumes}\ {\isachardoublequoteopen}nullable\ {\isacharparenleft}{\kern0pt}erase\ r{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
920 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}bmkeps\ r\ {\isacharequal}{\kern0pt}\ retrieve\ r\ {\isacharparenleft}{\kern0pt}mkeps\ {\isacharparenleft}{\kern0pt}erase\ r{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
921 % |
|
922 \isadelimproof |
|
923 \ \ % |
|
924 \endisadelimproof |
|
925 % |
|
926 \isatagproof |
|
927 \isacommand{using}\isamarkupfalse% |
|
928 \ assms\isanewline |
|
929 \ \ \isacommand{apply}\isamarkupfalse% |
|
930 {\isacharparenleft}{\kern0pt}induct\ r{\isacharparenright}{\kern0pt}\isanewline |
|
931 \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
932 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
933 \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
934 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
935 \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
936 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
937 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
938 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
939 \ \ \ \isacommand{defer}\isamarkupfalse% |
|
940 \isanewline |
|
941 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
942 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
943 \ \ \isacommand{apply}\isamarkupfalse% |
|
944 {\isacharparenleft}{\kern0pt}rule\ t{\isacharparenright}{\kern0pt}\isanewline |
|
945 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
946 {\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline |
|
947 \ \ \isacommand{done}\isamarkupfalse% |
|
948 % |
|
949 \endisatagproof |
|
950 {\isafoldproof}% |
|
951 % |
|
952 \isadelimproof |
|
953 \isanewline |
|
954 % |
|
955 \endisadelimproof |
|
956 \isanewline |
|
957 \isacommand{lemma}\isamarkupfalse% |
|
958 \ bder{\isacharunderscore}{\kern0pt}retrieve{\isacharcolon}{\kern0pt}\isanewline |
|
959 \ \ \isakeyword{assumes}\ {\isachardoublequoteopen}{\isasymTurnstile}\ v\ {\isacharcolon}{\kern0pt}\ der\ c\ {\isacharparenleft}{\kern0pt}erase\ r{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
960 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}retrieve\ {\isacharparenleft}{\kern0pt}bder\ c\ r{\isacharparenright}{\kern0pt}\ v\ {\isacharequal}{\kern0pt}\ retrieve\ r\ {\isacharparenleft}{\kern0pt}injval\ {\isacharparenleft}{\kern0pt}erase\ r{\isacharparenright}{\kern0pt}\ c\ v{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
961 % |
|
962 \isadelimproof |
|
963 \ \ % |
|
964 \endisadelimproof |
|
965 % |
|
966 \isatagproof |
|
967 \isacommand{using}\isamarkupfalse% |
|
968 \ assms\isanewline |
|
969 \ \ \isacommand{apply}\isamarkupfalse% |
|
970 {\isacharparenleft}{\kern0pt}induct\ r\ arbitrary{\isacharcolon}{\kern0pt}\ v\ rule{\isacharcolon}{\kern0pt}\ erase{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline |
|
971 \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
972 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
973 \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
974 {\isacharparenleft}{\kern0pt}erule\ Prf{\isacharunderscore}{\kern0pt}elims{\isacharparenright}{\kern0pt}\isanewline |
|
975 \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
976 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
977 \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
978 {\isacharparenleft}{\kern0pt}erule\ Prf{\isacharunderscore}{\kern0pt}elims{\isacharparenright}{\kern0pt}\ \isanewline |
|
979 \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
980 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
981 \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
982 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}c\ {\isacharequal}{\kern0pt}\ ca{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
983 \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
984 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
985 \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
986 {\isacharparenleft}{\kern0pt}erule\ Prf{\isacharunderscore}{\kern0pt}elims{\isacharparenright}{\kern0pt}\isanewline |
|
987 \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
988 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
989 \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
990 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
991 \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
992 {\isacharparenleft}{\kern0pt}erule\ Prf{\isacharunderscore}{\kern0pt}elims{\isacharparenright}{\kern0pt}\isanewline |
|
993 \ \ \isacommand{apply}\isamarkupfalse% |
|
994 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
995 \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
996 {\isacharparenleft}{\kern0pt}erule\ Prf{\isacharunderscore}{\kern0pt}elims{\isacharparenright}{\kern0pt}\isanewline |
|
997 \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
998 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
999 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1000 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
1001 \ \ \isacommand{apply}\isamarkupfalse% |
|
1002 {\isacharparenleft}{\kern0pt}rename{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}r\isactrlsub {\isadigit{1}}{\isachardoublequoteclose}\ {\isachardoublequoteopen}r\isactrlsub {\isadigit{2}}{\isachardoublequoteclose}\ rs\ v{\isacharparenright}{\kern0pt}\isanewline |
|
1003 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1004 {\isacharparenleft}{\kern0pt}erule\ Prf{\isacharunderscore}{\kern0pt}elims{\isacharparenright}{\kern0pt}\isanewline |
|
1005 \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1006 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
1007 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1008 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
1009 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1010 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ rs{\isacharparenright}{\kern0pt}\isanewline |
|
1011 \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1012 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
1013 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1014 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
1015 \ \ \isacommand{apply}\isamarkupfalse% |
|
1016 \ {\isacharparenleft}{\kern0pt}smt\ Prf{\isacharunderscore}{\kern0pt}elims{\isacharparenleft}{\kern0pt}{\isadigit{3}}{\isacharparenright}{\kern0pt}\ injval{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{2}}{\isacharparenright}{\kern0pt}\ injval{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{3}}{\isacharparenright}{\kern0pt}\ retrieve{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{4}}{\isacharparenright}{\kern0pt}\ retrieve{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{5}}{\isacharparenright}{\kern0pt}\ same{\isacharunderscore}{\kern0pt}append{\isacharunderscore}{\kern0pt}eq{\isacharparenright}{\kern0pt}\isanewline |
|
1017 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1018 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
1019 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1020 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}nullable\ {\isacharparenleft}{\kern0pt}erase\ r{\isadigit{1}}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
1021 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1022 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
1023 \ \ \isacommand{apply}\isamarkupfalse% |
|
1024 {\isacharparenleft}{\kern0pt}erule\ Prf{\isacharunderscore}{\kern0pt}elims{\isacharparenright}{\kern0pt}\isanewline |
|
1025 \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1026 {\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bnullable\ r{\isadigit{1}}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
1027 \ \ \isacommand{prefer}\isamarkupfalse% |
|
1028 \ {\isadigit{2}}\isanewline |
|
1029 \ \ \isacommand{using}\isamarkupfalse% |
|
1030 \ bnullable{\isacharunderscore}{\kern0pt}correctness\ \isacommand{apply}\isamarkupfalse% |
|
1031 \ blast\isanewline |
|
1032 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1033 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
1034 \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1035 {\isacharparenleft}{\kern0pt}erule\ Prf{\isacharunderscore}{\kern0pt}elims{\isacharparenright}{\kern0pt}\isanewline |
|
1036 \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1037 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
1038 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1039 {\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bnullable\ r{\isadigit{1}}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
1040 \ \ \isacommand{prefer}\isamarkupfalse% |
|
1041 \ {\isadigit{2}}\isanewline |
|
1042 \ \ \isacommand{using}\isamarkupfalse% |
|
1043 \ bnullable{\isacharunderscore}{\kern0pt}correctness\ \isacommand{apply}\isamarkupfalse% |
|
1044 \ blast\isanewline |
|
1045 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1046 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
1047 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1048 {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ retrieve{\isacharunderscore}{\kern0pt}fuse{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline |
|
1049 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1050 {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ bmkeps{\isacharunderscore}{\kern0pt}retrieve{\isacharparenright}{\kern0pt}\isanewline |
|
1051 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1052 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
1053 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1054 {\isacharparenleft}{\kern0pt}erule\ Prf{\isacharunderscore}{\kern0pt}elims{\isacharparenright}{\kern0pt}\isanewline |
|
1055 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1056 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
1057 \ \ \isacommand{using}\isamarkupfalse% |
|
1058 \ bnullable{\isacharunderscore}{\kern0pt}correctness\ \isacommand{apply}\isamarkupfalse% |
|
1059 \ blast\isanewline |
|
1060 \ \ \isacommand{apply}\isamarkupfalse% |
|
1061 {\isacharparenleft}{\kern0pt}rename{\isacharunderscore}{\kern0pt}tac\ bs\ r\ v{\isacharparenright}{\kern0pt}\isanewline |
|
1062 \ \ \isacommand{apply}\isamarkupfalse% |
|
1063 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
1064 \ \ \isacommand{apply}\isamarkupfalse% |
|
1065 {\isacharparenleft}{\kern0pt}erule\ Prf{\isacharunderscore}{\kern0pt}elims{\isacharparenright}{\kern0pt}\isanewline |
|
1066 \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1067 {\isacharparenleft}{\kern0pt}clarify{\isacharparenright}{\kern0pt}\isanewline |
|
1068 \ \ \isacommand{apply}\isamarkupfalse% |
|
1069 {\isacharparenleft}{\kern0pt}erule\ Prf{\isacharunderscore}{\kern0pt}elims{\isacharparenright}{\kern0pt}\isanewline |
|
1070 \ \ \isacommand{apply}\isamarkupfalse% |
|
1071 {\isacharparenleft}{\kern0pt}clarify{\isacharparenright}{\kern0pt}\isanewline |
|
1072 \ \ \isacommand{apply}\isamarkupfalse% |
|
1073 {\isacharparenleft}{\kern0pt}subst\ injval{\isachardot}{\kern0pt}simps{\isacharparenright}{\kern0pt}\isanewline |
|
1074 \ \ \isacommand{apply}\isamarkupfalse% |
|
1075 {\isacharparenleft}{\kern0pt}simp\ del{\isacharcolon}{\kern0pt}\ retrieve{\isachardot}{\kern0pt}simps{\isacharparenright}{\kern0pt}\isanewline |
|
1076 \ \ \isacommand{apply}\isamarkupfalse% |
|
1077 {\isacharparenleft}{\kern0pt}subst\ retrieve{\isachardot}{\kern0pt}simps{\isacharparenright}{\kern0pt}\isanewline |
|
1078 \ \ \isacommand{apply}\isamarkupfalse% |
|
1079 {\isacharparenleft}{\kern0pt}subst\ retrieve{\isachardot}{\kern0pt}simps{\isacharparenright}{\kern0pt}\isanewline |
|
1080 \ \ \isacommand{apply}\isamarkupfalse% |
|
1081 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
1082 \ \ \isacommand{apply}\isamarkupfalse% |
|
1083 {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ retrieve{\isacharunderscore}{\kern0pt}fuse{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline |
|
1084 \ \ \isacommand{done}\isamarkupfalse% |
|
1085 % |
|
1086 \endisatagproof |
|
1087 {\isafoldproof}% |
|
1088 % |
|
1089 \isadelimproof |
|
1090 \isanewline |
|
1091 % |
|
1092 \endisadelimproof |
|
1093 \ \ \isanewline |
|
1094 \isanewline |
|
1095 \isanewline |
|
1096 \isacommand{lemma}\isamarkupfalse% |
|
1097 \ MAIN{\isacharunderscore}{\kern0pt}decode{\isacharcolon}{\kern0pt}\isanewline |
|
1098 \ \ \isakeyword{assumes}\ {\isachardoublequoteopen}{\isasymTurnstile}\ v\ {\isacharcolon}{\kern0pt}\ ders\ s\ r{\isachardoublequoteclose}\isanewline |
|
1099 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}Some\ {\isacharparenleft}{\kern0pt}flex\ r\ id\ s\ v{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ decode\ {\isacharparenleft}{\kern0pt}retrieve\ {\isacharparenleft}{\kern0pt}bders\ {\isacharparenleft}{\kern0pt}intern\ r{\isacharparenright}{\kern0pt}\ s{\isacharparenright}{\kern0pt}\ v{\isacharparenright}{\kern0pt}\ r{\isachardoublequoteclose}\isanewline |
|
1100 % |
|
1101 \isadelimproof |
|
1102 \ \ % |
|
1103 \endisadelimproof |
|
1104 % |
|
1105 \isatagproof |
|
1106 \isacommand{using}\isamarkupfalse% |
|
1107 \ assms\isanewline |
|
1108 \isacommand{proof}\isamarkupfalse% |
|
1109 \ {\isacharparenleft}{\kern0pt}induct\ s\ arbitrary{\isacharcolon}{\kern0pt}\ v\ rule{\isacharcolon}{\kern0pt}\ rev{\isacharunderscore}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline |
|
1110 \ \ \isacommand{case}\isamarkupfalse% |
|
1111 \ Nil\isanewline |
|
1112 \ \ \isacommand{have}\isamarkupfalse% |
|
1113 \ {\isachardoublequoteopen}{\isasymTurnstile}\ v\ {\isacharcolon}{\kern0pt}\ ders\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ r{\isachardoublequoteclose}\ \isacommand{by}\isamarkupfalse% |
|
1114 \ fact\isanewline |
|
1115 \ \ \isacommand{then}\isamarkupfalse% |
|
1116 \ \isacommand{have}\isamarkupfalse% |
|
1117 \ {\isachardoublequoteopen}{\isasymTurnstile}\ v\ {\isacharcolon}{\kern0pt}\ r{\isachardoublequoteclose}\ \isacommand{by}\isamarkupfalse% |
|
1118 \ simp\isanewline |
|
1119 \ \ \isacommand{then}\isamarkupfalse% |
|
1120 \ \isacommand{have}\isamarkupfalse% |
|
1121 \ {\isachardoublequoteopen}Some\ v\ {\isacharequal}{\kern0pt}\ decode\ {\isacharparenleft}{\kern0pt}retrieve\ {\isacharparenleft}{\kern0pt}intern\ r{\isacharparenright}{\kern0pt}\ v{\isacharparenright}{\kern0pt}\ r{\isachardoublequoteclose}\isanewline |
|
1122 \ \ \ \ \isacommand{using}\isamarkupfalse% |
|
1123 \ decode{\isacharunderscore}{\kern0pt}code\ retrieve{\isacharunderscore}{\kern0pt}code\ \isacommand{by}\isamarkupfalse% |
|
1124 \ auto\isanewline |
|
1125 \ \ \isacommand{then}\isamarkupfalse% |
|
1126 \ \isacommand{show}\isamarkupfalse% |
|
1127 \ {\isachardoublequoteopen}Some\ {\isacharparenleft}{\kern0pt}flex\ r\ id\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ v{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ decode\ {\isacharparenleft}{\kern0pt}retrieve\ {\isacharparenleft}{\kern0pt}bders\ {\isacharparenleft}{\kern0pt}intern\ r{\isacharparenright}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}{\isacharparenright}{\kern0pt}\ v{\isacharparenright}{\kern0pt}\ r{\isachardoublequoteclose}\isanewline |
|
1128 \ \ \ \ \isacommand{by}\isamarkupfalse% |
|
1129 \ simp\isanewline |
|
1130 \isacommand{next}\isamarkupfalse% |
|
1131 \isanewline |
|
1132 \ \ \isacommand{case}\isamarkupfalse% |
|
1133 \ {\isacharparenleft}{\kern0pt}snoc\ c\ s\ v{\isacharparenright}{\kern0pt}\isanewline |
|
1134 \ \ \isacommand{have}\isamarkupfalse% |
|
1135 \ IH{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}{\isasymAnd}v{\isachardot}{\kern0pt}\ {\isasymTurnstile}\ v\ {\isacharcolon}{\kern0pt}\ ders\ s\ r\ {\isasymLongrightarrow}\ \isanewline |
|
1136 \ \ \ \ \ Some\ {\isacharparenleft}{\kern0pt}flex\ r\ id\ s\ v{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ decode\ {\isacharparenleft}{\kern0pt}retrieve\ {\isacharparenleft}{\kern0pt}bders\ {\isacharparenleft}{\kern0pt}intern\ r{\isacharparenright}{\kern0pt}\ s{\isacharparenright}{\kern0pt}\ v{\isacharparenright}{\kern0pt}\ r{\isachardoublequoteclose}\ \isacommand{by}\isamarkupfalse% |
|
1137 \ fact\isanewline |
|
1138 \ \ \isacommand{have}\isamarkupfalse% |
|
1139 \ asm{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}{\isasymTurnstile}\ v\ {\isacharcolon}{\kern0pt}\ ders\ {\isacharparenleft}{\kern0pt}s\ {\isacharat}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}c{\isacharbrackright}{\kern0pt}{\isacharparenright}{\kern0pt}\ r{\isachardoublequoteclose}\ \isacommand{by}\isamarkupfalse% |
|
1140 \ fact\isanewline |
|
1141 \ \ \isacommand{then}\isamarkupfalse% |
|
1142 \ \isacommand{have}\isamarkupfalse% |
|
1143 \ asm{\isadigit{2}}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}{\isasymTurnstile}\ injval\ {\isacharparenleft}{\kern0pt}ders\ s\ r{\isacharparenright}{\kern0pt}\ c\ v\ {\isacharcolon}{\kern0pt}\ ders\ s\ r{\isachardoublequoteclose}\ \isanewline |
|
1144 \ \ \ \ \isacommand{by}\isamarkupfalse% |
|
1145 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ Prf{\isacharunderscore}{\kern0pt}injval\ ders{\isacharunderscore}{\kern0pt}append{\isacharparenright}{\kern0pt}\isanewline |
|
1146 \ \ \isacommand{have}\isamarkupfalse% |
|
1147 \ {\isachardoublequoteopen}Some\ {\isacharparenleft}{\kern0pt}flex\ r\ id\ {\isacharparenleft}{\kern0pt}s\ {\isacharat}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}c{\isacharbrackright}{\kern0pt}{\isacharparenright}{\kern0pt}\ v{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ Some\ {\isacharparenleft}{\kern0pt}flex\ r\ id\ s\ {\isacharparenleft}{\kern0pt}injval\ {\isacharparenleft}{\kern0pt}ders\ s\ r{\isacharparenright}{\kern0pt}\ c\ v{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
1148 \ \ \ \ \isacommand{by}\isamarkupfalse% |
|
1149 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ flex{\isacharunderscore}{\kern0pt}append{\isacharparenright}{\kern0pt}\isanewline |
|
1150 \ \ \isacommand{also}\isamarkupfalse% |
|
1151 \ \isacommand{have}\isamarkupfalse% |
|
1152 \ {\isachardoublequoteopen}{\isachardot}{\kern0pt}{\isachardot}{\kern0pt}{\isachardot}{\kern0pt}\ {\isacharequal}{\kern0pt}\ decode\ {\isacharparenleft}{\kern0pt}retrieve\ {\isacharparenleft}{\kern0pt}bders\ {\isacharparenleft}{\kern0pt}intern\ r{\isacharparenright}{\kern0pt}\ s{\isacharparenright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}injval\ {\isacharparenleft}{\kern0pt}ders\ s\ r{\isacharparenright}{\kern0pt}\ c\ v{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ r{\isachardoublequoteclose}\isanewline |
|
1153 \ \ \ \ \isacommand{using}\isamarkupfalse% |
|
1154 \ asm{\isadigit{2}}\ IH\ \isacommand{by}\isamarkupfalse% |
|
1155 \ simp\isanewline |
|
1156 \ \ \isacommand{also}\isamarkupfalse% |
|
1157 \ \isacommand{have}\isamarkupfalse% |
|
1158 \ {\isachardoublequoteopen}{\isachardot}{\kern0pt}{\isachardot}{\kern0pt}{\isachardot}{\kern0pt}\ {\isacharequal}{\kern0pt}\ decode\ {\isacharparenleft}{\kern0pt}retrieve\ {\isacharparenleft}{\kern0pt}bder\ c\ {\isacharparenleft}{\kern0pt}bders\ {\isacharparenleft}{\kern0pt}intern\ r{\isacharparenright}{\kern0pt}\ s{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ v{\isacharparenright}{\kern0pt}\ r{\isachardoublequoteclose}\isanewline |
|
1159 \ \ \ \ \isacommand{using}\isamarkupfalse% |
|
1160 \ asm\ \isacommand{by}\isamarkupfalse% |
|
1161 \ {\isacharparenleft}{\kern0pt}simp{\isacharunderscore}{\kern0pt}all\ add{\isacharcolon}{\kern0pt}\ bder{\isacharunderscore}{\kern0pt}retrieve\ ders{\isacharunderscore}{\kern0pt}append{\isacharparenright}{\kern0pt}\isanewline |
|
1162 \ \ \isacommand{finally}\isamarkupfalse% |
|
1163 \ \isacommand{show}\isamarkupfalse% |
|
1164 \ {\isachardoublequoteopen}Some\ {\isacharparenleft}{\kern0pt}flex\ r\ id\ {\isacharparenleft}{\kern0pt}s\ {\isacharat}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}c{\isacharbrackright}{\kern0pt}{\isacharparenright}{\kern0pt}\ v{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ \isanewline |
|
1165 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ decode\ {\isacharparenleft}{\kern0pt}retrieve\ {\isacharparenleft}{\kern0pt}bders\ {\isacharparenleft}{\kern0pt}intern\ r{\isacharparenright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}s\ {\isacharat}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}c{\isacharbrackright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ v{\isacharparenright}{\kern0pt}\ r{\isachardoublequoteclose}\ \isacommand{by}\isamarkupfalse% |
|
1166 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ bders{\isacharunderscore}{\kern0pt}append{\isacharparenright}{\kern0pt}\isanewline |
|
1167 \isacommand{qed}\isamarkupfalse% |
|
1168 % |
|
1169 \endisatagproof |
|
1170 {\isafoldproof}% |
|
1171 % |
|
1172 \isadelimproof |
|
1173 \isanewline |
|
1174 % |
|
1175 \endisadelimproof |
|
1176 \isanewline |
|
1177 \isanewline |
|
1178 \isacommand{definition}\isamarkupfalse% |
|
1179 \ blex\ \isakeyword{where}\isanewline |
|
1180 \ {\isachardoublequoteopen}blex\ a\ s\ {\isasymequiv}\ if\ bnullable\ {\isacharparenleft}{\kern0pt}bders\ a\ s{\isacharparenright}{\kern0pt}\ then\ Some\ {\isacharparenleft}{\kern0pt}bmkeps\ {\isacharparenleft}{\kern0pt}bders\ a\ s{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ else\ None{\isachardoublequoteclose}\isanewline |
|
1181 \isanewline |
|
1182 \isanewline |
|
1183 \isanewline |
|
1184 \isacommand{definition}\isamarkupfalse% |
|
1185 \ blexer\ \isakeyword{where}\isanewline |
|
1186 \ {\isachardoublequoteopen}blexer\ r\ s\ {\isasymequiv}\ if\ bnullable\ {\isacharparenleft}{\kern0pt}bders\ {\isacharparenleft}{\kern0pt}intern\ r{\isacharparenright}{\kern0pt}\ s{\isacharparenright}{\kern0pt}\ then\ \isanewline |
|
1187 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ decode\ {\isacharparenleft}{\kern0pt}bmkeps\ {\isacharparenleft}{\kern0pt}bders\ {\isacharparenleft}{\kern0pt}intern\ r{\isacharparenright}{\kern0pt}\ s{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ r\ else\ None{\isachardoublequoteclose}\isanewline |
|
1188 \isanewline |
|
1189 \isacommand{lemma}\isamarkupfalse% |
|
1190 \ blexer{\isacharunderscore}{\kern0pt}correctness{\isacharcolon}{\kern0pt}\isanewline |
|
1191 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}blexer\ r\ s\ {\isacharequal}{\kern0pt}\ lexer\ r\ s{\isachardoublequoteclose}\isanewline |
|
1192 % |
|
1193 \isadelimproof |
|
1194 % |
|
1195 \endisadelimproof |
|
1196 % |
|
1197 \isatagproof |
|
1198 \isacommand{proof}\isamarkupfalse% |
|
1199 \ {\isacharminus}{\kern0pt}\isanewline |
|
1200 \ \ \isacommand{{\isacharbraceleft}{\kern0pt}}\isamarkupfalse% |
|
1201 \ \isacommand{define}\isamarkupfalse% |
|
1202 \ bds\ \isakeyword{where}\ {\isachardoublequoteopen}bds\ {\isasymequiv}\ bders\ {\isacharparenleft}{\kern0pt}intern\ r{\isacharparenright}{\kern0pt}\ s{\isachardoublequoteclose}\isanewline |
|
1203 \ \ \ \ \isacommand{define}\isamarkupfalse% |
|
1204 \ ds\ \ \isakeyword{where}\ {\isachardoublequoteopen}ds\ {\isasymequiv}\ ders\ s\ r{\isachardoublequoteclose}\isanewline |
|
1205 \ \ \ \ \isacommand{assume}\isamarkupfalse% |
|
1206 \ asm{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}nullable\ ds{\isachardoublequoteclose}\isanewline |
|
1207 \ \ \ \ \isacommand{have}\isamarkupfalse% |
|
1208 \ era{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}erase\ bds\ {\isacharequal}{\kern0pt}\ ds{\isachardoublequoteclose}\ \isanewline |
|
1209 \ \ \ \ \ \ \isacommand{unfolding}\isamarkupfalse% |
|
1210 \ ds{\isacharunderscore}{\kern0pt}def\ bds{\isacharunderscore}{\kern0pt}def\ \isacommand{by}\isamarkupfalse% |
|
1211 \ simp\isanewline |
|
1212 \ \ \ \ \isacommand{have}\isamarkupfalse% |
|
1213 \ mke{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}{\isasymTurnstile}\ mkeps\ ds\ {\isacharcolon}{\kern0pt}\ ds{\isachardoublequoteclose}\isanewline |
|
1214 \ \ \ \ \ \ \isacommand{using}\isamarkupfalse% |
|
1215 \ asm\ \isacommand{by}\isamarkupfalse% |
|
1216 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ mkeps{\isacharunderscore}{\kern0pt}nullable{\isacharparenright}{\kern0pt}\isanewline |
|
1217 \ \ \ \ \isacommand{have}\isamarkupfalse% |
|
1218 \ {\isachardoublequoteopen}decode\ {\isacharparenleft}{\kern0pt}bmkeps\ bds{\isacharparenright}{\kern0pt}\ r\ {\isacharequal}{\kern0pt}\ decode\ {\isacharparenleft}{\kern0pt}retrieve\ bds\ {\isacharparenleft}{\kern0pt}mkeps\ ds{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ r{\isachardoublequoteclose}\isanewline |
|
1219 \ \ \ \ \ \ \isacommand{using}\isamarkupfalse% |
|
1220 \ bmkeps{\isacharunderscore}{\kern0pt}retrieve\isanewline |
|
1221 \ \ \ \ \ \ \isacommand{using}\isamarkupfalse% |
|
1222 \ asm\ era\ \isacommand{by}\isamarkupfalse% |
|
1223 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ bmkeps{\isacharunderscore}{\kern0pt}retrieve{\isacharparenright}{\kern0pt}\isanewline |
|
1224 \ \ \ \ \isacommand{also}\isamarkupfalse% |
|
1225 \ \isacommand{have}\isamarkupfalse% |
|
1226 \ {\isachardoublequoteopen}{\isachardot}{\kern0pt}{\isachardot}{\kern0pt}{\isachardot}{\kern0pt}\ {\isacharequal}{\kern0pt}\ \ Some\ {\isacharparenleft}{\kern0pt}flex\ r\ id\ s\ {\isacharparenleft}{\kern0pt}mkeps\ ds{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
1227 \ \ \ \ \ \ \isacommand{using}\isamarkupfalse% |
|
1228 \ mke\ \isacommand{by}\isamarkupfalse% |
|
1229 \ {\isacharparenleft}{\kern0pt}simp{\isacharunderscore}{\kern0pt}all\ add{\isacharcolon}{\kern0pt}\ MAIN{\isacharunderscore}{\kern0pt}decode\ ds{\isacharunderscore}{\kern0pt}def\ bds{\isacharunderscore}{\kern0pt}def{\isacharparenright}{\kern0pt}\isanewline |
|
1230 \ \ \ \ \isacommand{finally}\isamarkupfalse% |
|
1231 \ \isacommand{have}\isamarkupfalse% |
|
1232 \ {\isachardoublequoteopen}decode\ {\isacharparenleft}{\kern0pt}bmkeps\ bds{\isacharparenright}{\kern0pt}\ r\ {\isacharequal}{\kern0pt}\ Some\ {\isacharparenleft}{\kern0pt}flex\ r\ id\ s\ {\isacharparenleft}{\kern0pt}mkeps\ ds{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\ \isanewline |
|
1233 \ \ \ \ \ \ \isacommand{unfolding}\isamarkupfalse% |
|
1234 \ bds{\isacharunderscore}{\kern0pt}def\ ds{\isacharunderscore}{\kern0pt}def\ \isacommand{{\isachardot}{\kern0pt}}\isamarkupfalse% |
|
1235 \isanewline |
|
1236 \ \ \isacommand{{\isacharbraceright}{\kern0pt}}\isamarkupfalse% |
|
1237 \isanewline |
|
1238 \ \ \isacommand{then}\isamarkupfalse% |
|
1239 \ \isacommand{show}\isamarkupfalse% |
|
1240 \ {\isachardoublequoteopen}blexer\ r\ s\ {\isacharequal}{\kern0pt}\ lexer\ r\ s{\isachardoublequoteclose}\isanewline |
|
1241 \ \ \ \ \isacommand{unfolding}\isamarkupfalse% |
|
1242 \ blexer{\isacharunderscore}{\kern0pt}def\ lexer{\isacharunderscore}{\kern0pt}flex\isanewline |
|
1243 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1244 {\isacharparenleft}{\kern0pt}subst\ bnullable{\isacharunderscore}{\kern0pt}correctness{\isacharbrackleft}{\kern0pt}symmetric{\isacharbrackright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline |
|
1245 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1246 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
1247 \ \ \ \ \isacommand{done}\isamarkupfalse% |
|
1248 \isanewline |
|
1249 \isacommand{qed}\isamarkupfalse% |
|
1250 % |
|
1251 \endisatagproof |
|
1252 {\isafoldproof}% |
|
1253 % |
|
1254 \isadelimproof |
|
1255 \isanewline |
|
1256 % |
|
1257 \endisadelimproof |
|
1258 \isanewline |
|
1259 \isanewline |
|
1260 \isacommand{fun}\isamarkupfalse% |
|
1261 \ distinctBy\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}{\isacharprime}{\kern0pt}a\ list\ {\isasymRightarrow}\ {\isacharparenleft}{\kern0pt}{\isacharprime}{\kern0pt}a\ {\isasymRightarrow}\ {\isacharprime}{\kern0pt}b{\isacharparenright}{\kern0pt}\ {\isasymRightarrow}\ {\isacharprime}{\kern0pt}b\ set\ {\isasymRightarrow}\ {\isacharprime}{\kern0pt}a\ list{\isachardoublequoteclose}\isanewline |
|
1262 \ \ \isakeyword{where}\isanewline |
|
1263 \ \ {\isachardoublequoteopen}distinctBy\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ f\ acc\ {\isacharequal}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
1264 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}distinctBy\ {\isacharparenleft}{\kern0pt}x{\isacharhash}{\kern0pt}xs{\isacharparenright}{\kern0pt}\ f\ acc\ {\isacharequal}{\kern0pt}\ \isanewline |
|
1265 \ \ \ \ \ {\isacharparenleft}{\kern0pt}if\ {\isacharparenleft}{\kern0pt}f\ x{\isacharparenright}{\kern0pt}\ {\isasymin}\ acc\ then\ distinctBy\ xs\ f\ acc\ \isanewline |
|
1266 \ \ \ \ \ \ else\ x\ {\isacharhash}{\kern0pt}\ {\isacharparenleft}{\kern0pt}distinctBy\ xs\ f\ {\isacharparenleft}{\kern0pt}{\isacharbraceleft}{\kern0pt}f\ x{\isacharbraceright}{\kern0pt}\ {\isasymunion}\ acc{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
1267 \isanewline |
|
1268 \isanewline |
|
1269 \isanewline |
|
1270 \isanewline |
|
1271 \isacommand{fun}\isamarkupfalse% |
|
1272 \ flts\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}arexp\ list\ {\isasymRightarrow}\ arexp\ list{\isachardoublequoteclose}\isanewline |
|
1273 \ \ \isakeyword{where}\ \isanewline |
|
1274 \ \ {\isachardoublequoteopen}flts\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
1275 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}flts\ {\isacharparenleft}{\kern0pt}AZERO\ {\isacharhash}{\kern0pt}\ rs{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ flts\ rs{\isachardoublequoteclose}\isanewline |
|
1276 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}flts\ {\isacharparenleft}{\kern0pt}{\isacharparenleft}{\kern0pt}AALTs\ bs\ \ rs{\isadigit{1}}{\isacharparenright}{\kern0pt}\ {\isacharhash}{\kern0pt}\ rs{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isacharparenleft}{\kern0pt}map\ {\isacharparenleft}{\kern0pt}fuse\ bs{\isacharparenright}{\kern0pt}\ rs{\isadigit{1}}{\isacharparenright}{\kern0pt}\ {\isacharat}{\kern0pt}\ flts\ rs{\isachardoublequoteclose}\isanewline |
|
1277 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}flts\ {\isacharparenleft}{\kern0pt}r{\isadigit{1}}\ {\isacharhash}{\kern0pt}\ rs{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ r{\isadigit{1}}\ {\isacharhash}{\kern0pt}\ flts\ rs{\isachardoublequoteclose}\isanewline |
|
1278 \isanewline |
|
1279 \isanewline |
|
1280 \isanewline |
|
1281 \isanewline |
|
1282 \isacommand{fun}\isamarkupfalse% |
|
1283 \ li\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}bit\ list\ {\isasymRightarrow}\ arexp\ list\ {\isasymRightarrow}\ arexp{\isachardoublequoteclose}\isanewline |
|
1284 \ \ \isakeyword{where}\isanewline |
|
1285 \ \ {\isachardoublequoteopen}li\ {\isacharunderscore}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ AZERO{\isachardoublequoteclose}\isanewline |
|
1286 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}li\ bs\ {\isacharbrackleft}{\kern0pt}a{\isacharbrackright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ fuse\ bs\ a{\isachardoublequoteclose}\isanewline |
|
1287 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}li\ bs\ as\ {\isacharequal}{\kern0pt}\ AALTs\ bs\ as{\isachardoublequoteclose}\isanewline |
|
1288 \isanewline |
|
1289 \isanewline |
|
1290 \isanewline |
|
1291 \isanewline |
|
1292 \isacommand{fun}\isamarkupfalse% |
|
1293 \ bsimp{\isacharunderscore}{\kern0pt}ASEQ\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}bit\ list\ {\isasymRightarrow}\ arexp\ {\isasymRightarrow}\ arexp\ {\isasymRightarrow}\ arexp{\isachardoublequoteclose}\isanewline |
|
1294 \ \ \isakeyword{where}\isanewline |
|
1295 \ \ {\isachardoublequoteopen}bsimp{\isacharunderscore}{\kern0pt}ASEQ\ {\isacharunderscore}{\kern0pt}\ AZERO\ {\isacharunderscore}{\kern0pt}\ {\isacharequal}{\kern0pt}\ AZERO{\isachardoublequoteclose}\isanewline |
|
1296 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}bsimp{\isacharunderscore}{\kern0pt}ASEQ\ {\isacharunderscore}{\kern0pt}\ {\isacharunderscore}{\kern0pt}\ AZERO\ {\isacharequal}{\kern0pt}\ AZERO{\isachardoublequoteclose}\isanewline |
|
1297 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}bsimp{\isacharunderscore}{\kern0pt}ASEQ\ bs{\isadigit{1}}\ {\isacharparenleft}{\kern0pt}AONE\ bs{\isadigit{2}}{\isacharparenright}{\kern0pt}\ r{\isadigit{2}}\ {\isacharequal}{\kern0pt}\ fuse\ {\isacharparenleft}{\kern0pt}bs{\isadigit{1}}\ {\isacharat}{\kern0pt}\ bs{\isadigit{2}}{\isacharparenright}{\kern0pt}\ r{\isadigit{2}}{\isachardoublequoteclose}\isanewline |
|
1298 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}bsimp{\isacharunderscore}{\kern0pt}ASEQ\ bs{\isadigit{1}}\ r{\isadigit{1}}\ r{\isadigit{2}}\ {\isacharequal}{\kern0pt}\ ASEQ\ \ bs{\isadigit{1}}\ r{\isadigit{1}}\ r{\isadigit{2}}{\isachardoublequoteclose}\isanewline |
|
1299 \isanewline |
|
1300 \isanewline |
|
1301 \isacommand{fun}\isamarkupfalse% |
|
1302 \ bsimp{\isacharunderscore}{\kern0pt}AALTs\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}bit\ list\ {\isasymRightarrow}\ arexp\ list\ {\isasymRightarrow}\ arexp{\isachardoublequoteclose}\isanewline |
|
1303 \ \ \isakeyword{where}\isanewline |
|
1304 \ \ {\isachardoublequoteopen}bsimp{\isacharunderscore}{\kern0pt}AALTs\ {\isacharunderscore}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ AZERO{\isachardoublequoteclose}\isanewline |
|
1305 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}bsimp{\isacharunderscore}{\kern0pt}AALTs\ bs{\isadigit{1}}\ {\isacharbrackleft}{\kern0pt}r{\isacharbrackright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ fuse\ bs{\isadigit{1}}\ r{\isachardoublequoteclose}\isanewline |
|
1306 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}bsimp{\isacharunderscore}{\kern0pt}AALTs\ bs{\isadigit{1}}\ rs\ {\isacharequal}{\kern0pt}\ AALTs\ bs{\isadigit{1}}\ rs{\isachardoublequoteclose}\isanewline |
|
1307 \isanewline |
|
1308 \isanewline |
|
1309 \isacommand{fun}\isamarkupfalse% |
|
1310 \ bsimp\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}arexp\ {\isasymRightarrow}\ arexp{\isachardoublequoteclose}\ \isanewline |
|
1311 \ \ \isakeyword{where}\isanewline |
|
1312 \ \ {\isachardoublequoteopen}bsimp\ {\isacharparenleft}{\kern0pt}ASEQ\ bs{\isadigit{1}}\ r{\isadigit{1}}\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ bsimp{\isacharunderscore}{\kern0pt}ASEQ\ bs{\isadigit{1}}\ {\isacharparenleft}{\kern0pt}bsimp\ r{\isadigit{1}}{\isacharparenright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}bsimp\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
1313 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}bsimp\ {\isacharparenleft}{\kern0pt}AALTs\ bs{\isadigit{1}}\ rs{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ bsimp{\isacharunderscore}{\kern0pt}AALTs\ bs{\isadigit{1}}\ {\isacharparenleft}{\kern0pt}distinctBy\ \ {\isacharparenleft}{\kern0pt}flts\ {\isacharparenleft}{\kern0pt}map\ bsimp\ rs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ erase\ {\isacharbraceleft}{\kern0pt}{\isacharbraceright}{\kern0pt}\ {\isacharparenright}{\kern0pt}\ {\isachardoublequoteclose}\isanewline |
|
1314 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}bsimp\ r\ {\isacharequal}{\kern0pt}\ r{\isachardoublequoteclose}\isanewline |
|
1315 \isanewline |
|
1316 \isanewline |
|
1317 \isanewline |
|
1318 \isanewline |
|
1319 \isacommand{fun}\isamarkupfalse% |
|
1320 \ \isanewline |
|
1321 \ \ bders{\isacharunderscore}{\kern0pt}simp\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}arexp\ {\isasymRightarrow}\ string\ {\isasymRightarrow}\ arexp{\isachardoublequoteclose}\isanewline |
|
1322 \isakeyword{where}\isanewline |
|
1323 \ \ {\isachardoublequoteopen}bders{\isacharunderscore}{\kern0pt}simp\ r\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ r{\isachardoublequoteclose}\isanewline |
|
1324 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}bders{\isacharunderscore}{\kern0pt}simp\ r\ {\isacharparenleft}{\kern0pt}c\ {\isacharhash}{\kern0pt}\ s{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ bders{\isacharunderscore}{\kern0pt}simp\ {\isacharparenleft}{\kern0pt}bsimp\ {\isacharparenleft}{\kern0pt}bder\ c\ r{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ s{\isachardoublequoteclose}\isanewline |
|
1325 \isanewline |
|
1326 \isacommand{definition}\isamarkupfalse% |
|
1327 \ blexer{\isacharunderscore}{\kern0pt}simp\ \isakeyword{where}\isanewline |
|
1328 \ {\isachardoublequoteopen}blexer{\isacharunderscore}{\kern0pt}simp\ r\ s\ {\isasymequiv}\ if\ bnullable\ {\isacharparenleft}{\kern0pt}bders{\isacharunderscore}{\kern0pt}simp\ {\isacharparenleft}{\kern0pt}intern\ r{\isacharparenright}{\kern0pt}\ s{\isacharparenright}{\kern0pt}\ then\ \isanewline |
|
1329 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ decode\ {\isacharparenleft}{\kern0pt}bmkeps\ {\isacharparenleft}{\kern0pt}bders{\isacharunderscore}{\kern0pt}simp\ {\isacharparenleft}{\kern0pt}intern\ r{\isacharparenright}{\kern0pt}\ s{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ r\ else\ None{\isachardoublequoteclose}\isanewline |
|
1330 \isanewline |
|
1331 \isacommand{export{\isacharunderscore}{\kern0pt}code}\isamarkupfalse% |
|
1332 \ bders{\isacharunderscore}{\kern0pt}simp\ \isakeyword{in}\ Scala\ \isakeyword{module{\isacharunderscore}{\kern0pt}name}\ Example\isanewline |
|
1333 \isanewline |
|
1334 \isacommand{lemma}\isamarkupfalse% |
|
1335 \ bders{\isacharunderscore}{\kern0pt}simp{\isacharunderscore}{\kern0pt}append{\isacharcolon}{\kern0pt}\isanewline |
|
1336 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}bders{\isacharunderscore}{\kern0pt}simp\ r\ {\isacharparenleft}{\kern0pt}s{\isadigit{1}}\ {\isacharat}{\kern0pt}\ s{\isadigit{2}}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ bders{\isacharunderscore}{\kern0pt}simp\ {\isacharparenleft}{\kern0pt}bders{\isacharunderscore}{\kern0pt}simp\ r\ s{\isadigit{1}}{\isacharparenright}{\kern0pt}\ s{\isadigit{2}}{\isachardoublequoteclose}\isanewline |
|
1337 % |
|
1338 \isadelimproof |
|
1339 \ \ % |
|
1340 \endisadelimproof |
|
1341 % |
|
1342 \isatagproof |
|
1343 \isacommand{apply}\isamarkupfalse% |
|
1344 {\isacharparenleft}{\kern0pt}induct\ s{\isadigit{1}}\ arbitrary{\isacharcolon}{\kern0pt}\ r\ s{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline |
|
1345 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1346 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
1347 \ \ \isacommand{apply}\isamarkupfalse% |
|
1348 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
1349 \ \ \isacommand{done}\isamarkupfalse% |
|
1350 % |
|
1351 \endisatagproof |
|
1352 {\isafoldproof}% |
|
1353 % |
|
1354 \isadelimproof |
|
1355 \isanewline |
|
1356 % |
|
1357 \endisadelimproof |
|
1358 \isanewline |
|
1359 \isanewline |
|
1360 \isanewline |
|
1361 \isanewline |
|
1362 \isanewline |
|
1363 \isanewline |
|
1364 \isanewline |
|
1365 \isacommand{lemma}\isamarkupfalse% |
|
1366 \ L{\isacharunderscore}{\kern0pt}bsimp{\isacharunderscore}{\kern0pt}ASEQ{\isacharcolon}{\kern0pt}\isanewline |
|
1367 \ \ {\isachardoublequoteopen}L\ {\isacharparenleft}{\kern0pt}SEQ\ {\isacharparenleft}{\kern0pt}erase\ r{\isadigit{1}}{\isacharparenright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}erase\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ L\ {\isacharparenleft}{\kern0pt}erase\ {\isacharparenleft}{\kern0pt}bsimp{\isacharunderscore}{\kern0pt}ASEQ\ bs\ r{\isadigit{1}}\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
1368 % |
|
1369 \isadelimproof |
|
1370 \ \ % |
|
1371 \endisadelimproof |
|
1372 % |
|
1373 \isatagproof |
|
1374 \isacommand{apply}\isamarkupfalse% |
|
1375 {\isacharparenleft}{\kern0pt}induct\ bs\ r{\isadigit{1}}\ r{\isadigit{2}}\ rule{\isacharcolon}{\kern0pt}\ bsimp{\isacharunderscore}{\kern0pt}ASEQ{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline |
|
1376 \ \ \isacommand{apply}\isamarkupfalse% |
|
1377 {\isacharparenleft}{\kern0pt}simp{\isacharunderscore}{\kern0pt}all{\isacharparenright}{\kern0pt}\isanewline |
|
1378 \ \ \isacommand{by}\isamarkupfalse% |
|
1379 \ {\isacharparenleft}{\kern0pt}metis\ erase{\isacharunderscore}{\kern0pt}fuse\ fuse{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{4}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}% |
|
1380 \endisatagproof |
|
1381 {\isafoldproof}% |
|
1382 % |
|
1383 \isadelimproof |
|
1384 \isanewline |
|
1385 % |
|
1386 \endisadelimproof |
|
1387 \isanewline |
|
1388 \isacommand{lemma}\isamarkupfalse% |
|
1389 \ L{\isacharunderscore}{\kern0pt}bsimp{\isacharunderscore}{\kern0pt}AALTs{\isacharcolon}{\kern0pt}\isanewline |
|
1390 \ \ {\isachardoublequoteopen}L\ {\isacharparenleft}{\kern0pt}erase\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ L\ {\isacharparenleft}{\kern0pt}erase\ {\isacharparenleft}{\kern0pt}bsimp{\isacharunderscore}{\kern0pt}AALTs\ bs\ rs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
1391 % |
|
1392 \isadelimproof |
|
1393 \ \ % |
|
1394 \endisadelimproof |
|
1395 % |
|
1396 \isatagproof |
|
1397 \isacommand{apply}\isamarkupfalse% |
|
1398 {\isacharparenleft}{\kern0pt}induct\ bs\ rs\ rule{\isacharcolon}{\kern0pt}\ bsimp{\isacharunderscore}{\kern0pt}AALTs{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline |
|
1399 \ \ \isacommand{apply}\isamarkupfalse% |
|
1400 {\isacharparenleft}{\kern0pt}simp{\isacharunderscore}{\kern0pt}all\ add{\isacharcolon}{\kern0pt}\ erase{\isacharunderscore}{\kern0pt}fuse{\isacharparenright}{\kern0pt}\isanewline |
|
1401 \ \ \isacommand{done}\isamarkupfalse% |
|
1402 % |
|
1403 \endisatagproof |
|
1404 {\isafoldproof}% |
|
1405 % |
|
1406 \isadelimproof |
|
1407 \isanewline |
|
1408 % |
|
1409 \endisadelimproof |
|
1410 \isanewline |
|
1411 \isacommand{lemma}\isamarkupfalse% |
|
1412 \ L{\isacharunderscore}{\kern0pt}erase{\isacharunderscore}{\kern0pt}AALTs{\isacharcolon}{\kern0pt}\isanewline |
|
1413 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}L\ {\isacharparenleft}{\kern0pt}erase\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isasymUnion}\ {\isacharparenleft}{\kern0pt}L\ {\isacharbackquote}{\kern0pt}\ erase\ {\isacharbackquote}{\kern0pt}\ {\isacharparenleft}{\kern0pt}set\ rs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
1414 % |
|
1415 \isadelimproof |
|
1416 \ \ % |
|
1417 \endisadelimproof |
|
1418 % |
|
1419 \isatagproof |
|
1420 \isacommand{apply}\isamarkupfalse% |
|
1421 {\isacharparenleft}{\kern0pt}induct\ rs{\isacharparenright}{\kern0pt}\isanewline |
|
1422 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1423 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
1424 \ \ \isacommand{apply}\isamarkupfalse% |
|
1425 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
1426 \ \ \isacommand{apply}\isamarkupfalse% |
|
1427 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ rs{\isacharparenright}{\kern0pt}\isanewline |
|
1428 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1429 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
1430 \ \ \isacommand{apply}\isamarkupfalse% |
|
1431 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
1432 \ \ \isacommand{done}\isamarkupfalse% |
|
1433 % |
|
1434 \endisatagproof |
|
1435 {\isafoldproof}% |
|
1436 % |
|
1437 \isadelimproof |
|
1438 \isanewline |
|
1439 % |
|
1440 \endisadelimproof |
|
1441 \isanewline |
|
1442 \isacommand{lemma}\isamarkupfalse% |
|
1443 \ L{\isacharunderscore}{\kern0pt}erase{\isacharunderscore}{\kern0pt}flts{\isacharcolon}{\kern0pt}\isanewline |
|
1444 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}{\isasymUnion}\ {\isacharparenleft}{\kern0pt}L\ {\isacharbackquote}{\kern0pt}\ erase\ {\isacharbackquote}{\kern0pt}\ {\isacharparenleft}{\kern0pt}set\ {\isacharparenleft}{\kern0pt}flts\ rs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isasymUnion}\ {\isacharparenleft}{\kern0pt}L\ {\isacharbackquote}{\kern0pt}\ erase\ {\isacharbackquote}{\kern0pt}\ {\isacharparenleft}{\kern0pt}set\ rs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
1445 % |
|
1446 \isadelimproof |
|
1447 \ \ % |
|
1448 \endisadelimproof |
|
1449 % |
|
1450 \isatagproof |
|
1451 \isacommand{apply}\isamarkupfalse% |
|
1452 {\isacharparenleft}{\kern0pt}induct\ rs\ rule{\isacharcolon}{\kern0pt}\ flts{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline |
|
1453 \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1454 {\isacharparenleft}{\kern0pt}simp{\isacharunderscore}{\kern0pt}all{\isacharparenright}{\kern0pt}\isanewline |
|
1455 \ \ \isacommand{apply}\isamarkupfalse% |
|
1456 {\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline |
|
1457 \ \ \isacommand{using}\isamarkupfalse% |
|
1458 \ L{\isacharunderscore}{\kern0pt}erase{\isacharunderscore}{\kern0pt}AALTs\ erase{\isacharunderscore}{\kern0pt}fuse\ \isacommand{apply}\isamarkupfalse% |
|
1459 \ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
1460 \ \ \isacommand{by}\isamarkupfalse% |
|
1461 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ L{\isacharunderscore}{\kern0pt}erase{\isacharunderscore}{\kern0pt}AALTs\ erase{\isacharunderscore}{\kern0pt}fuse{\isacharparenright}{\kern0pt}% |
|
1462 \endisatagproof |
|
1463 {\isafoldproof}% |
|
1464 % |
|
1465 \isadelimproof |
|
1466 \isanewline |
|
1467 % |
|
1468 \endisadelimproof |
|
1469 \isanewline |
|
1470 \isacommand{lemma}\isamarkupfalse% |
|
1471 \ L{\isacharunderscore}{\kern0pt}erase{\isacharunderscore}{\kern0pt}dB{\isacharunderscore}{\kern0pt}acc{\isacharcolon}{\kern0pt}\isanewline |
|
1472 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}{\isacharparenleft}{\kern0pt}\ {\isasymUnion}{\isacharparenleft}{\kern0pt}L\ {\isacharbackquote}{\kern0pt}\ acc{\isacharparenright}{\kern0pt}\ {\isasymunion}\ {\isacharparenleft}{\kern0pt}\ {\isasymUnion}\ {\isacharparenleft}{\kern0pt}L\ {\isacharbackquote}{\kern0pt}\ erase\ {\isacharbackquote}{\kern0pt}\ {\isacharparenleft}{\kern0pt}set\ {\isacharparenleft}{\kern0pt}distinctBy\ rs\ erase\ acc{\isacharparenright}{\kern0pt}\ {\isacharparenright}{\kern0pt}\ {\isacharparenright}{\kern0pt}\ {\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isasymUnion}{\isacharparenleft}{\kern0pt}L\ {\isacharbackquote}{\kern0pt}\ acc{\isacharparenright}{\kern0pt}\ {\isasymunion}\ \ {\isasymUnion}\ {\isacharparenleft}{\kern0pt}L\ {\isacharbackquote}{\kern0pt}\ erase\ {\isacharbackquote}{\kern0pt}\ {\isacharparenleft}{\kern0pt}set\ rs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
1473 % |
|
1474 \isadelimproof |
|
1475 \ \ % |
|
1476 \endisadelimproof |
|
1477 % |
|
1478 \isatagproof |
|
1479 \isacommand{apply}\isamarkupfalse% |
|
1480 {\isacharparenleft}{\kern0pt}induction\ rs\ arbitrary{\isacharcolon}{\kern0pt}\ acc{\isacharparenright}{\kern0pt}\isanewline |
|
1481 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1482 \ simp\isanewline |
|
1483 \ \ \isacommand{apply}\isamarkupfalse% |
|
1484 \ simp\isanewline |
|
1485 \ \ \isacommand{by}\isamarkupfalse% |
|
1486 \ {\isacharparenleft}{\kern0pt}smt\ {\isacharparenleft}{\kern0pt}z{\isadigit{3}}{\isacharparenright}{\kern0pt}\ SUP{\isacharunderscore}{\kern0pt}absorb\ UN{\isacharunderscore}{\kern0pt}insert\ sup{\isacharunderscore}{\kern0pt}assoc\ sup{\isacharunderscore}{\kern0pt}commute{\isacharparenright}{\kern0pt}% |
|
1487 \endisatagproof |
|
1488 {\isafoldproof}% |
|
1489 % |
|
1490 \isadelimproof |
|
1491 \isanewline |
|
1492 % |
|
1493 \endisadelimproof |
|
1494 \isanewline |
|
1495 \isacommand{lemma}\isamarkupfalse% |
|
1496 \ L{\isacharunderscore}{\kern0pt}erase{\isacharunderscore}{\kern0pt}dB{\isacharcolon}{\kern0pt}\isanewline |
|
1497 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}\ {\isacharparenleft}{\kern0pt}\ {\isasymUnion}\ {\isacharparenleft}{\kern0pt}L\ {\isacharbackquote}{\kern0pt}\ erase\ {\isacharbackquote}{\kern0pt}\ {\isacharparenleft}{\kern0pt}set\ {\isacharparenleft}{\kern0pt}distinctBy\ rs\ erase\ {\isacharbraceleft}{\kern0pt}{\isacharbraceright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharparenright}{\kern0pt}\ {\isacharparenright}{\kern0pt}\ {\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isasymUnion}\ {\isacharparenleft}{\kern0pt}L\ {\isacharbackquote}{\kern0pt}\ erase\ {\isacharbackquote}{\kern0pt}\ {\isacharparenleft}{\kern0pt}set\ rs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
1498 % |
|
1499 \isadelimproof |
|
1500 \ \ % |
|
1501 \endisadelimproof |
|
1502 % |
|
1503 \isatagproof |
|
1504 \isacommand{by}\isamarkupfalse% |
|
1505 \ {\isacharparenleft}{\kern0pt}metis\ L{\isacharunderscore}{\kern0pt}erase{\isacharunderscore}{\kern0pt}dB{\isacharunderscore}{\kern0pt}acc\ Un{\isacharunderscore}{\kern0pt}commute\ Union{\isacharunderscore}{\kern0pt}image{\isacharunderscore}{\kern0pt}empty{\isacharparenright}{\kern0pt}% |
|
1506 \endisatagproof |
|
1507 {\isafoldproof}% |
|
1508 % |
|
1509 \isadelimproof |
|
1510 \isanewline |
|
1511 % |
|
1512 \endisadelimproof |
|
1513 \isanewline |
|
1514 \isacommand{lemma}\isamarkupfalse% |
|
1515 \ L{\isacharunderscore}{\kern0pt}bsimp{\isacharunderscore}{\kern0pt}erase{\isacharcolon}{\kern0pt}\isanewline |
|
1516 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}L\ {\isacharparenleft}{\kern0pt}erase\ r{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ L\ {\isacharparenleft}{\kern0pt}erase\ {\isacharparenleft}{\kern0pt}bsimp\ r{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
1517 % |
|
1518 \isadelimproof |
|
1519 \ \ % |
|
1520 \endisadelimproof |
|
1521 % |
|
1522 \isatagproof |
|
1523 \isacommand{apply}\isamarkupfalse% |
|
1524 {\isacharparenleft}{\kern0pt}induct\ r{\isacharparenright}{\kern0pt}\isanewline |
|
1525 \ \ \isacommand{apply}\isamarkupfalse% |
|
1526 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
1527 \ \ \isacommand{apply}\isamarkupfalse% |
|
1528 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
1529 \ \ \isacommand{apply}\isamarkupfalse% |
|
1530 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
1531 \ \ \isacommand{apply}\isamarkupfalse% |
|
1532 {\isacharparenleft}{\kern0pt}auto\ simp\ add{\isacharcolon}{\kern0pt}\ Sequ{\isacharunderscore}{\kern0pt}def{\isacharparenright}{\kern0pt}{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
1533 \ \ \isacommand{apply}\isamarkupfalse% |
|
1534 {\isacharparenleft}{\kern0pt}subst\ L{\isacharunderscore}{\kern0pt}bsimp{\isacharunderscore}{\kern0pt}ASEQ{\isacharbrackleft}{\kern0pt}symmetric{\isacharbrackright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline |
|
1535 \ \ \isacommand{apply}\isamarkupfalse% |
|
1536 {\isacharparenleft}{\kern0pt}auto\ simp\ add{\isacharcolon}{\kern0pt}\ Sequ{\isacharunderscore}{\kern0pt}def{\isacharparenright}{\kern0pt}{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
1537 \ \ \isacommand{apply}\isamarkupfalse% |
|
1538 {\isacharparenleft}{\kern0pt}subst\ {\isacharparenleft}{\kern0pt}asm{\isacharparenright}{\kern0pt}\ \ L{\isacharunderscore}{\kern0pt}bsimp{\isacharunderscore}{\kern0pt}ASEQ{\isacharbrackleft}{\kern0pt}symmetric{\isacharbrackright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline |
|
1539 \ \ \isacommand{apply}\isamarkupfalse% |
|
1540 {\isacharparenleft}{\kern0pt}auto\ simp\ add{\isacharcolon}{\kern0pt}\ Sequ{\isacharunderscore}{\kern0pt}def{\isacharparenright}{\kern0pt}{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
1541 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1542 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
1543 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1544 {\isacharparenleft}{\kern0pt}subst\ L{\isacharunderscore}{\kern0pt}bsimp{\isacharunderscore}{\kern0pt}AALTs{\isacharbrackleft}{\kern0pt}symmetric{\isacharbrackright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline |
|
1545 \ \ \ \isacommand{defer}\isamarkupfalse% |
|
1546 \isanewline |
|
1547 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1548 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
1549 \ \ \isacommand{apply}\isamarkupfalse% |
|
1550 {\isacharparenleft}{\kern0pt}subst\ {\isacharparenleft}{\kern0pt}{\isadigit{2}}{\isacharparenright}{\kern0pt}L{\isacharunderscore}{\kern0pt}erase{\isacharunderscore}{\kern0pt}AALTs{\isacharparenright}{\kern0pt}\isanewline |
|
1551 \ \ \isacommand{apply}\isamarkupfalse% |
|
1552 {\isacharparenleft}{\kern0pt}subst\ L{\isacharunderscore}{\kern0pt}erase{\isacharunderscore}{\kern0pt}dB{\isacharparenright}{\kern0pt}\isanewline |
|
1553 \ \ \isacommand{apply}\isamarkupfalse% |
|
1554 {\isacharparenleft}{\kern0pt}subst\ L{\isacharunderscore}{\kern0pt}erase{\isacharunderscore}{\kern0pt}flts{\isacharparenright}{\kern0pt}\isanewline |
|
1555 \ \ \isacommand{apply}\isamarkupfalse% |
|
1556 {\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline |
|
1557 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1558 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ L{\isacharunderscore}{\kern0pt}erase{\isacharunderscore}{\kern0pt}AALTs{\isacharparenright}{\kern0pt}\isanewline |
|
1559 \ \ \isacommand{using}\isamarkupfalse% |
|
1560 \ L{\isacharunderscore}{\kern0pt}erase{\isacharunderscore}{\kern0pt}AALTs\ \isacommand{by}\isamarkupfalse% |
|
1561 \ blast% |
|
1562 \endisatagproof |
|
1563 {\isafoldproof}% |
|
1564 % |
|
1565 \isadelimproof |
|
1566 \isanewline |
|
1567 % |
|
1568 \endisadelimproof |
|
1569 \isanewline |
|
1570 \isacommand{lemma}\isamarkupfalse% |
|
1571 \ bsimp{\isacharunderscore}{\kern0pt}ASEQ{\isadigit{0}}{\isacharcolon}{\kern0pt}\isanewline |
|
1572 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}bsimp{\isacharunderscore}{\kern0pt}ASEQ\ bs\ r{\isadigit{1}}\ AZERO\ {\isacharequal}{\kern0pt}\ AZERO{\isachardoublequoteclose}\isanewline |
|
1573 % |
|
1574 \isadelimproof |
|
1575 \ \ % |
|
1576 \endisadelimproof |
|
1577 % |
|
1578 \isatagproof |
|
1579 \isacommand{apply}\isamarkupfalse% |
|
1580 {\isacharparenleft}{\kern0pt}induct\ r{\isadigit{1}}{\isacharparenright}{\kern0pt}\isanewline |
|
1581 \ \ \isacommand{apply}\isamarkupfalse% |
|
1582 {\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline |
|
1583 \ \ \isacommand{done}\isamarkupfalse% |
|
1584 % |
|
1585 \endisatagproof |
|
1586 {\isafoldproof}% |
|
1587 % |
|
1588 \isadelimproof |
|
1589 \isanewline |
|
1590 % |
|
1591 \endisadelimproof |
|
1592 \isanewline |
|
1593 \isanewline |
|
1594 \isanewline |
|
1595 \isacommand{lemma}\isamarkupfalse% |
|
1596 \ bsimp{\isacharunderscore}{\kern0pt}ASEQ{\isadigit{1}}{\isacharcolon}{\kern0pt}\isanewline |
|
1597 \ \ \isakeyword{assumes}\ {\isachardoublequoteopen}r{\isadigit{1}}\ {\isasymnoteq}\ AZERO{\isachardoublequoteclose}\ {\isachardoublequoteopen}r{\isadigit{2}}\ {\isasymnoteq}\ AZERO{\isachardoublequoteclose}\ {\isachardoublequoteopen}{\isasymforall}bs{\isachardot}{\kern0pt}\ r{\isadigit{1}}\ {\isasymnoteq}\ AONE\ bs{\isachardoublequoteclose}\isanewline |
|
1598 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}bsimp{\isacharunderscore}{\kern0pt}ASEQ\ bs\ r{\isadigit{1}}\ r{\isadigit{2}}\ {\isacharequal}{\kern0pt}\ ASEQ\ bs\ r{\isadigit{1}}\ r{\isadigit{2}}{\isachardoublequoteclose}\isanewline |
|
1599 % |
|
1600 \isadelimproof |
|
1601 \ \ % |
|
1602 \endisadelimproof |
|
1603 % |
|
1604 \isatagproof |
|
1605 \isacommand{using}\isamarkupfalse% |
|
1606 \ assms\isanewline |
|
1607 \ \ \isacommand{apply}\isamarkupfalse% |
|
1608 {\isacharparenleft}{\kern0pt}induct\ bs\ r{\isadigit{1}}\ r{\isadigit{2}}\ rule{\isacharcolon}{\kern0pt}\ bsimp{\isacharunderscore}{\kern0pt}ASEQ{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline |
|
1609 \ \ \isacommand{apply}\isamarkupfalse% |
|
1610 {\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline |
|
1611 \ \ \isacommand{done}\isamarkupfalse% |
|
1612 % |
|
1613 \endisatagproof |
|
1614 {\isafoldproof}% |
|
1615 % |
|
1616 \isadelimproof |
|
1617 \isanewline |
|
1618 % |
|
1619 \endisadelimproof |
|
1620 \isanewline |
|
1621 \isacommand{lemma}\isamarkupfalse% |
|
1622 \ bsimp{\isacharunderscore}{\kern0pt}ASEQ{\isadigit{2}}{\isacharcolon}{\kern0pt}\isanewline |
|
1623 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}bsimp{\isacharunderscore}{\kern0pt}ASEQ\ bs\ {\isacharparenleft}{\kern0pt}AONE\ bs{\isadigit{1}}{\isacharparenright}{\kern0pt}\ r{\isadigit{2}}\ {\isacharequal}{\kern0pt}\ fuse\ {\isacharparenleft}{\kern0pt}bs\ {\isacharat}{\kern0pt}\ bs{\isadigit{1}}{\isacharparenright}{\kern0pt}\ r{\isadigit{2}}{\isachardoublequoteclose}\isanewline |
|
1624 % |
|
1625 \isadelimproof |
|
1626 \ \ % |
|
1627 \endisadelimproof |
|
1628 % |
|
1629 \isatagproof |
|
1630 \isacommand{apply}\isamarkupfalse% |
|
1631 {\isacharparenleft}{\kern0pt}induct\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline |
|
1632 \ \ \isacommand{apply}\isamarkupfalse% |
|
1633 {\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline |
|
1634 \ \ \isacommand{done}\isamarkupfalse% |
|
1635 % |
|
1636 \endisatagproof |
|
1637 {\isafoldproof}% |
|
1638 % |
|
1639 \isadelimproof |
|
1640 \isanewline |
|
1641 % |
|
1642 \endisadelimproof |
|
1643 \isanewline |
|
1644 \isanewline |
|
1645 \isacommand{lemma}\isamarkupfalse% |
|
1646 \ L{\isacharunderscore}{\kern0pt}bders{\isacharunderscore}{\kern0pt}simp{\isacharcolon}{\kern0pt}\isanewline |
|
1647 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}L\ {\isacharparenleft}{\kern0pt}erase\ {\isacharparenleft}{\kern0pt}bders{\isacharunderscore}{\kern0pt}simp\ r\ s{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ L\ {\isacharparenleft}{\kern0pt}erase\ {\isacharparenleft}{\kern0pt}bders\ r\ s{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
1648 % |
|
1649 \isadelimproof |
|
1650 \ \ % |
|
1651 \endisadelimproof |
|
1652 % |
|
1653 \isatagproof |
|
1654 \isacommand{apply}\isamarkupfalse% |
|
1655 {\isacharparenleft}{\kern0pt}induct\ s\ arbitrary{\isacharcolon}{\kern0pt}\ r\ rule{\isacharcolon}{\kern0pt}\ rev{\isacharunderscore}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline |
|
1656 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1657 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
1658 \ \ \isacommand{apply}\isamarkupfalse% |
|
1659 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
1660 \ \ \isacommand{apply}\isamarkupfalse% |
|
1661 {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ ders{\isacharunderscore}{\kern0pt}append{\isacharparenright}{\kern0pt}\isanewline |
|
1662 \ \ \isacommand{apply}\isamarkupfalse% |
|
1663 {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ bders{\isacharunderscore}{\kern0pt}simp{\isacharunderscore}{\kern0pt}append{\isacharparenright}{\kern0pt}\isanewline |
|
1664 \ \ \isacommand{apply}\isamarkupfalse% |
|
1665 {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ L{\isacharunderscore}{\kern0pt}bsimp{\isacharunderscore}{\kern0pt}erase{\isacharbrackleft}{\kern0pt}symmetric{\isacharbrackright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline |
|
1666 \ \ \isacommand{by}\isamarkupfalse% |
|
1667 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ der{\isacharunderscore}{\kern0pt}correctness{\isacharparenright}{\kern0pt}% |
|
1668 \endisatagproof |
|
1669 {\isafoldproof}% |
|
1670 % |
|
1671 \isadelimproof |
|
1672 \isanewline |
|
1673 % |
|
1674 \endisadelimproof |
|
1675 \isanewline |
|
1676 \isanewline |
|
1677 \isacommand{lemma}\isamarkupfalse% |
|
1678 \ b{\isadigit{2}}{\isacharcolon}{\kern0pt}\isanewline |
|
1679 \ \ \isakeyword{assumes}\ {\isachardoublequoteopen}bnullable\ r{\isachardoublequoteclose}\isanewline |
|
1680 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}bmkeps\ {\isacharparenleft}{\kern0pt}fuse\ bs\ r{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ bs\ {\isacharat}{\kern0pt}\ bmkeps\ r{\isachardoublequoteclose}\isanewline |
|
1681 % |
|
1682 \isadelimproof |
|
1683 \ \ % |
|
1684 \endisadelimproof |
|
1685 % |
|
1686 \isatagproof |
|
1687 \isacommand{by}\isamarkupfalse% |
|
1688 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ assms\ bmkeps{\isacharunderscore}{\kern0pt}retrieve\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isacharunderscore}{\kern0pt}fuse\ mkeps{\isacharunderscore}{\kern0pt}nullable\ retrieve{\isacharunderscore}{\kern0pt}fuse{\isadigit{2}}{\isacharparenright}{\kern0pt}% |
|
1689 \endisatagproof |
|
1690 {\isafoldproof}% |
|
1691 % |
|
1692 \isadelimproof |
|
1693 \isanewline |
|
1694 % |
|
1695 \endisadelimproof |
|
1696 \isanewline |
|
1697 \isanewline |
|
1698 \isacommand{lemma}\isamarkupfalse% |
|
1699 \ b{\isadigit{4}}{\isacharcolon}{\kern0pt}\isanewline |
|
1700 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}bnullable\ {\isacharparenleft}{\kern0pt}bders{\isacharunderscore}{\kern0pt}simp\ r\ s{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ bnullable\ {\isacharparenleft}{\kern0pt}bders\ r\ s{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
1701 % |
|
1702 \isadelimproof |
|
1703 \ \ % |
|
1704 \endisadelimproof |
|
1705 % |
|
1706 \isatagproof |
|
1707 \isacommand{by}\isamarkupfalse% |
|
1708 \ {\isacharparenleft}{\kern0pt}metis\ L{\isacharunderscore}{\kern0pt}bders{\isacharunderscore}{\kern0pt}simp\ bnullable{\isacharunderscore}{\kern0pt}correctness\ lexer{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isacharparenright}{\kern0pt}\ lexer{\isacharunderscore}{\kern0pt}correct{\isacharunderscore}{\kern0pt}None\ option{\isachardot}{\kern0pt}distinct{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}% |
|
1709 \endisatagproof |
|
1710 {\isafoldproof}% |
|
1711 % |
|
1712 \isadelimproof |
|
1713 \isanewline |
|
1714 % |
|
1715 \endisadelimproof |
|
1716 \isanewline |
|
1717 \isanewline |
|
1718 \isacommand{lemma}\isamarkupfalse% |
|
1719 \ qq{\isadigit{1}}{\isacharcolon}{\kern0pt}\isanewline |
|
1720 \ \ \isakeyword{assumes}\ {\isachardoublequoteopen}{\isasymexists}r\ {\isasymin}\ set\ rs{\isachardot}{\kern0pt}\ bnullable\ r{\isachardoublequoteclose}\isanewline |
|
1721 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}bmkeps\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}rs\ {\isacharat}{\kern0pt}\ rs{\isadigit{1}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ bmkeps\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
1722 % |
|
1723 \isadelimproof |
|
1724 \ \ % |
|
1725 \endisadelimproof |
|
1726 % |
|
1727 \isatagproof |
|
1728 \isacommand{using}\isamarkupfalse% |
|
1729 \ assms\isanewline |
|
1730 \ \ \isacommand{apply}\isamarkupfalse% |
|
1731 {\isacharparenleft}{\kern0pt}induct\ rs\ arbitrary{\isacharcolon}{\kern0pt}\ rs{\isadigit{1}}\ bs{\isacharparenright}{\kern0pt}\isanewline |
|
1732 \ \ \isacommand{apply}\isamarkupfalse% |
|
1733 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
1734 \ \ \isacommand{apply}\isamarkupfalse% |
|
1735 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
1736 \ \ \isacommand{by}\isamarkupfalse% |
|
1737 \ {\isacharparenleft}{\kern0pt}metis\ Nil{\isacharunderscore}{\kern0pt}is{\isacharunderscore}{\kern0pt}append{\isacharunderscore}{\kern0pt}conv\ bmkeps{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{4}}{\isacharparenright}{\kern0pt}\ neq{\isacharunderscore}{\kern0pt}Nil{\isacharunderscore}{\kern0pt}conv\ bnullable{\isacharunderscore}{\kern0pt}Hdbmkeps{\isacharunderscore}{\kern0pt}Hd\ split{\isacharunderscore}{\kern0pt}list{\isacharunderscore}{\kern0pt}last{\isacharparenright}{\kern0pt}% |
|
1738 \endisatagproof |
|
1739 {\isafoldproof}% |
|
1740 % |
|
1741 \isadelimproof |
|
1742 \isanewline |
|
1743 % |
|
1744 \endisadelimproof |
|
1745 \isanewline |
|
1746 \isacommand{lemma}\isamarkupfalse% |
|
1747 \ qq{\isadigit{2}}{\isacharcolon}{\kern0pt}\isanewline |
|
1748 \ \ \isakeyword{assumes}\ {\isachardoublequoteopen}{\isasymforall}r\ {\isasymin}\ set\ rs{\isachardot}{\kern0pt}\ {\isasymnot}\ bnullable\ r{\isachardoublequoteclose}\ {\isachardoublequoteopen}{\isasymexists}r\ {\isasymin}\ set\ rs{\isadigit{1}}{\isachardot}{\kern0pt}\ bnullable\ r{\isachardoublequoteclose}\isanewline |
|
1749 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}bmkeps\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}rs\ {\isacharat}{\kern0pt}\ rs{\isadigit{1}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ bmkeps\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isadigit{1}}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
1750 % |
|
1751 \isadelimproof |
|
1752 \ \ % |
|
1753 \endisadelimproof |
|
1754 % |
|
1755 \isatagproof |
|
1756 \isacommand{using}\isamarkupfalse% |
|
1757 \ assms\isanewline |
|
1758 \ \ \isacommand{apply}\isamarkupfalse% |
|
1759 {\isacharparenleft}{\kern0pt}induct\ rs\ arbitrary{\isacharcolon}{\kern0pt}\ rs{\isadigit{1}}\ bs{\isacharparenright}{\kern0pt}\isanewline |
|
1760 \ \ \isacommand{apply}\isamarkupfalse% |
|
1761 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
1762 \ \ \isacommand{apply}\isamarkupfalse% |
|
1763 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
1764 \ \ \isacommand{by}\isamarkupfalse% |
|
1765 \ {\isacharparenleft}{\kern0pt}metis\ append{\isacharunderscore}{\kern0pt}assoc\ in{\isacharunderscore}{\kern0pt}set{\isacharunderscore}{\kern0pt}conv{\isacharunderscore}{\kern0pt}decomp\ r{\isadigit{1}}\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}% |
|
1766 \endisatagproof |
|
1767 {\isafoldproof}% |
|
1768 % |
|
1769 \isadelimproof |
|
1770 \isanewline |
|
1771 % |
|
1772 \endisadelimproof |
|
1773 \ \ \isanewline |
|
1774 \isacommand{lemma}\isamarkupfalse% |
|
1775 \ qq{\isadigit{3}}{\isacharcolon}{\kern0pt}\isanewline |
|
1776 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}bnullable\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isacharparenleft}{\kern0pt}{\isasymexists}r\ {\isasymin}\ set\ rs{\isachardot}{\kern0pt}\ bnullable\ r{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
1777 % |
|
1778 \isadelimproof |
|
1779 \ \ % |
|
1780 \endisadelimproof |
|
1781 % |
|
1782 \isatagproof |
|
1783 \isacommand{apply}\isamarkupfalse% |
|
1784 {\isacharparenleft}{\kern0pt}induct\ rs\ arbitrary{\isacharcolon}{\kern0pt}\ bs{\isacharparenright}{\kern0pt}\isanewline |
|
1785 \ \ \isacommand{apply}\isamarkupfalse% |
|
1786 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
1787 \ \ \isacommand{apply}\isamarkupfalse% |
|
1788 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
1789 \ \ \isacommand{done}\isamarkupfalse% |
|
1790 % |
|
1791 \endisatagproof |
|
1792 {\isafoldproof}% |
|
1793 % |
|
1794 \isadelimproof |
|
1795 \isanewline |
|
1796 % |
|
1797 \endisadelimproof |
|
1798 \isanewline |
|
1799 \isanewline |
|
1800 \isanewline |
|
1801 \isanewline |
|
1802 \isanewline |
|
1803 \isacommand{fun}\isamarkupfalse% |
|
1804 \ nonnested\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}arexp\ {\isasymRightarrow}\ bool{\isachardoublequoteclose}\isanewline |
|
1805 \ \ \isakeyword{where}\isanewline |
|
1806 \ \ {\isachardoublequoteopen}nonnested\ {\isacharparenleft}{\kern0pt}AALTs\ bs{\isadigit{2}}\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ True{\isachardoublequoteclose}\isanewline |
|
1807 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}nonnested\ {\isacharparenleft}{\kern0pt}AALTs\ bs{\isadigit{2}}\ {\isacharparenleft}{\kern0pt}{\isacharparenleft}{\kern0pt}AALTs\ bs{\isadigit{1}}\ rs{\isadigit{1}}{\isacharparenright}{\kern0pt}\ {\isacharhash}{\kern0pt}\ rs{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ False{\isachardoublequoteclose}\isanewline |
|
1808 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}nonnested\ {\isacharparenleft}{\kern0pt}AALTs\ bs{\isadigit{2}}\ {\isacharparenleft}{\kern0pt}r\ {\isacharhash}{\kern0pt}\ rs{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ nonnested\ {\isacharparenleft}{\kern0pt}AALTs\ bs{\isadigit{2}}\ rs{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
1809 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}nonnested\ r\ {\isacharequal}{\kern0pt}\ True{\isachardoublequoteclose}\isanewline |
|
1810 \isanewline |
|
1811 \isanewline |
|
1812 \isacommand{lemma}\isamarkupfalse% |
|
1813 \ \ k{\isadigit{0}}{\isacharcolon}{\kern0pt}\isanewline |
|
1814 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}flts\ {\isacharparenleft}{\kern0pt}r\ {\isacharhash}{\kern0pt}\ rs{\isadigit{1}}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ flts\ {\isacharbrackleft}{\kern0pt}r{\isacharbrackright}{\kern0pt}\ {\isacharat}{\kern0pt}\ flts\ rs{\isadigit{1}}{\isachardoublequoteclose}\isanewline |
|
1815 % |
|
1816 \isadelimproof |
|
1817 \ \ % |
|
1818 \endisadelimproof |
|
1819 % |
|
1820 \isatagproof |
|
1821 \isacommand{apply}\isamarkupfalse% |
|
1822 {\isacharparenleft}{\kern0pt}induct\ r\ arbitrary{\isacharcolon}{\kern0pt}\ rs{\isadigit{1}}{\isacharparenright}{\kern0pt}\isanewline |
|
1823 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1824 {\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline |
|
1825 \ \ \isacommand{done}\isamarkupfalse% |
|
1826 % |
|
1827 \endisatagproof |
|
1828 {\isafoldproof}% |
|
1829 % |
|
1830 \isadelimproof |
|
1831 \isanewline |
|
1832 % |
|
1833 \endisadelimproof |
|
1834 \isanewline |
|
1835 \isacommand{lemma}\isamarkupfalse% |
|
1836 \ \ k{\isadigit{0}}{\isadigit{0}}{\isacharcolon}{\kern0pt}\isanewline |
|
1837 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}flts\ {\isacharparenleft}{\kern0pt}rs{\isadigit{1}}\ {\isacharat}{\kern0pt}\ rs{\isadigit{2}}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ flts\ rs{\isadigit{1}}\ {\isacharat}{\kern0pt}\ flts\ rs{\isadigit{2}}{\isachardoublequoteclose}\isanewline |
|
1838 % |
|
1839 \isadelimproof |
|
1840 \ \ % |
|
1841 \endisadelimproof |
|
1842 % |
|
1843 \isatagproof |
|
1844 \isacommand{apply}\isamarkupfalse% |
|
1845 {\isacharparenleft}{\kern0pt}induct\ rs{\isadigit{1}}\ arbitrary{\isacharcolon}{\kern0pt}\ rs{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline |
|
1846 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1847 {\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline |
|
1848 \ \ \isacommand{by}\isamarkupfalse% |
|
1849 \ {\isacharparenleft}{\kern0pt}metis\ append{\isachardot}{\kern0pt}assoc\ k{\isadigit{0}}{\isacharparenright}{\kern0pt}% |
|
1850 \endisatagproof |
|
1851 {\isafoldproof}% |
|
1852 % |
|
1853 \isadelimproof |
|
1854 \isanewline |
|
1855 % |
|
1856 \endisadelimproof |
|
1857 \isanewline |
|
1858 \isacommand{lemma}\isamarkupfalse% |
|
1859 \ \ k{\isadigit{0}}a{\isacharcolon}{\kern0pt}\isanewline |
|
1860 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}flts\ {\isacharbrackleft}{\kern0pt}AALTs\ bs\ rs{\isacharbrackright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ map\ {\isacharparenleft}{\kern0pt}fuse\ bs{\isacharparenright}{\kern0pt}\ \ rs{\isachardoublequoteclose}\isanewline |
|
1861 % |
|
1862 \isadelimproof |
|
1863 \ \ % |
|
1864 \endisadelimproof |
|
1865 % |
|
1866 \isatagproof |
|
1867 \isacommand{apply}\isamarkupfalse% |
|
1868 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
1869 \ \ \isacommand{done}\isamarkupfalse% |
|
1870 % |
|
1871 \endisatagproof |
|
1872 {\isafoldproof}% |
|
1873 % |
|
1874 \isadelimproof |
|
1875 \isanewline |
|
1876 % |
|
1877 \endisadelimproof |
|
1878 \isanewline |
|
1879 \isanewline |
|
1880 \isanewline |
|
1881 \isanewline |
|
1882 \isanewline |
|
1883 \isanewline |
|
1884 \isanewline |
|
1885 \isanewline |
|
1886 \isacommand{lemma}\isamarkupfalse% |
|
1887 \ bsimp{\isacharunderscore}{\kern0pt}AALTs{\isacharunderscore}{\kern0pt}qq{\isacharcolon}{\kern0pt}\isanewline |
|
1888 \ \ \isakeyword{assumes}\ {\isachardoublequoteopen}{\isadigit{1}}\ {\isacharless}{\kern0pt}\ length\ rs{\isachardoublequoteclose}\isanewline |
|
1889 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}bsimp{\isacharunderscore}{\kern0pt}AALTs\ bs\ rs\ {\isacharequal}{\kern0pt}\ AALTs\ bs\ \ rs{\isachardoublequoteclose}\isanewline |
|
1890 % |
|
1891 \isadelimproof |
|
1892 \ \ % |
|
1893 \endisadelimproof |
|
1894 % |
|
1895 \isatagproof |
|
1896 \isacommand{using}\isamarkupfalse% |
|
1897 \ \ assms\isanewline |
|
1898 \ \ \isacommand{apply}\isamarkupfalse% |
|
1899 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ rs{\isacharparenright}{\kern0pt}\isanewline |
|
1900 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1901 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
1902 \ \ \isacommand{apply}\isamarkupfalse% |
|
1903 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ list{\isacharparenright}{\kern0pt}\isanewline |
|
1904 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1905 {\isacharparenleft}{\kern0pt}simp{\isacharunderscore}{\kern0pt}all{\isacharparenright}{\kern0pt}\isanewline |
|
1906 \ \ \isacommand{done}\isamarkupfalse% |
|
1907 % |
|
1908 \endisatagproof |
|
1909 {\isafoldproof}% |
|
1910 % |
|
1911 \isadelimproof |
|
1912 \isanewline |
|
1913 % |
|
1914 \endisadelimproof |
|
1915 \isanewline |
|
1916 \isanewline |
|
1917 \isanewline |
|
1918 \isacommand{lemma}\isamarkupfalse% |
|
1919 \ bbbbs{\isadigit{1}}{\isacharcolon}{\kern0pt}\isanewline |
|
1920 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}nonalt\ r\ {\isasymor}\ {\isacharparenleft}{\kern0pt}{\isasymexists}bs\ rs{\isachardot}{\kern0pt}\ r\ \ {\isacharequal}{\kern0pt}\ AALTs\ bs\ rs{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
1921 % |
|
1922 \isadelimproof |
|
1923 \ \ % |
|
1924 \endisadelimproof |
|
1925 % |
|
1926 \isatagproof |
|
1927 \isacommand{using}\isamarkupfalse% |
|
1928 \ nonalt{\isachardot}{\kern0pt}elims{\isacharparenleft}{\kern0pt}{\isadigit{3}}{\isacharparenright}{\kern0pt}\ \isacommand{by}\isamarkupfalse% |
|
1929 \ auto% |
|
1930 \endisatagproof |
|
1931 {\isafoldproof}% |
|
1932 % |
|
1933 \isadelimproof |
|
1934 \isanewline |
|
1935 % |
|
1936 \endisadelimproof |
|
1937 \ \ \isanewline |
|
1938 \isanewline |
|
1939 \isanewline |
|
1940 \isanewline |
|
1941 \isanewline |
|
1942 \isacommand{lemma}\isamarkupfalse% |
|
1943 \ flts{\isacharunderscore}{\kern0pt}append{\isacharcolon}{\kern0pt}\isanewline |
|
1944 \ \ {\isachardoublequoteopen}flts\ {\isacharparenleft}{\kern0pt}xs{\isadigit{1}}\ {\isacharat}{\kern0pt}\ xs{\isadigit{2}}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ flts\ xs{\isadigit{1}}\ {\isacharat}{\kern0pt}\ flts\ xs{\isadigit{2}}{\isachardoublequoteclose}\isanewline |
|
1945 % |
|
1946 \isadelimproof |
|
1947 \ \ % |
|
1948 \endisadelimproof |
|
1949 % |
|
1950 \isatagproof |
|
1951 \isacommand{apply}\isamarkupfalse% |
|
1952 {\isacharparenleft}{\kern0pt}induct\ xs{\isadigit{1}}\ \ arbitrary{\isacharcolon}{\kern0pt}\ xs{\isadigit{2}}\ \ rule{\isacharcolon}{\kern0pt}\ rev{\isacharunderscore}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline |
|
1953 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1954 {\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline |
|
1955 \ \ \isacommand{apply}\isamarkupfalse% |
|
1956 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ xs{\isacharparenright}{\kern0pt}\isanewline |
|
1957 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1958 {\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline |
|
1959 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1960 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ x{\isacharparenright}{\kern0pt}\isanewline |
|
1961 \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1962 {\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline |
|
1963 \ \ \isacommand{apply}\isamarkupfalse% |
|
1964 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ x{\isacharparenright}{\kern0pt}\isanewline |
|
1965 \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
1966 {\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline |
|
1967 \ \ \isacommand{done}\isamarkupfalse% |
|
1968 % |
|
1969 \endisatagproof |
|
1970 {\isafoldproof}% |
|
1971 % |
|
1972 \isadelimproof |
|
1973 \isanewline |
|
1974 % |
|
1975 \endisadelimproof |
|
1976 \isanewline |
|
1977 \isacommand{fun}\isamarkupfalse% |
|
1978 \ nonazero\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}arexp\ {\isasymRightarrow}\ bool{\isachardoublequoteclose}\isanewline |
|
1979 \ \ \isakeyword{where}\isanewline |
|
1980 \ \ {\isachardoublequoteopen}nonazero\ AZERO\ {\isacharequal}{\kern0pt}\ False{\isachardoublequoteclose}\isanewline |
|
1981 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}nonazero\ r\ {\isacharequal}{\kern0pt}\ True{\isachardoublequoteclose}\isanewline |
|
1982 \isanewline |
|
1983 \isanewline |
|
1984 \isacommand{lemma}\isamarkupfalse% |
|
1985 \ flts{\isacharunderscore}{\kern0pt}single{\isadigit{1}}{\isacharcolon}{\kern0pt}\isanewline |
|
1986 \ \ \isakeyword{assumes}\ {\isachardoublequoteopen}nonalt\ r{\isachardoublequoteclose}\ {\isachardoublequoteopen}nonazero\ r{\isachardoublequoteclose}\isanewline |
|
1987 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}flts\ {\isacharbrackleft}{\kern0pt}r{\isacharbrackright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}r{\isacharbrackright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
1988 % |
|
1989 \isadelimproof |
|
1990 \ \ % |
|
1991 \endisadelimproof |
|
1992 % |
|
1993 \isatagproof |
|
1994 \isacommand{using}\isamarkupfalse% |
|
1995 \ assms\isanewline |
|
1996 \ \ \isacommand{apply}\isamarkupfalse% |
|
1997 {\isacharparenleft}{\kern0pt}induct\ r{\isacharparenright}{\kern0pt}\isanewline |
|
1998 \ \ \isacommand{apply}\isamarkupfalse% |
|
1999 {\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline |
|
2000 \ \ \isacommand{done}\isamarkupfalse% |
|
2001 % |
|
2002 \endisatagproof |
|
2003 {\isafoldproof}% |
|
2004 % |
|
2005 \isadelimproof |
|
2006 \isanewline |
|
2007 % |
|
2008 \endisadelimproof |
|
2009 \isanewline |
|
2010 \isanewline |
|
2011 \isanewline |
|
2012 \isacommand{lemma}\isamarkupfalse% |
|
2013 \ q{\isadigit{3}}a{\isacharcolon}{\kern0pt}\isanewline |
|
2014 \ \ \isakeyword{assumes}\ {\isachardoublequoteopen}{\isasymexists}r\ {\isasymin}\ set\ rs{\isachardot}{\kern0pt}\ bnullable\ r{\isachardoublequoteclose}\isanewline |
|
2015 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}bmkeps\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}map\ {\isacharparenleft}{\kern0pt}fuse\ bs{\isadigit{1}}{\isacharparenright}{\kern0pt}\ rs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ bmkeps\ {\isacharparenleft}{\kern0pt}AALTs\ {\isacharparenleft}{\kern0pt}bs{\isacharat}{\kern0pt}bs{\isadigit{1}}{\isacharparenright}{\kern0pt}\ rs{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
2016 % |
|
2017 \isadelimproof |
|
2018 \ \ % |
|
2019 \endisadelimproof |
|
2020 % |
|
2021 \isatagproof |
|
2022 \isacommand{using}\isamarkupfalse% |
|
2023 \ assms\isanewline |
|
2024 \ \ \isacommand{apply}\isamarkupfalse% |
|
2025 {\isacharparenleft}{\kern0pt}induct\ rs\ arbitrary{\isacharcolon}{\kern0pt}\ bs\ bs{\isadigit{1}}{\isacharparenright}{\kern0pt}\isanewline |
|
2026 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2027 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
2028 \ \ \isacommand{apply}\isamarkupfalse% |
|
2029 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
2030 \ \ \isacommand{apply}\isamarkupfalse% |
|
2031 {\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline |
|
2032 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2033 \ {\isacharparenleft}{\kern0pt}metis\ append{\isacharunderscore}{\kern0pt}assoc\ b{\isadigit{2}}\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isacharunderscore}{\kern0pt}fuse\ bnullable{\isacharunderscore}{\kern0pt}Hdbmkeps{\isacharunderscore}{\kern0pt}Hd{\isacharparenright}{\kern0pt}\isanewline |
|
2034 \ \ \isacommand{apply}\isamarkupfalse% |
|
2035 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bnullable\ a{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
2036 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2037 \ {\isacharparenleft}{\kern0pt}metis\ append{\isachardot}{\kern0pt}assoc\ b{\isadigit{2}}\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isacharunderscore}{\kern0pt}fuse\ bnullable{\isacharunderscore}{\kern0pt}Hdbmkeps{\isacharunderscore}{\kern0pt}Hd{\isacharparenright}{\kern0pt}\isanewline |
|
2038 \ \ \isacommand{apply}\isamarkupfalse% |
|
2039 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ rs{\isacharparenright}{\kern0pt}\isanewline |
|
2040 \ \ \isacommand{apply}\isamarkupfalse% |
|
2041 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
2042 \ \ \isacommand{apply}\isamarkupfalse% |
|
2043 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
2044 \ \ \isacommand{apply}\isamarkupfalse% |
|
2045 {\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
2046 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2047 \ {\isacharparenleft}{\kern0pt}metis\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isacharunderscore}{\kern0pt}fuse{\isacharparenright}{\kern0pt}{\isacharplus}{\kern0pt}\isanewline |
|
2048 \ \ \isacommand{done}\isamarkupfalse% |
|
2049 % |
|
2050 \endisatagproof |
|
2051 {\isafoldproof}% |
|
2052 % |
|
2053 \isadelimproof |
|
2054 \isanewline |
|
2055 % |
|
2056 \endisadelimproof |
|
2057 \isanewline |
|
2058 \isacommand{lemma}\isamarkupfalse% |
|
2059 \ qq{\isadigit{4}}{\isacharcolon}{\kern0pt}\isanewline |
|
2060 \ \ \isakeyword{assumes}\ {\isachardoublequoteopen}{\isasymexists}x{\isasymin}set\ list{\isachardot}{\kern0pt}\ bnullable\ x{\isachardoublequoteclose}\isanewline |
|
2061 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}{\isasymexists}x{\isasymin}set\ {\isacharparenleft}{\kern0pt}flts\ list{\isacharparenright}{\kern0pt}{\isachardot}{\kern0pt}\ bnullable\ x{\isachardoublequoteclose}\isanewline |
|
2062 % |
|
2063 \isadelimproof |
|
2064 \ \ % |
|
2065 \endisadelimproof |
|
2066 % |
|
2067 \isatagproof |
|
2068 \isacommand{using}\isamarkupfalse% |
|
2069 \ assms\isanewline |
|
2070 \ \ \isacommand{apply}\isamarkupfalse% |
|
2071 {\isacharparenleft}{\kern0pt}induct\ list\ rule{\isacharcolon}{\kern0pt}\ flts{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline |
|
2072 \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2073 {\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline |
|
2074 \ \ \isacommand{by}\isamarkupfalse% |
|
2075 \ {\isacharparenleft}{\kern0pt}metis\ UnCI\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isacharunderscore}{\kern0pt}fuse\ imageI{\isacharparenright}{\kern0pt}% |
|
2076 \endisatagproof |
|
2077 {\isafoldproof}% |
|
2078 % |
|
2079 \isadelimproof |
|
2080 \isanewline |
|
2081 % |
|
2082 \endisadelimproof |
|
2083 \ \ \isanewline |
|
2084 \isanewline |
|
2085 \isacommand{lemma}\isamarkupfalse% |
|
2086 \ qs{\isadigit{3}}{\isacharcolon}{\kern0pt}\isanewline |
|
2087 \ \ \isakeyword{assumes}\ {\isachardoublequoteopen}{\isasymexists}r\ {\isasymin}\ set\ rs{\isachardot}{\kern0pt}\ bnullable\ r{\isachardoublequoteclose}\isanewline |
|
2088 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}bmkeps\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ bmkeps\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}flts\ rs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
2089 % |
|
2090 \isadelimproof |
|
2091 \ \ % |
|
2092 \endisadelimproof |
|
2093 % |
|
2094 \isatagproof |
|
2095 \isacommand{using}\isamarkupfalse% |
|
2096 \ assms\isanewline |
|
2097 \ \ \isacommand{apply}\isamarkupfalse% |
|
2098 {\isacharparenleft}{\kern0pt}induct\ rs\ arbitrary{\isacharcolon}{\kern0pt}\ bs\ taking{\isacharcolon}{\kern0pt}\ size\ rule{\isacharcolon}{\kern0pt}\ measure{\isacharunderscore}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline |
|
2099 \ \ \isacommand{apply}\isamarkupfalse% |
|
2100 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ x{\isacharparenright}{\kern0pt}\isanewline |
|
2101 \ \ \isacommand{apply}\isamarkupfalse% |
|
2102 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
2103 \ \ \isacommand{apply}\isamarkupfalse% |
|
2104 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
2105 \ \ \isacommand{apply}\isamarkupfalse% |
|
2106 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ a{\isacharparenright}{\kern0pt}\isanewline |
|
2107 \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2108 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
2109 \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2110 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ r{\isadigit{1}}{\isacharparenright}{\kern0pt}\isanewline |
|
2111 \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2112 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
2113 \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2114 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ bnullable{\isacharunderscore}{\kern0pt}Hdbmkeps{\isacharunderscore}{\kern0pt}Hd{\isacharparenright}{\kern0pt}\isanewline |
|
2115 \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2116 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
2117 \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2118 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}flts\ list{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
2119 \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2120 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
2121 \ \ \isacommand{apply}\isamarkupfalse% |
|
2122 \ {\isacharparenleft}{\kern0pt}metis\ L{\isacharunderscore}{\kern0pt}erase{\isacharunderscore}{\kern0pt}AALTs\ L{\isacharunderscore}{\kern0pt}erase{\isacharunderscore}{\kern0pt}flts\ L{\isacharunderscore}{\kern0pt}flat{\isacharunderscore}{\kern0pt}Prf{\isadigit{1}}\ L{\isacharunderscore}{\kern0pt}flat{\isacharunderscore}{\kern0pt}Prf{\isadigit{2}}\ Prf{\isacharunderscore}{\kern0pt}elims{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isacharparenright}{\kern0pt}\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{4}}{\isacharparenright}{\kern0pt}\ mkeps{\isacharunderscore}{\kern0pt}nullable\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline |
|
2123 \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2124 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
2125 \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2126 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ r{\isadigit{1}}{\isacharparenright}{\kern0pt}\isanewline |
|
2127 \ \ \ \ \isacommand{prefer}\isamarkupfalse% |
|
2128 \ {\isadigit{3}}\isanewline |
|
2129 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2130 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
2131 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2132 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ bnullable{\isacharunderscore}{\kern0pt}Hdbmkeps{\isacharunderscore}{\kern0pt}Hd{\isacharparenright}{\kern0pt}\isanewline |
|
2133 \ \ \ \isacommand{prefer}\isamarkupfalse% |
|
2134 \ {\isadigit{2}}\isanewline |
|
2135 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2136 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
2137 \ \ \isacommand{apply}\isamarkupfalse% |
|
2138 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}{\isasymexists}x{\isasymin}set\ x{\isadigit{5}}{\isadigit{2}}{\isachardot}{\kern0pt}\ bnullable\ x{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
2139 \ \ \isacommand{apply}\isamarkupfalse% |
|
2140 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}list{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
2141 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2142 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
2143 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2144 \ {\isacharparenleft}{\kern0pt}metis\ b{\isadigit{2}}\ fuse{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{4}}{\isacharparenright}{\kern0pt}\ q{\isadigit{3}}a\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline |
|
2145 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2146 {\isacharparenleft}{\kern0pt}erule\ disjE{\isacharparenright}{\kern0pt}\isanewline |
|
2147 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2148 {\isacharparenleft}{\kern0pt}subst\ qq{\isadigit{1}}{\isacharparenright}{\kern0pt}\isanewline |
|
2149 \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2150 {\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
2151 \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2152 \ {\isacharparenleft}{\kern0pt}metis\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isacharunderscore}{\kern0pt}fuse{\isacharparenright}{\kern0pt}\isanewline |
|
2153 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2154 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
2155 \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2156 \ {\isacharparenleft}{\kern0pt}metis\ b{\isadigit{2}}\ fuse{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{4}}{\isacharparenright}{\kern0pt}\ q{\isadigit{3}}a\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline |
|
2157 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2158 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
2159 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2160 {\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
2161 \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2162 {\isacharparenleft}{\kern0pt}subst\ qq{\isadigit{1}}{\isacharparenright}{\kern0pt}\isanewline |
|
2163 \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2164 \ {\isacharparenleft}{\kern0pt}metis\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isacharunderscore}{\kern0pt}fuse\ image{\isacharunderscore}{\kern0pt}eqI\ set{\isacharunderscore}{\kern0pt}map{\isacharparenright}{\kern0pt}\isanewline |
|
2165 \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2166 \ {\isacharparenleft}{\kern0pt}metis\ b{\isadigit{2}}\ fuse{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{4}}{\isacharparenright}{\kern0pt}\ q{\isadigit{3}}a\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline |
|
2167 \ \ \isacommand{apply}\isamarkupfalse% |
|
2168 {\isacharparenleft}{\kern0pt}subst\ qq{\isadigit{1}}{\isacharparenright}{\kern0pt}\isanewline |
|
2169 \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2170 \ {\isacharparenleft}{\kern0pt}metis\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isacharunderscore}{\kern0pt}fuse\ image{\isacharunderscore}{\kern0pt}eqI\ set{\isacharunderscore}{\kern0pt}map{\isacharparenright}{\kern0pt}\isanewline |
|
2171 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2172 \ {\isacharparenleft}{\kern0pt}metis\ b{\isadigit{2}}\ fuse{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{4}}{\isacharparenright}{\kern0pt}\ q{\isadigit{3}}a\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline |
|
2173 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2174 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
2175 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2176 {\isacharparenleft}{\kern0pt}subst\ qq{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline |
|
2177 \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2178 \ {\isacharparenleft}{\kern0pt}metis\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isacharunderscore}{\kern0pt}fuse\ imageE\ set{\isacharunderscore}{\kern0pt}map{\isacharparenright}{\kern0pt}\isanewline |
|
2179 \ \ \isacommand{prefer}\isamarkupfalse% |
|
2180 \ {\isadigit{2}}\isanewline |
|
2181 \ \ \isacommand{apply}\isamarkupfalse% |
|
2182 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}list{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
2183 \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2184 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
2185 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2186 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
2187 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2188 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ qq{\isadigit{4}}{\isacharparenright}{\kern0pt}\isanewline |
|
2189 \ \ \isacommand{apply}\isamarkupfalse% |
|
2190 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
2191 \ \ \isacommand{apply}\isamarkupfalse% |
|
2192 {\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline |
|
2193 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2194 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ list{\isacharparenright}{\kern0pt}\isanewline |
|
2195 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2196 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
2197 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2198 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
2199 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2200 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ bnullable{\isacharunderscore}{\kern0pt}Hdbmkeps{\isacharunderscore}{\kern0pt}Hd{\isacharparenright}{\kern0pt}\isanewline |
|
2201 \ \ \isacommand{apply}\isamarkupfalse% |
|
2202 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bnullable\ {\isacharparenleft}{\kern0pt}ASEQ\ x{\isadigit{4}}{\isadigit{1}}\ x{\isadigit{4}}{\isadigit{2}}\ x{\isadigit{4}}{\isadigit{3}}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
2203 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2204 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ list{\isacharparenright}{\kern0pt}\isanewline |
|
2205 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2206 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
2207 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2208 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
2209 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2210 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ bnullable{\isacharunderscore}{\kern0pt}Hdbmkeps{\isacharunderscore}{\kern0pt}Hd{\isacharparenright}{\kern0pt}\isanewline |
|
2211 \ \ \isacommand{apply}\isamarkupfalse% |
|
2212 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
2213 \ \ \isacommand{using}\isamarkupfalse% |
|
2214 \ qq{\isadigit{4}}\ r{\isadigit{1}}\ r{\isadigit{2}}\ \isacommand{by}\isamarkupfalse% |
|
2215 \ auto% |
|
2216 \endisatagproof |
|
2217 {\isafoldproof}% |
|
2218 % |
|
2219 \isadelimproof |
|
2220 \isanewline |
|
2221 % |
|
2222 \endisadelimproof |
|
2223 \isanewline |
|
2224 \isanewline |
|
2225 \isanewline |
|
2226 \ \ \isanewline |
|
2227 \isacommand{lemma}\isamarkupfalse% |
|
2228 \ bder{\isacharunderscore}{\kern0pt}fuse{\isacharcolon}{\kern0pt}\isanewline |
|
2229 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}bder\ c\ {\isacharparenleft}{\kern0pt}fuse\ bs\ a{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ fuse\ bs\ \ {\isacharparenleft}{\kern0pt}bder\ c\ a{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
2230 % |
|
2231 \isadelimproof |
|
2232 \ \ % |
|
2233 \endisadelimproof |
|
2234 % |
|
2235 \isatagproof |
|
2236 \isacommand{apply}\isamarkupfalse% |
|
2237 {\isacharparenleft}{\kern0pt}induct\ a\ arbitrary{\isacharcolon}{\kern0pt}\ bs\ c{\isacharparenright}{\kern0pt}\isanewline |
|
2238 \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2239 {\isacharparenleft}{\kern0pt}simp{\isacharunderscore}{\kern0pt}all{\isacharparenright}{\kern0pt}\isanewline |
|
2240 \ \ \isacommand{done}\isamarkupfalse% |
|
2241 % |
|
2242 \endisatagproof |
|
2243 {\isafoldproof}% |
|
2244 % |
|
2245 \isadelimproof |
|
2246 \isanewline |
|
2247 % |
|
2248 \endisadelimproof |
|
2249 \isanewline |
|
2250 \isanewline |
|
2251 \isacommand{fun}\isamarkupfalse% |
|
2252 \ flts{\isadigit{2}}\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}char\ {\isasymRightarrow}\ arexp\ list\ {\isasymRightarrow}\ arexp\ list{\isachardoublequoteclose}\isanewline |
|
2253 \ \ \isakeyword{where}\ \isanewline |
|
2254 \ \ {\isachardoublequoteopen}flts{\isadigit{2}}\ {\isacharunderscore}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
2255 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}flts{\isadigit{2}}\ c\ {\isacharparenleft}{\kern0pt}AZERO\ {\isacharhash}{\kern0pt}\ rs{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ flts{\isadigit{2}}\ c\ rs{\isachardoublequoteclose}\isanewline |
|
2256 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}flts{\isadigit{2}}\ c\ {\isacharparenleft}{\kern0pt}AONE\ {\isacharunderscore}{\kern0pt}\ {\isacharhash}{\kern0pt}\ rs{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ flts{\isadigit{2}}\ c\ rs{\isachardoublequoteclose}\isanewline |
|
2257 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}flts{\isadigit{2}}\ c\ {\isacharparenleft}{\kern0pt}ACHAR\ bs\ d\ {\isacharhash}{\kern0pt}\ rs{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isacharparenleft}{\kern0pt}if\ c\ {\isacharequal}{\kern0pt}\ d\ then\ {\isacharparenleft}{\kern0pt}ACHAR\ bs\ d\ {\isacharhash}{\kern0pt}\ flts{\isadigit{2}}\ c\ rs{\isacharparenright}{\kern0pt}\ else\ flts{\isadigit{2}}\ c\ rs{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
2258 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}flts{\isadigit{2}}\ c\ {\isacharparenleft}{\kern0pt}{\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isadigit{1}}{\isacharparenright}{\kern0pt}\ {\isacharhash}{\kern0pt}\ rs{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isacharparenleft}{\kern0pt}map\ {\isacharparenleft}{\kern0pt}fuse\ bs{\isacharparenright}{\kern0pt}\ rs{\isadigit{1}}{\isacharparenright}{\kern0pt}\ {\isacharat}{\kern0pt}\ flts{\isadigit{2}}\ c\ rs{\isachardoublequoteclose}\isanewline |
|
2259 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}flts{\isadigit{2}}\ c\ {\isacharparenleft}{\kern0pt}ASEQ\ bs\ r{\isadigit{1}}\ r{\isadigit{2}}\ {\isacharhash}{\kern0pt}\ rs{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isacharparenleft}{\kern0pt}if\ {\isacharparenleft}{\kern0pt}bnullable{\isacharparenleft}{\kern0pt}r{\isadigit{1}}{\isacharparenright}{\kern0pt}\ {\isasymand}\ r{\isadigit{2}}\ {\isacharequal}{\kern0pt}\ AZERO{\isacharparenright}{\kern0pt}\ then\ \isanewline |
|
2260 \ \ \ \ flts{\isadigit{2}}\ c\ rs\isanewline |
|
2261 \ \ \ \ else\ ASEQ\ bs\ r{\isadigit{1}}\ r{\isadigit{2}}\ {\isacharhash}{\kern0pt}\ flts{\isadigit{2}}\ c\ rs{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
2262 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}flts{\isadigit{2}}\ c\ {\isacharparenleft}{\kern0pt}r{\isadigit{1}}\ {\isacharhash}{\kern0pt}\ rs{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ r{\isadigit{1}}\ {\isacharhash}{\kern0pt}\ flts{\isadigit{2}}\ c\ rs{\isachardoublequoteclose}\isanewline |
|
2263 \isanewline |
|
2264 \isanewline |
|
2265 \isanewline |
|
2266 \isanewline |
|
2267 \isanewline |
|
2268 \isanewline |
|
2269 \isanewline |
|
2270 \isanewline |
|
2271 \ \isanewline |
|
2272 \isanewline |
|
2273 \isanewline |
|
2274 \isanewline |
|
2275 \isanewline |
|
2276 \isacommand{lemma}\isamarkupfalse% |
|
2277 \ WQ{\isadigit{1}}{\isacharcolon}{\kern0pt}\isanewline |
|
2278 \ \ \isakeyword{assumes}\ {\isachardoublequoteopen}s\ {\isasymin}\ L\ {\isacharparenleft}{\kern0pt}der\ c\ r{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
2279 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}s\ {\isasymin}\ der\ c\ r\ {\isasymrightarrow}\ mkeps\ {\isacharparenleft}{\kern0pt}ders\ s\ {\isacharparenleft}{\kern0pt}der\ c\ r{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
2280 % |
|
2281 \isadelimproof |
|
2282 \ \ % |
|
2283 \endisadelimproof |
|
2284 % |
|
2285 \isatagproof |
|
2286 \isacommand{using}\isamarkupfalse% |
|
2287 \ assms\isanewline |
|
2288 \ \ \isacommand{oops}\isamarkupfalse% |
|
2289 % |
|
2290 \endisatagproof |
|
2291 {\isafoldproof}% |
|
2292 % |
|
2293 \isadelimproof |
|
2294 \isanewline |
|
2295 % |
|
2296 \endisadelimproof |
|
2297 \isanewline |
|
2298 \isanewline |
|
2299 \isanewline |
|
2300 \isacommand{lemma}\isamarkupfalse% |
|
2301 \ bder{\isacharunderscore}{\kern0pt}bsimp{\isacharunderscore}{\kern0pt}AALTs{\isacharcolon}{\kern0pt}\isanewline |
|
2302 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}bder\ c\ {\isacharparenleft}{\kern0pt}bsimp{\isacharunderscore}{\kern0pt}AALTs\ bs\ rs{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ bsimp{\isacharunderscore}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}map\ {\isacharparenleft}{\kern0pt}bder\ c{\isacharparenright}{\kern0pt}\ rs{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
2303 % |
|
2304 \isadelimproof |
|
2305 \ \ % |
|
2306 \endisadelimproof |
|
2307 % |
|
2308 \isatagproof |
|
2309 \isacommand{apply}\isamarkupfalse% |
|
2310 {\isacharparenleft}{\kern0pt}induct\ bs\ rs\ rule{\isacharcolon}{\kern0pt}\ bsimp{\isacharunderscore}{\kern0pt}AALTs{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\ \ \isanewline |
|
2311 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2312 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
2313 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2314 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
2315 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2316 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ bder{\isacharunderscore}{\kern0pt}fuse{\isacharparenright}{\kern0pt}\isanewline |
|
2317 \ \ \isacommand{apply}\isamarkupfalse% |
|
2318 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
2319 \ \ \isacommand{done}\isamarkupfalse% |
|
2320 % |
|
2321 \endisatagproof |
|
2322 {\isafoldproof}% |
|
2323 % |
|
2324 \isadelimproof |
|
2325 \isanewline |
|
2326 % |
|
2327 \endisadelimproof |
|
2328 \isanewline |
|
2329 \isanewline |
|
2330 \isanewline |
|
2331 \isacommand{lemma}\isamarkupfalse% |
|
2332 \isanewline |
|
2333 \ \ \isakeyword{assumes}\ {\isachardoublequoteopen}asize\ {\isacharparenleft}{\kern0pt}bsimp\ a{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ asize\ a{\isachardoublequoteclose}\ \ {\isachardoublequoteopen}a\ {\isacharequal}{\kern0pt}\ AALTs\ bs\ {\isacharbrackleft}{\kern0pt}AALTs\ bs{\isadigit{2}}\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}{\isacharcomma}{\kern0pt}\ AZERO{\isacharcomma}{\kern0pt}\ AONE\ bs{\isadigit{3}}{\isacharbrackright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
2334 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}bsimp\ a\ {\isacharequal}{\kern0pt}\ a{\isachardoublequoteclose}\isanewline |
|
2335 % |
|
2336 \isadelimproof |
|
2337 \ \ % |
|
2338 \endisadelimproof |
|
2339 % |
|
2340 \isatagproof |
|
2341 \isacommand{using}\isamarkupfalse% |
|
2342 \ assms\isanewline |
|
2343 \ \ \isacommand{apply}\isamarkupfalse% |
|
2344 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
2345 \ \ \isacommand{oops}\isamarkupfalse% |
|
2346 % |
|
2347 \endisatagproof |
|
2348 {\isafoldproof}% |
|
2349 % |
|
2350 \isadelimproof |
|
2351 \isanewline |
|
2352 % |
|
2353 \endisadelimproof |
|
2354 \isanewline |
|
2355 \isanewline |
|
2356 \isanewline |
|
2357 \isanewline |
|
2358 \isanewline |
|
2359 \isanewline |
|
2360 \isanewline |
|
2361 \isanewline |
|
2362 \isacommand{inductive}\isamarkupfalse% |
|
2363 \ rrewrite{\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}arexp\ {\isasymRightarrow}\ arexp\ {\isasymRightarrow}\ bool{\isachardoublequoteclose}\ {\isacharparenleft}{\kern0pt}{\isachardoublequoteopen}{\isacharunderscore}{\kern0pt}\ {\isasymleadsto}\ {\isacharunderscore}{\kern0pt}{\isachardoublequoteclose}\ {\isacharbrackleft}{\kern0pt}{\isadigit{9}}{\isadigit{9}}{\isacharcomma}{\kern0pt}\ {\isadigit{9}}{\isadigit{9}}{\isacharbrackright}{\kern0pt}\ {\isadigit{9}}{\isadigit{9}}{\isacharparenright}{\kern0pt}\isanewline |
|
2364 \ \ \isakeyword{where}\isanewline |
|
2365 \ \ {\isachardoublequoteopen}ASEQ\ bs\ AZERO\ r{\isadigit{2}}\ {\isasymleadsto}\ AZERO{\isachardoublequoteclose}\isanewline |
|
2366 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}ASEQ\ bs\ r{\isadigit{1}}\ AZERO\ {\isasymleadsto}\ AZERO{\isachardoublequoteclose}\isanewline |
|
2367 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}ASEQ\ bs\ {\isacharparenleft}{\kern0pt}AONE\ bs{\isadigit{1}}{\isacharparenright}{\kern0pt}\ r\ {\isasymleadsto}\ fuse\ {\isacharparenleft}{\kern0pt}bs{\isacharat}{\kern0pt}bs{\isadigit{1}}{\isacharparenright}{\kern0pt}\ r{\isachardoublequoteclose}\isanewline |
|
2368 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}r{\isadigit{1}}\ {\isasymleadsto}\ r{\isadigit{2}}\ {\isasymLongrightarrow}\ ASEQ\ bs\ r{\isadigit{1}}\ r{\isadigit{3}}\ {\isasymleadsto}\ ASEQ\ bs\ r{\isadigit{2}}\ r{\isadigit{3}}{\isachardoublequoteclose}\isanewline |
|
2369 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}r{\isadigit{3}}\ {\isasymleadsto}\ r{\isadigit{4}}\ {\isasymLongrightarrow}\ ASEQ\ bs\ r{\isadigit{1}}\ r{\isadigit{3}}\ {\isasymleadsto}\ ASEQ\ bs\ r{\isadigit{1}}\ r{\isadigit{4}}{\isachardoublequoteclose}\isanewline |
|
2370 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}r\ {\isasymleadsto}\ r{\isacharprime}{\kern0pt}\ {\isasymLongrightarrow}\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}rs{\isadigit{1}}\ {\isacharat}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}r{\isacharbrackright}{\kern0pt}\ {\isacharat}{\kern0pt}\ rs{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isasymleadsto}\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}rs{\isadigit{1}}\ {\isacharat}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}r{\isacharprime}{\kern0pt}{\isacharbrackright}{\kern0pt}\ {\isacharat}{\kern0pt}\ rs{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
2371 \isanewline |
|
2372 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}AALTs\ bs\ {\isacharparenleft}{\kern0pt}rsa{\isacharat}{\kern0pt}AZERO\ {\isacharhash}{\kern0pt}\ rsb{\isacharparenright}{\kern0pt}\ {\isasymleadsto}\ AALTs\ bs\ {\isacharparenleft}{\kern0pt}rsa{\isacharat}{\kern0pt}rsb{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
2373 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}AALTs\ bs\ {\isacharparenleft}{\kern0pt}rsa{\isacharat}{\kern0pt}{\isacharparenleft}{\kern0pt}AALTs\ bs{\isadigit{1}}\ rs{\isadigit{1}}{\isacharparenright}{\kern0pt}{\isacharhash}{\kern0pt}\ rsb{\isacharparenright}{\kern0pt}\ {\isasymleadsto}\ AALTs\ bs\ {\isacharparenleft}{\kern0pt}rsa{\isacharat}{\kern0pt}{\isacharparenleft}{\kern0pt}map\ {\isacharparenleft}{\kern0pt}fuse\ bs{\isadigit{1}}{\isacharparenright}{\kern0pt}\ rs{\isadigit{1}}{\isacharparenright}{\kern0pt}{\isacharat}{\kern0pt}rsb{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
2374 \isanewline |
|
2375 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}AALTs\ bs\ {\isacharparenleft}{\kern0pt}map\ {\isacharparenleft}{\kern0pt}fuse\ bs{\isadigit{1}}{\isacharparenright}{\kern0pt}\ rs{\isacharparenright}{\kern0pt}\ {\isasymleadsto}\ AALTs\ {\isacharparenleft}{\kern0pt}bs{\isacharat}{\kern0pt}bs{\isadigit{1}}{\isacharparenright}{\kern0pt}\ rs{\isachardoublequoteclose}\isanewline |
|
2376 \isanewline |
|
2377 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}AALTs\ {\isacharparenleft}{\kern0pt}bs{\isacharat}{\kern0pt}bs{\isadigit{1}}{\isacharparenright}{\kern0pt}\ rs\ {\isasymleadsto}\ AALTs\ bs\ {\isacharparenleft}{\kern0pt}map\ {\isacharparenleft}{\kern0pt}fuse\ bs{\isadigit{1}}{\isacharparenright}{\kern0pt}\ rs{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
2378 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}AALTs\ bs\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ {\isasymleadsto}\ AZERO{\isachardoublequoteclose}\isanewline |
|
2379 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}AALTs\ bs\ {\isacharbrackleft}{\kern0pt}r{\isacharbrackright}{\kern0pt}\ {\isasymleadsto}\ fuse\ bs\ r{\isachardoublequoteclose}\isanewline |
|
2380 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}erase\ a{\isadigit{1}}\ {\isacharequal}{\kern0pt}\ erase\ a{\isadigit{2}}\ {\isasymLongrightarrow}\ AALTs\ bs\ {\isacharparenleft}{\kern0pt}rsa{\isacharat}{\kern0pt}{\isacharbrackleft}{\kern0pt}a{\isadigit{1}}{\isacharbrackright}{\kern0pt}{\isacharat}{\kern0pt}rsb{\isacharat}{\kern0pt}{\isacharbrackleft}{\kern0pt}a{\isadigit{2}}{\isacharbrackright}{\kern0pt}{\isacharat}{\kern0pt}rsc{\isacharparenright}{\kern0pt}\ {\isasymleadsto}\ AALTs\ bs\ {\isacharparenleft}{\kern0pt}rsa{\isacharat}{\kern0pt}{\isacharbrackleft}{\kern0pt}a{\isadigit{1}}{\isacharbrackright}{\kern0pt}{\isacharat}{\kern0pt}rsb{\isacharat}{\kern0pt}rsc{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
2381 \isanewline |
|
2382 \isanewline |
|
2383 \isacommand{inductive}\isamarkupfalse% |
|
2384 \ rrewrites{\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}arexp\ {\isasymRightarrow}\ arexp\ {\isasymRightarrow}\ bool{\isachardoublequoteclose}\ {\isacharparenleft}{\kern0pt}{\isachardoublequoteopen}{\isacharunderscore}{\kern0pt}\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ {\isacharunderscore}{\kern0pt}{\isachardoublequoteclose}\ {\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isadigit{0}}{\isadigit{0}}{\isacharcomma}{\kern0pt}\ {\isadigit{1}}{\isadigit{0}}{\isadigit{0}}{\isacharbrackright}{\kern0pt}\ {\isadigit{1}}{\isadigit{0}}{\isadigit{0}}{\isacharparenright}{\kern0pt}\isanewline |
|
2385 \ \ \isakeyword{where}\ \isanewline |
|
2386 rs{\isadigit{1}}{\isacharbrackleft}{\kern0pt}intro{\isacharcomma}{\kern0pt}\ simp{\isacharbrackright}{\kern0pt}{\isacharcolon}{\kern0pt}{\isachardoublequoteopen}r\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ r{\isachardoublequoteclose}\isanewline |
|
2387 {\isacharbar}{\kern0pt}\ rs{\isadigit{2}}{\isacharbrackleft}{\kern0pt}intro{\isacharbrackright}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}{\isasymlbrakk}r{\isadigit{1}}\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ r{\isadigit{2}}{\isacharsemicolon}{\kern0pt}\ r{\isadigit{2}}\ {\isasymleadsto}\ r{\isadigit{3}}{\isasymrbrakk}\ {\isasymLongrightarrow}\ r{\isadigit{1}}\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ r{\isadigit{3}}{\isachardoublequoteclose}\isanewline |
|
2388 \isanewline |
|
2389 \isacommand{inductive}\isamarkupfalse% |
|
2390 \ srewrites{\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}arexp\ list\ {\isasymRightarrow}\ arexp\ list\ {\isasymRightarrow}\ bool{\isachardoublequoteclose}\ {\isacharparenleft}{\kern0pt}{\isachardoublequoteopen}\ {\isacharunderscore}{\kern0pt}\ s{\isasymleadsto}{\isacharasterisk}{\kern0pt}\ {\isacharunderscore}{\kern0pt}{\isachardoublequoteclose}\ {\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isadigit{0}}{\isadigit{0}}{\isacharcomma}{\kern0pt}\ {\isadigit{1}}{\isadigit{0}}{\isadigit{0}}{\isacharbrackright}{\kern0pt}\ {\isadigit{1}}{\isadigit{0}}{\isadigit{0}}{\isacharparenright}{\kern0pt}\isanewline |
|
2391 \ \ \isakeyword{where}\isanewline |
|
2392 ss{\isadigit{1}}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}{\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ s{\isasymleadsto}{\isacharasterisk}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
2393 {\isacharbar}{\kern0pt}ss{\isadigit{2}}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}{\isasymlbrakk}r\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ r{\isacharprime}{\kern0pt}{\isacharsemicolon}{\kern0pt}\ rs\ s{\isasymleadsto}{\isacharasterisk}{\kern0pt}\ rs{\isacharprime}{\kern0pt}{\isasymrbrakk}\ {\isasymLongrightarrow}\ {\isacharparenleft}{\kern0pt}r{\isacharhash}{\kern0pt}rs{\isacharparenright}{\kern0pt}\ s{\isasymleadsto}{\isacharasterisk}{\kern0pt}\ {\isacharparenleft}{\kern0pt}r{\isacharprime}{\kern0pt}{\isacharhash}{\kern0pt}rs{\isacharprime}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
2394 \isanewline |
|
2395 \isanewline |
|
2396 \isanewline |
|
2397 \isanewline |
|
2398 \isacommand{lemma}\isamarkupfalse% |
|
2399 \ r{\isacharunderscore}{\kern0pt}in{\isacharunderscore}{\kern0pt}rstar\ {\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}r{\isadigit{1}}\ {\isasymleadsto}\ r{\isadigit{2}}\ {\isasymLongrightarrow}\ r{\isadigit{1}}\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ r{\isadigit{2}}{\isachardoublequoteclose}\isanewline |
|
2400 % |
|
2401 \isadelimproof |
|
2402 \ \ % |
|
2403 \endisadelimproof |
|
2404 % |
|
2405 \isatagproof |
|
2406 \isacommand{using}\isamarkupfalse% |
|
2407 \ rrewrites{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isacharparenright}{\kern0pt}\ rrewrites{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{2}}{\isacharparenright}{\kern0pt}\ \isacommand{by}\isamarkupfalse% |
|
2408 \ blast% |
|
2409 \endisatagproof |
|
2410 {\isafoldproof}% |
|
2411 % |
|
2412 \isadelimproof |
|
2413 \isanewline |
|
2414 % |
|
2415 \endisadelimproof |
|
2416 \ \isanewline |
|
2417 \isacommand{lemma}\isamarkupfalse% |
|
2418 \ real{\isacharunderscore}{\kern0pt}trans{\isacharcolon}{\kern0pt}\ \isanewline |
|
2419 \ \ \isakeyword{assumes}\ a{\isadigit{1}}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}r{\isadigit{1}}\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ r{\isadigit{2}}{\isachardoublequoteclose}\ \ \isakeyword{and}\ a{\isadigit{2}}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}r{\isadigit{2}}\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ r{\isadigit{3}}{\isachardoublequoteclose}\isanewline |
|
2420 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}r{\isadigit{1}}\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ r{\isadigit{3}}{\isachardoublequoteclose}\isanewline |
|
2421 % |
|
2422 \isadelimproof |
|
2423 \ \ % |
|
2424 \endisadelimproof |
|
2425 % |
|
2426 \isatagproof |
|
2427 \isacommand{using}\isamarkupfalse% |
|
2428 \ a{\isadigit{2}}\ a{\isadigit{1}}\isanewline |
|
2429 \ \ \isacommand{apply}\isamarkupfalse% |
|
2430 {\isacharparenleft}{\kern0pt}induct\ r{\isadigit{2}}\ r{\isadigit{3}}\ arbitrary{\isacharcolon}{\kern0pt}\ r{\isadigit{1}}\ rule{\isacharcolon}{\kern0pt}\ rrewrites{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\ \isanewline |
|
2431 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2432 {\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline |
|
2433 \ \ \isacommand{done}\isamarkupfalse% |
|
2434 % |
|
2435 \endisatagproof |
|
2436 {\isafoldproof}% |
|
2437 % |
|
2438 \isadelimproof |
|
2439 \isanewline |
|
2440 % |
|
2441 \endisadelimproof |
|
2442 \isanewline |
|
2443 \isanewline |
|
2444 \isacommand{lemma}\isamarkupfalse% |
|
2445 \ \ many{\isacharunderscore}{\kern0pt}steps{\isacharunderscore}{\kern0pt}later{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}{\isasymlbrakk}r{\isadigit{1}}\ {\isasymleadsto}\ r{\isadigit{2}}{\isacharsemicolon}{\kern0pt}\ r{\isadigit{2}}\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ r{\isadigit{3}}\ {\isasymrbrakk}\ {\isasymLongrightarrow}\ r{\isadigit{1}}\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ r{\isadigit{3}}{\isachardoublequoteclose}\isanewline |
|
2446 % |
|
2447 \isadelimproof |
|
2448 \ \ % |
|
2449 \endisadelimproof |
|
2450 % |
|
2451 \isatagproof |
|
2452 \isacommand{by}\isamarkupfalse% |
|
2453 \ {\isacharparenleft}{\kern0pt}meson\ r{\isacharunderscore}{\kern0pt}in{\isacharunderscore}{\kern0pt}rstar\ real{\isacharunderscore}{\kern0pt}trans{\isacharparenright}{\kern0pt}% |
|
2454 \endisatagproof |
|
2455 {\isafoldproof}% |
|
2456 % |
|
2457 \isadelimproof |
|
2458 \isanewline |
|
2459 % |
|
2460 \endisadelimproof |
|
2461 \isanewline |
|
2462 \isanewline |
|
2463 \isacommand{lemma}\isamarkupfalse% |
|
2464 \ contextrewrites{\isadigit{1}}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}r\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ r{\isacharprime}{\kern0pt}\ {\isasymLongrightarrow}\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}r{\isacharhash}{\kern0pt}rs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}r{\isacharprime}{\kern0pt}{\isacharhash}{\kern0pt}rs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
2465 % |
|
2466 \isadelimproof |
|
2467 \ \ % |
|
2468 \endisadelimproof |
|
2469 % |
|
2470 \isatagproof |
|
2471 \isacommand{apply}\isamarkupfalse% |
|
2472 {\isacharparenleft}{\kern0pt}induct\ r\ r{\isacharprime}{\kern0pt}\ rule{\isacharcolon}{\kern0pt}\ rrewrites{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline |
|
2473 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2474 \ simp\isanewline |
|
2475 \ \ \isacommand{by}\isamarkupfalse% |
|
2476 \ {\isacharparenleft}{\kern0pt}metis\ append{\isacharunderscore}{\kern0pt}Cons\ append{\isacharunderscore}{\kern0pt}Nil\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{6}}{\isacharparenright}{\kern0pt}\ rs{\isadigit{2}}{\isacharparenright}{\kern0pt}% |
|
2477 \endisatagproof |
|
2478 {\isafoldproof}% |
|
2479 % |
|
2480 \isadelimproof |
|
2481 \isanewline |
|
2482 % |
|
2483 \endisadelimproof |
|
2484 \isanewline |
|
2485 \isanewline |
|
2486 \isacommand{lemma}\isamarkupfalse% |
|
2487 \ contextrewrites{\isadigit{2}}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}r\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ r{\isacharprime}{\kern0pt}\ {\isasymLongrightarrow}\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}rs{\isadigit{1}}{\isacharat}{\kern0pt}{\isacharbrackleft}{\kern0pt}r{\isacharbrackright}{\kern0pt}{\isacharat}{\kern0pt}rs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}rs{\isadigit{1}}{\isacharat}{\kern0pt}{\isacharbrackleft}{\kern0pt}r{\isacharprime}{\kern0pt}{\isacharbrackright}{\kern0pt}{\isacharat}{\kern0pt}rs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
2488 % |
|
2489 \isadelimproof |
|
2490 \ \ % |
|
2491 \endisadelimproof |
|
2492 % |
|
2493 \isatagproof |
|
2494 \isacommand{apply}\isamarkupfalse% |
|
2495 {\isacharparenleft}{\kern0pt}induct\ r\ r{\isacharprime}{\kern0pt}\ rule{\isacharcolon}{\kern0pt}\ rrewrites{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline |
|
2496 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2497 \ simp\isanewline |
|
2498 \ \ \isacommand{using}\isamarkupfalse% |
|
2499 \ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{6}}{\isacharparenright}{\kern0pt}\ \isacommand{by}\isamarkupfalse% |
|
2500 \ blast% |
|
2501 \endisatagproof |
|
2502 {\isafoldproof}% |
|
2503 % |
|
2504 \isadelimproof |
|
2505 \isanewline |
|
2506 % |
|
2507 \endisadelimproof |
|
2508 \isanewline |
|
2509 \isanewline |
|
2510 \isanewline |
|
2511 \isacommand{lemma}\isamarkupfalse% |
|
2512 \ srewrites{\isacharunderscore}{\kern0pt}alt{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}rs{\isadigit{1}}\ s{\isasymleadsto}{\isacharasterisk}{\kern0pt}\ rs{\isadigit{2}}\ {\isasymLongrightarrow}\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}rs{\isacharat}{\kern0pt}rs{\isadigit{1}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}rs{\isacharat}{\kern0pt}rs{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
2513 % |
|
2514 \isadelimproof |
|
2515 \isanewline |
|
2516 \ \ % |
|
2517 \endisadelimproof |
|
2518 % |
|
2519 \isatagproof |
|
2520 \isacommand{apply}\isamarkupfalse% |
|
2521 {\isacharparenleft}{\kern0pt}induct\ rs{\isadigit{1}}\ rs{\isadigit{2}}\ arbitrary{\isacharcolon}{\kern0pt}\ bs\ rs\ rule{\isacharcolon}{\kern0pt}\ srewrites{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline |
|
2522 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2523 {\isacharparenleft}{\kern0pt}rule\ rs{\isadigit{1}}{\isacharparenright}{\kern0pt}\isanewline |
|
2524 \ \ \isacommand{apply}\isamarkupfalse% |
|
2525 {\isacharparenleft}{\kern0pt}drule{\isacharunderscore}{\kern0pt}tac\ x\ {\isacharequal}{\kern0pt}\ {\isachardoublequoteopen}bs{\isachardoublequoteclose}\ \isakeyword{in}\ meta{\isacharunderscore}{\kern0pt}spec{\isacharparenright}{\kern0pt}\isanewline |
|
2526 \ \ \isacommand{apply}\isamarkupfalse% |
|
2527 {\isacharparenleft}{\kern0pt}drule{\isacharunderscore}{\kern0pt}tac\ x\ {\isacharequal}{\kern0pt}\ {\isachardoublequoteopen}rsa{\isacharat}{\kern0pt}{\isacharbrackleft}{\kern0pt}r{\isacharprime}{\kern0pt}{\isacharbrackright}{\kern0pt}{\isachardoublequoteclose}\ \isakeyword{in}\ meta{\isacharunderscore}{\kern0pt}spec{\isacharparenright}{\kern0pt}\isanewline |
|
2528 \ \ \isacommand{apply}\isamarkupfalse% |
|
2529 \ simp\isanewline |
|
2530 \ \ \isacommand{apply}\isamarkupfalse% |
|
2531 {\isacharparenleft}{\kern0pt}rule\ real{\isacharunderscore}{\kern0pt}trans{\isacharparenright}{\kern0pt}\isanewline |
|
2532 \ \ \ \isacommand{prefer}\isamarkupfalse% |
|
2533 \ {\isadigit{2}}\isanewline |
|
2534 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2535 {\isacharparenleft}{\kern0pt}assumption{\isacharparenright}{\kern0pt}\isanewline |
|
2536 \ \ \isacommand{apply}\isamarkupfalse% |
|
2537 {\isacharparenleft}{\kern0pt}drule\ contextrewrites{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline |
|
2538 \ \ \isacommand{apply}\isamarkupfalse% |
|
2539 \ auto\isanewline |
|
2540 \ \ \isacommand{done}\isamarkupfalse% |
|
2541 % |
|
2542 \endisatagproof |
|
2543 {\isafoldproof}% |
|
2544 % |
|
2545 \isadelimproof |
|
2546 \isanewline |
|
2547 % |
|
2548 \endisadelimproof |
|
2549 \isanewline |
|
2550 \isanewline |
|
2551 \isacommand{corollary}\isamarkupfalse% |
|
2552 \ srewrites{\isacharunderscore}{\kern0pt}alt{\isadigit{1}}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}rs{\isadigit{1}}\ s{\isasymleadsto}{\isacharasterisk}{\kern0pt}\ rs{\isadigit{2}}\ {\isasymLongrightarrow}\ AALTs\ bs\ rs{\isadigit{1}}\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ AALTs\ bs\ rs{\isadigit{2}}{\isachardoublequoteclose}\isanewline |
|
2553 % |
|
2554 \isadelimproof |
|
2555 \ \ % |
|
2556 \endisadelimproof |
|
2557 % |
|
2558 \isatagproof |
|
2559 \isacommand{by}\isamarkupfalse% |
|
2560 \ {\isacharparenleft}{\kern0pt}metis\ append{\isachardot}{\kern0pt}left{\isacharunderscore}{\kern0pt}neutral\ srewrites{\isacharunderscore}{\kern0pt}alt{\isacharparenright}{\kern0pt}% |
|
2561 \endisatagproof |
|
2562 {\isafoldproof}% |
|
2563 % |
|
2564 \isadelimproof |
|
2565 \isanewline |
|
2566 % |
|
2567 \endisadelimproof |
|
2568 \isanewline |
|
2569 \isanewline |
|
2570 \isacommand{lemma}\isamarkupfalse% |
|
2571 \ star{\isacharunderscore}{\kern0pt}seq{\isacharcolon}{\kern0pt}\ \ {\isachardoublequoteopen}r{\isadigit{1}}\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ r{\isadigit{2}}\ {\isasymLongrightarrow}\ ASEQ\ bs\ r{\isadigit{1}}\ r{\isadigit{3}}\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ ASEQ\ bs\ r{\isadigit{2}}\ r{\isadigit{3}}{\isachardoublequoteclose}\isanewline |
|
2572 % |
|
2573 \isadelimproof |
|
2574 \ \ % |
|
2575 \endisadelimproof |
|
2576 % |
|
2577 \isatagproof |
|
2578 \isacommand{apply}\isamarkupfalse% |
|
2579 {\isacharparenleft}{\kern0pt}induct\ r{\isadigit{1}}\ r{\isadigit{2}}\ arbitrary{\isacharcolon}{\kern0pt}\ r{\isadigit{3}}\ rule{\isacharcolon}{\kern0pt}\ rrewrites{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline |
|
2580 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2581 {\isacharparenleft}{\kern0pt}rule\ rs{\isadigit{1}}{\isacharparenright}{\kern0pt}\isanewline |
|
2582 \ \ \isacommand{apply}\isamarkupfalse% |
|
2583 {\isacharparenleft}{\kern0pt}erule\ rrewrites{\isachardot}{\kern0pt}cases{\isacharparenright}{\kern0pt}\isanewline |
|
2584 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2585 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
2586 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2587 {\isacharparenleft}{\kern0pt}rule\ r{\isacharunderscore}{\kern0pt}in{\isacharunderscore}{\kern0pt}rstar{\isacharparenright}{\kern0pt}\isanewline |
|
2588 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2589 {\isacharparenleft}{\kern0pt}rule\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{4}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline |
|
2590 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2591 \ simp\isanewline |
|
2592 \ \ \isacommand{apply}\isamarkupfalse% |
|
2593 {\isacharparenleft}{\kern0pt}rule\ rs{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline |
|
2594 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2595 {\isacharparenleft}{\kern0pt}assumption{\isacharparenright}{\kern0pt}\isanewline |
|
2596 \ \ \isacommand{apply}\isamarkupfalse% |
|
2597 {\isacharparenleft}{\kern0pt}rule\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{4}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline |
|
2598 \ \ \isacommand{by}\isamarkupfalse% |
|
2599 \ assumption% |
|
2600 \endisatagproof |
|
2601 {\isafoldproof}% |
|
2602 % |
|
2603 \isadelimproof |
|
2604 \isanewline |
|
2605 % |
|
2606 \endisadelimproof |
|
2607 \isanewline |
|
2608 \isacommand{lemma}\isamarkupfalse% |
|
2609 \ star{\isacharunderscore}{\kern0pt}seq{\isadigit{2}}{\isacharcolon}{\kern0pt}\ \ {\isachardoublequoteopen}r{\isadigit{3}}\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ r{\isadigit{4}}\ {\isasymLongrightarrow}\ ASEQ\ bs\ r{\isadigit{1}}\ r{\isadigit{3}}\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ ASEQ\ bs\ r{\isadigit{1}}\ r{\isadigit{4}}{\isachardoublequoteclose}\isanewline |
|
2610 % |
|
2611 \isadelimproof |
|
2612 \ \ % |
|
2613 \endisadelimproof |
|
2614 % |
|
2615 \isatagproof |
|
2616 \isacommand{apply}\isamarkupfalse% |
|
2617 {\isacharparenleft}{\kern0pt}induct\ r{\isadigit{3}}\ r{\isadigit{4}}\ arbitrary{\isacharcolon}{\kern0pt}\ r{\isadigit{1}}\ rule{\isacharcolon}{\kern0pt}\ rrewrites{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline |
|
2618 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2619 \ auto\isanewline |
|
2620 \ \ \isacommand{using}\isamarkupfalse% |
|
2621 \ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{5}}{\isacharparenright}{\kern0pt}\ \isacommand{by}\isamarkupfalse% |
|
2622 \ blast% |
|
2623 \endisatagproof |
|
2624 {\isafoldproof}% |
|
2625 % |
|
2626 \isadelimproof |
|
2627 \isanewline |
|
2628 % |
|
2629 \endisadelimproof |
|
2630 \isanewline |
|
2631 \isanewline |
|
2632 \isacommand{lemma}\isamarkupfalse% |
|
2633 \ continuous{\isacharunderscore}{\kern0pt}rewrite{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}{\isasymlbrakk}r{\isadigit{1}}\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ AZERO{\isasymrbrakk}\ {\isasymLongrightarrow}\ ASEQ\ bs{\isadigit{1}}\ r{\isadigit{1}}\ r{\isadigit{2}}\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ AZERO{\isachardoublequoteclose}\isanewline |
|
2634 % |
|
2635 \isadelimproof |
|
2636 \ \ % |
|
2637 \endisadelimproof |
|
2638 % |
|
2639 \isatagproof |
|
2640 \isacommand{apply}\isamarkupfalse% |
|
2641 {\isacharparenleft}{\kern0pt}induction\ ra{\isasymequiv}{\isachardoublequoteopen}r{\isadigit{1}}{\isachardoublequoteclose}\ rb{\isasymequiv}{\isachardoublequoteopen}AZERO{\isachardoublequoteclose}\ arbitrary{\isacharcolon}{\kern0pt}\ bs{\isadigit{1}}\ r{\isadigit{1}}\ r{\isadigit{2}}\ rule{\isacharcolon}{\kern0pt}\ rrewrites{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline |
|
2642 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2643 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ r{\isacharunderscore}{\kern0pt}in{\isacharunderscore}{\kern0pt}rstar\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline |
|
2644 \isanewline |
|
2645 \ \ \isacommand{by}\isamarkupfalse% |
|
2646 \ {\isacharparenleft}{\kern0pt}meson\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isacharparenright}{\kern0pt}\ rrewrites{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{2}}{\isacharparenright}{\kern0pt}\ star{\isacharunderscore}{\kern0pt}seq{\isacharparenright}{\kern0pt}% |
|
2647 \endisatagproof |
|
2648 {\isafoldproof}% |
|
2649 % |
|
2650 \isadelimproof |
|
2651 \isanewline |
|
2652 % |
|
2653 \endisadelimproof |
|
2654 \ \ \isanewline |
|
2655 \isanewline |
|
2656 \isanewline |
|
2657 \isacommand{lemma}\isamarkupfalse% |
|
2658 \ bsimp{\isacharunderscore}{\kern0pt}aalts{\isacharunderscore}{\kern0pt}simpcases{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}AONE\ bs\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ {\isacharparenleft}{\kern0pt}bsimp\ {\isacharparenleft}{\kern0pt}AONE\ bs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\ \ {\isachardoublequoteopen}AZERO\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ bsimp\ AZERO{\isachardoublequoteclose}\ {\isachardoublequoteopen}ACHAR\ bs\ c\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ {\isacharparenleft}{\kern0pt}bsimp\ {\isacharparenleft}{\kern0pt}ACHAR\ bs\ c{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
2659 % |
|
2660 \isadelimproof |
|
2661 \ \ % |
|
2662 \endisadelimproof |
|
2663 % |
|
2664 \isatagproof |
|
2665 \isacommand{apply}\isamarkupfalse% |
|
2666 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ rrewrites{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline |
|
2667 \ \ \isacommand{apply}\isamarkupfalse% |
|
2668 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ rrewrites{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline |
|
2669 \ \ \isacommand{by}\isamarkupfalse% |
|
2670 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ rrewrites{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}% |
|
2671 \endisatagproof |
|
2672 {\isafoldproof}% |
|
2673 % |
|
2674 \isadelimproof |
|
2675 \isanewline |
|
2676 % |
|
2677 \endisadelimproof |
|
2678 \isanewline |
|
2679 \isacommand{lemma}\isamarkupfalse% |
|
2680 \ trivialbsimpsrewrites{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}{\isasymlbrakk}{\isasymAnd}x{\isachardot}{\kern0pt}\ x\ {\isasymin}\ set\ rs\ {\isasymLongrightarrow}\ x\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ f\ x\ {\isasymrbrakk}\ {\isasymLongrightarrow}\ rs\ s{\isasymleadsto}{\isacharasterisk}{\kern0pt}\ {\isacharparenleft}{\kern0pt}map\ f\ rs{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
2681 % |
|
2682 \isadelimproof |
|
2683 \isanewline |
|
2684 \ \ % |
|
2685 \endisadelimproof |
|
2686 % |
|
2687 \isatagproof |
|
2688 \isacommand{apply}\isamarkupfalse% |
|
2689 {\isacharparenleft}{\kern0pt}induction\ rs{\isacharparenright}{\kern0pt}\isanewline |
|
2690 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2691 \ simp\isanewline |
|
2692 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2693 {\isacharparenleft}{\kern0pt}rule\ ss{\isadigit{1}}{\isacharparenright}{\kern0pt}\isanewline |
|
2694 \ \ \isacommand{by}\isamarkupfalse% |
|
2695 \ {\isacharparenleft}{\kern0pt}metis\ insert{\isacharunderscore}{\kern0pt}iff\ list{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isadigit{5}}{\isacharparenright}{\kern0pt}\ list{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{9}}{\isacharparenright}{\kern0pt}\ srewrites{\isachardot}{\kern0pt}simps{\isacharparenright}{\kern0pt}% |
|
2696 \endisatagproof |
|
2697 {\isafoldproof}% |
|
2698 % |
|
2699 \isadelimproof |
|
2700 \isanewline |
|
2701 % |
|
2702 \endisadelimproof |
|
2703 \isanewline |
|
2704 \isanewline |
|
2705 \isacommand{lemma}\isamarkupfalse% |
|
2706 \ bsimp{\isacharunderscore}{\kern0pt}AALTsrewrites{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}AALTs\ bs{\isadigit{1}}\ rs\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ bsimp{\isacharunderscore}{\kern0pt}AALTs\ bs{\isadigit{1}}\ rs{\isachardoublequoteclose}\isanewline |
|
2707 % |
|
2708 \isadelimproof |
|
2709 \ \ % |
|
2710 \endisadelimproof |
|
2711 % |
|
2712 \isatagproof |
|
2713 \isacommand{apply}\isamarkupfalse% |
|
2714 {\isacharparenleft}{\kern0pt}induction\ rs{\isacharparenright}{\kern0pt}\isanewline |
|
2715 \ \ \isacommand{apply}\isamarkupfalse% |
|
2716 \ simp\isanewline |
|
2717 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2718 {\isacharparenleft}{\kern0pt}rule\ r{\isacharunderscore}{\kern0pt}in{\isacharunderscore}{\kern0pt}rstar{\isacharparenright}{\kern0pt}\isanewline |
|
2719 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2720 {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ \ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isadigit{1}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline |
|
2721 \ \ \isacommand{apply}\isamarkupfalse% |
|
2722 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}rs\ {\isacharequal}{\kern0pt}\ Nil{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
2723 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2724 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
2725 \ \ \isacommand{using}\isamarkupfalse% |
|
2726 \ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isadigit{2}}{\isacharparenright}{\kern0pt}\ \isacommand{apply}\isamarkupfalse% |
|
2727 \ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
2728 \ \ \isacommand{apply}\isamarkupfalse% |
|
2729 {\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}length\ {\isacharparenleft}{\kern0pt}a{\isacharhash}{\kern0pt}rs{\isacharparenright}{\kern0pt}\ {\isachargreater}{\kern0pt}\ {\isadigit{1}}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
2730 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2731 {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ bsimp{\isacharunderscore}{\kern0pt}AALTs{\isacharunderscore}{\kern0pt}qq{\isacharparenright}{\kern0pt}\isanewline |
|
2732 \ \ \isacommand{apply}\isamarkupfalse% |
|
2733 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
2734 \ \ \isacommand{done}\isamarkupfalse% |
|
2735 % |
|
2736 \endisatagproof |
|
2737 {\isafoldproof}% |
|
2738 % |
|
2739 \isadelimproof |
|
2740 \ \isanewline |
|
2741 % |
|
2742 \endisadelimproof |
|
2743 \isanewline |
|
2744 \isacommand{inductive}\isamarkupfalse% |
|
2745 \ frewrites{\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}arexp\ list\ {\isasymRightarrow}\ arexp\ list\ {\isasymRightarrow}\ bool{\isachardoublequoteclose}\ {\isacharparenleft}{\kern0pt}{\isachardoublequoteopen}\ {\isacharunderscore}{\kern0pt}\ f{\isasymleadsto}{\isacharasterisk}{\kern0pt}\ {\isacharunderscore}{\kern0pt}{\isachardoublequoteclose}\ {\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isadigit{0}}{\isadigit{0}}{\isacharcomma}{\kern0pt}\ {\isadigit{1}}{\isadigit{0}}{\isadigit{0}}{\isacharbrackright}{\kern0pt}\ {\isadigit{1}}{\isadigit{0}}{\isadigit{0}}{\isacharparenright}{\kern0pt}\isanewline |
|
2746 \ \ \isakeyword{where}\isanewline |
|
2747 fs{\isadigit{1}}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}{\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ f{\isasymleadsto}{\isacharasterisk}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
2748 {\isacharbar}{\kern0pt}fs{\isadigit{2}}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}{\isasymlbrakk}rs\ f{\isasymleadsto}{\isacharasterisk}{\kern0pt}\ rs{\isacharprime}{\kern0pt}{\isasymrbrakk}\ {\isasymLongrightarrow}\ {\isacharparenleft}{\kern0pt}AZERO{\isacharhash}{\kern0pt}rs{\isacharparenright}{\kern0pt}\ f{\isasymleadsto}{\isacharasterisk}{\kern0pt}\ rs{\isacharprime}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
2749 {\isacharbar}{\kern0pt}fs{\isadigit{3}}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}{\isasymlbrakk}rs\ f{\isasymleadsto}{\isacharasterisk}{\kern0pt}\ rs{\isacharprime}{\kern0pt}{\isasymrbrakk}\ {\isasymLongrightarrow}\ {\isacharparenleft}{\kern0pt}{\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isadigit{1}}{\isacharparenright}{\kern0pt}\ {\isacharhash}{\kern0pt}\ rs{\isacharparenright}{\kern0pt}\ f{\isasymleadsto}{\isacharasterisk}{\kern0pt}\ {\isacharparenleft}{\kern0pt}{\isacharparenleft}{\kern0pt}map\ {\isacharparenleft}{\kern0pt}fuse\ bs{\isacharparenright}{\kern0pt}\ rs{\isadigit{1}}{\isacharparenright}{\kern0pt}\ {\isacharat}{\kern0pt}\ rs{\isacharprime}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
2750 {\isacharbar}{\kern0pt}fs{\isadigit{4}}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}{\isasymlbrakk}rs\ f{\isasymleadsto}{\isacharasterisk}{\kern0pt}\ rs{\isacharprime}{\kern0pt}{\isacharsemicolon}{\kern0pt}nonalt\ r{\isacharsemicolon}{\kern0pt}\ nonazero\ r{\isasymrbrakk}\ {\isasymLongrightarrow}\ {\isacharparenleft}{\kern0pt}r{\isacharhash}{\kern0pt}rs{\isacharparenright}{\kern0pt}\ f{\isasymleadsto}{\isacharasterisk}{\kern0pt}\ {\isacharparenleft}{\kern0pt}r{\isacharhash}{\kern0pt}rs{\isacharprime}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
2751 \isanewline |
|
2752 \isanewline |
|
2753 \isanewline |
|
2754 \isanewline |
|
2755 \isanewline |
|
2756 \isacommand{lemma}\isamarkupfalse% |
|
2757 \ flts{\isacharunderscore}{\kern0pt}prepend{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}{\isasymlbrakk}nonalt\ a{\isacharsemicolon}{\kern0pt}\ nonazero\ a{\isasymrbrakk}\ {\isasymLongrightarrow}\ flts\ {\isacharparenleft}{\kern0pt}a{\isacharhash}{\kern0pt}rs{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ a\ {\isacharhash}{\kern0pt}\ {\isacharparenleft}{\kern0pt}flts\ rs{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
2758 % |
|
2759 \isadelimproof |
|
2760 \ \ % |
|
2761 \endisadelimproof |
|
2762 % |
|
2763 \isatagproof |
|
2764 \isacommand{by}\isamarkupfalse% |
|
2765 \ {\isacharparenleft}{\kern0pt}metis\ append{\isacharunderscore}{\kern0pt}Cons\ append{\isacharunderscore}{\kern0pt}Nil\ flts{\isacharunderscore}{\kern0pt}single{\isadigit{1}}\ k{\isadigit{0}}{\isadigit{0}}{\isacharparenright}{\kern0pt}% |
|
2766 \endisatagproof |
|
2767 {\isafoldproof}% |
|
2768 % |
|
2769 \isadelimproof |
|
2770 \isanewline |
|
2771 % |
|
2772 \endisadelimproof |
|
2773 \isanewline |
|
2774 \isacommand{lemma}\isamarkupfalse% |
|
2775 \ fltsfrewrites{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}rs\ f{\isasymleadsto}{\isacharasterisk}{\kern0pt}\ {\isacharparenleft}{\kern0pt}flts\ rs{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
2776 % |
|
2777 \isadelimproof |
|
2778 \ \ % |
|
2779 \endisadelimproof |
|
2780 % |
|
2781 \isatagproof |
|
2782 \isacommand{apply}\isamarkupfalse% |
|
2783 {\isacharparenleft}{\kern0pt}induction\ rs{\isacharparenright}{\kern0pt}\isanewline |
|
2784 \ \ \isacommand{apply}\isamarkupfalse% |
|
2785 \ simp\isanewline |
|
2786 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2787 {\isacharparenleft}{\kern0pt}rule\ fs{\isadigit{1}}{\isacharparenright}{\kern0pt}\isanewline |
|
2788 \isanewline |
|
2789 \ \ \isacommand{apply}\isamarkupfalse% |
|
2790 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}a\ {\isacharequal}{\kern0pt}\ AZERO{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
2791 \isanewline |
|
2792 \ \ \ \isanewline |
|
2793 \ \ \isacommand{using}\isamarkupfalse% |
|
2794 \ fs{\isadigit{2}}\ \isacommand{apply}\isamarkupfalse% |
|
2795 \ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
2796 \ \ \isacommand{apply}\isamarkupfalse% |
|
2797 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}{\isasymexists}bs\ rs{\isachardot}{\kern0pt}\ a\ {\isacharequal}{\kern0pt}\ AALTs\ bs\ rs{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
2798 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2799 {\isacharparenleft}{\kern0pt}erule\ exE{\isacharparenright}{\kern0pt}{\isacharplus}{\kern0pt}\isanewline |
|
2800 \ \ \ \isanewline |
|
2801 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2802 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ fs{\isadigit{3}}{\isacharparenright}{\kern0pt}\isanewline |
|
2803 \ \ \isacommand{apply}\isamarkupfalse% |
|
2804 {\isacharparenleft}{\kern0pt}subst\ flts{\isacharunderscore}{\kern0pt}prepend{\isacharparenright}{\kern0pt}\isanewline |
|
2805 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2806 {\isacharparenleft}{\kern0pt}rule\ nonalt{\isachardot}{\kern0pt}elims{\isacharparenleft}{\kern0pt}{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline |
|
2807 \ \ \isacommand{prefer}\isamarkupfalse% |
|
2808 \ {\isadigit{2}}\isanewline |
|
2809 \ \ \isacommand{thm}\isamarkupfalse% |
|
2810 \ nonalt{\isachardot}{\kern0pt}elims\isanewline |
|
2811 \ \ \ \isanewline |
|
2812 \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2813 \ blast\isanewline |
|
2814 \ \ \ \isanewline |
|
2815 \ \ \isacommand{using}\isamarkupfalse% |
|
2816 \ bbbbs{\isadigit{1}}\ \isacommand{apply}\isamarkupfalse% |
|
2817 \ blast\isanewline |
|
2818 \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2819 {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ nonalt{\isachardot}{\kern0pt}simps{\isacharparenright}{\kern0pt}{\isacharplus}{\kern0pt}\isanewline |
|
2820 \ \ \ \isanewline |
|
2821 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2822 \ {\isacharparenleft}{\kern0pt}meson\ nonazero{\isachardot}{\kern0pt}elims{\isacharparenleft}{\kern0pt}{\isadigit{3}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline |
|
2823 \ \ \ \isanewline |
|
2824 \ \ \isacommand{by}\isamarkupfalse% |
|
2825 \ {\isacharparenleft}{\kern0pt}meson\ fs{\isadigit{4}}\ nonalt{\isachardot}{\kern0pt}elims{\isacharparenleft}{\kern0pt}{\isadigit{3}}{\isacharparenright}{\kern0pt}\ nonazero{\isachardot}{\kern0pt}elims{\isacharparenleft}{\kern0pt}{\isadigit{3}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}% |
|
2826 \endisatagproof |
|
2827 {\isafoldproof}% |
|
2828 % |
|
2829 \isadelimproof |
|
2830 \isanewline |
|
2831 % |
|
2832 \endisadelimproof |
|
2833 \isanewline |
|
2834 \isanewline |
|
2835 \isacommand{lemma}\isamarkupfalse% |
|
2836 \ rrewrite{\isadigit{0}}away{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}AALTs\ bs\ {\isacharparenleft}{\kern0pt}\ AZERO\ {\isacharhash}{\kern0pt}\ rsb{\isacharparenright}{\kern0pt}\ {\isasymleadsto}\ AALTs\ bs\ rsb{\isachardoublequoteclose}\isanewline |
|
2837 % |
|
2838 \isadelimproof |
|
2839 \ \ % |
|
2840 \endisadelimproof |
|
2841 % |
|
2842 \isatagproof |
|
2843 \isacommand{by}\isamarkupfalse% |
|
2844 \ {\isacharparenleft}{\kern0pt}metis\ append{\isacharunderscore}{\kern0pt}Nil\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{7}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}% |
|
2845 \endisatagproof |
|
2846 {\isafoldproof}% |
|
2847 % |
|
2848 \isadelimproof |
|
2849 \isanewline |
|
2850 % |
|
2851 \endisadelimproof |
|
2852 \isanewline |
|
2853 \isanewline |
|
2854 \isacommand{lemma}\isamarkupfalse% |
|
2855 \ frewritesaalts{\isacharcolon}{\kern0pt}{\isachardoublequoteopen}rs\ f{\isasymleadsto}{\isacharasterisk}{\kern0pt}\ rs{\isacharprime}{\kern0pt}\ {\isasymLongrightarrow}\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}rs{\isadigit{1}}{\isacharat}{\kern0pt}rs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}rs{\isadigit{1}}{\isacharat}{\kern0pt}rs{\isacharprime}{\kern0pt}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
2856 % |
|
2857 \isadelimproof |
|
2858 \ \ % |
|
2859 \endisadelimproof |
|
2860 % |
|
2861 \isatagproof |
|
2862 \isacommand{apply}\isamarkupfalse% |
|
2863 {\isacharparenleft}{\kern0pt}induct\ rs\ rs{\isacharprime}{\kern0pt}\ arbitrary{\isacharcolon}{\kern0pt}\ bs\ rs{\isadigit{1}}\ rule{\isacharcolon}{\kern0pt}frewrites{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline |
|
2864 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2865 {\isacharparenleft}{\kern0pt}rule\ rs{\isadigit{1}}{\isacharparenright}{\kern0pt}\isanewline |
|
2866 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2867 {\isacharparenleft}{\kern0pt}drule{\isacharunderscore}{\kern0pt}tac\ x\ {\isacharequal}{\kern0pt}\ {\isachardoublequoteopen}bs{\isachardoublequoteclose}\ \isakeyword{in}\ meta{\isacharunderscore}{\kern0pt}spec{\isacharparenright}{\kern0pt}\isanewline |
|
2868 \ \ \isacommand{apply}\isamarkupfalse% |
|
2869 {\isacharparenleft}{\kern0pt}drule{\isacharunderscore}{\kern0pt}tac\ x\ {\isacharequal}{\kern0pt}\ {\isachardoublequoteopen}rs{\isadigit{1}}\ {\isacharat}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}AZERO{\isacharbrackright}{\kern0pt}{\isachardoublequoteclose}\ \isakeyword{in}\ meta{\isacharunderscore}{\kern0pt}spec{\isacharparenright}{\kern0pt}\isanewline |
|
2870 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2871 {\isacharparenleft}{\kern0pt}rule\ real{\isacharunderscore}{\kern0pt}trans{\isacharparenright}{\kern0pt}\isanewline |
|
2872 \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2873 \ simp\isanewline |
|
2874 \ \ \isacommand{using}\isamarkupfalse% |
|
2875 \ r{\isacharunderscore}{\kern0pt}in{\isacharunderscore}{\kern0pt}rstar\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{7}}{\isacharparenright}{\kern0pt}\ \isacommand{apply}\isamarkupfalse% |
|
2876 \ presburger\isanewline |
|
2877 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2878 {\isacharparenleft}{\kern0pt}drule{\isacharunderscore}{\kern0pt}tac\ x\ {\isacharequal}{\kern0pt}\ {\isachardoublequoteopen}bsa{\isachardoublequoteclose}\ \isakeyword{in}\ meta{\isacharunderscore}{\kern0pt}spec{\isacharparenright}{\kern0pt}\isanewline |
|
2879 \ \ \isacommand{apply}\isamarkupfalse% |
|
2880 {\isacharparenleft}{\kern0pt}drule{\isacharunderscore}{\kern0pt}tac\ x\ {\isacharequal}{\kern0pt}\ {\isachardoublequoteopen}rs{\isadigit{1}}a\ {\isacharat}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}AALTs\ bs\ rs{\isadigit{1}}{\isacharbrackright}{\kern0pt}{\isachardoublequoteclose}\ \isakeyword{in}\ meta{\isacharunderscore}{\kern0pt}spec{\isacharparenright}{\kern0pt}\isanewline |
|
2881 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2882 {\isacharparenleft}{\kern0pt}rule\ real{\isacharunderscore}{\kern0pt}trans{\isacharparenright}{\kern0pt}\isanewline |
|
2883 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2884 \ simp\isanewline |
|
2885 \ \ \isacommand{using}\isamarkupfalse% |
|
2886 \ r{\isacharunderscore}{\kern0pt}in{\isacharunderscore}{\kern0pt}rstar\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{8}}{\isacharparenright}{\kern0pt}\ \isacommand{apply}\isamarkupfalse% |
|
2887 \ presburger\isanewline |
|
2888 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2889 {\isacharparenleft}{\kern0pt}drule{\isacharunderscore}{\kern0pt}tac\ x\ {\isacharequal}{\kern0pt}\ {\isachardoublequoteopen}bs{\isachardoublequoteclose}\ \isakeyword{in}\ meta{\isacharunderscore}{\kern0pt}spec{\isacharparenright}{\kern0pt}\isanewline |
|
2890 \ \ \isacommand{apply}\isamarkupfalse% |
|
2891 {\isacharparenleft}{\kern0pt}drule{\isacharunderscore}{\kern0pt}tac\ x\ {\isacharequal}{\kern0pt}\ {\isachardoublequoteopen}rs{\isadigit{1}}{\isacharat}{\kern0pt}{\isacharbrackleft}{\kern0pt}r{\isacharbrackright}{\kern0pt}{\isachardoublequoteclose}\ \isakeyword{in}\ meta{\isacharunderscore}{\kern0pt}spec{\isacharparenright}{\kern0pt}\isanewline |
|
2892 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2893 {\isacharparenleft}{\kern0pt}rule\ real{\isacharunderscore}{\kern0pt}trans{\isacharparenright}{\kern0pt}\isanewline |
|
2894 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2895 \ simp\isanewline |
|
2896 \ \ \isacommand{apply}\isamarkupfalse% |
|
2897 \ auto\isanewline |
|
2898 \ \ \isacommand{done}\isamarkupfalse% |
|
2899 % |
|
2900 \endisatagproof |
|
2901 {\isafoldproof}% |
|
2902 % |
|
2903 \isadelimproof |
|
2904 \isanewline |
|
2905 % |
|
2906 \endisadelimproof |
|
2907 \isanewline |
|
2908 \isacommand{lemma}\isamarkupfalse% |
|
2909 \ fltsrewrites{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}\ \ AALTs\ bs{\isadigit{1}}\ rs\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ AALTs\ bs{\isadigit{1}}\ {\isacharparenleft}{\kern0pt}flts\ rs{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
2910 % |
|
2911 \isadelimproof |
|
2912 \ \ % |
|
2913 \endisadelimproof |
|
2914 % |
|
2915 \isatagproof |
|
2916 \isacommand{apply}\isamarkupfalse% |
|
2917 {\isacharparenleft}{\kern0pt}induction\ rs{\isacharparenright}{\kern0pt}\isanewline |
|
2918 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2919 \ simp\isanewline |
|
2920 \ \ \isacommand{apply}\isamarkupfalse% |
|
2921 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}a\ {\isacharequal}{\kern0pt}\ AZERO{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
2922 \ \ \isacommand{apply}\isamarkupfalse% |
|
2923 \ {\isacharparenleft}{\kern0pt}metis\ append{\isacharunderscore}{\kern0pt}Nil\ flts{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{2}}{\isacharparenright}{\kern0pt}\ many{\isacharunderscore}{\kern0pt}steps{\isacharunderscore}{\kern0pt}later\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{7}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline |
|
2924 \isanewline |
|
2925 \isanewline |
|
2926 \isanewline |
|
2927 \ \ \isacommand{apply}\isamarkupfalse% |
|
2928 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}{\isasymexists}bs{\isadigit{2}}\ rs{\isadigit{2}}{\isachardot}{\kern0pt}\ a\ {\isacharequal}{\kern0pt}\ AALTs\ bs{\isadigit{2}}\ rs{\isadigit{2}}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
2929 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2930 {\isacharparenleft}{\kern0pt}erule\ exE{\isacharparenright}{\kern0pt}{\isacharplus}{\kern0pt}\isanewline |
|
2931 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2932 {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ flts{\isachardot}{\kern0pt}simps{\isacharparenright}{\kern0pt}\isanewline |
|
2933 \ \ \ \isacommand{prefer}\isamarkupfalse% |
|
2934 \ {\isadigit{2}}\isanewline |
|
2935 \isanewline |
|
2936 \ \ \isacommand{apply}\isamarkupfalse% |
|
2937 {\isacharparenleft}{\kern0pt}subst\ flts{\isacharunderscore}{\kern0pt}prepend{\isacharparenright}{\kern0pt}\isanewline |
|
2938 \ \ \ \isanewline |
|
2939 \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2940 \ {\isacharparenleft}{\kern0pt}meson\ nonalt{\isachardot}{\kern0pt}elims{\isacharparenleft}{\kern0pt}{\isadigit{3}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline |
|
2941 \ \ \ \isanewline |
|
2942 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2943 \ {\isacharparenleft}{\kern0pt}meson\ nonazero{\isachardot}{\kern0pt}elims{\isacharparenleft}{\kern0pt}{\isadigit{3}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline |
|
2944 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
2945 {\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}{\isacharparenleft}{\kern0pt}a{\isacharhash}{\kern0pt}rs{\isacharparenright}{\kern0pt}\ f{\isasymleadsto}{\isacharasterisk}{\kern0pt}\ {\isacharparenleft}{\kern0pt}a{\isacharhash}{\kern0pt}flts\ rs{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
2946 \ \ \isacommand{apply}\isamarkupfalse% |
|
2947 \ {\isacharparenleft}{\kern0pt}metis\ append{\isacharunderscore}{\kern0pt}Nil\ frewritesaalts{\isacharparenright}{\kern0pt}\isanewline |
|
2948 \ \ \isacommand{apply}\isamarkupfalse% |
|
2949 \ {\isacharparenleft}{\kern0pt}meson\ fltsfrewrites\ fs{\isadigit{4}}\ nonalt{\isachardot}{\kern0pt}elims{\isacharparenleft}{\kern0pt}{\isadigit{3}}{\isacharparenright}{\kern0pt}\ nonazero{\isachardot}{\kern0pt}elims{\isacharparenleft}{\kern0pt}{\isadigit{3}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline |
|
2950 \ \ \isacommand{by}\isamarkupfalse% |
|
2951 \ {\isacharparenleft}{\kern0pt}metis\ append{\isacharunderscore}{\kern0pt}Cons\ append{\isacharunderscore}{\kern0pt}Nil\ fltsfrewrites\ frewritesaalts\ k{\isadigit{0}}{\isadigit{0}}\ k{\isadigit{0}}a{\isacharparenright}{\kern0pt}% |
|
2952 \endisatagproof |
|
2953 {\isafoldproof}% |
|
2954 % |
|
2955 \isadelimproof |
|
2956 \isanewline |
|
2957 % |
|
2958 \endisadelimproof |
|
2959 \isanewline |
|
2960 \isacommand{lemma}\isamarkupfalse% |
|
2961 \ alts{\isacharunderscore}{\kern0pt}simpalts{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}{\isasymAnd}bs{\isadigit{1}}\ rs{\isachardot}{\kern0pt}\ {\isacharparenleft}{\kern0pt}{\isasymAnd}x{\isachardot}{\kern0pt}\ x\ {\isasymin}\ set\ rs\ {\isasymLongrightarrow}\ x\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ bsimp\ x{\isacharparenright}{\kern0pt}\ {\isasymLongrightarrow}\ \isanewline |
|
2962 AALTs\ bs{\isadigit{1}}\ rs\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ AALTs\ bs{\isadigit{1}}\ {\isacharparenleft}{\kern0pt}map\ bsimp\ rs{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
2963 % |
|
2964 \isadelimproof |
|
2965 \ \ % |
|
2966 \endisadelimproof |
|
2967 % |
|
2968 \isatagproof |
|
2969 \isacommand{apply}\isamarkupfalse% |
|
2970 {\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}\ rs\ s{\isasymleadsto}{\isacharasterisk}{\kern0pt}\ \ {\isacharparenleft}{\kern0pt}map\ bsimp\ rs{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
2971 \ \ \ \isacommand{prefer}\isamarkupfalse% |
|
2972 \ {\isadigit{2}}\isanewline |
|
2973 \ \ \isacommand{using}\isamarkupfalse% |
|
2974 \ trivialbsimpsrewrites\ \isacommand{apply}\isamarkupfalse% |
|
2975 \ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
2976 \ \ \isacommand{using}\isamarkupfalse% |
|
2977 \ srewrites{\isacharunderscore}{\kern0pt}alt{\isadigit{1}}\ \isacommand{by}\isamarkupfalse% |
|
2978 \ auto% |
|
2979 \endisatagproof |
|
2980 {\isafoldproof}% |
|
2981 % |
|
2982 \isadelimproof |
|
2983 \isanewline |
|
2984 % |
|
2985 \endisadelimproof |
|
2986 \isanewline |
|
2987 \isanewline |
|
2988 \isacommand{lemma}\isamarkupfalse% |
|
2989 \ threelistsappend{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}rsa{\isacharat}{\kern0pt}a{\isacharhash}{\kern0pt}rsb\ {\isacharequal}{\kern0pt}\ {\isacharparenleft}{\kern0pt}rsa{\isacharat}{\kern0pt}{\isacharbrackleft}{\kern0pt}a{\isacharbrackright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isacharat}{\kern0pt}rsb{\isachardoublequoteclose}\isanewline |
|
2990 % |
|
2991 \isadelimproof |
|
2992 \ \ % |
|
2993 \endisadelimproof |
|
2994 % |
|
2995 \isatagproof |
|
2996 \isacommand{apply}\isamarkupfalse% |
|
2997 \ auto\isanewline |
|
2998 \ \ \isacommand{done}\isamarkupfalse% |
|
2999 % |
|
3000 \endisatagproof |
|
3001 {\isafoldproof}% |
|
3002 % |
|
3003 \isadelimproof |
|
3004 \isanewline |
|
3005 % |
|
3006 \endisadelimproof |
|
3007 \isanewline |
|
3008 \isacommand{fun}\isamarkupfalse% |
|
3009 \ distinctByAcc\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}{\isacharprime}{\kern0pt}a\ list\ {\isasymRightarrow}\ {\isacharparenleft}{\kern0pt}{\isacharprime}{\kern0pt}a\ {\isasymRightarrow}\ {\isacharprime}{\kern0pt}b{\isacharparenright}{\kern0pt}\ {\isasymRightarrow}\ {\isacharprime}{\kern0pt}b\ set\ {\isasymRightarrow}\ {\isacharprime}{\kern0pt}b\ set{\isachardoublequoteclose}\isanewline |
|
3010 \ \ \isakeyword{where}\isanewline |
|
3011 \ \ {\isachardoublequoteopen}distinctByAcc\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ f\ acc\ {\isacharequal}{\kern0pt}\ acc{\isachardoublequoteclose}\isanewline |
|
3012 {\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}distinctByAcc\ {\isacharparenleft}{\kern0pt}x{\isacharhash}{\kern0pt}xs{\isacharparenright}{\kern0pt}\ f\ acc\ {\isacharequal}{\kern0pt}\ \isanewline |
|
3013 \ \ \ \ \ {\isacharparenleft}{\kern0pt}if\ {\isacharparenleft}{\kern0pt}f\ x{\isacharparenright}{\kern0pt}\ {\isasymin}\ acc\ then\ distinctByAcc\ xs\ f\ acc\ \isanewline |
|
3014 \ \ \ \ \ \ else\ \ {\isacharparenleft}{\kern0pt}distinctByAcc\ xs\ f\ {\isacharparenleft}{\kern0pt}{\isacharbraceleft}{\kern0pt}f\ x{\isacharbraceright}{\kern0pt}\ {\isasymunion}\ acc{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
3015 \isanewline |
|
3016 \isacommand{lemma}\isamarkupfalse% |
|
3017 \ dB{\isacharunderscore}{\kern0pt}single{\isacharunderscore}{\kern0pt}step{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}distinctBy\ {\isacharparenleft}{\kern0pt}a{\isacharhash}{\kern0pt}rs{\isacharparenright}{\kern0pt}\ f\ {\isacharbraceleft}{\kern0pt}{\isacharbraceright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ a\ {\isacharhash}{\kern0pt}\ distinctBy\ rs\ f\ {\isacharbraceleft}{\kern0pt}f\ a{\isacharbraceright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
3018 % |
|
3019 \isadelimproof |
|
3020 \ \ % |
|
3021 \endisadelimproof |
|
3022 % |
|
3023 \isatagproof |
|
3024 \isacommand{apply}\isamarkupfalse% |
|
3025 \ simp\isanewline |
|
3026 \ \ \isacommand{done}\isamarkupfalse% |
|
3027 % |
|
3028 \endisatagproof |
|
3029 {\isafoldproof}% |
|
3030 % |
|
3031 \isadelimproof |
|
3032 \isanewline |
|
3033 % |
|
3034 \endisadelimproof |
|
3035 \isanewline |
|
3036 \isacommand{lemma}\isamarkupfalse% |
|
3037 \ somewhereInside{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}r\ {\isasymin}\ set\ rs\ {\isasymLongrightarrow}\ {\isasymexists}rs{\isadigit{1}}\ rs{\isadigit{2}}{\isachardot}{\kern0pt}\ rs\ {\isacharequal}{\kern0pt}\ rs{\isadigit{1}}{\isacharat}{\kern0pt}{\isacharbrackleft}{\kern0pt}r{\isacharbrackright}{\kern0pt}{\isacharat}{\kern0pt}rs{\isadigit{2}}{\isachardoublequoteclose}\isanewline |
|
3038 % |
|
3039 \isadelimproof |
|
3040 \ \ % |
|
3041 \endisadelimproof |
|
3042 % |
|
3043 \isatagproof |
|
3044 \isacommand{using}\isamarkupfalse% |
|
3045 \ split{\isacharunderscore}{\kern0pt}list\ \isacommand{by}\isamarkupfalse% |
|
3046 \ fastforce% |
|
3047 \endisatagproof |
|
3048 {\isafoldproof}% |
|
3049 % |
|
3050 \isadelimproof |
|
3051 \isanewline |
|
3052 % |
|
3053 \endisadelimproof |
|
3054 \isanewline |
|
3055 \isacommand{lemma}\isamarkupfalse% |
|
3056 \ somewhereMapInside{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}f\ r\ {\isasymin}\ f\ {\isacharbackquote}{\kern0pt}\ set\ rs\ {\isasymLongrightarrow}\ {\isasymexists}rs{\isadigit{1}}\ rs{\isadigit{2}}\ a{\isachardot}{\kern0pt}\ rs\ {\isacharequal}{\kern0pt}\ rs{\isadigit{1}}{\isacharat}{\kern0pt}{\isacharbrackleft}{\kern0pt}a{\isacharbrackright}{\kern0pt}{\isacharat}{\kern0pt}rs{\isadigit{2}}\ {\isasymand}\ f\ a\ {\isacharequal}{\kern0pt}\ f\ r{\isachardoublequoteclose}\isanewline |
|
3057 % |
|
3058 \isadelimproof |
|
3059 \ \ % |
|
3060 \endisadelimproof |
|
3061 % |
|
3062 \isatagproof |
|
3063 \isacommand{apply}\isamarkupfalse% |
|
3064 \ auto\isanewline |
|
3065 \ \ \isacommand{by}\isamarkupfalse% |
|
3066 \ {\isacharparenleft}{\kern0pt}metis\ split{\isacharunderscore}{\kern0pt}list{\isacharparenright}{\kern0pt}% |
|
3067 \endisatagproof |
|
3068 {\isafoldproof}% |
|
3069 % |
|
3070 \isadelimproof |
|
3071 \isanewline |
|
3072 % |
|
3073 \endisadelimproof |
|
3074 \isanewline |
|
3075 \isacommand{lemma}\isamarkupfalse% |
|
3076 \ alts{\isacharunderscore}{\kern0pt}dBrewrites{\isacharunderscore}{\kern0pt}withFront{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}\ AALTs\ bs\ {\isacharparenleft}{\kern0pt}rsa\ {\isacharat}{\kern0pt}\ rs{\isacharparenright}{\kern0pt}\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ AALTs\ bs\ {\isacharparenleft}{\kern0pt}rsa\ {\isacharat}{\kern0pt}\ distinctBy\ rs\ erase\ {\isacharparenleft}{\kern0pt}erase\ {\isacharbackquote}{\kern0pt}\ set\ rsa{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
3077 % |
|
3078 \isadelimproof |
|
3079 \ \ % |
|
3080 \endisadelimproof |
|
3081 % |
|
3082 \isatagproof |
|
3083 \isacommand{apply}\isamarkupfalse% |
|
3084 {\isacharparenleft}{\kern0pt}induction\ rs\ arbitrary{\isacharcolon}{\kern0pt}\ rsa{\isacharparenright}{\kern0pt}\isanewline |
|
3085 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3086 \ simp\isanewline |
|
3087 \ \ \isacommand{apply}\isamarkupfalse% |
|
3088 {\isacharparenleft}{\kern0pt}drule{\isacharunderscore}{\kern0pt}tac\ x\ {\isacharequal}{\kern0pt}\ {\isachardoublequoteopen}rsa{\isacharat}{\kern0pt}{\isacharbrackleft}{\kern0pt}a{\isacharbrackright}{\kern0pt}{\isachardoublequoteclose}\ \isakeyword{in}\ meta{\isacharunderscore}{\kern0pt}spec{\isacharparenright}{\kern0pt}\isanewline |
|
3089 \ \ \isacommand{apply}\isamarkupfalse% |
|
3090 {\isacharparenleft}{\kern0pt}subst\ threelistsappend{\isacharparenright}{\kern0pt}\isanewline |
|
3091 \ \ \isacommand{apply}\isamarkupfalse% |
|
3092 {\isacharparenleft}{\kern0pt}rule\ real{\isacharunderscore}{\kern0pt}trans{\isacharparenright}{\kern0pt}\isanewline |
|
3093 \ \ \isacommand{apply}\isamarkupfalse% |
|
3094 \ simp\isanewline |
|
3095 \ \ \isacommand{apply}\isamarkupfalse% |
|
3096 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}a\ {\isasymin}\ set\ rsa{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
3097 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3098 \ simp\isanewline |
|
3099 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3100 {\isacharparenleft}{\kern0pt}drule\ somewhereInside{\isacharparenright}{\kern0pt}\isanewline |
|
3101 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3102 {\isacharparenleft}{\kern0pt}erule\ exE{\isacharparenright}{\kern0pt}{\isacharplus}{\kern0pt}\isanewline |
|
3103 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3104 \ simp\isanewline |
|
3105 \ \ \isacommand{apply}\isamarkupfalse% |
|
3106 {\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}\ AALTs\ bs\isanewline |
|
3107 \ \ \ \ \ \ \ \ \ \ \ \ {\isacharparenleft}{\kern0pt}rs{\isadigit{1}}\ {\isacharat}{\kern0pt}\isanewline |
|
3108 \ \ \ \ \ \ \ \ \ \ \ \ \ a\ {\isacharhash}{\kern0pt}\isanewline |
|
3109 \ \ \ \ \ \ \ \ \ \ \ \ \ rs{\isadigit{2}}\ {\isacharat}{\kern0pt}\isanewline |
|
3110 \ \ \ \ \ \ \ \ \ \ \ \ \ a\ {\isacharhash}{\kern0pt}\isanewline |
|
3111 \ \ \ \ \ \ \ \ \ \ \ \ \ distinctBy\ rs\ erase\isanewline |
|
3112 \ \ \ \ \ \ \ \ \ \ \ \ \ \ {\isacharparenleft}{\kern0pt}insert\ {\isacharparenleft}{\kern0pt}erase\ a{\isacharparenright}{\kern0pt}\isanewline |
|
3113 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {\isacharparenleft}{\kern0pt}erase\ {\isacharbackquote}{\kern0pt}\isanewline |
|
3114 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {\isacharparenleft}{\kern0pt}set\ rs{\isadigit{1}}\ {\isasymunion}\ set\ rs{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isasymleadsto}\ AALTs\ bs\ {\isacharparenleft}{\kern0pt}rs{\isadigit{1}}{\isacharat}{\kern0pt}\ a\ {\isacharhash}{\kern0pt}\ rs{\isadigit{2}}\ {\isacharat}{\kern0pt}\ \ distinctBy\ rs\ erase\isanewline |
|
3115 \ \ \ \ \ \ \ \ \ \ \ \ \ \ {\isacharparenleft}{\kern0pt}insert\ {\isacharparenleft}{\kern0pt}erase\ a{\isacharparenright}{\kern0pt}\isanewline |
|
3116 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {\isacharparenleft}{\kern0pt}erase\ {\isacharbackquote}{\kern0pt}\isanewline |
|
3117 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {\isacharparenleft}{\kern0pt}set\ rs{\isadigit{1}}\ {\isasymunion}\ set\ rs{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
3118 \ \ \isacommand{prefer}\isamarkupfalse% |
|
3119 \ {\isadigit{2}}\isanewline |
|
3120 \ \ \isacommand{using}\isamarkupfalse% |
|
3121 \ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isadigit{3}}{\isacharparenright}{\kern0pt}\ \isacommand{apply}\isamarkupfalse% |
|
3122 \ force\isanewline |
|
3123 \ \ \isacommand{using}\isamarkupfalse% |
|
3124 \ r{\isacharunderscore}{\kern0pt}in{\isacharunderscore}{\kern0pt}rstar\ \isacommand{apply}\isamarkupfalse% |
|
3125 \ force\isanewline |
|
3126 \ \ \isacommand{apply}\isamarkupfalse% |
|
3127 {\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}erase\ {\isacharbackquote}{\kern0pt}\ set\ {\isacharparenleft}{\kern0pt}rsa\ {\isacharat}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}a{\isacharbrackright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ insert\ {\isacharparenleft}{\kern0pt}erase\ a{\isacharparenright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}erase\ {\isacharbackquote}{\kern0pt}\ set\ rsa{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
3128 \ \ \isacommand{prefer}\isamarkupfalse% |
|
3129 \ {\isadigit{2}}\isanewline |
|
3130 \ \ \ \ \isanewline |
|
3131 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3132 \ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
3133 \ \ \isacommand{apply}\isamarkupfalse% |
|
3134 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}erase\ a\ {\isasymin}\ erase\ {\isacharbackquote}{\kern0pt}set\ rsa{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
3135 \isanewline |
|
3136 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3137 \ simp\isanewline |
|
3138 \ \ \isacommand{apply}\isamarkupfalse% |
|
3139 {\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}AALTs\ bs\ {\isacharparenleft}{\kern0pt}rsa\ {\isacharat}{\kern0pt}\ a\ {\isacharhash}{\kern0pt}\ distinctBy\ rs\ erase\ {\isacharparenleft}{\kern0pt}insert\ {\isacharparenleft}{\kern0pt}erase\ a{\isacharparenright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}erase\ {\isacharbackquote}{\kern0pt}\ set\ rsa{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isasymleadsto}\isanewline |
|
3140 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ AALTs\ bs\ {\isacharparenleft}{\kern0pt}rsa\ {\isacharat}{\kern0pt}\ distinctBy\ rs\ erase\ {\isacharparenleft}{\kern0pt}insert\ {\isacharparenleft}{\kern0pt}erase\ a{\isacharparenright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}erase\ {\isacharbackquote}{\kern0pt}\ set\ rsa{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
3141 \ \ \isacommand{apply}\isamarkupfalse% |
|
3142 \ force\isanewline |
|
3143 \ \ \isacommand{apply}\isamarkupfalse% |
|
3144 \ {\isacharparenleft}{\kern0pt}smt\ {\isacharparenleft}{\kern0pt}verit{\isacharcomma}{\kern0pt}\ ccfv{\isacharunderscore}{\kern0pt}threshold{\isacharparenright}{\kern0pt}\ append{\isacharunderscore}{\kern0pt}Cons\ append{\isacharunderscore}{\kern0pt}assoc\ append{\isacharunderscore}{\kern0pt}self{\isacharunderscore}{\kern0pt}conv{\isadigit{2}}\ r{\isacharunderscore}{\kern0pt}in{\isacharunderscore}{\kern0pt}rstar\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isadigit{3}}{\isacharparenright}{\kern0pt}\ same{\isacharunderscore}{\kern0pt}append{\isacharunderscore}{\kern0pt}eq\ somewhereMapInside{\isacharparenright}{\kern0pt}\isanewline |
|
3145 \ \ \isacommand{by}\isamarkupfalse% |
|
3146 \ force% |
|
3147 \endisatagproof |
|
3148 {\isafoldproof}% |
|
3149 % |
|
3150 \isadelimproof |
|
3151 \isanewline |
|
3152 % |
|
3153 \endisadelimproof |
|
3154 \isanewline |
|
3155 \ \isanewline |
|
3156 \isanewline |
|
3157 \isacommand{lemma}\isamarkupfalse% |
|
3158 \ alts{\isacharunderscore}{\kern0pt}dBrewrites{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}AALTs\ bs\ rs\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ AALTs\ bs\ {\isacharparenleft}{\kern0pt}distinctBy\ rs\ erase\ {\isacharbraceleft}{\kern0pt}{\isacharbraceright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
3159 % |
|
3160 \isadelimproof |
|
3161 \ \ % |
|
3162 \endisadelimproof |
|
3163 % |
|
3164 \isatagproof |
|
3165 \isacommand{apply}\isamarkupfalse% |
|
3166 {\isacharparenleft}{\kern0pt}induction\ rs{\isacharparenright}{\kern0pt}\isanewline |
|
3167 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3168 \ simp\isanewline |
|
3169 \ \ \isacommand{apply}\isamarkupfalse% |
|
3170 \ simp\isanewline |
|
3171 \ \ \isacommand{using}\isamarkupfalse% |
|
3172 \ alts{\isacharunderscore}{\kern0pt}dBrewrites{\isacharunderscore}{\kern0pt}withFront\isanewline |
|
3173 \ \ \isacommand{by}\isamarkupfalse% |
|
3174 \ {\isacharparenleft}{\kern0pt}metis\ append{\isacharunderscore}{\kern0pt}Nil\ dB{\isacharunderscore}{\kern0pt}single{\isacharunderscore}{\kern0pt}step\ empty{\isacharunderscore}{\kern0pt}set\ image{\isacharunderscore}{\kern0pt}empty{\isacharparenright}{\kern0pt}% |
|
3175 \endisatagproof |
|
3176 {\isafoldproof}% |
|
3177 % |
|
3178 \isadelimproof |
|
3179 \isanewline |
|
3180 % |
|
3181 \endisadelimproof |
|
3182 \isanewline |
|
3183 \isanewline |
|
3184 \isanewline |
|
3185 \ \ \isanewline |
|
3186 \isanewline |
|
3187 \isanewline |
|
3188 \isacommand{lemma}\isamarkupfalse% |
|
3189 \ bsimp{\isacharunderscore}{\kern0pt}rewrite{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}\ {\isacharparenleft}{\kern0pt}rrewrites\ r\ {\isacharparenleft}{\kern0pt}\ bsimp\ r{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
3190 % |
|
3191 \isadelimproof |
|
3192 \ \ % |
|
3193 \endisadelimproof |
|
3194 % |
|
3195 \isatagproof |
|
3196 \isacommand{apply}\isamarkupfalse% |
|
3197 {\isacharparenleft}{\kern0pt}induction\ r\ rule{\isacharcolon}{\kern0pt}\ bsimp{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline |
|
3198 \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3199 \ simp\isanewline |
|
3200 \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3201 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bsimp\ r{\isadigit{1}}\ {\isacharequal}{\kern0pt}\ AZERO{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
3202 \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3203 \ simp\isanewline |
|
3204 \ \ \isacommand{using}\isamarkupfalse% |
|
3205 \ continuous{\isacharunderscore}{\kern0pt}rewrite\ \isacommand{apply}\isamarkupfalse% |
|
3206 \ blast\isanewline |
|
3207 \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3208 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}{\isasymexists}bs{\isachardot}{\kern0pt}\ bsimp\ r{\isadigit{1}}\ {\isacharequal}{\kern0pt}\ AONE\ bs{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
3209 \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3210 {\isacharparenleft}{\kern0pt}erule\ exE{\isacharparenright}{\kern0pt}\isanewline |
|
3211 \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3212 \ simp\isanewline |
|
3213 \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3214 {\isacharparenleft}{\kern0pt}subst\ bsimp{\isacharunderscore}{\kern0pt}ASEQ{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline |
|
3215 \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3216 \ {\isacharparenleft}{\kern0pt}meson\ real{\isacharunderscore}{\kern0pt}trans\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{3}}{\isacharparenright}{\kern0pt}\ rrewrites{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{2}}{\isacharparenright}{\kern0pt}\ star{\isacharunderscore}{\kern0pt}seq\ star{\isacharunderscore}{\kern0pt}seq{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline |
|
3217 \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3218 \ {\isacharparenleft}{\kern0pt}smt\ {\isacharparenleft}{\kern0pt}verit{\isacharcomma}{\kern0pt}\ best{\isacharparenright}{\kern0pt}\ bsimp{\isacharunderscore}{\kern0pt}ASEQ{\isadigit{0}}\ bsimp{\isacharunderscore}{\kern0pt}ASEQ{\isadigit{1}}\ real{\isacharunderscore}{\kern0pt}trans\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{2}}{\isacharparenright}{\kern0pt}\ rs{\isadigit{2}}\ star{\isacharunderscore}{\kern0pt}seq\ star{\isacharunderscore}{\kern0pt}seq{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline |
|
3219 \ \ \ \ \ \ \isacommand{defer}\isamarkupfalse% |
|
3220 \isanewline |
|
3221 \ \ \isacommand{using}\isamarkupfalse% |
|
3222 \ bsimp{\isacharunderscore}{\kern0pt}aalts{\isacharunderscore}{\kern0pt}simpcases{\isacharparenleft}{\kern0pt}{\isadigit{2}}{\isacharparenright}{\kern0pt}\ \isacommand{apply}\isamarkupfalse% |
|
3223 \ blast\isanewline |
|
3224 \ \ \isacommand{apply}\isamarkupfalse% |
|
3225 \ simp\isanewline |
|
3226 \ \ \isacommand{apply}\isamarkupfalse% |
|
3227 \ simp\isanewline |
|
3228 \ \ \isacommand{apply}\isamarkupfalse% |
|
3229 \ simp\isanewline |
|
3230 \isanewline |
|
3231 \ \ \isacommand{apply}\isamarkupfalse% |
|
3232 \ auto\isanewline |
|
3233 \isanewline |
|
3234 \isanewline |
|
3235 \ \ \isacommand{apply}\isamarkupfalse% |
|
3236 {\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}AALTs\ bs{\isadigit{1}}\ rs\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ AALTs\ bs{\isadigit{1}}\ {\isacharparenleft}{\kern0pt}map\ bsimp\ rs{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
3237 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3238 {\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}AALTs\ bs{\isadigit{1}}\ {\isacharparenleft}{\kern0pt}map\ bsimp\ rs{\isacharparenright}{\kern0pt}\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ AALTs\ bs{\isadigit{1}}\ {\isacharparenleft}{\kern0pt}flts\ {\isacharparenleft}{\kern0pt}map\ bsimp\ rs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
3239 \ \ \isacommand{apply}\isamarkupfalse% |
|
3240 {\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}AALTs\ bs{\isadigit{1}}\ {\isacharparenleft}{\kern0pt}flts\ {\isacharparenleft}{\kern0pt}map\ bsimp\ rs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ AALTs\ bs{\isadigit{1}}\ {\isacharparenleft}{\kern0pt}distinctBy\ {\isacharparenleft}{\kern0pt}flts\ {\isacharparenleft}{\kern0pt}map\ bsimp\ rs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ erase\ {\isacharbraceleft}{\kern0pt}{\isacharbraceright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
3241 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3242 {\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}AALTs\ bs{\isadigit{1}}\ {\isacharparenleft}{\kern0pt}distinctBy\ {\isacharparenleft}{\kern0pt}flts\ {\isacharparenleft}{\kern0pt}map\ bsimp\ rs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ erase\ {\isacharbraceleft}{\kern0pt}{\isacharbraceright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ bsimp{\isacharunderscore}{\kern0pt}AALTs\ bs{\isadigit{1}}\ {\isacharparenleft}{\kern0pt}distinctBy\ {\isacharparenleft}{\kern0pt}flts\ {\isacharparenleft}{\kern0pt}map\ bsimp\ rs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ erase\ {\isacharbraceleft}{\kern0pt}{\isacharbraceright}{\kern0pt}\ {\isacharparenright}{\kern0pt}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
3243 \isanewline |
|
3244 \ \ \isanewline |
|
3245 \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3246 \ {\isacharparenleft}{\kern0pt}meson\ real{\isacharunderscore}{\kern0pt}trans{\isacharparenright}{\kern0pt}\isanewline |
|
3247 \isanewline |
|
3248 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3249 \ {\isacharparenleft}{\kern0pt}meson\ bsimp{\isacharunderscore}{\kern0pt}AALTsrewrites{\isacharparenright}{\kern0pt}\isanewline |
|
3250 \isanewline |
|
3251 \ \ \isacommand{apply}\isamarkupfalse% |
|
3252 \ {\isacharparenleft}{\kern0pt}meson\ alts{\isacharunderscore}{\kern0pt}dBrewrites{\isacharparenright}{\kern0pt}\isanewline |
|
3253 \isanewline |
|
3254 \ \ \isacommand{using}\isamarkupfalse% |
|
3255 \ fltsrewrites\ \isacommand{apply}\isamarkupfalse% |
|
3256 \ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
3257 \isanewline |
|
3258 \ \ \isacommand{using}\isamarkupfalse% |
|
3259 \ alts{\isacharunderscore}{\kern0pt}simpalts\ \isacommand{by}\isamarkupfalse% |
|
3260 \ force% |
|
3261 \endisatagproof |
|
3262 {\isafoldproof}% |
|
3263 % |
|
3264 \isadelimproof |
|
3265 \isanewline |
|
3266 % |
|
3267 \endisadelimproof |
|
3268 \isanewline |
|
3269 \isanewline |
|
3270 \isacommand{lemma}\isamarkupfalse% |
|
3271 \ rewritenullable{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}{\isasymlbrakk}r{\isadigit{1}}\ {\isasymleadsto}\ r{\isadigit{2}}{\isacharsemicolon}{\kern0pt}\ bnullable\ r{\isadigit{1}}\ {\isasymrbrakk}\ {\isasymLongrightarrow}\ bnullable\ r{\isadigit{2}}{\isachardoublequoteclose}\isanewline |
|
3272 % |
|
3273 \isadelimproof |
|
3274 \ \ % |
|
3275 \endisadelimproof |
|
3276 % |
|
3277 \isatagproof |
|
3278 \isacommand{apply}\isamarkupfalse% |
|
3279 {\isacharparenleft}{\kern0pt}induction\ r{\isadigit{1}}\ r{\isadigit{2}}\ rule{\isacharcolon}{\kern0pt}\ rrewrite{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline |
|
3280 \ \ \ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3281 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}{\isacharplus}{\kern0pt}\isanewline |
|
3282 \ \ \isacommand{apply}\isamarkupfalse% |
|
3283 \ {\isacharparenleft}{\kern0pt}metis\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isacharunderscore}{\kern0pt}fuse{\isacharparenright}{\kern0pt}\isanewline |
|
3284 \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3285 \ simp\isanewline |
|
3286 \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3287 \ simp\isanewline |
|
3288 \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3289 \ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
3290 \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3291 \ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
3292 \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3293 \ auto{\isacharbrackleft}{\kern0pt}{\isadigit{4}}{\isacharbrackright}{\kern0pt}\isanewline |
|
3294 \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3295 \ {\isacharparenleft}{\kern0pt}metis\ UnCI\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isacharunderscore}{\kern0pt}fuse\ imageI{\isacharparenright}{\kern0pt}\isanewline |
|
3296 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3297 \ {\isacharparenleft}{\kern0pt}metis\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isacharunderscore}{\kern0pt}fuse{\isacharparenright}{\kern0pt}\isanewline |
|
3298 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3299 \ {\isacharparenleft}{\kern0pt}metis\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isacharunderscore}{\kern0pt}fuse{\isacharparenright}{\kern0pt}\isanewline |
|
3300 \ \ \isanewline |
|
3301 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3302 \ {\isacharparenleft}{\kern0pt}metis\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{5}}{\isacharparenright}{\kern0pt}\ erase{\isacharunderscore}{\kern0pt}fuse{\isacharparenright}{\kern0pt}\isanewline |
|
3303 \ \ \isanewline |
|
3304 \isanewline |
|
3305 \ \ \isacommand{by}\isamarkupfalse% |
|
3306 \ {\isacharparenleft}{\kern0pt}smt\ {\isacharparenleft}{\kern0pt}z{\isadigit{3}}{\isacharparenright}{\kern0pt}\ Un{\isacharunderscore}{\kern0pt}iff\ bnullable{\isacharunderscore}{\kern0pt}correctness\ insert{\isacharunderscore}{\kern0pt}iff\ list{\isachardot}{\kern0pt}set{\isacharparenleft}{\kern0pt}{\isadigit{2}}{\isacharparenright}{\kern0pt}\ qq{\isadigit{3}}\ set{\isacharunderscore}{\kern0pt}append{\isacharparenright}{\kern0pt}% |
|
3307 \endisatagproof |
|
3308 {\isafoldproof}% |
|
3309 % |
|
3310 \isadelimproof |
|
3311 \isanewline |
|
3312 % |
|
3313 \endisadelimproof |
|
3314 \isanewline |
|
3315 \isacommand{lemma}\isamarkupfalse% |
|
3316 \ rewrite{\isacharunderscore}{\kern0pt}non{\isacharunderscore}{\kern0pt}nullable{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}{\isasymlbrakk}r{\isadigit{1}}\ {\isasymleadsto}\ r{\isadigit{2}}{\isacharsemicolon}{\kern0pt}\ {\isasymnot}bnullable\ r{\isadigit{1}}\ {\isasymrbrakk}\ {\isasymLongrightarrow}\ {\isasymnot}bnullable\ r{\isadigit{2}}{\isachardoublequoteclose}\isanewline |
|
3317 % |
|
3318 \isadelimproof |
|
3319 \ \ % |
|
3320 \endisadelimproof |
|
3321 % |
|
3322 \isatagproof |
|
3323 \isacommand{apply}\isamarkupfalse% |
|
3324 {\isacharparenleft}{\kern0pt}induction\ r{\isadigit{1}}\ r{\isadigit{2}}\ rule{\isacharcolon}{\kern0pt}\ rrewrite{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline |
|
3325 \ \ \ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3326 \ auto\ \isanewline |
|
3327 \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3328 \ {\isacharparenleft}{\kern0pt}metis\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isacharunderscore}{\kern0pt}fuse{\isacharparenright}{\kern0pt}{\isacharplus}{\kern0pt}\isanewline |
|
3329 \ \ \isacommand{done}\isamarkupfalse% |
|
3330 % |
|
3331 \endisatagproof |
|
3332 {\isafoldproof}% |
|
3333 % |
|
3334 \isadelimproof |
|
3335 \isanewline |
|
3336 % |
|
3337 \endisadelimproof |
|
3338 \isanewline |
|
3339 \isanewline |
|
3340 \isacommand{lemma}\isamarkupfalse% |
|
3341 \ rewritesnullable{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}{\isasymlbrakk}\ r{\isadigit{1}}\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ r{\isadigit{2}}{\isacharsemicolon}{\kern0pt}\ bnullable\ r{\isadigit{1}}\ {\isasymrbrakk}\ {\isasymLongrightarrow}\ bnullable\ r{\isadigit{2}}{\isachardoublequoteclose}\isanewline |
|
3342 % |
|
3343 \isadelimproof |
|
3344 \ \ % |
|
3345 \endisadelimproof |
|
3346 % |
|
3347 \isatagproof |
|
3348 \isacommand{apply}\isamarkupfalse% |
|
3349 {\isacharparenleft}{\kern0pt}induction\ r{\isadigit{1}}\ r{\isadigit{2}}\ rule{\isacharcolon}{\kern0pt}\ rrewrites{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline |
|
3350 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3351 \ simp\isanewline |
|
3352 \ \ \isacommand{apply}\isamarkupfalse% |
|
3353 {\isacharparenleft}{\kern0pt}rule\ rewritenullable{\isacharparenright}{\kern0pt}\isanewline |
|
3354 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3355 \ simp\isanewline |
|
3356 \ \ \isacommand{apply}\isamarkupfalse% |
|
3357 \ simp\isanewline |
|
3358 \ \ \isacommand{done}\isamarkupfalse% |
|
3359 % |
|
3360 \endisatagproof |
|
3361 {\isafoldproof}% |
|
3362 % |
|
3363 \isadelimproof |
|
3364 \isanewline |
|
3365 % |
|
3366 \endisadelimproof |
|
3367 \isanewline |
|
3368 \isacommand{lemma}\isamarkupfalse% |
|
3369 \ nonbnullable{\isacharunderscore}{\kern0pt}lists{\isacharunderscore}{\kern0pt}concat{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}\ {\isasymlbrakk}\ {\isasymnot}\ {\isacharparenleft}{\kern0pt}{\isasymexists}r{\isadigit{0}}{\isasymin}set\ rs{\isadigit{1}}{\isachardot}{\kern0pt}\ bnullable\ r{\isadigit{0}}{\isacharparenright}{\kern0pt}{\isacharsemicolon}{\kern0pt}\ {\isasymnot}\ bnullable\ r{\isacharsemicolon}{\kern0pt}\ {\isasymnot}\ {\isacharparenleft}{\kern0pt}{\isasymexists}r{\isadigit{0}}{\isasymin}set\ rs{\isadigit{2}}{\isachardot}{\kern0pt}\ bnullable\ r{\isadigit{0}}{\isacharparenright}{\kern0pt}{\isasymrbrakk}\ {\isasymLongrightarrow}\ \isanewline |
|
3370 {\isasymnot}{\isacharparenleft}{\kern0pt}{\isasymexists}r{\isadigit{0}}\ {\isasymin}\ {\isacharparenleft}{\kern0pt}set\ {\isacharparenleft}{\kern0pt}rs{\isadigit{1}}{\isacharat}{\kern0pt}{\isacharbrackleft}{\kern0pt}r{\isacharbrackright}{\kern0pt}{\isacharat}{\kern0pt}rs{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardot}{\kern0pt}\ bnullable\ r{\isadigit{0}}\ {\isacharparenright}{\kern0pt}\ {\isachardoublequoteclose}\isanewline |
|
3371 % |
|
3372 \isadelimproof |
|
3373 \ \ % |
|
3374 \endisadelimproof |
|
3375 % |
|
3376 \isatagproof |
|
3377 \isacommand{apply}\isamarkupfalse% |
|
3378 \ simp\isanewline |
|
3379 \ \ \isacommand{apply}\isamarkupfalse% |
|
3380 \ blast\isanewline |
|
3381 \ \ \isacommand{done}\isamarkupfalse% |
|
3382 % |
|
3383 \endisatagproof |
|
3384 {\isafoldproof}% |
|
3385 % |
|
3386 \isadelimproof |
|
3387 \isanewline |
|
3388 % |
|
3389 \endisadelimproof |
|
3390 \isanewline |
|
3391 \isanewline |
|
3392 \isanewline |
|
3393 \isacommand{lemma}\isamarkupfalse% |
|
3394 \ nomember{\isacharunderscore}{\kern0pt}bnullable{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}{\isasymlbrakk}\ {\isasymnot}\ {\isacharparenleft}{\kern0pt}{\isasymexists}r{\isadigit{0}}{\isasymin}set\ rs{\isadigit{1}}{\isachardot}{\kern0pt}\ bnullable\ r{\isadigit{0}}{\isacharparenright}{\kern0pt}{\isacharsemicolon}{\kern0pt}\ {\isasymnot}\ bnullable\ r{\isacharsemicolon}{\kern0pt}\ {\isasymnot}\ {\isacharparenleft}{\kern0pt}{\isasymexists}r{\isadigit{0}}{\isasymin}set\ rs{\isadigit{2}}{\isachardot}{\kern0pt}\ bnullable\ r{\isadigit{0}}{\isacharparenright}{\kern0pt}{\isasymrbrakk}\isanewline |
|
3395 \ {\isasymLongrightarrow}\ {\isasymnot}bnullable\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}rs{\isadigit{1}}\ {\isacharat}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}r{\isacharbrackright}{\kern0pt}\ {\isacharat}{\kern0pt}\ rs{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
3396 % |
|
3397 \isadelimproof |
|
3398 \ \ % |
|
3399 \endisadelimproof |
|
3400 % |
|
3401 \isatagproof |
|
3402 \isacommand{using}\isamarkupfalse% |
|
3403 \ nonbnullable{\isacharunderscore}{\kern0pt}lists{\isacharunderscore}{\kern0pt}concat\ qq{\isadigit{3}}\ \isacommand{by}\isamarkupfalse% |
|
3404 \ presburger% |
|
3405 \endisatagproof |
|
3406 {\isafoldproof}% |
|
3407 % |
|
3408 \isadelimproof |
|
3409 \isanewline |
|
3410 % |
|
3411 \endisadelimproof |
|
3412 \isanewline |
|
3413 \isacommand{lemma}\isamarkupfalse% |
|
3414 \ bnullable{\isacharunderscore}{\kern0pt}segment{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}\ bnullable\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}rs{\isadigit{1}}{\isacharat}{\kern0pt}{\isacharbrackleft}{\kern0pt}r{\isacharbrackright}{\kern0pt}{\isacharat}{\kern0pt}rs{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isasymLongrightarrow}\ bnullable\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isadigit{1}}{\isacharparenright}{\kern0pt}\ {\isasymor}\ bnullable\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isadigit{2}}{\isacharparenright}{\kern0pt}\ {\isasymor}\ bnullable\ r{\isachardoublequoteclose}\isanewline |
|
3415 % |
|
3416 \isadelimproof |
|
3417 \ \ % |
|
3418 \endisadelimproof |
|
3419 % |
|
3420 \isatagproof |
|
3421 \isacommand{apply}\isamarkupfalse% |
|
3422 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}{\isasymexists}r{\isadigit{0}}{\isasymin}set\ rs{\isadigit{1}}{\isachardot}{\kern0pt}\ \ bnullable\ r{\isadigit{0}}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
3423 \isanewline |
|
3424 \ \ \isacommand{using}\isamarkupfalse% |
|
3425 \ qq{\isadigit{3}}\ \isacommand{apply}\isamarkupfalse% |
|
3426 \ blast\isanewline |
|
3427 \ \ \isacommand{apply}\isamarkupfalse% |
|
3428 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bnullable\ r{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
3429 \isanewline |
|
3430 \ \ \isacommand{apply}\isamarkupfalse% |
|
3431 \ blast\isanewline |
|
3432 \ \ \isacommand{apply}\isamarkupfalse% |
|
3433 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}{\isasymexists}r{\isadigit{0}}{\isasymin}set\ rs{\isadigit{2}}{\isachardot}{\kern0pt}\ \ bnullable\ r{\isadigit{0}}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
3434 \isanewline |
|
3435 \ \ \isacommand{using}\isamarkupfalse% |
|
3436 \ bnullable{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{4}}{\isacharparenright}{\kern0pt}\ \isacommand{apply}\isamarkupfalse% |
|
3437 \ presburger\isanewline |
|
3438 \ \ \isacommand{apply}\isamarkupfalse% |
|
3439 {\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}False{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
3440 \isanewline |
|
3441 \ \ \isacommand{apply}\isamarkupfalse% |
|
3442 \ blast\isanewline |
|
3443 \isanewline |
|
3444 \ \ \isacommand{using}\isamarkupfalse% |
|
3445 \ nomember{\isacharunderscore}{\kern0pt}bnullable\ \isacommand{by}\isamarkupfalse% |
|
3446 \ blast% |
|
3447 \endisatagproof |
|
3448 {\isafoldproof}% |
|
3449 % |
|
3450 \isadelimproof |
|
3451 \isanewline |
|
3452 % |
|
3453 \endisadelimproof |
|
3454 \isanewline |
|
3455 \ \ \isanewline |
|
3456 \isanewline |
|
3457 \isacommand{lemma}\isamarkupfalse% |
|
3458 \ bnullablewhichbmkeps{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}{\isasymlbrakk}bnullable\ \ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}rs{\isadigit{1}}{\isacharat}{\kern0pt}{\isacharbrackleft}{\kern0pt}r{\isacharbrackright}{\kern0pt}{\isacharat}{\kern0pt}rs{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isacharsemicolon}{\kern0pt}\ {\isasymnot}\ bnullable\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isadigit{1}}{\isacharparenright}{\kern0pt}{\isacharsemicolon}{\kern0pt}\ bnullable\ r\ {\isasymrbrakk}\isanewline |
|
3459 \ {\isasymLongrightarrow}\ bmkeps\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}rs{\isadigit{1}}{\isacharat}{\kern0pt}{\isacharbrackleft}{\kern0pt}r{\isacharbrackright}{\kern0pt}{\isacharat}{\kern0pt}rs{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ bs\ {\isacharat}{\kern0pt}\ {\isacharparenleft}{\kern0pt}bmkeps\ r{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
3460 % |
|
3461 \isadelimproof |
|
3462 \ \ % |
|
3463 \endisadelimproof |
|
3464 % |
|
3465 \isatagproof |
|
3466 \isacommand{using}\isamarkupfalse% |
|
3467 \ qq{\isadigit{2}}\ bnullable{\isacharunderscore}{\kern0pt}Hdbmkeps{\isacharunderscore}{\kern0pt}Hd\ \isacommand{by}\isamarkupfalse% |
|
3468 \ force% |
|
3469 \endisatagproof |
|
3470 {\isafoldproof}% |
|
3471 % |
|
3472 \isadelimproof |
|
3473 \isanewline |
|
3474 % |
|
3475 \endisadelimproof |
|
3476 \isanewline |
|
3477 \isacommand{lemma}\isamarkupfalse% |
|
3478 \ rrewrite{\isacharunderscore}{\kern0pt}nbnullable{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}{\isasymlbrakk}\ r{\isadigit{1}}\ {\isasymleadsto}\ r{\isadigit{2}}\ {\isacharsemicolon}{\kern0pt}\ {\isasymnot}\ bnullable\ r{\isadigit{1}}\ {\isasymrbrakk}\ {\isasymLongrightarrow}\ {\isasymnot}bnullable\ r{\isadigit{2}}{\isachardoublequoteclose}\isanewline |
|
3479 % |
|
3480 \isadelimproof |
|
3481 \ \ % |
|
3482 \endisadelimproof |
|
3483 % |
|
3484 \isatagproof |
|
3485 \isacommand{apply}\isamarkupfalse% |
|
3486 {\isacharparenleft}{\kern0pt}induction\ rule{\isacharcolon}{\kern0pt}\ rrewrite{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline |
|
3487 \ \ \ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3488 \ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
3489 \ \ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3490 \ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
3491 \ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3492 \ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
3493 \ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3494 \ {\isacharparenleft}{\kern0pt}metis\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isacharunderscore}{\kern0pt}fuse{\isacharparenright}{\kern0pt}\isanewline |
|
3495 \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3496 \ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
3497 \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3498 \ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
3499 \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3500 \ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
3501 \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3502 \ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
3503 \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3504 \ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
3505 \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3506 \ {\isacharparenleft}{\kern0pt}metis\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isacharunderscore}{\kern0pt}fuse{\isacharparenright}{\kern0pt}\isanewline |
|
3507 \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3508 \ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
3509 \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3510 \ {\isacharparenleft}{\kern0pt}metis\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isacharunderscore}{\kern0pt}fuse{\isacharparenright}{\kern0pt}\isanewline |
|
3511 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3512 \ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
3513 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3514 \ {\isacharparenleft}{\kern0pt}metis\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isacharunderscore}{\kern0pt}fuse{\isacharparenright}{\kern0pt}\isanewline |
|
3515 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3516 \ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
3517 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3518 \ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
3519 \isanewline |
|
3520 \ \ \isacommand{apply}\isamarkupfalse% |
|
3521 \ {\isacharparenleft}{\kern0pt}metis\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isacharunderscore}{\kern0pt}fuse{\isacharparenright}{\kern0pt}\isanewline |
|
3522 \isanewline |
|
3523 \ \ \isacommand{by}\isamarkupfalse% |
|
3524 \ {\isacharparenleft}{\kern0pt}meson\ rewrite{\isacharunderscore}{\kern0pt}non{\isacharunderscore}{\kern0pt}nullable\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isadigit{3}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}% |
|
3525 \endisatagproof |
|
3526 {\isafoldproof}% |
|
3527 % |
|
3528 \isadelimproof |
|
3529 \isanewline |
|
3530 % |
|
3531 \endisadelimproof |
|
3532 \isanewline |
|
3533 \isanewline |
|
3534 \isanewline |
|
3535 \isanewline |
|
3536 \isacommand{lemma}\isamarkupfalse% |
|
3537 \ spillbmkepslistr{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}bnullable\ {\isacharparenleft}{\kern0pt}AALTs\ bs{\isadigit{1}}\ rs{\isadigit{1}}{\isacharparenright}{\kern0pt}\isanewline |
|
3538 \ \ \ \ {\isasymLongrightarrow}\ bmkeps\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}AALTs\ bs{\isadigit{1}}\ rs{\isadigit{1}}\ {\isacharhash}{\kern0pt}\ rsb{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ bmkeps\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}\ map\ {\isacharparenleft}{\kern0pt}fuse\ bs{\isadigit{1}}{\isacharparenright}{\kern0pt}\ rs{\isadigit{1}}\ {\isacharat}{\kern0pt}\ rsb{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
3539 % |
|
3540 \isadelimproof |
|
3541 \ \ % |
|
3542 \endisadelimproof |
|
3543 % |
|
3544 \isatagproof |
|
3545 \isacommand{apply}\isamarkupfalse% |
|
3546 {\isacharparenleft}{\kern0pt}subst\ bnullable{\isacharunderscore}{\kern0pt}Hdbmkeps{\isacharunderscore}{\kern0pt}Hd{\isacharparenright}{\kern0pt}\isanewline |
|
3547 \ \ \isanewline |
|
3548 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3549 \ simp\isanewline |
|
3550 \ \ \isacommand{by}\isamarkupfalse% |
|
3551 \ {\isacharparenleft}{\kern0pt}metis\ bmkeps{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{3}}{\isacharparenright}{\kern0pt}\ k{\isadigit{0}}a\ list{\isachardot}{\kern0pt}set{\isacharunderscore}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isacharparenright}{\kern0pt}\ qq{\isadigit{1}}\ qq{\isadigit{4}}\ qs{\isadigit{3}}{\isacharparenright}{\kern0pt}% |
|
3552 \endisatagproof |
|
3553 {\isafoldproof}% |
|
3554 % |
|
3555 \isadelimproof |
|
3556 \isanewline |
|
3557 % |
|
3558 \endisadelimproof |
|
3559 \isanewline |
|
3560 \isacommand{lemma}\isamarkupfalse% |
|
3561 \ third{\isacharunderscore}{\kern0pt}segment{\isacharunderscore}{\kern0pt}bnullable{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}{\isasymlbrakk}bnullable\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}rs{\isadigit{1}}{\isacharat}{\kern0pt}rs{\isadigit{2}}{\isacharat}{\kern0pt}rs{\isadigit{3}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isacharsemicolon}{\kern0pt}\ {\isasymnot}bnullable\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isadigit{1}}{\isacharparenright}{\kern0pt}{\isacharsemicolon}{\kern0pt}\ {\isasymnot}bnullable\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isasymrbrakk}\ {\isasymLongrightarrow}\ \isanewline |
|
3562 bnullable\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isadigit{3}}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
3563 % |
|
3564 \isadelimproof |
|
3565 \ \ \isanewline |
|
3566 \ \ % |
|
3567 \endisadelimproof |
|
3568 % |
|
3569 \isatagproof |
|
3570 \isacommand{by}\isamarkupfalse% |
|
3571 \ {\isacharparenleft}{\kern0pt}metis\ append{\isachardot}{\kern0pt}left{\isacharunderscore}{\kern0pt}neutral\ append{\isacharunderscore}{\kern0pt}Cons\ bnullable{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isacharparenright}{\kern0pt}\ bnullable{\isacharunderscore}{\kern0pt}segment\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{7}}{\isacharparenright}{\kern0pt}\ rrewrite{\isacharunderscore}{\kern0pt}nbnullable{\isacharparenright}{\kern0pt}% |
|
3572 \endisatagproof |
|
3573 {\isafoldproof}% |
|
3574 % |
|
3575 \isadelimproof |
|
3576 \isanewline |
|
3577 % |
|
3578 \endisadelimproof |
|
3579 \isanewline |
|
3580 \isanewline |
|
3581 \isacommand{lemma}\isamarkupfalse% |
|
3582 \ third{\isacharunderscore}{\kern0pt}segment{\isacharunderscore}{\kern0pt}bmkeps{\isacharcolon}{\kern0pt}\ \ {\isachardoublequoteopen}{\isasymlbrakk}bnullable\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}rs{\isadigit{1}}{\isacharat}{\kern0pt}rs{\isadigit{2}}{\isacharat}{\kern0pt}rs{\isadigit{3}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isacharsemicolon}{\kern0pt}\ {\isasymnot}bnullable\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isadigit{1}}{\isacharparenright}{\kern0pt}{\isacharsemicolon}{\kern0pt}\ {\isasymnot}bnullable\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isasymrbrakk}\ {\isasymLongrightarrow}\ \isanewline |
|
3583 bmkeps\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}rs{\isadigit{1}}{\isacharat}{\kern0pt}rs{\isadigit{2}}{\isacharat}{\kern0pt}rs{\isadigit{3}}{\isacharparenright}{\kern0pt}\ {\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ bmkeps\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isadigit{3}}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
3584 % |
|
3585 \isadelimproof |
|
3586 \ \ % |
|
3587 \endisadelimproof |
|
3588 % |
|
3589 \isatagproof |
|
3590 \isacommand{apply}\isamarkupfalse% |
|
3591 {\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bnullable\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isadigit{3}}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
3592 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3593 {\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}{\isasymforall}r\ {\isasymin}\ set\ {\isacharparenleft}{\kern0pt}rs{\isadigit{1}}{\isacharat}{\kern0pt}rs{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isachardot}{\kern0pt}\ {\isasymnot}bnullable\ r{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
3594 \ \ \isacommand{apply}\isamarkupfalse% |
|
3595 {\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bmkeps\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}rs{\isadigit{1}}{\isacharat}{\kern0pt}rs{\isadigit{2}}{\isacharat}{\kern0pt}rs{\isadigit{3}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ bmkeps\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}{\isacharparenleft}{\kern0pt}rs{\isadigit{1}}{\isacharat}{\kern0pt}rs{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isacharat}{\kern0pt}rs{\isadigit{3}}{\isacharparenright}{\kern0pt}\ {\isacharparenright}{\kern0pt}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
3596 \ \ \isacommand{apply}\isamarkupfalse% |
|
3597 \ {\isacharparenleft}{\kern0pt}metis\ qq{\isadigit{2}}\ qq{\isadigit{3}}{\isacharparenright}{\kern0pt}\isanewline |
|
3598 \isanewline |
|
3599 \ \ \isacommand{apply}\isamarkupfalse% |
|
3600 \ {\isacharparenleft}{\kern0pt}metis\ append{\isachardot}{\kern0pt}assoc{\isacharparenright}{\kern0pt}\isanewline |
|
3601 \isanewline |
|
3602 \ \ \isacommand{apply}\isamarkupfalse% |
|
3603 \ {\isacharparenleft}{\kern0pt}metis\ append{\isachardot}{\kern0pt}assoc\ in{\isacharunderscore}{\kern0pt}set{\isacharunderscore}{\kern0pt}conv{\isacharunderscore}{\kern0pt}decomp\ r{\isadigit{2}}\ third{\isacharunderscore}{\kern0pt}segment{\isacharunderscore}{\kern0pt}bnullable{\isacharparenright}{\kern0pt}\isanewline |
|
3604 \isanewline |
|
3605 \ \ \isacommand{using}\isamarkupfalse% |
|
3606 \ third{\isacharunderscore}{\kern0pt}segment{\isacharunderscore}{\kern0pt}bnullable\ \isacommand{by}\isamarkupfalse% |
|
3607 \ blast% |
|
3608 \endisatagproof |
|
3609 {\isafoldproof}% |
|
3610 % |
|
3611 \isadelimproof |
|
3612 \isanewline |
|
3613 % |
|
3614 \endisadelimproof |
|
3615 \isanewline |
|
3616 \isanewline |
|
3617 \isacommand{lemma}\isamarkupfalse% |
|
3618 \ rewrite{\isacharunderscore}{\kern0pt}bmkepsalt{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}\ {\isasymlbrakk}bnullable\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}rsa\ {\isacharat}{\kern0pt}\ AALTs\ bs{\isadigit{1}}\ rs{\isadigit{1}}\ {\isacharhash}{\kern0pt}\ rsb{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isacharsemicolon}{\kern0pt}\ bnullable\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}rsa\ {\isacharat}{\kern0pt}\ map\ {\isacharparenleft}{\kern0pt}fuse\ bs{\isadigit{1}}{\isacharparenright}{\kern0pt}\ rs{\isadigit{1}}\ {\isacharat}{\kern0pt}\ rsb{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isasymrbrakk}\isanewline |
|
3619 \ \ \ \ \ \ \ {\isasymLongrightarrow}\ bmkeps\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}rsa\ {\isacharat}{\kern0pt}\ AALTs\ bs{\isadigit{1}}\ rs{\isadigit{1}}\ {\isacharhash}{\kern0pt}\ rsb{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ bmkeps\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}rsa\ {\isacharat}{\kern0pt}\ map\ {\isacharparenleft}{\kern0pt}fuse\ bs{\isadigit{1}}{\isacharparenright}{\kern0pt}\ rs{\isadigit{1}}\ {\isacharat}{\kern0pt}\ rsb{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
3620 % |
|
3621 \isadelimproof |
|
3622 \ \ % |
|
3623 \endisadelimproof |
|
3624 % |
|
3625 \isatagproof |
|
3626 \isacommand{apply}\isamarkupfalse% |
|
3627 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bnullable\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rsa{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
3628 \ \ \isanewline |
|
3629 \ \ \isacommand{using}\isamarkupfalse% |
|
3630 \ qq{\isadigit{1}}\ \isacommand{apply}\isamarkupfalse% |
|
3631 \ force\isanewline |
|
3632 \ \ \isacommand{apply}\isamarkupfalse% |
|
3633 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bnullable\ {\isacharparenleft}{\kern0pt}AALTs\ bs{\isadigit{1}}\ rs{\isadigit{1}}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
3634 \ \ \isacommand{apply}\isamarkupfalse% |
|
3635 {\isacharparenleft}{\kern0pt}subst\ qq{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline |
|
3636 \isanewline |
|
3637 \ \ \isanewline |
|
3638 \ \ \isacommand{using}\isamarkupfalse% |
|
3639 \ r{\isadigit{2}}\ \isacommand{apply}\isamarkupfalse% |
|
3640 \ blast\isanewline |
|
3641 \ \ \isanewline |
|
3642 \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3643 \ {\isacharparenleft}{\kern0pt}metis\ list{\isachardot}{\kern0pt}set{\isacharunderscore}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline |
|
3644 \ \ \isacommand{apply}\isamarkupfalse% |
|
3645 \ {\isacharparenleft}{\kern0pt}smt\ {\isacharparenleft}{\kern0pt}verit{\isacharcomma}{\kern0pt}\ ccfv{\isacharunderscore}{\kern0pt}threshold{\isacharparenright}{\kern0pt}\ append{\isacharunderscore}{\kern0pt}eq{\isacharunderscore}{\kern0pt}append{\isacharunderscore}{\kern0pt}conv{\isadigit{2}}\ list{\isachardot}{\kern0pt}set{\isacharunderscore}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isacharparenright}{\kern0pt}\ qq{\isadigit{2}}\ qq{\isadigit{3}}\ rewritenullable\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{8}}{\isacharparenright}{\kern0pt}\ self{\isacharunderscore}{\kern0pt}append{\isacharunderscore}{\kern0pt}conv{\isadigit{2}}\ spillbmkepslistr{\isacharparenright}{\kern0pt}\isanewline |
|
3646 \isanewline |
|
3647 \isanewline |
|
3648 \ \ \isacommand{thm}\isamarkupfalse% |
|
3649 \ qq{\isadigit{1}}\isanewline |
|
3650 \ \ \isacommand{apply}\isamarkupfalse% |
|
3651 {\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bmkeps\ \ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}rsa\ {\isacharat}{\kern0pt}\ AALTs\ bs{\isadigit{1}}\ rs{\isadigit{1}}\ {\isacharhash}{\kern0pt}\ rsb{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ bmkeps\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rsb{\isacharparenright}{\kern0pt}\ {\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
3652 \ \ \ \isacommand{prefer}\isamarkupfalse% |
|
3653 \ {\isadigit{2}}\isanewline |
|
3654 \ \ \isanewline |
|
3655 \ \ \isacommand{apply}\isamarkupfalse% |
|
3656 \ {\isacharparenleft}{\kern0pt}metis\ append{\isacharunderscore}{\kern0pt}Cons\ append{\isacharunderscore}{\kern0pt}Nil\ bnullable{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isacharparenright}{\kern0pt}\ bnullable{\isacharunderscore}{\kern0pt}segment\ rewritenullable\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isadigit{1}}{\isacharparenright}{\kern0pt}\ third{\isacharunderscore}{\kern0pt}segment{\isacharunderscore}{\kern0pt}bmkeps{\isacharparenright}{\kern0pt}\isanewline |
|
3657 \isanewline |
|
3658 \ \ \isacommand{by}\isamarkupfalse% |
|
3659 \ {\isacharparenleft}{\kern0pt}metis\ bnullable{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{4}}{\isacharparenright}{\kern0pt}\ rewrite{\isacharunderscore}{\kern0pt}non{\isacharunderscore}{\kern0pt}nullable\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isadigit{0}}{\isacharparenright}{\kern0pt}\ third{\isacharunderscore}{\kern0pt}segment{\isacharunderscore}{\kern0pt}bmkeps{\isacharparenright}{\kern0pt}% |
|
3660 \endisatagproof |
|
3661 {\isafoldproof}% |
|
3662 % |
|
3663 \isadelimproof |
|
3664 \isanewline |
|
3665 % |
|
3666 \endisadelimproof |
|
3667 \isanewline |
|
3668 \isanewline |
|
3669 \isanewline |
|
3670 \isacommand{lemma}\isamarkupfalse% |
|
3671 \ rewrite{\isacharunderscore}{\kern0pt}bmkeps{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}{\isasymlbrakk}\ r{\isadigit{1}}\ {\isasymleadsto}\ r{\isadigit{2}}{\isacharsemicolon}{\kern0pt}\ {\isacharparenleft}{\kern0pt}bnullable\ r{\isadigit{1}}{\isacharparenright}{\kern0pt}{\isasymrbrakk}\ {\isasymLongrightarrow}\ bmkeps\ r{\isadigit{1}}\ {\isacharequal}{\kern0pt}\ bmkeps\ r{\isadigit{2}}{\isachardoublequoteclose}\isanewline |
|
3672 % |
|
3673 \isadelimproof |
|
3674 \isanewline |
|
3675 \ \ % |
|
3676 \endisadelimproof |
|
3677 % |
|
3678 \isatagproof |
|
3679 \isacommand{apply}\isamarkupfalse% |
|
3680 {\isacharparenleft}{\kern0pt}frule\ rewritenullable{\isacharparenright}{\kern0pt}\isanewline |
|
3681 \ \ \isacommand{apply}\isamarkupfalse% |
|
3682 \ simp\isanewline |
|
3683 \ \ \isacommand{apply}\isamarkupfalse% |
|
3684 {\isacharparenleft}{\kern0pt}induction\ r{\isadigit{1}}\ r{\isadigit{2}}\ rule{\isacharcolon}{\kern0pt}\ rrewrite{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline |
|
3685 \ \ \ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3686 \ simp\isanewline |
|
3687 \ \ \isacommand{using}\isamarkupfalse% |
|
3688 \ bnullable{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isacharparenright}{\kern0pt}\ bnullable{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{5}}{\isacharparenright}{\kern0pt}\ \isacommand{apply}\isamarkupfalse% |
|
3689 \ blast\isanewline |
|
3690 \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3691 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ b{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline |
|
3692 \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3693 \ simp\isanewline |
|
3694 \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3695 \ simp\isanewline |
|
3696 \ \ \isacommand{apply}\isamarkupfalse% |
|
3697 {\isacharparenleft}{\kern0pt}frule\ bnullable{\isacharunderscore}{\kern0pt}segment{\isacharparenright}{\kern0pt}\isanewline |
|
3698 \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3699 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bnullable\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isadigit{1}}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
3700 \ \ \isacommand{using}\isamarkupfalse% |
|
3701 \ qq{\isadigit{1}}\ \isacommand{apply}\isamarkupfalse% |
|
3702 \ force\isanewline |
|
3703 \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3704 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bnullable\ r{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
3705 \ \ \isacommand{using}\isamarkupfalse% |
|
3706 \ bnullablewhichbmkeps\ rewritenullable\ \isacommand{apply}\isamarkupfalse% |
|
3707 \ presburger\isanewline |
|
3708 \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3709 {\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bnullable\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
3710 \ \ \isacommand{apply}\isamarkupfalse% |
|
3711 {\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}{\isasymnot}\ bnullable\ r{\isacharprime}{\kern0pt}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
3712 \ \ \isacommand{apply}\isamarkupfalse% |
|
3713 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ qq{\isadigit{2}}\ r{\isadigit{1}}{\isacharparenright}{\kern0pt}\isanewline |
|
3714 \ \ \isanewline |
|
3715 \ \ \isacommand{using}\isamarkupfalse% |
|
3716 \ rrewrite{\isacharunderscore}{\kern0pt}nbnullable\ \isacommand{apply}\isamarkupfalse% |
|
3717 \ blast\isanewline |
|
3718 \isanewline |
|
3719 \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3720 \ blast\isanewline |
|
3721 \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3722 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ flts{\isacharunderscore}{\kern0pt}append\ qs{\isadigit{3}}{\isacharparenright}{\kern0pt}\isanewline |
|
3723 \isanewline |
|
3724 \ \ \isacommand{apply}\isamarkupfalse% |
|
3725 \ {\isacharparenleft}{\kern0pt}meson\ rewrite{\isacharunderscore}{\kern0pt}bmkepsalt{\isacharparenright}{\kern0pt}\isanewline |
|
3726 \ \ \isanewline |
|
3727 \ \ \isacommand{using}\isamarkupfalse% |
|
3728 \ bnullable{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{4}}{\isacharparenright}{\kern0pt}\ q{\isadigit{3}}a\ \isacommand{apply}\isamarkupfalse% |
|
3729 \ blast\isanewline |
|
3730 \isanewline |
|
3731 \ \ \isacommand{apply}\isamarkupfalse% |
|
3732 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ q{\isadigit{3}}a{\isacharparenright}{\kern0pt}\isanewline |
|
3733 \isanewline |
|
3734 \ \ \isacommand{using}\isamarkupfalse% |
|
3735 \ bnullable{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isacharparenright}{\kern0pt}\ \isacommand{apply}\isamarkupfalse% |
|
3736 \ blast\isanewline |
|
3737 \isanewline |
|
3738 \ \ \isacommand{apply}\isamarkupfalse% |
|
3739 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ b{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline |
|
3740 \ \isanewline |
|
3741 \ \ \isacommand{by}\isamarkupfalse% |
|
3742 \ {\isacharparenleft}{\kern0pt}smt\ {\isacharparenleft}{\kern0pt}z{\isadigit{3}}{\isacharparenright}{\kern0pt}\ Un{\isacharunderscore}{\kern0pt}iff\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{5}}{\isacharparenright}{\kern0pt}\ qq{\isadigit{1}}\ qq{\isadigit{2}}\ qq{\isadigit{3}}\ set{\isacharunderscore}{\kern0pt}append{\isacharparenright}{\kern0pt}% |
|
3743 \endisatagproof |
|
3744 {\isafoldproof}% |
|
3745 % |
|
3746 \isadelimproof |
|
3747 \isanewline |
|
3748 % |
|
3749 \endisadelimproof |
|
3750 \isanewline |
|
3751 \isanewline |
|
3752 \isanewline |
|
3753 \isacommand{lemma}\isamarkupfalse% |
|
3754 \ rewrites{\isacharunderscore}{\kern0pt}bmkeps{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}{\isasymlbrakk}\ {\isacharparenleft}{\kern0pt}r{\isadigit{1}}\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isacharsemicolon}{\kern0pt}\ {\isacharparenleft}{\kern0pt}bnullable\ r{\isadigit{1}}{\isacharparenright}{\kern0pt}{\isasymrbrakk}\ {\isasymLongrightarrow}\ bmkeps\ r{\isadigit{1}}\ {\isacharequal}{\kern0pt}\ bmkeps\ r{\isadigit{2}}{\isachardoublequoteclose}\isanewline |
|
3755 % |
|
3756 \isadelimproof |
|
3757 \ \ % |
|
3758 \endisadelimproof |
|
3759 % |
|
3760 \isatagproof |
|
3761 \isacommand{apply}\isamarkupfalse% |
|
3762 {\isacharparenleft}{\kern0pt}induction\ r{\isadigit{1}}\ r{\isadigit{2}}\ rule{\isacharcolon}{\kern0pt}\ rrewrites{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline |
|
3763 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3764 \ simp\isanewline |
|
3765 \ \ \isacommand{apply}\isamarkupfalse% |
|
3766 {\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bnullable\ r{\isadigit{2}}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
3767 \ \ \isacommand{prefer}\isamarkupfalse% |
|
3768 \ {\isadigit{2}}\isanewline |
|
3769 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3770 {\isacharparenleft}{\kern0pt}metis\ rewritesnullable{\isacharparenright}{\kern0pt}\isanewline |
|
3771 \ \ \isacommand{apply}\isamarkupfalse% |
|
3772 {\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bmkeps\ r{\isadigit{1}}\ {\isacharequal}{\kern0pt}\ bmkeps\ r{\isadigit{2}}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
3773 \ \ \ \isacommand{prefer}\isamarkupfalse% |
|
3774 \ {\isadigit{2}}\isanewline |
|
3775 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3776 \ fastforce\isanewline |
|
3777 \ \ \isacommand{using}\isamarkupfalse% |
|
3778 \ rewrite{\isacharunderscore}{\kern0pt}bmkeps\ \isacommand{by}\isamarkupfalse% |
|
3779 \ presburger% |
|
3780 \endisatagproof |
|
3781 {\isafoldproof}% |
|
3782 % |
|
3783 \isadelimproof |
|
3784 \isanewline |
|
3785 % |
|
3786 \endisadelimproof |
|
3787 \isanewline |
|
3788 \isanewline |
|
3789 \isacommand{thm}\isamarkupfalse% |
|
3790 \ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline |
|
3791 \isacommand{lemma}\isamarkupfalse% |
|
3792 \ alts{\isacharunderscore}{\kern0pt}rewrite{\isacharunderscore}{\kern0pt}front{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}r\ {\isasymleadsto}\ r{\isacharprime}{\kern0pt}\ {\isasymLongrightarrow}\ AALTs\ bs\ {\isacharparenleft}{\kern0pt}r\ {\isacharhash}{\kern0pt}\ rs{\isacharparenright}{\kern0pt}\ {\isasymleadsto}\ AALTs\ bs\ {\isacharparenleft}{\kern0pt}r{\isacharprime}{\kern0pt}\ {\isacharhash}{\kern0pt}\ rs{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
3793 % |
|
3794 \isadelimproof |
|
3795 \ \ % |
|
3796 \endisadelimproof |
|
3797 % |
|
3798 \isatagproof |
|
3799 \isacommand{by}\isamarkupfalse% |
|
3800 \ {\isacharparenleft}{\kern0pt}metis\ append{\isacharunderscore}{\kern0pt}Cons\ append{\isacharunderscore}{\kern0pt}Nil\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{6}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}% |
|
3801 \endisatagproof |
|
3802 {\isafoldproof}% |
|
3803 % |
|
3804 \isadelimproof |
|
3805 \isanewline |
|
3806 % |
|
3807 \endisadelimproof |
|
3808 \isanewline |
|
3809 \isacommand{lemma}\isamarkupfalse% |
|
3810 \ alt{\isacharunderscore}{\kern0pt}rewrite{\isacharunderscore}{\kern0pt}front{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}r\ {\isasymleadsto}\ r{\isacharprime}{\kern0pt}\ {\isasymLongrightarrow}\ AALT\ bs\ r\ r{\isadigit{2}}\ {\isasymleadsto}\ AALT\ bs\ r{\isacharprime}{\kern0pt}\ r{\isadigit{2}}{\isachardoublequoteclose}\isanewline |
|
3811 % |
|
3812 \isadelimproof |
|
3813 \ \ % |
|
3814 \endisadelimproof |
|
3815 % |
|
3816 \isatagproof |
|
3817 \isacommand{using}\isamarkupfalse% |
|
3818 \ alts{\isacharunderscore}{\kern0pt}rewrite{\isacharunderscore}{\kern0pt}front\ \isacommand{by}\isamarkupfalse% |
|
3819 \ blast% |
|
3820 \endisatagproof |
|
3821 {\isafoldproof}% |
|
3822 % |
|
3823 \isadelimproof |
|
3824 \isanewline |
|
3825 % |
|
3826 \endisadelimproof |
|
3827 \isanewline |
|
3828 \isacommand{lemma}\isamarkupfalse% |
|
3829 \ to{\isacharunderscore}{\kern0pt}zero{\isacharunderscore}{\kern0pt}in{\isacharunderscore}{\kern0pt}alt{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}\ AALT\ bs\ {\isacharparenleft}{\kern0pt}ASEQ\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ AZERO\ r{\isacharparenright}{\kern0pt}\ r{\isadigit{2}}\ {\isasymleadsto}\ \ AALT\ bs\ AZERO\ r{\isadigit{2}}{\isachardoublequoteclose}\isanewline |
|
3830 % |
|
3831 \isadelimproof |
|
3832 \ \ % |
|
3833 \endisadelimproof |
|
3834 % |
|
3835 \isatagproof |
|
3836 \isacommand{by}\isamarkupfalse% |
|
3837 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ alts{\isacharunderscore}{\kern0pt}rewrite{\isacharunderscore}{\kern0pt}front\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}% |
|
3838 \endisatagproof |
|
3839 {\isafoldproof}% |
|
3840 % |
|
3841 \isadelimproof |
|
3842 \isanewline |
|
3843 % |
|
3844 \endisadelimproof |
|
3845 \isanewline |
|
3846 \isacommand{lemma}\isamarkupfalse% |
|
3847 \ alt{\isacharunderscore}{\kern0pt}remove{\isadigit{0}}{\isacharunderscore}{\kern0pt}front{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}\ AALT\ bs\ AZERO\ r\ {\isasymleadsto}\ AALTs\ bs\ {\isacharbrackleft}{\kern0pt}r{\isacharbrackright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
3848 % |
|
3849 \isadelimproof |
|
3850 \ \ % |
|
3851 \endisadelimproof |
|
3852 % |
|
3853 \isatagproof |
|
3854 \isacommand{by}\isamarkupfalse% |
|
3855 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ rrewrite{\isadigit{0}}away{\isacharparenright}{\kern0pt}% |
|
3856 \endisatagproof |
|
3857 {\isafoldproof}% |
|
3858 % |
|
3859 \isadelimproof |
|
3860 \isanewline |
|
3861 % |
|
3862 \endisadelimproof |
|
3863 \isanewline |
|
3864 \isacommand{lemma}\isamarkupfalse% |
|
3865 \ alt{\isacharunderscore}{\kern0pt}rewrites{\isacharunderscore}{\kern0pt}back{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}r{\isadigit{2}}\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ r{\isadigit{2}}{\isacharprime}{\kern0pt}\ {\isasymLongrightarrow}AALT\ bs\ r{\isadigit{1}}\ r{\isadigit{2}}\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ AALT\ bs\ r{\isadigit{1}}\ r{\isadigit{2}}{\isacharprime}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
3866 % |
|
3867 \isadelimproof |
|
3868 \ \ % |
|
3869 \endisadelimproof |
|
3870 % |
|
3871 \isatagproof |
|
3872 \isacommand{apply}\isamarkupfalse% |
|
3873 {\isacharparenleft}{\kern0pt}induction\ r{\isadigit{2}}\ r{\isadigit{2}}{\isacharprime}{\kern0pt}\ arbitrary{\isacharcolon}{\kern0pt}\ bs\ rule{\isacharcolon}{\kern0pt}\ rrewrites{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline |
|
3874 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3875 \ simp\isanewline |
|
3876 \ \ \isacommand{by}\isamarkupfalse% |
|
3877 \ {\isacharparenleft}{\kern0pt}meson\ rs{\isadigit{1}}\ rs{\isadigit{2}}\ srewrites{\isacharunderscore}{\kern0pt}alt{\isadigit{1}}\ ss{\isadigit{1}}\ ss{\isadigit{2}}{\isacharparenright}{\kern0pt}% |
|
3878 \endisatagproof |
|
3879 {\isafoldproof}% |
|
3880 % |
|
3881 \isadelimproof |
|
3882 \isanewline |
|
3883 % |
|
3884 \endisadelimproof |
|
3885 \isanewline |
|
3886 \isacommand{lemma}\isamarkupfalse% |
|
3887 \ rewrite{\isacharunderscore}{\kern0pt}fuse{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}\ r{\isadigit{2}}\ {\isasymleadsto}\ r{\isadigit{3}}\ {\isasymLongrightarrow}\ fuse\ bs\ r{\isadigit{2}}\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ fuse\ bs\ r{\isadigit{3}}{\isachardoublequoteclose}\isanewline |
|
3888 % |
|
3889 \isadelimproof |
|
3890 \ \ % |
|
3891 \endisadelimproof |
|
3892 % |
|
3893 \isatagproof |
|
3894 \isacommand{apply}\isamarkupfalse% |
|
3895 {\isacharparenleft}{\kern0pt}induction\ r{\isadigit{2}}\ r{\isadigit{3}}\ arbitrary{\isacharcolon}{\kern0pt}\ bs\ rule{\isacharcolon}{\kern0pt}\ rrewrite{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline |
|
3896 \ \ \ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3897 \ auto\isanewline |
|
3898 \isanewline |
|
3899 \ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3900 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ continuous{\isacharunderscore}{\kern0pt}rewrite{\isacharparenright}{\kern0pt}\isanewline |
|
3901 \isanewline |
|
3902 \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3903 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ r{\isacharunderscore}{\kern0pt}in{\isacharunderscore}{\kern0pt}rstar\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline |
|
3904 \isanewline |
|
3905 \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3906 \ {\isacharparenleft}{\kern0pt}metis\ fuse{\isacharunderscore}{\kern0pt}append\ r{\isacharunderscore}{\kern0pt}in{\isacharunderscore}{\kern0pt}rstar\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{3}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline |
|
3907 \isanewline |
|
3908 \ \ \isacommand{using}\isamarkupfalse% |
|
3909 \ r{\isacharunderscore}{\kern0pt}in{\isacharunderscore}{\kern0pt}rstar\ star{\isacharunderscore}{\kern0pt}seq\ \isacommand{apply}\isamarkupfalse% |
|
3910 \ blast\isanewline |
|
3911 \isanewline |
|
3912 \ \ \isacommand{using}\isamarkupfalse% |
|
3913 \ r{\isacharunderscore}{\kern0pt}in{\isacharunderscore}{\kern0pt}rstar\ star{\isacharunderscore}{\kern0pt}seq{\isadigit{2}}\ \isacommand{apply}\isamarkupfalse% |
|
3914 \ blast\isanewline |
|
3915 \isanewline |
|
3916 \ \ \isacommand{using}\isamarkupfalse% |
|
3917 \ contextrewrites{\isadigit{2}}\ r{\isacharunderscore}{\kern0pt}in{\isacharunderscore}{\kern0pt}rstar\ \isacommand{apply}\isamarkupfalse% |
|
3918 \ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
3919 \ \ \isanewline |
|
3920 \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3921 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ r{\isacharunderscore}{\kern0pt}in{\isacharunderscore}{\kern0pt}rstar\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{7}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline |
|
3922 \isanewline |
|
3923 \ \ \isacommand{using}\isamarkupfalse% |
|
3924 \ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{8}}{\isacharparenright}{\kern0pt}\ \isacommand{apply}\isamarkupfalse% |
|
3925 \ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
3926 \isanewline |
|
3927 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3928 \ {\isacharparenleft}{\kern0pt}metis\ append{\isacharunderscore}{\kern0pt}assoc\ r{\isacharunderscore}{\kern0pt}in{\isacharunderscore}{\kern0pt}rstar\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{9}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline |
|
3929 \isanewline |
|
3930 \ \ \isacommand{apply}\isamarkupfalse% |
|
3931 \ {\isacharparenleft}{\kern0pt}metis\ append{\isacharunderscore}{\kern0pt}assoc\ r{\isacharunderscore}{\kern0pt}in{\isacharunderscore}{\kern0pt}rstar\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isadigit{0}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline |
|
3932 \isanewline |
|
3933 \ \ \isacommand{apply}\isamarkupfalse% |
|
3934 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ r{\isacharunderscore}{\kern0pt}in{\isacharunderscore}{\kern0pt}rstar\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isadigit{1}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline |
|
3935 \isanewline |
|
3936 \ \ \isacommand{apply}\isamarkupfalse% |
|
3937 \ {\isacharparenleft}{\kern0pt}metis\ fuse{\isacharunderscore}{\kern0pt}append\ r{\isacharunderscore}{\kern0pt}in{\isacharunderscore}{\kern0pt}rstar\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline |
|
3938 \isanewline |
|
3939 \ \ \isacommand{using}\isamarkupfalse% |
|
3940 \ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isadigit{3}}{\isacharparenright}{\kern0pt}\ \isacommand{by}\isamarkupfalse% |
|
3941 \ auto% |
|
3942 \endisatagproof |
|
3943 {\isafoldproof}% |
|
3944 % |
|
3945 \isadelimproof |
|
3946 \isanewline |
|
3947 % |
|
3948 \endisadelimproof |
|
3949 \isanewline |
|
3950 \ \ \isanewline |
|
3951 \isanewline |
|
3952 \isacommand{lemma}\isamarkupfalse% |
|
3953 \ rewrites{\isacharunderscore}{\kern0pt}fuse{\isacharcolon}{\kern0pt}\ \ {\isachardoublequoteopen}r{\isadigit{2}}\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ r{\isadigit{2}}{\isacharprime}{\kern0pt}\ {\isasymLongrightarrow}\ \ {\isacharparenleft}{\kern0pt}fuse\ bs{\isadigit{1}}\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ \ {\isacharparenleft}{\kern0pt}fuse\ bs{\isadigit{1}}\ r{\isadigit{2}}{\isacharprime}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
3954 % |
|
3955 \isadelimproof |
|
3956 \ \ % |
|
3957 \endisadelimproof |
|
3958 % |
|
3959 \isatagproof |
|
3960 \isacommand{apply}\isamarkupfalse% |
|
3961 {\isacharparenleft}{\kern0pt}induction\ r{\isadigit{2}}\ r{\isadigit{2}}{\isacharprime}{\kern0pt}\ arbitrary{\isacharcolon}{\kern0pt}\ bs{\isadigit{1}}\ rule{\isacharcolon}{\kern0pt}\ rrewrites{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline |
|
3962 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
3963 \ simp\isanewline |
|
3964 \ \ \isacommand{by}\isamarkupfalse% |
|
3965 \ {\isacharparenleft}{\kern0pt}meson\ real{\isacharunderscore}{\kern0pt}trans\ rewrite{\isacharunderscore}{\kern0pt}fuse{\isacharparenright}{\kern0pt}% |
|
3966 \endisatagproof |
|
3967 {\isafoldproof}% |
|
3968 % |
|
3969 \isadelimproof |
|
3970 \isanewline |
|
3971 % |
|
3972 \endisadelimproof |
|
3973 \isanewline |
|
3974 \isacommand{lemma}\isamarkupfalse% |
|
3975 \ \ bder{\isacharunderscore}{\kern0pt}fuse{\isacharunderscore}{\kern0pt}list{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}\ map\ {\isacharparenleft}{\kern0pt}bder\ c\ {\isasymcirc}\ fuse\ bs{\isadigit{1}}{\isacharparenright}{\kern0pt}\ rs{\isadigit{1}}\ {\isacharequal}{\kern0pt}\ map\ {\isacharparenleft}{\kern0pt}fuse\ bs{\isadigit{1}}\ {\isasymcirc}\ bder\ c{\isacharparenright}{\kern0pt}\ rs{\isadigit{1}}{\isachardoublequoteclose}\isanewline |
|
3976 % |
|
3977 \isadelimproof |
|
3978 \ \ % |
|
3979 \endisadelimproof |
|
3980 % |
|
3981 \isatagproof |
|
3982 \isacommand{apply}\isamarkupfalse% |
|
3983 {\isacharparenleft}{\kern0pt}induction\ rs{\isadigit{1}}{\isacharparenright}{\kern0pt}\isanewline |
|
3984 \ \ \isacommand{apply}\isamarkupfalse% |
|
3985 \ simp\isanewline |
|
3986 \ \ \isacommand{by}\isamarkupfalse% |
|
3987 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ bder{\isacharunderscore}{\kern0pt}fuse{\isacharparenright}{\kern0pt}% |
|
3988 \endisatagproof |
|
3989 {\isafoldproof}% |
|
3990 % |
|
3991 \isadelimproof |
|
3992 \isanewline |
|
3993 % |
|
3994 \endisadelimproof |
|
3995 \isanewline |
|
3996 \isanewline |
|
3997 \isanewline |
|
3998 \isacommand{lemma}\isamarkupfalse% |
|
3999 \ rewrite{\isacharunderscore}{\kern0pt}der{\isacharunderscore}{\kern0pt}altmiddle{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}bder\ c\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}rsa\ {\isacharat}{\kern0pt}\ AALTs\ bs{\isadigit{1}}\ rs{\isadigit{1}}\ {\isacharhash}{\kern0pt}\ rsb{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ bder\ c\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}rsa\ {\isacharat}{\kern0pt}\ map\ {\isacharparenleft}{\kern0pt}fuse\ bs{\isadigit{1}}{\isacharparenright}{\kern0pt}\ rs{\isadigit{1}}\ {\isacharat}{\kern0pt}\ rsb{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
4000 % |
|
4001 \isadelimproof |
|
4002 \ \ \ % |
|
4003 \endisadelimproof |
|
4004 % |
|
4005 \isatagproof |
|
4006 \isacommand{apply}\isamarkupfalse% |
|
4007 \ simp\isanewline |
|
4008 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
4009 {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ bder{\isacharunderscore}{\kern0pt}fuse{\isacharunderscore}{\kern0pt}list{\isacharparenright}{\kern0pt}\isanewline |
|
4010 \ \ \isacommand{apply}\isamarkupfalse% |
|
4011 {\isacharparenleft}{\kern0pt}rule\ many{\isacharunderscore}{\kern0pt}steps{\isacharunderscore}{\kern0pt}later{\isacharparenright}{\kern0pt}\isanewline |
|
4012 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
4013 {\isacharparenleft}{\kern0pt}subst\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{8}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline |
|
4014 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
4015 \ simp\isanewline |
|
4016 \isanewline |
|
4017 \ \ \isacommand{by}\isamarkupfalse% |
|
4018 \ fastforce% |
|
4019 \endisatagproof |
|
4020 {\isafoldproof}% |
|
4021 % |
|
4022 \isadelimproof |
|
4023 \isanewline |
|
4024 % |
|
4025 \endisadelimproof |
|
4026 \isanewline |
|
4027 \isacommand{lemma}\isamarkupfalse% |
|
4028 \ lock{\isacharunderscore}{\kern0pt}step{\isacharunderscore}{\kern0pt}der{\isacharunderscore}{\kern0pt}removal{\isacharcolon}{\kern0pt}\ \isanewline |
|
4029 \ \ \isakeyword{shows}\ {\isachardoublequoteopen}\ erase\ a{\isadigit{1}}\ {\isacharequal}{\kern0pt}\ erase\ a{\isadigit{2}}\ {\isasymLongrightarrow}\ \isanewline |
|
4030 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ bder\ c\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}rsa\ {\isacharat}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}a{\isadigit{1}}{\isacharbrackright}{\kern0pt}\ {\isacharat}{\kern0pt}\ rsb\ {\isacharat}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}a{\isadigit{2}}{\isacharbrackright}{\kern0pt}\ {\isacharat}{\kern0pt}\ rsc{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ \isanewline |
|
4031 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ bder\ c\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ {\isacharparenleft}{\kern0pt}rsa\ {\isacharat}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}a{\isadigit{1}}{\isacharbrackright}{\kern0pt}\ {\isacharat}{\kern0pt}\ rsb\ {\isacharat}{\kern0pt}\ rsc{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
4032 % |
|
4033 \isadelimproof |
|
4034 \ \ % |
|
4035 \endisadelimproof |
|
4036 % |
|
4037 \isatagproof |
|
4038 \isacommand{apply}\isamarkupfalse% |
|
4039 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
4040 \ \ \isanewline |
|
4041 \ \ \isacommand{using}\isamarkupfalse% |
|
4042 \ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isadigit{3}}{\isacharparenright}{\kern0pt}\ \isacommand{by}\isamarkupfalse% |
|
4043 \ auto% |
|
4044 \endisatagproof |
|
4045 {\isafoldproof}% |
|
4046 % |
|
4047 \isadelimproof |
|
4048 \isanewline |
|
4049 % |
|
4050 \endisadelimproof |
|
4051 \isanewline |
|
4052 \isacommand{lemma}\isamarkupfalse% |
|
4053 \ rewrite{\isacharunderscore}{\kern0pt}after{\isacharunderscore}{\kern0pt}der{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}r{\isadigit{1}}\ {\isasymleadsto}\ r{\isadigit{2}}\ {\isasymLongrightarrow}\ {\isacharparenleft}{\kern0pt}bder\ c\ r{\isadigit{1}}{\isacharparenright}{\kern0pt}\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ {\isacharparenleft}{\kern0pt}bder\ c\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
4054 % |
|
4055 \isadelimproof |
|
4056 \ \ % |
|
4057 \endisadelimproof |
|
4058 % |
|
4059 \isatagproof |
|
4060 \isacommand{apply}\isamarkupfalse% |
|
4061 {\isacharparenleft}{\kern0pt}induction\ r{\isadigit{1}}\ r{\isadigit{2}}\ arbitrary{\isacharcolon}{\kern0pt}\ c\ rule{\isacharcolon}{\kern0pt}\ rrewrite{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline |
|
4062 \ \ \isanewline |
|
4063 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
4064 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ r{\isacharunderscore}{\kern0pt}in{\isacharunderscore}{\kern0pt}rstar\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline |
|
4065 \ \ \isacommand{apply}\isamarkupfalse% |
|
4066 \ simp\isanewline |
|
4067 \ \ \isanewline |
|
4068 \ \ \isacommand{apply}\isamarkupfalse% |
|
4069 \ {\isacharparenleft}{\kern0pt}meson\ contextrewrites{\isadigit{1}}\ r{\isacharunderscore}{\kern0pt}in{\isacharunderscore}{\kern0pt}rstar\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isadigit{1}}{\isacharparenright}{\kern0pt}\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{2}}{\isacharparenright}{\kern0pt}\ rrewrite{\isadigit{0}}away\ rs{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline |
|
4070 \ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
4071 {\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline |
|
4072 \ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
4073 {\isacharparenleft}{\kern0pt}rule\ many{\isacharunderscore}{\kern0pt}steps{\isacharunderscore}{\kern0pt}later{\isacharparenright}{\kern0pt}\isanewline |
|
4074 \ \ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
4075 {\isacharparenleft}{\kern0pt}rule\ to{\isacharunderscore}{\kern0pt}zero{\isacharunderscore}{\kern0pt}in{\isacharunderscore}{\kern0pt}alt{\isacharparenright}{\kern0pt}\isanewline |
|
4076 \ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
4077 {\isacharparenleft}{\kern0pt}rule\ many{\isacharunderscore}{\kern0pt}steps{\isacharunderscore}{\kern0pt}later{\isacharparenright}{\kern0pt}\isanewline |
|
4078 \ \ \isacommand{apply}\isamarkupfalse% |
|
4079 {\isacharparenleft}{\kern0pt}rule\ alt{\isacharunderscore}{\kern0pt}remove{\isadigit{0}}{\isacharunderscore}{\kern0pt}front{\isacharparenright}{\kern0pt}\isanewline |
|
4080 \ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
4081 {\isacharparenleft}{\kern0pt}rule\ many{\isacharunderscore}{\kern0pt}steps{\isacharunderscore}{\kern0pt}later{\isacharparenright}{\kern0pt}\isanewline |
|
4082 \ \ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
4083 {\isacharparenleft}{\kern0pt}rule\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline |
|
4084 \ \ \isacommand{using}\isamarkupfalse% |
|
4085 \ bder{\isacharunderscore}{\kern0pt}fuse\ fuse{\isacharunderscore}{\kern0pt}append\ rs{\isadigit{1}}\ \isacommand{apply}\isamarkupfalse% |
|
4086 \ presburger\isanewline |
|
4087 \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
4088 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bnullable\ r{\isadigit{1}}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
4089 \ \ \isacommand{prefer}\isamarkupfalse% |
|
4090 \ {\isadigit{2}}\isanewline |
|
4091 \ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
4092 {\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}{\isasymnot}bnullable\ r{\isadigit{2}}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
4093 \ \ \ \ \ \ \ \ \ \ \ \ \isacommand{prefer}\isamarkupfalse% |
|
4094 \ {\isadigit{2}}\isanewline |
|
4095 \ \ \isacommand{using}\isamarkupfalse% |
|
4096 \ rewrite{\isacharunderscore}{\kern0pt}non{\isacharunderscore}{\kern0pt}nullable\ \isacommand{apply}\isamarkupfalse% |
|
4097 \ presburger\isanewline |
|
4098 \ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
4099 \ simp{\isacharplus}{\kern0pt}\isanewline |
|
4100 \ \ \isanewline |
|
4101 \ \ \isacommand{using}\isamarkupfalse% |
|
4102 \ star{\isacharunderscore}{\kern0pt}seq\ \isacommand{apply}\isamarkupfalse% |
|
4103 \ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
4104 \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
4105 {\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bnullable\ r{\isadigit{2}}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
4106 \ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
4107 \ simp{\isacharplus}{\kern0pt}\isanewline |
|
4108 \ \ \isacommand{apply}\isamarkupfalse% |
|
4109 {\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bmkeps\ r{\isadigit{1}}\ {\isacharequal}{\kern0pt}\ bmkeps\ r{\isadigit{2}}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
4110 \ \ \isacommand{prefer}\isamarkupfalse% |
|
4111 \ {\isadigit{2}}\isanewline |
|
4112 \ \ \isacommand{using}\isamarkupfalse% |
|
4113 \ rewrite{\isacharunderscore}{\kern0pt}bmkeps\ \isacommand{apply}\isamarkupfalse% |
|
4114 \ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
4115 \ \ \isacommand{using}\isamarkupfalse% |
|
4116 \ contextrewrites{\isadigit{1}}\ star{\isacharunderscore}{\kern0pt}seq\ \isacommand{apply}\isamarkupfalse% |
|
4117 \ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
4118 \ \ \isacommand{using}\isamarkupfalse% |
|
4119 \ rewritenullable\ \isacommand{apply}\isamarkupfalse% |
|
4120 \ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
4121 \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
4122 {\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bnullable\ r{\isadigit{1}}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline |
|
4123 \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
4124 \ simp\isanewline |
|
4125 \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
4126 {\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}ASEQ\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}bder\ c\ r{\isadigit{1}}{\isacharparenright}{\kern0pt}\ r{\isadigit{3}}\ {\isasymleadsto}\ ASEQ\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}bder\ c\ r{\isadigit{1}}{\isacharparenright}{\kern0pt}\ r{\isadigit{4}}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\ \isanewline |
|
4127 \ \ \ \ \ \ \ \ \ \ \ \isacommand{prefer}\isamarkupfalse% |
|
4128 \ {\isadigit{2}}\isanewline |
|
4129 \ \ \isacommand{using}\isamarkupfalse% |
|
4130 \ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{5}}{\isacharparenright}{\kern0pt}\ \isacommand{apply}\isamarkupfalse% |
|
4131 \ blast\isanewline |
|
4132 \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
4133 {\isacharparenleft}{\kern0pt}rule\ many{\isacharunderscore}{\kern0pt}steps{\isacharunderscore}{\kern0pt}later{\isacharparenright}{\kern0pt}\isanewline |
|
4134 \ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
4135 {\isacharparenleft}{\kern0pt}rule\ alt{\isacharunderscore}{\kern0pt}rewrite{\isacharunderscore}{\kern0pt}front{\isacharparenright}{\kern0pt}\isanewline |
|
4136 \ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
4137 \ assumption\isanewline |
|
4138 \ \ \isacommand{apply}\isamarkupfalse% |
|
4139 \ {\isacharparenleft}{\kern0pt}meson\ alt{\isacharunderscore}{\kern0pt}rewrites{\isacharunderscore}{\kern0pt}back\ rewrites{\isacharunderscore}{\kern0pt}fuse{\isacharparenright}{\kern0pt}\ \isanewline |
|
4140 \isanewline |
|
4141 \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse% |
|
4142 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ r{\isacharunderscore}{\kern0pt}in{\isacharunderscore}{\kern0pt}rstar\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{5}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline |
|
4143 \isanewline |
|
4144 \ \ \isacommand{using}\isamarkupfalse% |
|
4145 \ contextrewrites{\isadigit{2}}\ \isacommand{apply}\isamarkupfalse% |
|
4146 \ force\isanewline |
|
4147 \isanewline |
|
4148 \ \ \isacommand{using}\isamarkupfalse% |
|
4149 \ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{7}}{\isacharparenright}{\kern0pt}\ \isacommand{apply}\isamarkupfalse% |
|
4150 \ force\isanewline |
|
4151 \ \ \isanewline |
|
4152 \ \ \isacommand{using}\isamarkupfalse% |
|
4153 \ rewrite{\isacharunderscore}{\kern0pt}der{\isacharunderscore}{\kern0pt}altmiddle\ \isacommand{apply}\isamarkupfalse% |
|
4154 \ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline |
|
4155 \ \ \isanewline |
|
4156 \ \ \isacommand{apply}\isamarkupfalse% |
|
4157 \ {\isacharparenleft}{\kern0pt}metis\ bder{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{4}}{\isacharparenright}{\kern0pt}\ bder{\isacharunderscore}{\kern0pt}fuse{\isacharunderscore}{\kern0pt}list\ map{\isacharunderscore}{\kern0pt}map\ r{\isacharunderscore}{\kern0pt}in{\isacharunderscore}{\kern0pt}rstar\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{9}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline |
|
4158 \isanewline |
|
4159 \ \ \isacommand{apply}\isamarkupfalse% |
|
4160 \ {\isacharparenleft}{\kern0pt}metis\ List{\isachardot}{\kern0pt}map{\isachardot}{\kern0pt}compositionality\ bder{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{4}}{\isacharparenright}{\kern0pt}\ bder{\isacharunderscore}{\kern0pt}fuse{\isacharunderscore}{\kern0pt}list\ r{\isacharunderscore}{\kern0pt}in{\isacharunderscore}{\kern0pt}rstar\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isadigit{0}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline |
|
4161 \isanewline |
|
4162 \ \ \isacommand{apply}\isamarkupfalse% |
|
4163 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ r{\isacharunderscore}{\kern0pt}in{\isacharunderscore}{\kern0pt}rstar\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isadigit{1}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline |
|
4164 \isanewline |
|
4165 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
4166 \ {\isacharparenleft}{\kern0pt}metis\ bder{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{4}}{\isacharparenright}{\kern0pt}\ bder{\isacharunderscore}{\kern0pt}bsimp{\isacharunderscore}{\kern0pt}AALTs\ bsimp{\isacharunderscore}{\kern0pt}AALTs{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{2}}{\isacharparenright}{\kern0pt}\ bsimp{\isacharunderscore}{\kern0pt}AALTsrewrites{\isacharparenright}{\kern0pt}\isanewline |
|
4167 \isanewline |
|
4168 \ \ \isanewline |
|
4169 \ \ \isacommand{using}\isamarkupfalse% |
|
4170 \ lock{\isacharunderscore}{\kern0pt}step{\isacharunderscore}{\kern0pt}der{\isacharunderscore}{\kern0pt}removal\ \isacommand{by}\isamarkupfalse% |
|
4171 \ auto% |
|
4172 \endisatagproof |
|
4173 {\isafoldproof}% |
|
4174 % |
|
4175 \isadelimproof |
|
4176 \isanewline |
|
4177 % |
|
4178 \endisadelimproof |
|
4179 \isanewline |
|
4180 \isanewline |
|
4181 \isanewline |
|
4182 \isacommand{lemma}\isamarkupfalse% |
|
4183 \ rewrites{\isacharunderscore}{\kern0pt}after{\isacharunderscore}{\kern0pt}der{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}\ \ r{\isadigit{1}}\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ r{\isadigit{2}}\ \ {\isasymLongrightarrow}\ \ {\isacharparenleft}{\kern0pt}bder\ c\ r{\isadigit{1}}{\isacharparenright}{\kern0pt}\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ {\isacharparenleft}{\kern0pt}bder\ c\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
4184 % |
|
4185 \isadelimproof |
|
4186 \ \ % |
|
4187 \endisadelimproof |
|
4188 % |
|
4189 \isatagproof |
|
4190 \isacommand{apply}\isamarkupfalse% |
|
4191 {\isacharparenleft}{\kern0pt}induction\ r{\isadigit{1}}\ r{\isadigit{2}}\ rule{\isacharcolon}{\kern0pt}\ rrewrites{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline |
|
4192 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
4193 {\isacharparenleft}{\kern0pt}rule\ rs{\isadigit{1}}{\isacharparenright}{\kern0pt}\isanewline |
|
4194 \ \ \isacommand{by}\isamarkupfalse% |
|
4195 \ {\isacharparenleft}{\kern0pt}meson\ real{\isacharunderscore}{\kern0pt}trans\ rewrite{\isacharunderscore}{\kern0pt}after{\isacharunderscore}{\kern0pt}der{\isacharparenright}{\kern0pt}% |
|
4196 \endisatagproof |
|
4197 {\isafoldproof}% |
|
4198 % |
|
4199 \isadelimproof |
|
4200 \isanewline |
|
4201 % |
|
4202 \endisadelimproof |
|
4203 \ \ \isanewline |
|
4204 \isanewline |
|
4205 \isanewline |
|
4206 \isanewline |
|
4207 \isacommand{lemma}\isamarkupfalse% |
|
4208 \ central{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}\ {\isacharparenleft}{\kern0pt}bders\ r\ s{\isacharparenright}{\kern0pt}\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ \ {\isacharparenleft}{\kern0pt}bders{\isacharunderscore}{\kern0pt}simp\ r\ s{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\ \isanewline |
|
4209 % |
|
4210 \isadelimproof |
|
4211 \ \ % |
|
4212 \endisadelimproof |
|
4213 % |
|
4214 \isatagproof |
|
4215 \isacommand{apply}\isamarkupfalse% |
|
4216 {\isacharparenleft}{\kern0pt}induct\ s\ arbitrary{\isacharcolon}{\kern0pt}\ r\ rule{\isacharcolon}{\kern0pt}\ rev{\isacharunderscore}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline |
|
4217 \isanewline |
|
4218 \ \ \ \isacommand{apply}\isamarkupfalse% |
|
4219 \ simp\isanewline |
|
4220 \ \ \isacommand{apply}\isamarkupfalse% |
|
4221 {\isacharparenleft}{\kern0pt}subst\ bders{\isacharunderscore}{\kern0pt}append{\isacharparenright}{\kern0pt}\isanewline |
|
4222 \ \ \isacommand{apply}\isamarkupfalse% |
|
4223 {\isacharparenleft}{\kern0pt}subst\ bders{\isacharunderscore}{\kern0pt}simp{\isacharunderscore}{\kern0pt}append{\isacharparenright}{\kern0pt}\isanewline |
|
4224 \ \ \isacommand{by}\isamarkupfalse% |
|
4225 \ {\isacharparenleft}{\kern0pt}metis\ bders{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isacharparenright}{\kern0pt}\ bders{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{2}}{\isacharparenright}{\kern0pt}\ bders{\isacharunderscore}{\kern0pt}simp{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isacharparenright}{\kern0pt}\ bders{\isacharunderscore}{\kern0pt}simp{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{2}}{\isacharparenright}{\kern0pt}\ bsimp{\isacharunderscore}{\kern0pt}rewrite\ real{\isacharunderscore}{\kern0pt}trans\ rewrites{\isacharunderscore}{\kern0pt}after{\isacharunderscore}{\kern0pt}der{\isacharparenright}{\kern0pt}% |
|
4226 \endisatagproof |
|
4227 {\isafoldproof}% |
|
4228 % |
|
4229 \isadelimproof |
|
4230 \isanewline |
|
4231 % |
|
4232 \endisadelimproof |
|
4233 \isanewline |
|
4234 \isanewline |
|
4235 \isanewline |
|
4236 \isacommand{thm}\isamarkupfalse% |
|
4237 \ arexp{\isachardot}{\kern0pt}induct\isanewline |
|
4238 \isanewline |
|
4239 \isacommand{lemma}\isamarkupfalse% |
|
4240 \ quasi{\isacharunderscore}{\kern0pt}main{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}bnullable\ {\isacharparenleft}{\kern0pt}bders\ r\ s{\isacharparenright}{\kern0pt}\ {\isasymLongrightarrow}\ bmkeps\ {\isacharparenleft}{\kern0pt}bders\ r\ s{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ bmkeps\ {\isacharparenleft}{\kern0pt}bders{\isacharunderscore}{\kern0pt}simp\ r\ s{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline |
|
4241 % |
|
4242 \isadelimproof |
|
4243 \ \ % |
|
4244 \endisadelimproof |
|
4245 % |
|
4246 \isatagproof |
|
4247 \isacommand{using}\isamarkupfalse% |
|
4248 \ central\ rewrites{\isacharunderscore}{\kern0pt}bmkeps\ \isacommand{by}\isamarkupfalse% |
|
4249 \ blast% |
|
4250 \endisatagproof |
|
4251 {\isafoldproof}% |
|
4252 % |
|
4253 \isadelimproof |
|
4254 \isanewline |
|
4255 % |
|
4256 \endisadelimproof |
|
4257 \isanewline |
|
4258 \isacommand{theorem}\isamarkupfalse% |
|
4259 \ main{\isacharunderscore}{\kern0pt}main{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}blexer\ r\ s\ {\isacharequal}{\kern0pt}\ blexer{\isacharunderscore}{\kern0pt}simp\ r\ s{\isachardoublequoteclose}\isanewline |
|
4260 % |
|
4261 \isadelimproof |
|
4262 \ \ % |
|
4263 \endisadelimproof |
|
4264 % |
|
4265 \isatagproof |
|
4266 \isacommand{by}\isamarkupfalse% |
|
4267 \ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ b{\isadigit{4}}\ blexer{\isacharunderscore}{\kern0pt}def\ blexer{\isacharunderscore}{\kern0pt}simp{\isacharunderscore}{\kern0pt}def\ quasi{\isacharunderscore}{\kern0pt}main{\isacharparenright}{\kern0pt}% |
|
4268 \endisatagproof |
|
4269 {\isafoldproof}% |
|
4270 % |
|
4271 \isadelimproof |
|
4272 \isanewline |
|
4273 % |
|
4274 \endisadelimproof |
|
4275 \isanewline |
|
4276 \isanewline |
|
4277 \isacommand{theorem}\isamarkupfalse% |
|
4278 \ blexersimp{\isacharunderscore}{\kern0pt}correctness{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}blexer{\isacharunderscore}{\kern0pt}simp\ r\ s{\isacharequal}{\kern0pt}\ lexer\ r\ s{\isachardoublequoteclose}\isanewline |
|
4279 % |
|
4280 \isadelimproof |
|
4281 \ \ % |
|
4282 \endisadelimproof |
|
4283 % |
|
4284 \isatagproof |
|
4285 \isacommand{using}\isamarkupfalse% |
|
4286 \ blexer{\isacharunderscore}{\kern0pt}correctness\ main{\isacharunderscore}{\kern0pt}main\ \isacommand{by}\isamarkupfalse% |
|
4287 \ auto% |
|
4288 \endisatagproof |
|
4289 {\isafoldproof}% |
|
4290 % |
|
4291 \isadelimproof |
|
4292 \isanewline |
|
4293 % |
|
4294 \endisadelimproof |
|
4295 \isanewline |
|
4296 \isanewline |
|
4297 \isacommand{unused{\isacharunderscore}{\kern0pt}thms}\isamarkupfalse% |
|
4298 \isanewline |
|
4299 \isanewline |
|
4300 % |
|
4301 \isadelimtheory |
|
4302 \isanewline |
|
4303 % |
|
4304 \endisadelimtheory |
|
4305 % |
|
4306 \isatagtheory |
|
4307 \isacommand{end}\isamarkupfalse% |
|
4308 % |
|
4309 \endisatagtheory |
|
4310 {\isafoldtheory}% |
|
4311 % |
|
4312 \isadelimtheory |
|
4313 % |
|
4314 \endisadelimtheory |
|
4315 % |
|
4316 \end{isabellebody}% |
|
4317 \endinput |
|
4318 %:%file=~/Dropbox/Workspace/journalpaper/lexing/thys2/SizeBound.thy%:% |
|
4319 %:%6=1%:% |
|
4320 %:%11=2%:% |
|
4321 %:%12=2%:% |
|
4322 %:%13=3%:% |
|
4323 %:%14=4%:% |
|
4324 %:%28=6%:% |
|
4325 %:%38=8%:% |
|
4326 %:%39=8%:% |
|
4327 %:%40=9%:% |
|
4328 %:%41=10%:% |
|
4329 %:%42=10%:% |
|
4330 %:%43=11%:% |
|
4331 %:%44=12%:% |
|
4332 %:%45=13%:% |
|
4333 %:%46=14%:% |
|
4334 %:%47=15%:% |
|
4335 %:%48=16%:% |
|
4336 %:%49=17%:% |
|
4337 %:%50=18%:% |
|
4338 %:%51=19%:% |
|
4339 %:%52=20%:% |
|
4340 %:%53=21%:% |
|
4341 %:%54=21%:% |
|
4342 %:%55=22%:% |
|
4343 %:%56=23%:% |
|
4344 %:%57=24%:% |
|
4345 %:%58=25%:% |
|
4346 %:%59=26%:% |
|
4347 %:%60=26%:% |
|
4348 %:%61=27%:% |
|
4349 %:%62=28%:% |
|
4350 %:%63=29%:% |
|
4351 %:%64=30%:% |
|
4352 %:%65=31%:% |
|
4353 %:%66=32%:% |
|
4354 %:%67=33%:% |
|
4355 %:%68=34%:% |
|
4356 %:%69=35%:% |
|
4357 %:%70=36%:% |
|
4358 %:%71=37%:% |
|
4359 %:%72=38%:% |
|
4360 %:%73=39%:% |
|
4361 %:%75=41%:% |
|
4362 %:%82=42%:% |
|
4363 %:%83=42%:% |
|
4364 %:%88=42%:% |
|
4365 %:%91=43%:% |
|
4366 %:%92=44%:% |
|
4367 %:%93=44%:% |
|
4368 %:%94=45%:% |
|
4369 %:%95=46%:% |
|
4370 %:%102=47%:% |
|
4371 %:%103=47%:% |
|
4372 %:%104=48%:% |
|
4373 %:%105=48%:% |
|
4374 %:%106=49%:% |
|
4375 %:%107=49%:% |
|
4376 %:%108=50%:% |
|
4377 %:%109=50%:% |
|
4378 %:%110=50%:% |
|
4379 %:%111=51%:% |
|
4380 %:%112=51%:% |
|
4381 %:%117=51%:% |
|
4382 %:%120=52%:% |
|
4383 %:%121=53%:% |
|
4384 %:%122=53%:% |
|
4385 %:%129=54%:% |
|
4386 %:%130=54%:% |
|
4387 %:%131=55%:% |
|
4388 %:%132=55%:% |
|
4389 %:%133=56%:% |
|
4390 %:%134=56%:% |
|
4391 %:%139=56%:% |
|
4392 %:%142=57%:% |
|
4393 %:%143=58%:% |
|
4394 %:%144=58%:% |
|
4395 %:%145=59%:% |
|
4396 %:%146=60%:% |
|
4397 %:%147=61%:% |
|
4398 %:%148=62%:% |
|
4399 %:%149=63%:% |
|
4400 %:%150=64%:% |
|
4401 %:%151=64%:% |
|
4402 %:%152=65%:% |
|
4403 %:%153=66%:% |
|
4404 %:%156=67%:% |
|
4405 %:%160=67%:% |
|
4406 %:%161=67%:% |
|
4407 %:%162=68%:% |
|
4408 %:%163=68%:% |
|
4409 %:%164=69%:% |
|
4410 %:%165=69%:% |
|
4411 %:%166=70%:% |
|
4412 %:%172=70%:% |
|
4413 %:%175=71%:% |
|
4414 %:%176=72%:% |
|
4415 %:%177=72%:% |
|
4416 %:%178=73%:% |
|
4417 %:%179=74%:% |
|
4418 %:%186=75%:% |
|
4419 %:%187=75%:% |
|
4420 %:%188=76%:% |
|
4421 %:%189=76%:% |
|
4422 %:%190=77%:% |
|
4423 %:%191=77%:% |
|
4424 %:%192=78%:% |
|
4425 %:%193=78%:% |
|
4426 %:%194=78%:% |
|
4427 %:%199=78%:% |
|
4428 %:%202=79%:% |
|
4429 %:%203=80%:% |
|
4430 %:%204=80%:% |
|
4431 %:%205=81%:% |
|
4432 %:%206=82%:% |
|
4433 %:%209=83%:% |
|
4434 %:%213=83%:% |
|
4435 %:%214=83%:% |
|
4436 %:%215=83%:% |
|
4437 %:%216=84%:% |
|
4438 %:%217=84%:% |
|
4439 %:%231=87%:% |
|
4440 %:%241=89%:% |
|
4441 %:%242=89%:% |
|
4442 %:%243=90%:% |
|
4443 %:%244=91%:% |
|
4444 %:%245=92%:% |
|
4445 %:%246=93%:% |
|
4446 %:%247=94%:% |
|
4447 %:%248=95%:% |
|
4448 %:%249=96%:% |
|
4449 %:%250=97%:% |
|
4450 %:%251=97%:% |
|
4451 %:%252=98%:% |
|
4452 %:%253=99%:% |
|
4453 %:%254=100%:% |
|
4454 %:%255=100%:% |
|
4455 %:%256=101%:% |
|
4456 %:%257=102%:% |
|
4457 %:%258=103%:% |
|
4458 %:%259=104%:% |
|
4459 %:%260=105%:% |
|
4460 %:%261=106%:% |
|
4461 %:%262=107%:% |
|
4462 %:%263=108%:% |
|
4463 %:%264=108%:% |
|
4464 %:%265=109%:% |
|
4465 %:%266=110%:% |
|
4466 %:%267=111%:% |
|
4467 %:%268=112%:% |
|
4468 %:%269=113%:% |
|
4469 %:%270=114%:% |
|
4470 %:%271=115%:% |
|
4471 %:%272=116%:% |
|
4472 %:%273=117%:% |
|
4473 %:%274=118%:% |
|
4474 %:%275=119%:% |
|
4475 %:%276=120%:% |
|
4476 %:%277=121%:% |
|
4477 %:%278=122%:% |
|
4478 %:%279=123%:% |
|
4479 %:%280=123%:% |
|
4480 %:%281=124%:% |
|
4481 %:%282=125%:% |
|
4482 %:%283=126%:% |
|
4483 %:%284=127%:% |
|
4484 %:%285=128%:% |
|
4485 %:%286=129%:% |
|
4486 %:%287=129%:% |
|
4487 %:%288=130%:% |
|
4488 %:%289=131%:% |
|
4489 %:%290=132%:% |
|
4490 %:%291=133%:% |
|
4491 %:%292=134%:% |
|
4492 %:%293=135%:% |
|
4493 %:%294=136%:% |
|
4494 %:%295=137%:% |
|
4495 %:%296=138%:% |
|
4496 %:%297=139%:% |
|
4497 %:%298=140%:% |
|
4498 %:%299=141%:% |
|
4499 %:%300=142%:% |
|
4500 %:%301=143%:% |
|
4501 %:%302=144%:% |
|
4502 %:%303=145%:% |
|
4503 %:%304=145%:% |
|
4504 %:%305=146%:% |
|
4505 %:%306=147%:% |
|
4506 %:%307=148%:% |
|
4507 %:%308=149%:% |
|
4508 %:%309=150%:% |
|
4509 %:%310=151%:% |
|
4510 %:%311=152%:% |
|
4511 %:%312=153%:% |
|
4512 %:%313=153%:% |
|
4513 %:%314=154%:% |
|
4514 %:%317=155%:% |
|
4515 %:%321=155%:% |
|
4516 %:%322=155%:% |
|
4517 %:%323=156%:% |
|
4518 %:%324=156%:% |
|
4519 %:%325=157%:% |
|
4520 %:%331=157%:% |
|
4521 %:%334=158%:% |
|
4522 %:%335=159%:% |
|
4523 %:%336=160%:% |
|
4524 %:%337=160%:% |
|
4525 %:%338=161%:% |
|
4526 %:%339=162%:% |
|
4527 %:%340=163%:% |
|
4528 %:%341=164%:% |
|
4529 %:%342=165%:% |
|
4530 %:%343=166%:% |
|
4531 %:%344=167%:% |
|
4532 %:%345=168%:% |
|
4533 %:%346=169%:% |
|
4534 %:%347=170%:% |
|
4535 %:%348=170%:% |
|
4536 %:%349=171%:% |
|
4537 %:%350=172%:% |
|
4538 %:%351=173%:% |
|
4539 %:%352=174%:% |
|
4540 %:%353=175%:% |
|
4541 %:%354=176%:% |
|
4542 %:%355=177%:% |
|
4543 %:%356=178%:% |
|
4544 %:%357=179%:% |
|
4545 %:%358=180%:% |
|
4546 %:%359=181%:% |
|
4547 %:%360=182%:% |
|
4548 %:%361=183%:% |
|
4549 %:%362=183%:% |
|
4550 %:%363=184%:% |
|
4551 %:%364=185%:% |
|
4552 %:%365=186%:% |
|
4553 %:%366=187%:% |
|
4554 %:%367=188%:% |
|
4555 %:%368=189%:% |
|
4556 %:%369=190%:% |
|
4557 %:%370=191%:% |
|
4558 %:%371=192%:% |
|
4559 %:%372=193%:% |
|
4560 %:%373=193%:% |
|
4561 %:%374=194%:% |
|
4562 %:%375=195%:% |
|
4563 %:%376=196%:% |
|
4564 %:%377=197%:% |
|
4565 %:%378=198%:% |
|
4566 %:%379=199%:% |
|
4567 %:%380=200%:% |
|
4568 %:%381=201%:% |
|
4569 %:%382=202%:% |
|
4570 %:%383=203%:% |
|
4571 %:%384=203%:% |
|
4572 %:%385=204%:% |
|
4573 %:%386=205%:% |
|
4574 %:%387=206%:% |
|
4575 %:%388=207%:% |
|
4576 %:%389=208%:% |
|
4577 %:%390=209%:% |
|
4578 %:%391=210%:% |
|
4579 %:%394=213%:% |
|
4580 %:%395=214%:% |
|
4581 %:%396=215%:% |
|
4582 %:%397=216%:% |
|
4583 %:%398=217%:% |
|
4584 %:%399=217%:% |
|
4585 %:%400=218%:% |
|
4586 %:%401=219%:% |
|
4587 %:%402=220%:% |
|
4588 %:%403=221%:% |
|
4589 %:%404=222%:% |
|
4590 %:%405=223%:% |
|
4591 %:%406=223%:% |
|
4592 %:%407=224%:% |
|
4593 %:%410=225%:% |
|
4594 %:%414=225%:% |
|
4595 %:%415=225%:% |
|
4596 %:%416=226%:% |
|
4597 %:%417=226%:% |
|
4598 %:%418=227%:% |
|
4599 %:%424=227%:% |
|
4600 %:%427=228%:% |
|
4601 %:%428=229%:% |
|
4602 %:%429=229%:% |
|
4603 %:%430=230%:% |
|
4604 %:%433=231%:% |
|
4605 %:%437=231%:% |
|
4606 %:%438=231%:% |
|
4607 %:%439=232%:% |
|
4608 %:%440=232%:% |
|
4609 %:%441=233%:% |
|
4610 %:%447=233%:% |
|
4611 %:%450=234%:% |
|
4612 %:%451=235%:% |
|
4613 %:%452=235%:% |
|
4614 %:%453=236%:% |
|
4615 %:%456=237%:% |
|
4616 %:%460=237%:% |
|
4617 %:%461=237%:% |
|
4618 %:%462=238%:% |
|
4619 %:%463=238%:% |
|
4620 %:%464=239%:% |
|
4621 %:%470=239%:% |
|
4622 %:%473=240%:% |
|
4623 %:%474=241%:% |
|
4624 %:%475=241%:% |
|
4625 %:%476=242%:% |
|
4626 %:%477=243%:% |
|
4627 %:%478=243%:% |
|
4628 %:%479=244%:% |
|
4629 %:%482=245%:% |
|
4630 %:%486=245%:% |
|
4631 %:%487=245%:% |
|
4632 %:%488=246%:% |
|
4633 %:%489=246%:% |
|
4634 %:%490=247%:% |
|
4635 %:%496=247%:% |
|
4636 %:%499=248%:% |
|
4637 %:%500=249%:% |
|
4638 %:%501=249%:% |
|
4639 %:%502=250%:% |
|
4640 %:%505=251%:% |
|
4641 %:%509=251%:% |
|
4642 %:%510=251%:% |
|
4643 %:%511=252%:% |
|
4644 %:%512=252%:% |
|
4645 %:%513=253%:% |
|
4646 %:%519=253%:% |
|
4647 %:%522=254%:% |
|
4648 %:%523=255%:% |
|
4649 %:%524=255%:% |
|
4650 %:%525=256%:% |
|
4651 %:%528=257%:% |
|
4652 %:%532=257%:% |
|
4653 %:%533=257%:% |
|
4654 %:%534=258%:% |
|
4655 %:%535=258%:% |
|
4656 %:%536=259%:% |
|
4657 %:%542=259%:% |
|
4658 %:%545=260%:% |
|
4659 %:%546=261%:% |
|
4660 %:%547=261%:% |
|
4661 %:%548=262%:% |
|
4662 %:%549=263%:% |
|
4663 %:%552=264%:% |
|
4664 %:%556=264%:% |
|
4665 %:%557=264%:% |
|
4666 %:%558=265%:% |
|
4667 %:%559=265%:% |
|
4668 %:%560=266%:% |
|
4669 %:%561=266%:% |
|
4670 %:%562=267%:% |
|
4671 %:%568=267%:% |
|
4672 %:%571=268%:% |
|
4673 %:%572=269%:% |
|
4674 %:%573=270%:% |
|
4675 %:%574=270%:% |
|
4676 %:%575=271%:% |
|
4677 %:%576=272%:% |
|
4678 %:%579=273%:% |
|
4679 %:%583=273%:% |
|
4680 %:%584=273%:% |
|
4681 %:%585=274%:% |
|
4682 %:%586=274%:% |
|
4683 %:%587=275%:% |
|
4684 %:%588=275%:% |
|
4685 %:%589=276%:% |
|
4686 %:%590=276%:% |
|
4687 %:%591=277%:% |
|
4688 %:%592=277%:% |
|
4689 %:%593=278%:% |
|
4690 %:%594=278%:% |
|
4691 %:%595=279%:% |
|
4692 %:%596=279%:% |
|
4693 %:%597=280%:% |
|
4694 %:%598=280%:% |
|
4695 %:%599=281%:% |
|
4696 %:%600=281%:% |
|
4697 %:%601=282%:% |
|
4698 %:%602=283%:% |
|
4699 %:%603=283%:% |
|
4700 %:%604=284%:% |
|
4701 %:%605=284%:% |
|
4702 %:%606=285%:% |
|
4703 %:%607=285%:% |
|
4704 %:%608=286%:% |
|
4705 %:%609=286%:% |
|
4706 %:%610=287%:% |
|
4707 %:%611=287%:% |
|
4708 %:%612=288%:% |
|
4709 %:%613=288%:% |
|
4710 %:%614=289%:% |
|
4711 %:%615=289%:% |
|
4712 %:%616=290%:% |
|
4713 %:%617=290%:% |
|
4714 %:%618=291%:% |
|
4715 %:%619=291%:% |
|
4716 %:%620=292%:% |
|
4717 %:%626=292%:% |
|
4718 %:%629=293%:% |
|
4719 %:%630=294%:% |
|
4720 %:%631=294%:% |
|
4721 %:%632=295%:% |
|
4722 %:%633=296%:% |
|
4723 %:%636=297%:% |
|
4724 %:%640=297%:% |
|
4725 %:%641=297%:% |
|
4726 %:%642=298%:% |
|
4727 %:%643=298%:% |
|
4728 %:%648=298%:% |
|
4729 %:%651=299%:% |
|
4730 %:%652=300%:% |
|
4731 %:%653=301%:% |
|
4732 %:%654=301%:% |
|
4733 %:%655=302%:% |
|
4734 %:%656=303%:% |
|
4735 %:%659=304%:% |
|
4736 %:%663=304%:% |
|
4737 %:%664=304%:% |
|
4738 %:%665=305%:% |
|
4739 %:%666=305%:% |
|
4740 %:%667=306%:% |
|
4741 %:%668=306%:% |
|
4742 %:%669=307%:% |
|
4743 %:%675=307%:% |
|
4744 %:%678=308%:% |
|
4745 %:%679=309%:% |
|
4746 %:%680=310%:% |
|
4747 %:%681=310%:% |
|
4748 %:%682=311%:% |
|
4749 %:%683=312%:% |
|
4750 %:%686=313%:% |
|
4751 %:%690=313%:% |
|
4752 %:%691=313%:% |
|
4753 %:%692=314%:% |
|
4754 %:%693=314%:% |
|
4755 %:%698=314%:% |
|
4756 %:%701=315%:% |
|
4757 %:%702=316%:% |
|
4758 %:%703=316%:% |
|
4759 %:%704=317%:% |
|
4760 %:%705=318%:% |
|
4761 %:%708=319%:% |
|
4762 %:%712=319%:% |
|
4763 %:%713=319%:% |
|
4764 %:%714=320%:% |
|
4765 %:%715=320%:% |
|
4766 %:%716=321%:% |
|
4767 %:%717=321%:% |
|
4768 %:%718=322%:% |
|
4769 %:%724=322%:% |
|
4770 %:%727=323%:% |
|
4771 %:%728=324%:% |
|
4772 %:%729=324%:% |
|
4773 %:%730=325%:% |
|
4774 %:%731=326%:% |
|
4775 %:%734=327%:% |
|
4776 %:%738=327%:% |
|
4777 %:%739=327%:% |
|
4778 %:%740=328%:% |
|
4779 %:%741=328%:% |
|
4780 %:%742=329%:% |
|
4781 %:%743=329%:% |
|
4782 %:%744=330%:% |
|
4783 %:%750=330%:% |
|
4784 %:%753=331%:% |
|
4785 %:%754=332%:% |
|
4786 %:%755=332%:% |
|
4787 %:%756=333%:% |
|
4788 %:%757=334%:% |
|
4789 %:%758=335%:% |
|
4790 %:%759=336%:% |
|
4791 %:%762=337%:% |
|
4792 %:%766=337%:% |
|
4793 %:%767=337%:% |
|
4794 %:%768=338%:% |
|
4795 %:%769=338%:% |
|
4796 %:%770=339%:% |
|
4797 %:%771=339%:% |
|
4798 %:%772=340%:% |
|
4799 %:%773=340%:% |
|
4800 %:%774=341%:% |
|
4801 %:%775=341%:% |
|
4802 %:%776=341%:% |
|
4803 %:%777=342%:% |
|
4804 %:%778=342%:% |
|
4805 %:%779=343%:% |
|
4806 %:%780=343%:% |
|
4807 %:%781=344%:% |
|
4808 %:%782=344%:% |
|
4809 %:%783=345%:% |
|
4810 %:%784=345%:% |
|
4811 %:%785=346%:% |
|
4812 %:%786=346%:% |
|
4813 %:%787=347%:% |
|
4814 %:%788=347%:% |
|
4815 %:%789=348%:% |
|
4816 %:%790=348%:% |
|
4817 %:%791=349%:% |
|
4818 %:%792=349%:% |
|
4819 %:%793=350%:% |
|
4820 %:%794=350%:% |
|
4821 %:%795=351%:% |
|
4822 %:%796=351%:% |
|
4823 %:%797=352%:% |
|
4824 %:%798=352%:% |
|
4825 %:%799=353%:% |
|
4826 %:%800=353%:% |
|
4827 %:%801=354%:% |
|
4828 %:%802=354%:% |
|
4829 %:%803=355%:% |
|
4830 %:%804=355%:% |
|
4831 %:%805=356%:% |
|
4832 %:%806=356%:% |
|
4833 %:%807=357%:% |
|
4834 %:%808=357%:% |
|
4835 %:%809=358%:% |
|
4836 %:%810=358%:% |
|
4837 %:%811=359%:% |
|
4838 %:%812=359%:% |
|
4839 %:%813=360%:% |
|
4840 %:%814=360%:% |
|
4841 %:%815=361%:% |
|
4842 %:%816=361%:% |
|
4843 %:%817=362%:% |
|
4844 %:%818=362%:% |
|
4845 %:%819=363%:% |
|
4846 %:%825=363%:% |
|
4847 %:%828=364%:% |
|
4848 %:%829=365%:% |
|
4849 %:%830=366%:% |
|
4850 %:%831=366%:% |
|
4851 %:%832=367%:% |
|
4852 %:%833=368%:% |
|
4853 %:%834=369%:% |
|
4854 %:%837=370%:% |
|
4855 %:%841=370%:% |
|
4856 %:%842=370%:% |
|
4857 %:%843=371%:% |
|
4858 %:%844=371%:% |
|
4859 %:%845=372%:% |
|
4860 %:%846=372%:% |
|
4861 %:%847=373%:% |
|
4862 %:%848=373%:% |
|
4863 %:%849=374%:% |
|
4864 %:%850=374%:% |
|
4865 %:%851=375%:% |
|
4866 %:%852=375%:% |
|
4867 %:%853=376%:% |
|
4868 %:%854=376%:% |
|
4869 %:%855=377%:% |
|
4870 %:%856=377%:% |
|
4871 %:%857=378%:% |
|
4872 %:%858=378%:% |
|
4873 %:%859=379%:% |
|
4874 %:%860=379%:% |
|
4875 %:%861=380%:% |
|
4876 %:%862=380%:% |
|
4877 %:%863=381%:% |
|
4878 %:%864=381%:% |
|
4879 %:%865=382%:% |
|
4880 %:%866=382%:% |
|
4881 %:%867=383%:% |
|
4882 %:%868=383%:% |
|
4883 %:%869=384%:% |
|
4884 %:%870=384%:% |
|
4885 %:%871=385%:% |
|
4886 %:%872=385%:% |
|
4887 %:%873=386%:% |
|
4888 %:%874=386%:% |
|
4889 %:%875=387%:% |
|
4890 %:%876=387%:% |
|
4891 %:%877=388%:% |
|
4892 %:%878=388%:% |
|
4893 %:%879=389%:% |
|
4894 %:%880=389%:% |
|
4895 %:%881=390%:% |
|
4896 %:%882=390%:% |
|
4897 %:%883=390%:% |
|
4898 %:%884=391%:% |
|
4899 %:%885=391%:% |
|
4900 %:%886=392%:% |
|
4901 %:%887=392%:% |
|
4902 %:%888=393%:% |
|
4903 %:%889=393%:% |
|
4904 %:%890=394%:% |
|
4905 %:%891=394%:% |
|
4906 %:%892=394%:% |
|
4907 %:%893=395%:% |
|
4908 %:%894=395%:% |
|
4909 %:%895=396%:% |
|
4910 %:%896=396%:% |
|
4911 %:%897=397%:% |
|
4912 %:%898=397%:% |
|
4913 %:%899=398%:% |
|
4914 %:%900=398%:% |
|
4915 %:%901=399%:% |
|
4916 %:%902=399%:% |
|
4917 %:%903=399%:% |
|
4918 %:%904=400%:% |
|
4919 %:%905=400%:% |
|
4920 %:%906=401%:% |
|
4921 %:%907=401%:% |
|
4922 %:%908=401%:% |
|
4923 %:%913=401%:% |
|
4924 %:%916=402%:% |
|
4925 %:%917=403%:% |
|
4926 %:%918=403%:% |
|
4927 %:%919=404%:% |
|
4928 %:%920=405%:% |
|
4929 %:%923=406%:% |
|
4930 %:%927=406%:% |
|
4931 %:%928=406%:% |
|
4932 %:%929=407%:% |
|
4933 %:%930=407%:% |
|
4934 %:%931=408%:% |
|
4935 %:%932=408%:% |
|
4936 %:%933=409%:% |
|
4937 %:%934=409%:% |
|
4938 %:%935=410%:% |
|
4939 %:%936=410%:% |
|
4940 %:%937=411%:% |
|
4941 %:%938=411%:% |
|
4942 %:%939=412%:% |
|
4943 %:%940=412%:% |
|
4944 %:%941=413%:% |
|
4945 %:%942=413%:% |
|
4946 %:%943=414%:% |
|
4947 %:%944=414%:% |
|
4948 %:%945=415%:% |
|
4949 %:%946=415%:% |
|
4950 %:%947=416%:% |
|
4951 %:%953=416%:% |
|
4952 %:%956=417%:% |
|
4953 %:%957=418%:% |
|
4954 %:%958=418%:% |
|
4955 %:%959=419%:% |
|
4956 %:%960=420%:% |
|
4957 %:%963=421%:% |
|
4958 %:%967=421%:% |
|
4959 %:%968=421%:% |
|
4960 %:%969=422%:% |
|
4961 %:%970=422%:% |
|
4962 %:%971=423%:% |
|
4963 %:%972=423%:% |
|
4964 %:%973=424%:% |
|
4965 %:%974=424%:% |
|
4966 %:%975=425%:% |
|
4967 %:%976=425%:% |
|
4968 %:%977=426%:% |
|
4969 %:%978=426%:% |
|
4970 %:%979=427%:% |
|
4971 %:%980=427%:% |
|
4972 %:%981=428%:% |
|
4973 %:%982=428%:% |
|
4974 %:%983=429%:% |
|
4975 %:%984=429%:% |
|
4976 %:%985=430%:% |
|
4977 %:%986=430%:% |
|
4978 %:%987=431%:% |
|
4979 %:%988=431%:% |
|
4980 %:%989=432%:% |
|
4981 %:%990=432%:% |
|
4982 %:%991=433%:% |
|
4983 %:%992=433%:% |
|
4984 %:%993=434%:% |
|
4985 %:%994=434%:% |
|
4986 %:%995=435%:% |
|
4987 %:%996=435%:% |
|
4988 %:%997=436%:% |
|
4989 %:%998=436%:% |
|
4990 %:%999=437%:% |
|
4991 %:%1000=437%:% |
|
4992 %:%1001=438%:% |
|
4993 %:%1002=438%:% |
|
4994 %:%1003=439%:% |
|
4995 %:%1004=439%:% |
|
4996 %:%1005=440%:% |
|
4997 %:%1006=440%:% |
|
4998 %:%1007=441%:% |
|
4999 %:%1008=441%:% |
|
5000 %:%1009=442%:% |
|
5001 %:%1010=442%:% |
|
5002 %:%1011=443%:% |
|
5003 %:%1012=443%:% |
|
5004 %:%1013=444%:% |
|
5005 %:%1014=444%:% |
|
5006 %:%1015=445%:% |
|
5007 %:%1016=445%:% |
|
5008 %:%1017=446%:% |
|
5009 %:%1018=446%:% |
|
5010 %:%1019=447%:% |
|
5011 %:%1020=447%:% |
|
5012 %:%1021=448%:% |
|
5013 %:%1022=448%:% |
|
5014 %:%1023=449%:% |
|
5015 %:%1024=449%:% |
|
5016 %:%1025=450%:% |
|
5017 %:%1026=450%:% |
|
5018 %:%1027=451%:% |
|
5019 %:%1028=451%:% |
|
5020 %:%1029=452%:% |
|
5021 %:%1030=452%:% |
|
5022 %:%1031=452%:% |
|
5023 %:%1032=453%:% |
|
5024 %:%1033=453%:% |
|
5025 %:%1034=454%:% |
|
5026 %:%1035=454%:% |
|
5027 %:%1036=455%:% |
|
5028 %:%1037=455%:% |
|
5029 %:%1038=456%:% |
|
5030 %:%1039=456%:% |
|
5031 %:%1040=457%:% |
|
5032 %:%1041=457%:% |
|
5033 %:%1042=458%:% |
|
5034 %:%1043=458%:% |
|
5035 %:%1044=458%:% |
|
5036 %:%1045=459%:% |
|
5037 %:%1046=459%:% |
|
5038 %:%1047=460%:% |
|
5039 %:%1048=460%:% |
|
5040 %:%1049=461%:% |
|
5041 %:%1050=461%:% |
|
5042 %:%1051=462%:% |
|
5043 %:%1052=462%:% |
|
5044 %:%1053=463%:% |
|
5045 %:%1054=463%:% |
|
5046 %:%1055=464%:% |
|
5047 %:%1056=464%:% |
|
5048 %:%1057=465%:% |
|
5049 %:%1058=465%:% |
|
5050 %:%1059=465%:% |
|
5051 %:%1060=466%:% |
|
5052 %:%1061=466%:% |
|
5053 %:%1062=467%:% |
|
5054 %:%1063=467%:% |
|
5055 %:%1064=468%:% |
|
5056 %:%1065=468%:% |
|
5057 %:%1066=469%:% |
|
5058 %:%1067=469%:% |
|
5059 %:%1068=470%:% |
|
5060 %:%1069=470%:% |
|
5061 %:%1070=471%:% |
|
5062 %:%1071=471%:% |
|
5063 %:%1072=472%:% |
|
5064 %:%1073=472%:% |
|
5065 %:%1074=473%:% |
|
5066 %:%1075=473%:% |
|
5067 %:%1076=474%:% |
|
5068 %:%1077=474%:% |
|
5069 %:%1078=475%:% |
|
5070 %:%1079=475%:% |
|
5071 %:%1080=476%:% |
|
5072 %:%1081=476%:% |
|
5073 %:%1082=477%:% |
|
5074 %:%1083=477%:% |
|
5075 %:%1084=478%:% |
|
5076 %:%1090=478%:% |
|
5077 %:%1093=479%:% |
|
5078 %:%1094=480%:% |
|
5079 %:%1095=481%:% |
|
5080 %:%1096=482%:% |
|
5081 %:%1097=482%:% |
|
5082 %:%1098=483%:% |
|
5083 %:%1099=484%:% |
|
5084 %:%1102=485%:% |
|
5085 %:%1106=485%:% |
|
5086 %:%1107=485%:% |
|
5087 %:%1108=486%:% |
|
5088 %:%1109=486%:% |
|
5089 %:%1110=487%:% |
|
5090 %:%1111=487%:% |
|
5091 %:%1112=488%:% |
|
5092 %:%1113=488%:% |
|
5093 %:%1114=488%:% |
|
5094 %:%1115=489%:% |
|
5095 %:%1116=489%:% |
|
5096 %:%1117=489%:% |
|
5097 %:%1118=489%:% |
|
5098 %:%1119=490%:% |
|
5099 %:%1120=490%:% |
|
5100 %:%1121=490%:% |
|
5101 %:%1122=491%:% |
|
5102 %:%1123=491%:% |
|
5103 %:%1124=491%:% |
|
5104 %:%1125=492%:% |
|
5105 %:%1126=492%:% |
|
5106 %:%1127=492%:% |
|
5107 %:%1128=493%:% |
|
5108 %:%1129=493%:% |
|
5109 %:%1130=494%:% |
|
5110 %:%1131=494%:% |
|
5111 %:%1132=495%:% |
|
5112 %:%1133=495%:% |
|
5113 %:%1134=496%:% |
|
5114 %:%1135=496%:% |
|
5115 %:%1136=497%:% |
|
5116 %:%1137=497%:% |
|
5117 %:%1138=498%:% |
|
5118 %:%1139=498%:% |
|
5119 %:%1140=498%:% |
|
5120 %:%1141=499%:% |
|
5121 %:%1142=499%:% |
|
5122 %:%1143=499%:% |
|
5123 %:%1144=500%:% |
|
5124 %:%1145=500%:% |
|
5125 %:%1146=501%:% |
|
5126 %:%1147=501%:% |
|
5127 %:%1148=502%:% |
|
5128 %:%1149=502%:% |
|
5129 %:%1150=503%:% |
|
5130 %:%1151=503%:% |
|
5131 %:%1152=503%:% |
|
5132 %:%1153=504%:% |
|
5133 %:%1154=504%:% |
|
5134 %:%1155=504%:% |
|
5135 %:%1156=505%:% |
|
5136 %:%1157=505%:% |
|
5137 %:%1158=505%:% |
|
5138 %:%1159=506%:% |
|
5139 %:%1160=506%:% |
|
5140 %:%1161=506%:% |
|
5141 %:%1162=507%:% |
|
5142 %:%1163=507%:% |
|
5143 %:%1164=507%:% |
|
5144 %:%1165=508%:% |
|
5145 %:%1166=508%:% |
|
5146 %:%1167=509%:% |
|
5147 %:%1173=509%:% |
|
5148 %:%1176=510%:% |
|
5149 %:%1177=511%:% |
|
5150 %:%1178=512%:% |
|
5151 %:%1179=512%:% |
|
5152 %:%1180=513%:% |
|
5153 %:%1181=514%:% |
|
5154 %:%1182=515%:% |
|
5155 %:%1183=516%:% |
|
5156 %:%1184=517%:% |
|
5157 %:%1185=517%:% |
|
5158 %:%1186=518%:% |
|
5159 %:%1187=519%:% |
|
5160 %:%1188=520%:% |
|
5161 %:%1189=521%:% |
|
5162 %:%1190=521%:% |
|
5163 %:%1191=522%:% |
|
5164 %:%1198=523%:% |
|
5165 %:%1199=523%:% |
|
5166 %:%1200=524%:% |
|
5167 %:%1201=524%:% |
|
5168 %:%1202=524%:% |
|
5169 %:%1203=525%:% |
|
5170 %:%1204=525%:% |
|
5171 %:%1205=526%:% |
|
5172 %:%1206=526%:% |
|
5173 %:%1207=527%:% |
|
5174 %:%1208=527%:% |
|
5175 %:%1209=528%:% |
|
5176 %:%1210=528%:% |
|
5177 %:%1211=528%:% |
|
5178 %:%1212=529%:% |
|
5179 %:%1213=529%:% |
|
5180 %:%1214=530%:% |
|
5181 %:%1215=530%:% |
|
5182 %:%1216=530%:% |
|
5183 %:%1217=531%:% |
|
5184 %:%1218=531%:% |
|
5185 %:%1219=532%:% |
|
5186 %:%1220=532%:% |
|
5187 %:%1221=533%:% |
|
5188 %:%1222=533%:% |
|
5189 %:%1223=533%:% |
|
5190 %:%1224=534%:% |
|
5191 %:%1225=534%:% |
|
5192 %:%1226=534%:% |
|
5193 %:%1227=535%:% |
|
5194 %:%1228=535%:% |
|
5195 %:%1229=535%:% |
|
5196 %:%1230=536%:% |
|
5197 %:%1231=536%:% |
|
5198 %:%1232=536%:% |
|
5199 %:%1233=537%:% |
|
5200 %:%1234=537%:% |
|
5201 %:%1235=537%:% |
|
5202 %:%1236=538%:% |
|
5203 %:%1237=538%:% |
|
5204 %:%1238=539%:% |
|
5205 %:%1239=539%:% |
|
5206 %:%1240=539%:% |
|
5207 %:%1241=540%:% |
|
5208 %:%1242=540%:% |
|
5209 %:%1243=541%:% |
|
5210 %:%1244=541%:% |
|
5211 %:%1245=542%:% |
|
5212 %:%1246=542%:% |
|
5213 %:%1247=543%:% |
|
5214 %:%1248=543%:% |
|
5215 %:%1249=544%:% |
|
5216 %:%1255=544%:% |
|
5217 %:%1258=545%:% |
|
5218 %:%1259=546%:% |
|
5219 %:%1260=547%:% |
|
5220 %:%1261=547%:% |
|
5221 %:%1262=548%:% |
|
5222 %:%1263=549%:% |
|
5223 %:%1264=550%:% |
|
5224 %:%1266=552%:% |
|
5225 %:%1267=553%:% |
|
5226 %:%1268=554%:% |
|
5227 %:%1269=555%:% |
|
5228 %:%1270=556%:% |
|
5229 %:%1271=557%:% |
|
5230 %:%1272=557%:% |
|
5231 %:%1273=558%:% |
|
5232 %:%1274=559%:% |
|
5233 %:%1275=560%:% |
|
5234 %:%1276=561%:% |
|
5235 %:%1277=562%:% |
|
5236 %:%1278=563%:% |
|
5237 %:%1279=564%:% |
|
5238 %:%1280=565%:% |
|
5239 %:%1281=566%:% |
|
5240 %:%1282=567%:% |
|
5241 %:%1283=567%:% |
|
5242 %:%1284=568%:% |
|
5243 %:%1285=569%:% |
|
5244 %:%1286=570%:% |
|
5245 %:%1287=571%:% |
|
5246 %:%1288=572%:% |
|
5247 %:%1289=573%:% |
|
5248 %:%1290=574%:% |
|
5249 %:%1291=575%:% |
|
5250 %:%1292=576%:% |
|
5251 %:%1293=576%:% |
|
5252 %:%1294=577%:% |
|
5253 %:%1295=578%:% |
|
5254 %:%1296=579%:% |
|
5255 %:%1297=580%:% |
|
5256 %:%1298=581%:% |
|
5257 %:%1299=582%:% |
|
5258 %:%1300=583%:% |
|
5259 %:%1301=584%:% |
|
5260 %:%1302=584%:% |
|
5261 %:%1303=585%:% |
|
5262 %:%1304=586%:% |
|
5263 %:%1305=587%:% |
|
5264 %:%1306=588%:% |
|
5265 %:%1307=589%:% |
|
5266 %:%1308=590%:% |
|
5267 %:%1309=591%:% |
|
5268 %:%1310=591%:% |
|
5269 %:%1311=592%:% |
|
5270 %:%1312=593%:% |
|
5271 %:%1313=594%:% |
|
5272 %:%1314=595%:% |
|
5273 %:%1315=596%:% |
|
5274 %:%1316=597%:% |
|
5275 %:%1317=598%:% |
|
5276 %:%1318=599%:% |
|
5277 %:%1319=600%:% |
|
5278 %:%1320=600%:% |
|
5279 %:%1321=601%:% |
|
5280 %:%1322=602%:% |
|
5281 %:%1323=603%:% |
|
5282 %:%1324=604%:% |
|
5283 %:%1325=605%:% |
|
5284 %:%1326=606%:% |
|
5285 %:%1327=606%:% |
|
5286 %:%1328=607%:% |
|
5287 %:%1329=608%:% |
|
5288 %:%1330=609%:% |
|
5289 %:%1331=610%:% |
|
5290 %:%1332=610%:% |
|
5291 %:%1333=611%:% |
|
5292 %:%1334=612%:% |
|
5293 %:%1335=612%:% |
|
5294 %:%1336=613%:% |
|
5295 %:%1339=614%:% |
|
5296 %:%1343=614%:% |
|
5297 %:%1344=614%:% |
|
5298 %:%1345=615%:% |
|
5299 %:%1346=615%:% |
|
5300 %:%1347=616%:% |
|
5301 %:%1348=616%:% |
|
5302 %:%1349=617%:% |
|
5303 %:%1355=617%:% |
|
5304 %:%1358=618%:% |
|
5305 %:%1359=619%:% |
|
5306 %:%1360=620%:% |
|
5307 %:%1361=621%:% |
|
5308 %:%1362=622%:% |
|
5309 %:%1363=623%:% |
|
5310 %:%1364=624%:% |
|
5311 %:%1365=625%:% |
|
5312 %:%1366=625%:% |
|
5313 %:%1367=626%:% |
|
5314 %:%1370=627%:% |
|
5315 %:%1374=627%:% |
|
5316 %:%1375=627%:% |
|
5317 %:%1376=628%:% |
|
5318 %:%1377=628%:% |
|
5319 %:%1378=629%:% |
|
5320 %:%1379=629%:% |
|
5321 %:%1384=629%:% |
|
5322 %:%1387=630%:% |
|
5323 %:%1388=631%:% |
|
5324 %:%1389=631%:% |
|
5325 %:%1390=632%:% |
|
5326 %:%1393=633%:% |
|
5327 %:%1397=633%:% |
|
5328 %:%1398=633%:% |
|
5329 %:%1399=634%:% |
|
5330 %:%1400=634%:% |
|
5331 %:%1401=635%:% |
|
5332 %:%1407=635%:% |
|
5333 %:%1410=636%:% |
|
5334 %:%1411=637%:% |
|
5335 %:%1412=637%:% |
|
5336 %:%1413=638%:% |
|
5337 %:%1416=639%:% |
|
5338 %:%1420=639%:% |
|
5339 %:%1421=639%:% |
|
5340 %:%1422=640%:% |
|
5341 %:%1423=640%:% |
|
5342 %:%1424=641%:% |
|
5343 %:%1425=641%:% |
|
5344 %:%1426=642%:% |
|
5345 %:%1427=642%:% |
|
5346 %:%1428=643%:% |
|
5347 %:%1429=643%:% |
|
5348 %:%1430=644%:% |
|
5349 %:%1431=644%:% |
|
5350 %:%1432=645%:% |
|
5351 %:%1438=645%:% |
|
5352 %:%1441=646%:% |
|
5353 %:%1442=647%:% |
|
5354 %:%1443=647%:% |
|
5355 %:%1444=648%:% |
|
5356 %:%1447=649%:% |
|
5357 %:%1451=649%:% |
|
5358 %:%1452=649%:% |
|
5359 %:%1453=650%:% |
|
5360 %:%1454=650%:% |
|
5361 %:%1455=651%:% |
|
5362 %:%1456=651%:% |
|
5363 %:%1457=652%:% |
|
5364 %:%1458=652%:% |
|
5365 %:%1459=652%:% |
|
5366 %:%1460=653%:% |
|
5367 %:%1461=653%:% |
|
5368 %:%1466=653%:% |
|
5369 %:%1469=654%:% |
|
5370 %:%1470=655%:% |
|
5371 %:%1471=655%:% |
|
5372 %:%1472=656%:% |
|
5373 %:%1475=657%:% |
|
5374 %:%1479=657%:% |
|
5375 %:%1480=657%:% |
|
5376 %:%1481=658%:% |
|
5377 %:%1482=658%:% |
|
5378 %:%1483=659%:% |
|
5379 %:%1484=659%:% |
|
5380 %:%1485=660%:% |
|
5381 %:%1486=660%:% |
|
5382 %:%1491=660%:% |
|
5383 %:%1494=661%:% |
|
5384 %:%1495=662%:% |
|
5385 %:%1496=662%:% |
|
5386 %:%1497=663%:% |
|
5387 %:%1500=664%:% |
|
5388 %:%1504=664%:% |
|
5389 %:%1505=664%:% |
|
5390 %:%1510=664%:% |
|
5391 %:%1513=665%:% |
|
5392 %:%1514=666%:% |
|
5393 %:%1515=666%:% |
|
5394 %:%1516=667%:% |
|
5395 %:%1519=668%:% |
|
5396 %:%1523=668%:% |
|
5397 %:%1524=668%:% |
|
5398 %:%1525=669%:% |
|
5399 %:%1526=669%:% |
|
5400 %:%1527=670%:% |
|
5401 %:%1528=670%:% |
|
5402 %:%1529=671%:% |
|
5403 %:%1530=671%:% |
|
5404 %:%1531=672%:% |
|
5405 %:%1532=672%:% |
|
5406 %:%1533=673%:% |
|
5407 %:%1534=673%:% |
|
5408 %:%1535=674%:% |
|
5409 %:%1536=674%:% |
|
5410 %:%1537=675%:% |
|
5411 %:%1538=675%:% |
|
5412 %:%1539=676%:% |
|
5413 %:%1540=676%:% |
|
5414 %:%1541=677%:% |
|
5415 %:%1542=677%:% |
|
5416 %:%1543=678%:% |
|
5417 %:%1544=678%:% |
|
5418 %:%1545=679%:% |
|
5419 %:%1546=679%:% |
|
5420 %:%1547=680%:% |
|
5421 %:%1548=680%:% |
|
5422 %:%1549=681%:% |
|
5423 %:%1550=681%:% |
|
5424 %:%1551=682%:% |
|
5425 %:%1552=682%:% |
|
5426 %:%1553=683%:% |
|
5427 %:%1554=683%:% |
|
5428 %:%1555=684%:% |
|
5429 %:%1556=684%:% |
|
5430 %:%1557=685%:% |
|
5431 %:%1558=685%:% |
|
5432 %:%1559=686%:% |
|
5433 %:%1560=686%:% |
|
5434 %:%1561=686%:% |
|
5435 %:%1566=686%:% |
|
5436 %:%1569=687%:% |
|
5437 %:%1570=688%:% |
|
5438 %:%1571=688%:% |
|
5439 %:%1572=689%:% |
|
5440 %:%1575=690%:% |
|
5441 %:%1579=690%:% |
|
5442 %:%1580=690%:% |
|
5443 %:%1581=691%:% |
|
5444 %:%1582=691%:% |
|
5445 %:%1583=692%:% |
|
5446 %:%1589=692%:% |
|
5447 %:%1592=693%:% |
|
5448 %:%1593=694%:% |
|
5449 %:%1594=695%:% |
|
5450 %:%1595=696%:% |
|
5451 %:%1596=696%:% |
|
5452 %:%1597=697%:% |
|
5453 %:%1598=698%:% |
|
5454 %:%1601=699%:% |
|
5455 %:%1605=699%:% |
|
5456 %:%1606=699%:% |
|
5457 %:%1607=700%:% |
|
5458 %:%1608=700%:% |
|
5459 %:%1609=701%:% |
|
5460 %:%1610=701%:% |
|
5461 %:%1611=702%:% |
|
5462 %:%1617=702%:% |
|
5463 %:%1620=703%:% |
|
5464 %:%1621=704%:% |
|
5465 %:%1622=704%:% |
|
5466 %:%1623=705%:% |
|
5467 %:%1626=706%:% |
|
5468 %:%1630=706%:% |
|
5469 %:%1631=706%:% |
|
5470 %:%1632=707%:% |
|
5471 %:%1633=707%:% |
|
5472 %:%1634=708%:% |
|
5473 %:%1640=708%:% |
|
5474 %:%1643=709%:% |
|
5475 %:%1644=710%:% |
|
5476 %:%1645=711%:% |
|
5477 %:%1646=711%:% |
|
5478 %:%1647=712%:% |
|
5479 %:%1650=713%:% |
|
5480 %:%1654=713%:% |
|
5481 %:%1655=713%:% |
|
5482 %:%1656=714%:% |
|
5483 %:%1657=714%:% |
|
5484 %:%1658=715%:% |
|
5485 %:%1659=715%:% |
|
5486 %:%1660=716%:% |
|
5487 %:%1661=716%:% |
|
5488 %:%1662=717%:% |
|
5489 %:%1663=717%:% |
|
5490 %:%1664=718%:% |
|
5491 %:%1665=718%:% |
|
5492 %:%1666=719%:% |
|
5493 %:%1667=719%:% |
|
5494 %:%1672=719%:% |
|
5495 %:%1675=720%:% |
|
5496 %:%1676=721%:% |
|
5497 %:%1677=722%:% |
|
5498 %:%1678=722%:% |
|
5499 %:%1679=723%:% |
|
5500 %:%1680=724%:% |
|
5501 %:%1683=725%:% |
|
5502 %:%1687=725%:% |
|
5503 %:%1688=725%:% |
|
5504 %:%1693=725%:% |
|
5505 %:%1696=726%:% |
|
5506 %:%1697=727%:% |
|
5507 %:%1698=728%:% |
|
5508 %:%1699=728%:% |
|
5509 %:%1700=729%:% |
|
5510 %:%1703=730%:% |
|
5511 %:%1707=730%:% |
|
5512 %:%1708=730%:% |
|
5513 %:%1713=730%:% |
|
5514 %:%1716=731%:% |
|
5515 %:%1717=732%:% |
|
5516 %:%1718=733%:% |
|
5517 %:%1719=733%:% |
|
5518 %:%1720=734%:% |
|
5519 %:%1721=735%:% |
|
5520 %:%1724=736%:% |
|
5521 %:%1728=736%:% |
|
5522 %:%1729=736%:% |
|
5523 %:%1730=737%:% |
|
5524 %:%1731=737%:% |
|
5525 %:%1732=738%:% |
|
5526 %:%1733=738%:% |
|
5527 %:%1734=739%:% |
|
5528 %:%1735=739%:% |
|
5529 %:%1736=740%:% |
|
5530 %:%1737=740%:% |
|
5531 %:%1742=740%:% |
|
5532 %:%1745=741%:% |
|
5533 %:%1746=742%:% |
|
5534 %:%1747=742%:% |
|
5535 %:%1748=743%:% |
|
5536 %:%1749=744%:% |
|
5537 %:%1752=745%:% |
|
5538 %:%1756=745%:% |
|
5539 %:%1757=745%:% |
|
5540 %:%1758=746%:% |
|
5541 %:%1759=746%:% |
|
5542 %:%1760=747%:% |
|
5543 %:%1761=747%:% |
|
5544 %:%1762=748%:% |
|
5545 %:%1763=748%:% |
|
5546 %:%1764=749%:% |
|
5547 %:%1765=749%:% |
|
5548 %:%1770=749%:% |
|
5549 %:%1773=750%:% |
|
5550 %:%1774=751%:% |
|
5551 %:%1775=751%:% |
|
5552 %:%1776=752%:% |
|
5553 %:%1779=753%:% |
|
5554 %:%1783=753%:% |
|
5555 %:%1784=753%:% |
|
5556 %:%1785=754%:% |
|
5557 %:%1786=754%:% |
|
5558 %:%1787=755%:% |
|
5559 %:%1788=755%:% |
|
5560 %:%1789=756%:% |
|
5561 %:%1795=756%:% |
|
5562 %:%1798=757%:% |
|
5563 %:%1799=758%:% |
|
5564 %:%1800=759%:% |
|
5565 %:%1801=760%:% |
|
5566 %:%1802=761%:% |
|
5567 %:%1803=762%:% |
|
5568 %:%1804=762%:% |
|
5569 %:%1805=763%:% |
|
5570 %:%1806=764%:% |
|
5571 %:%1807=765%:% |
|
5572 %:%1808=766%:% |
|
5573 %:%1809=767%:% |
|
5574 %:%1810=768%:% |
|
5575 %:%1811=769%:% |
|
5576 %:%1812=770%:% |
|
5577 %:%1813=770%:% |
|
5578 %:%1814=771%:% |
|
5579 %:%1817=772%:% |
|
5580 %:%1821=772%:% |
|
5581 %:%1822=772%:% |
|
5582 %:%1823=773%:% |
|
5583 %:%1824=773%:% |
|
5584 %:%1825=774%:% |
|
5585 %:%1831=774%:% |
|
5586 %:%1834=775%:% |
|
5587 %:%1835=776%:% |
|
5588 %:%1836=776%:% |
|
5589 %:%1837=777%:% |
|
5590 %:%1840=778%:% |
|
5591 %:%1844=778%:% |
|
5592 %:%1845=778%:% |
|
5593 %:%1846=779%:% |
|
5594 %:%1847=779%:% |
|
5595 %:%1848=780%:% |
|
5596 %:%1849=780%:% |
|
5597 %:%1854=780%:% |
|
5598 %:%1857=781%:% |
|
5599 %:%1858=782%:% |
|
5600 %:%1859=782%:% |
|
5601 %:%1860=783%:% |
|
5602 %:%1863=784%:% |
|
5603 %:%1867=784%:% |
|
5604 %:%1868=784%:% |
|
5605 %:%1869=785%:% |
|
5606 %:%1875=785%:% |
|
5607 %:%1878=786%:% |
|
5608 %:%1879=787%:% |
|
5609 %:%1880=788%:% |
|
5610 %:%1881=789%:% |
|
5611 %:%1882=790%:% |
|
5612 %:%1883=791%:% |
|
5613 %:%1884=792%:% |
|
5614 %:%1885=793%:% |
|
5615 %:%1886=794%:% |
|
5616 %:%1887=794%:% |
|
5617 %:%1888=795%:% |
|
5618 %:%1889=796%:% |
|
5619 %:%1892=797%:% |
|
5620 %:%1896=797%:% |
|
5621 %:%1897=797%:% |
|
5622 %:%1898=798%:% |
|
5623 %:%1899=798%:% |
|
5624 %:%1900=799%:% |
|
5625 %:%1901=799%:% |
|
5626 %:%1902=800%:% |
|
5627 %:%1903=800%:% |
|
5628 %:%1904=801%:% |
|
5629 %:%1905=801%:% |
|
5630 %:%1906=802%:% |
|
5631 %:%1912=802%:% |
|
5632 %:%1915=803%:% |
|
5633 %:%1916=804%:% |
|
5634 %:%1917=805%:% |
|
5635 %:%1918=806%:% |
|
5636 %:%1919=806%:% |
|
5637 %:%1920=807%:% |
|
5638 %:%1923=808%:% |
|
5639 %:%1927=808%:% |
|
5640 %:%1928=808%:% |
|
5641 %:%1929=808%:% |
|
5642 %:%1934=808%:% |
|
5643 %:%1937=809%:% |
|
5644 %:%1938=810%:% |
|
5645 %:%1939=811%:% |
|
5646 %:%1940=812%:% |
|
5647 %:%1941=813%:% |
|
5648 %:%1942=814%:% |
|
5649 %:%1943=814%:% |
|
5650 %:%1944=815%:% |
|
5651 %:%1947=816%:% |
|
5652 %:%1951=816%:% |
|
5653 %:%1952=816%:% |
|
5654 %:%1953=817%:% |
|
5655 %:%1954=817%:% |
|
5656 %:%1955=818%:% |
|
5657 %:%1956=818%:% |
|
5658 %:%1957=819%:% |
|
5659 %:%1958=819%:% |
|
5660 %:%1959=820%:% |
|
5661 %:%1960=820%:% |
|
5662 %:%1961=821%:% |
|
5663 %:%1962=821%:% |
|
5664 %:%1963=822%:% |
|
5665 %:%1964=822%:% |
|
5666 %:%1965=823%:% |
|
5667 %:%1966=823%:% |
|
5668 %:%1967=824%:% |
|
5669 %:%1973=824%:% |
|
5670 %:%1976=825%:% |
|
5671 %:%1977=826%:% |
|
5672 %:%1978=826%:% |
|
5673 %:%1979=827%:% |
|
5674 %:%1980=828%:% |
|
5675 %:%1981=829%:% |
|
5676 %:%1982=830%:% |
|
5677 %:%1983=831%:% |
|
5678 %:%1984=832%:% |
|
5679 %:%1985=832%:% |
|
5680 %:%1986=833%:% |
|
5681 %:%1987=834%:% |
|
5682 %:%1990=835%:% |
|
5683 %:%1994=835%:% |
|
5684 %:%1995=835%:% |
|
5685 %:%1996=836%:% |
|
5686 %:%1997=836%:% |
|
5687 %:%1998=837%:% |
|
5688 %:%1999=837%:% |
|
5689 %:%2000=838%:% |
|
5690 %:%2006=838%:% |
|
5691 %:%2009=839%:% |
|
5692 %:%2010=840%:% |
|
5693 %:%2011=841%:% |
|
5694 %:%2012=842%:% |
|
5695 %:%2013=842%:% |
|
5696 %:%2014=843%:% |
|
5697 %:%2015=844%:% |
|
5698 %:%2018=845%:% |
|
5699 %:%2022=845%:% |
|
5700 %:%2023=845%:% |
|
5701 %:%2024=846%:% |
|
5702 %:%2025=846%:% |
|
5703 %:%2026=847%:% |
|
5704 %:%2027=847%:% |
|
5705 %:%2028=848%:% |
|
5706 %:%2029=848%:% |
|
5707 %:%2030=849%:% |
|
5708 %:%2031=849%:% |
|
5709 %:%2032=850%:% |
|
5710 %:%2033=850%:% |
|
5711 %:%2034=851%:% |
|
5712 %:%2035=851%:% |
|
5713 %:%2036=852%:% |
|
5714 %:%2037=852%:% |
|
5715 %:%2038=853%:% |
|
5716 %:%2039=853%:% |
|
5717 %:%2040=854%:% |
|
5718 %:%2041=854%:% |
|
5719 %:%2042=855%:% |
|
5720 %:%2043=855%:% |
|
5721 %:%2044=856%:% |
|
5722 %:%2045=856%:% |
|
5723 %:%2046=857%:% |
|
5724 %:%2047=857%:% |
|
5725 %:%2048=858%:% |
|
5726 %:%2054=858%:% |
|
5727 %:%2057=859%:% |
|
5728 %:%2058=860%:% |
|
5729 %:%2059=860%:% |
|
5730 %:%2060=861%:% |
|
5731 %:%2061=862%:% |
|
5732 %:%2064=863%:% |
|
5733 %:%2068=863%:% |
|
5734 %:%2069=863%:% |
|
5735 %:%2070=864%:% |
|
5736 %:%2071=864%:% |
|
5737 %:%2072=865%:% |
|
5738 %:%2073=865%:% |
|
5739 %:%2074=866%:% |
|
5740 %:%2075=866%:% |
|
5741 %:%2080=866%:% |
|
5742 %:%2083=867%:% |
|
5743 %:%2084=868%:% |
|
5744 %:%2085=869%:% |
|
5745 %:%2086=869%:% |
|
5746 %:%2087=870%:% |
|
5747 %:%2088=871%:% |
|
5748 %:%2091=872%:% |
|
5749 %:%2095=872%:% |
|
5750 %:%2096=872%:% |
|
5751 %:%2097=873%:% |
|
5752 %:%2098=873%:% |
|
5753 %:%2099=874%:% |
|
5754 %:%2100=874%:% |
|
5755 %:%2101=875%:% |
|
5756 %:%2102=875%:% |
|
5757 %:%2103=876%:% |
|
5758 %:%2104=876%:% |
|
5759 %:%2105=877%:% |
|
5760 %:%2106=877%:% |
|
5761 %:%2107=878%:% |
|
5762 %:%2108=878%:% |
|
5763 %:%2109=879%:% |
|
5764 %:%2110=879%:% |
|
5765 %:%2111=880%:% |
|
5766 %:%2112=880%:% |
|
5767 %:%2113=881%:% |
|
5768 %:%2114=881%:% |
|
5769 %:%2115=882%:% |
|
5770 %:%2116=882%:% |
|
5771 %:%2117=883%:% |
|
5772 %:%2118=883%:% |
|
5773 %:%2119=884%:% |
|
5774 %:%2120=884%:% |
|
5775 %:%2121=885%:% |
|
5776 %:%2122=885%:% |
|
5777 %:%2123=886%:% |
|
5778 %:%2124=886%:% |
|
5779 %:%2125=887%:% |
|
5780 %:%2126=887%:% |
|
5781 %:%2127=888%:% |
|
5782 %:%2128=888%:% |
|
5783 %:%2129=889%:% |
|
5784 %:%2130=889%:% |
|
5785 %:%2131=890%:% |
|
5786 %:%2132=890%:% |
|
5787 %:%2133=891%:% |
|
5788 %:%2134=891%:% |
|
5789 %:%2135=892%:% |
|
5790 %:%2136=892%:% |
|
5791 %:%2137=893%:% |
|
5792 %:%2138=893%:% |
|
5793 %:%2139=894%:% |
|
5794 %:%2140=894%:% |
|
5795 %:%2141=895%:% |
|
5796 %:%2142=895%:% |
|
5797 %:%2143=896%:% |
|
5798 %:%2144=896%:% |
|
5799 %:%2145=897%:% |
|
5800 %:%2146=897%:% |
|
5801 %:%2147=898%:% |
|
5802 %:%2148=898%:% |
|
5803 %:%2149=899%:% |
|
5804 %:%2150=899%:% |
|
5805 %:%2151=900%:% |
|
5806 %:%2152=900%:% |
|
5807 %:%2153=901%:% |
|
5808 %:%2154=901%:% |
|
5809 %:%2155=902%:% |
|
5810 %:%2156=902%:% |
|
5811 %:%2157=903%:% |
|
5812 %:%2158=903%:% |
|
5813 %:%2159=904%:% |
|
5814 %:%2160=904%:% |
|
5815 %:%2161=905%:% |
|
5816 %:%2162=905%:% |
|
5817 %:%2163=906%:% |
|
5818 %:%2164=906%:% |
|
5819 %:%2165=907%:% |
|
5820 %:%2166=907%:% |
|
5821 %:%2167=908%:% |
|
5822 %:%2168=908%:% |
|
5823 %:%2169=909%:% |
|
5824 %:%2170=909%:% |
|
5825 %:%2171=910%:% |
|
5826 %:%2172=910%:% |
|
5827 %:%2173=911%:% |
|
5828 %:%2174=911%:% |
|
5829 %:%2175=912%:% |
|
5830 %:%2176=912%:% |
|
5831 %:%2177=913%:% |
|
5832 %:%2178=913%:% |
|
5833 %:%2179=914%:% |
|
5834 %:%2180=914%:% |
|
5835 %:%2181=915%:% |
|
5836 %:%2182=915%:% |
|
5837 %:%2183=916%:% |
|
5838 %:%2184=916%:% |
|
5839 %:%2185=917%:% |
|
5840 %:%2186=917%:% |
|
5841 %:%2187=918%:% |
|
5842 %:%2188=918%:% |
|
5843 %:%2189=919%:% |
|
5844 %:%2190=919%:% |
|
5845 %:%2191=920%:% |
|
5846 %:%2192=920%:% |
|
5847 %:%2193=921%:% |
|
5848 %:%2194=921%:% |
|
5849 %:%2195=922%:% |
|
5850 %:%2196=922%:% |
|
5851 %:%2197=923%:% |
|
5852 %:%2198=923%:% |
|
5853 %:%2199=924%:% |
|
5854 %:%2200=924%:% |
|
5855 %:%2201=925%:% |
|
5856 %:%2202=925%:% |
|
5857 %:%2203=926%:% |
|
5858 %:%2204=926%:% |
|
5859 %:%2205=927%:% |
|
5860 %:%2206=927%:% |
|
5861 %:%2207=928%:% |
|
5862 %:%2208=928%:% |
|
5863 %:%2209=929%:% |
|
5864 %:%2210=929%:% |
|
5865 %:%2211=930%:% |
|
5866 %:%2212=930%:% |
|
5867 %:%2213=931%:% |
|
5868 %:%2214=931%:% |
|
5869 %:%2215=931%:% |
|
5870 %:%2220=931%:% |
|
5871 %:%2223=932%:% |
|
5872 %:%2224=933%:% |
|
5873 %:%2225=934%:% |
|
5874 %:%2226=935%:% |
|
5875 %:%2227=936%:% |
|
5876 %:%2228=936%:% |
|
5877 %:%2229=937%:% |
|
5878 %:%2232=938%:% |
|
5879 %:%2236=938%:% |
|
5880 %:%2237=938%:% |
|
5881 %:%2238=939%:% |
|
5882 %:%2239=939%:% |
|
5883 %:%2240=940%:% |
|
5884 %:%2246=940%:% |
|
5885 %:%2249=941%:% |
|
5886 %:%2250=942%:% |
|
5887 %:%2251=943%:% |
|
5888 %:%2252=943%:% |
|
5889 %:%2253=944%:% |
|
5890 %:%2254=945%:% |
|
5891 %:%2255=946%:% |
|
5892 %:%2256=947%:% |
|
5893 %:%2257=948%:% |
|
5894 %:%2258=949%:% |
|
5895 %:%2259=950%:% |
|
5896 %:%2261=952%:% |
|
5897 %:%2262=953%:% |
|
5898 %:%2263=954%:% |
|
5899 %:%2264=955%:% |
|
5900 %:%2265=956%:% |
|
5901 %:%2266=957%:% |
|
5902 %:%2267=958%:% |
|
5903 %:%2268=959%:% |
|
5904 %:%2269=960%:% |
|
5905 %:%2270=961%:% |
|
5906 %:%2271=962%:% |
|
5907 %:%2272=963%:% |
|
5908 %:%2273=964%:% |
|
5909 %:%2274=965%:% |
|
5910 %:%2275=966%:% |
|
5911 %:%2276=967%:% |
|
5912 %:%2277=967%:% |
|
5913 %:%2278=968%:% |
|
5914 %:%2279=969%:% |
|
5915 %:%2282=970%:% |
|
5916 %:%2286=970%:% |
|
5917 %:%2287=970%:% |
|
5918 %:%2288=971%:% |
|
5919 %:%2294=971%:% |
|
5920 %:%2297=972%:% |
|
5921 %:%2298=973%:% |
|
5922 %:%2299=974%:% |
|
5923 %:%2300=975%:% |
|
5924 %:%2301=975%:% |
|
5925 %:%2302=976%:% |
|
5926 %:%2305=977%:% |
|
5927 %:%2309=977%:% |
|
5928 %:%2310=977%:% |
|
5929 %:%2311=978%:% |
|
5930 %:%2312=978%:% |
|
5931 %:%2313=979%:% |
|
5932 %:%2314=979%:% |
|
5933 %:%2315=980%:% |
|
5934 %:%2316=980%:% |
|
5935 %:%2317=981%:% |
|
5936 %:%2318=981%:% |
|
5937 %:%2319=982%:% |
|
5938 %:%2325=982%:% |
|
5939 %:%2328=983%:% |
|
5940 %:%2329=984%:% |
|
5941 %:%2330=985%:% |
|
5942 %:%2331=986%:% |
|
5943 %:%2332=986%:% |
|
5944 %:%2333=987%:% |
|
5945 %:%2334=988%:% |
|
5946 %:%2337=989%:% |
|
5947 %:%2341=989%:% |
|
5948 %:%2342=989%:% |
|
5949 %:%2343=990%:% |
|
5950 %:%2344=990%:% |
|
5951 %:%2345=991%:% |
|
5952 %:%2351=991%:% |
|
5953 %:%2354=992%:% |
|
5954 %:%2355=993%:% |
|
5955 %:%2356=994%:% |
|
5956 %:%2357=995%:% |
|
5957 %:%2358=996%:% |
|
5958 %:%2359=997%:% |
|
5959 %:%2360=998%:% |
|
5960 %:%2361=999%:% |
|
5961 %:%2362=1000%:% |
|
5962 %:%2363=1000%:% |
|
5963 %:%2364=1001%:% |
|
5964 %:%2365=1002%:% |
|
5965 %:%2366=1003%:% |
|
5966 %:%2367=1004%:% |
|
5967 %:%2368=1005%:% |
|
5968 %:%2369=1006%:% |
|
5969 %:%2370=1007%:% |
|
5970 %:%2371=1008%:% |
|
5971 %:%2372=1009%:% |
|
5972 %:%2373=1010%:% |
|
5973 %:%2374=1011%:% |
|
5974 %:%2375=1012%:% |
|
5975 %:%2376=1014%:% |
|
5976 %:%2377=1015%:% |
|
5977 %:%2378=1016%:% |
|
5978 %:%2379=1017%:% |
|
5979 %:%2380=1018%:% |
|
5980 %:%2381=1019%:% |
|
5981 %:%2382=1020%:% |
|
5982 %:%2383=1021%:% |
|
5983 %:%2384=1021%:% |
|
5984 %:%2385=1022%:% |
|
5985 %:%2386=1023%:% |
|
5986 %:%2387=1024%:% |
|
5987 %:%2388=1025%:% |
|
5988 %:%2389=1026%:% |
|
5989 %:%2390=1026%:% |
|
5990 %:%2391=1027%:% |
|
5991 %:%2392=1028%:% |
|
5992 %:%2393=1029%:% |
|
5993 %:%2394=1032%:% |
|
5994 %:%2395=1033%:% |
|
5995 %:%2396=1034%:% |
|
5996 %:%2397=1035%:% |
|
5997 %:%2398=1036%:% |
|
5998 %:%2399=1036%:% |
|
5999 %:%2402=1037%:% |
|
6000 %:%2406=1037%:% |
|
6001 %:%2407=1037%:% |
|
6002 %:%2408=1037%:% |
|
6003 %:%2413=1037%:% |
|
6004 %:%2416=1038%:% |
|
6005 %:%2417=1039%:% |
|
6006 %:%2418=1039%:% |
|
6007 %:%2419=1040%:% |
|
6008 %:%2420=1041%:% |
|
6009 %:%2423=1042%:% |
|
6010 %:%2427=1042%:% |
|
6011 %:%2428=1042%:% |
|
6012 %:%2429=1043%:% |
|
6013 %:%2430=1043%:% |
|
6014 %:%2431=1044%:% |
|
6015 %:%2432=1044%:% |
|
6016 %:%2433=1045%:% |
|
6017 %:%2439=1045%:% |
|
6018 %:%2442=1046%:% |
|
6019 %:%2443=1047%:% |
|
6020 %:%2444=1048%:% |
|
6021 %:%2445=1048%:% |
|
6022 %:%2448=1049%:% |
|
6023 %:%2452=1049%:% |
|
6024 %:%2453=1049%:% |
|
6025 %:%2458=1049%:% |
|
6026 %:%2461=1050%:% |
|
6027 %:%2462=1051%:% |
|
6028 %:%2463=1052%:% |
|
6029 %:%2464=1052%:% |
|
6030 %:%2467=1053%:% |
|
6031 %:%2471=1053%:% |
|
6032 %:%2472=1053%:% |
|
6033 %:%2473=1054%:% |
|
6034 %:%2474=1054%:% |
|
6035 %:%2475=1055%:% |
|
6036 %:%2476=1055%:% |
|
6037 %:%2481=1055%:% |
|
6038 %:%2484=1056%:% |
|
6039 %:%2485=1057%:% |
|
6040 %:%2486=1058%:% |
|
6041 %:%2487=1058%:% |
|
6042 %:%2490=1059%:% |
|
6043 %:%2494=1059%:% |
|
6044 %:%2495=1059%:% |
|
6045 %:%2496=1060%:% |
|
6046 %:%2497=1060%:% |
|
6047 %:%2498=1061%:% |
|
6048 %:%2499=1061%:% |
|
6049 %:%2500=1061%:% |
|
6050 %:%2505=1061%:% |
|
6051 %:%2508=1062%:% |
|
6052 %:%2509=1063%:% |
|
6053 %:%2510=1064%:% |
|
6054 %:%2511=1065%:% |
|
6055 %:%2512=1065%:% |
|
6056 %:%2515=1066%:% |
|
6057 %:%2516=1067%:% |
|
6058 %:%2520=1067%:% |
|
6059 %:%2521=1067%:% |
|
6060 %:%2522=1068%:% |
|
6061 %:%2523=1068%:% |
|
6062 %:%2524=1069%:% |
|
6063 %:%2525=1069%:% |
|
6064 %:%2526=1070%:% |
|
6065 %:%2527=1070%:% |
|
6066 %:%2528=1071%:% |
|
6067 %:%2529=1071%:% |
|
6068 %:%2530=1072%:% |
|
6069 %:%2531=1072%:% |
|
6070 %:%2532=1073%:% |
|
6071 %:%2533=1073%:% |
|
6072 %:%2534=1074%:% |
|
6073 %:%2535=1074%:% |
|
6074 %:%2536=1075%:% |
|
6075 %:%2537=1075%:% |
|
6076 %:%2538=1076%:% |
|
6077 %:%2539=1076%:% |
|
6078 %:%2540=1077%:% |
|
6079 %:%2546=1077%:% |
|
6080 %:%2549=1078%:% |
|
6081 %:%2550=1079%:% |
|
6082 %:%2551=1080%:% |
|
6083 %:%2552=1080%:% |
|
6084 %:%2555=1081%:% |
|
6085 %:%2559=1081%:% |
|
6086 %:%2560=1081%:% |
|
6087 %:%2565=1081%:% |
|
6088 %:%2568=1082%:% |
|
6089 %:%2569=1083%:% |
|
6090 %:%2570=1084%:% |
|
6091 %:%2571=1084%:% |
|
6092 %:%2574=1085%:% |
|
6093 %:%2578=1085%:% |
|
6094 %:%2579=1085%:% |
|
6095 %:%2580=1086%:% |
|
6096 %:%2581=1086%:% |
|
6097 %:%2582=1087%:% |
|
6098 %:%2583=1087%:% |
|
6099 %:%2584=1088%:% |
|
6100 %:%2585=1088%:% |
|
6101 %:%2586=1089%:% |
|
6102 %:%2587=1089%:% |
|
6103 %:%2588=1090%:% |
|
6104 %:%2589=1090%:% |
|
6105 %:%2590=1091%:% |
|
6106 %:%2591=1091%:% |
|
6107 %:%2592=1092%:% |
|
6108 %:%2593=1092%:% |
|
6109 %:%2594=1093%:% |
|
6110 %:%2595=1093%:% |
|
6111 %:%2596=1094%:% |
|
6112 %:%2597=1094%:% |
|
6113 %:%2598=1095%:% |
|
6114 %:%2599=1095%:% |
|
6115 %:%2604=1095%:% |
|
6116 %:%2607=1096%:% |
|
6117 %:%2608=1097%:% |
|
6118 %:%2609=1097%:% |
|
6119 %:%2612=1098%:% |
|
6120 %:%2616=1098%:% |
|
6121 %:%2617=1098%:% |
|
6122 %:%2618=1099%:% |
|
6123 %:%2619=1099%:% |
|
6124 %:%2620=1100%:% |
|
6125 %:%2621=1100%:% |
|
6126 %:%2622=1100%:% |
|
6127 %:%2627=1100%:% |
|
6128 %:%2630=1101%:% |
|
6129 %:%2631=1102%:% |
|
6130 %:%2632=1103%:% |
|
6131 %:%2633=1103%:% |
|
6132 %:%2636=1104%:% |
|
6133 %:%2640=1104%:% |
|
6134 %:%2641=1104%:% |
|
6135 %:%2642=1105%:% |
|
6136 %:%2643=1105%:% |
|
6137 %:%2644=1106%:% |
|
6138 %:%2645=1107%:% |
|
6139 %:%2646=1107%:% |
|
6140 %:%2651=1107%:% |
|
6141 %:%2654=1108%:% |
|
6142 %:%2655=1109%:% |
|
6143 %:%2656=1110%:% |
|
6144 %:%2657=1111%:% |
|
6145 %:%2658=1111%:% |
|
6146 %:%2661=1112%:% |
|
6147 %:%2665=1112%:% |
|
6148 %:%2666=1112%:% |
|
6149 %:%2667=1113%:% |
|
6150 %:%2668=1113%:% |
|
6151 %:%2669=1114%:% |
|
6152 %:%2670=1114%:% |
|
6153 %:%2675=1114%:% |
|
6154 %:%2678=1115%:% |
|
6155 %:%2679=1116%:% |
|
6156 %:%2680=1116%:% |
|
6157 %:%2683=1117%:% |
|
6158 %:%2684=1118%:% |
|
6159 %:%2688=1118%:% |
|
6160 %:%2689=1118%:% |
|
6161 %:%2690=1119%:% |
|
6162 %:%2691=1119%:% |
|
6163 %:%2692=1120%:% |
|
6164 %:%2693=1120%:% |
|
6165 %:%2694=1121%:% |
|
6166 %:%2695=1121%:% |
|
6167 %:%2700=1121%:% |
|
6168 %:%2703=1122%:% |
|
6169 %:%2704=1123%:% |
|
6170 %:%2705=1124%:% |
|
6171 %:%2706=1124%:% |
|
6172 %:%2709=1125%:% |
|
6173 %:%2713=1125%:% |
|
6174 %:%2714=1125%:% |
|
6175 %:%2715=1126%:% |
|
6176 %:%2716=1126%:% |
|
6177 %:%2717=1127%:% |
|
6178 %:%2718=1127%:% |
|
6179 %:%2719=1128%:% |
|
6180 %:%2720=1128%:% |
|
6181 %:%2721=1129%:% |
|
6182 %:%2722=1129%:% |
|
6183 %:%2723=1130%:% |
|
6184 %:%2724=1130%:% |
|
6185 %:%2725=1131%:% |
|
6186 %:%2726=1131%:% |
|
6187 %:%2727=1131%:% |
|
6188 %:%2728=1132%:% |
|
6189 %:%2729=1132%:% |
|
6190 %:%2730=1133%:% |
|
6191 %:%2731=1133%:% |
|
6192 %:%2732=1134%:% |
|
6193 %:%2733=1134%:% |
|
6194 %:%2734=1135%:% |
|
6195 %:%2740=1135%:% |
|
6196 %:%2743=1136%:% |
|
6197 %:%2744=1137%:% |
|
6198 %:%2745=1137%:% |
|
6199 %:%2746=1138%:% |
|
6200 %:%2747=1139%:% |
|
6201 %:%2748=1140%:% |
|
6202 %:%2749=1141%:% |
|
6203 %:%2750=1142%:% |
|
6204 %:%2751=1143%:% |
|
6205 %:%2752=1144%:% |
|
6206 %:%2753=1145%:% |
|
6207 %:%2754=1146%:% |
|
6208 %:%2755=1147%:% |
|
6209 %:%2756=1148%:% |
|
6210 %:%2757=1148%:% |
|
6211 %:%2760=1149%:% |
|
6212 %:%2764=1149%:% |
|
6213 %:%2765=1149%:% |
|
6214 %:%2770=1149%:% |
|
6215 %:%2773=1150%:% |
|
6216 %:%2774=1151%:% |
|
6217 %:%2775=1151%:% |
|
6218 %:%2778=1152%:% |
|
6219 %:%2782=1152%:% |
|
6220 %:%2783=1152%:% |
|
6221 %:%2784=1153%:% |
|
6222 %:%2785=1153%:% |
|
6223 %:%2786=1154%:% |
|
6224 %:%2787=1154%:% |
|
6225 %:%2788=1155%:% |
|
6226 %:%2789=1156%:% |
|
6227 %:%2790=1156%:% |
|
6228 %:%2791=1157%:% |
|
6229 %:%2792=1158%:% |
|
6230 %:%2793=1159%:% |
|
6231 %:%2794=1159%:% |
|
6232 %:%2795=1159%:% |
|
6233 %:%2796=1160%:% |
|
6234 %:%2797=1160%:% |
|
6235 %:%2798=1161%:% |
|
6236 %:%2799=1161%:% |
|
6237 %:%2800=1162%:% |
|
6238 %:%2801=1163%:% |
|
6239 %:%2802=1163%:% |
|
6240 %:%2803=1164%:% |
|
6241 %:%2804=1164%:% |
|
6242 %:%2805=1165%:% |
|
6243 %:%2806=1165%:% |
|
6244 %:%2807=1166%:% |
|
6245 %:%2808=1166%:% |
|
6246 %:%2809=1167%:% |
|
6247 %:%2810=1167%:% |
|
6248 %:%2811=1168%:% |
|
6249 %:%2812=1169%:% |
|
6250 %:%2813=1169%:% |
|
6251 %:%2814=1170%:% |
|
6252 %:%2815=1171%:% |
|
6253 %:%2816=1171%:% |
|
6254 %:%2817=1171%:% |
|
6255 %:%2818=1172%:% |
|
6256 %:%2819=1172%:% |
|
6257 %:%2820=1173%:% |
|
6258 %:%2821=1174%:% |
|
6259 %:%2822=1174%:% |
|
6260 %:%2823=1175%:% |
|
6261 %:%2824=1176%:% |
|
6262 %:%2825=1176%:% |
|
6263 %:%2830=1176%:% |
|
6264 %:%2833=1177%:% |
|
6265 %:%2834=1178%:% |
|
6266 %:%2835=1179%:% |
|
6267 %:%2836=1179%:% |
|
6268 %:%2839=1180%:% |
|
6269 %:%2843=1180%:% |
|
6270 %:%2844=1180%:% |
|
6271 %:%2849=1180%:% |
|
6272 %:%2852=1181%:% |
|
6273 %:%2853=1182%:% |
|
6274 %:%2854=1183%:% |
|
6275 %:%2855=1183%:% |
|
6276 %:%2858=1184%:% |
|
6277 %:%2862=1184%:% |
|
6278 %:%2863=1184%:% |
|
6279 %:%2864=1185%:% |
|
6280 %:%2865=1185%:% |
|
6281 %:%2866=1186%:% |
|
6282 %:%2867=1186%:% |
|
6283 %:%2868=1187%:% |
|
6284 %:%2869=1187%:% |
|
6285 %:%2870=1188%:% |
|
6286 %:%2871=1188%:% |
|
6287 %:%2872=1189%:% |
|
6288 %:%2873=1189%:% |
|
6289 %:%2874=1190%:% |
|
6290 %:%2875=1190%:% |
|
6291 %:%2876=1190%:% |
|
6292 %:%2877=1191%:% |
|
6293 %:%2878=1191%:% |
|
6294 %:%2879=1192%:% |
|
6295 %:%2880=1192%:% |
|
6296 %:%2881=1193%:% |
|
6297 %:%2882=1193%:% |
|
6298 %:%2883=1194%:% |
|
6299 %:%2884=1194%:% |
|
6300 %:%2885=1195%:% |
|
6301 %:%2886=1195%:% |
|
6302 %:%2887=1195%:% |
|
6303 %:%2888=1196%:% |
|
6304 %:%2889=1196%:% |
|
6305 %:%2890=1197%:% |
|
6306 %:%2891=1197%:% |
|
6307 %:%2892=1198%:% |
|
6308 %:%2893=1198%:% |
|
6309 %:%2894=1199%:% |
|
6310 %:%2895=1199%:% |
|
6311 %:%2896=1200%:% |
|
6312 %:%2897=1200%:% |
|
6313 %:%2898=1201%:% |
|
6314 %:%2904=1201%:% |
|
6315 %:%2907=1202%:% |
|
6316 %:%2908=1203%:% |
|
6317 %:%2909=1203%:% |
|
6318 %:%2912=1204%:% |
|
6319 %:%2916=1204%:% |
|
6320 %:%2917=1204%:% |
|
6321 %:%2918=1205%:% |
|
6322 %:%2919=1205%:% |
|
6323 %:%2920=1206%:% |
|
6324 %:%2921=1206%:% |
|
6325 %:%2922=1207%:% |
|
6326 %:%2923=1207%:% |
|
6327 %:%2924=1208%:% |
|
6328 %:%2925=1209%:% |
|
6329 %:%2926=1210%:% |
|
6330 %:%2927=1211%:% |
|
6331 %:%2928=1211%:% |
|
6332 %:%2929=1212%:% |
|
6333 %:%2930=1212%:% |
|
6334 %:%2931=1213%:% |
|
6335 %:%2932=1213%:% |
|
6336 %:%2933=1214%:% |
|
6337 %:%2934=1214%:% |
|
6338 %:%2935=1215%:% |
|
6339 %:%2936=1216%:% |
|
6340 %:%2937=1216%:% |
|
6341 %:%2938=1217%:% |
|
6342 %:%2939=1218%:% |
|
6343 %:%2940=1218%:% |
|
6344 %:%2941=1219%:% |
|
6345 %:%2942=1220%:% |
|
6346 %:%2943=1220%:% |
|
6347 %:%2944=1221%:% |
|
6348 %:%2945=1221%:% |
|
6349 %:%2946=1222%:% |
|
6350 %:%2947=1222%:% |
|
6351 %:%2948=1223%:% |
|
6352 %:%2949=1223%:% |
|
6353 %:%2950=1224%:% |
|
6354 %:%2951=1224%:% |
|
6355 %:%2956=1224%:% |
|
6356 %:%2959=1225%:% |
|
6357 %:%2960=1226%:% |
|
6358 %:%2961=1226%:% |
|
6359 %:%2962=1227%:% |
|
6360 %:%2965=1228%:% |
|
6361 %:%2969=1228%:% |
|
6362 %:%2970=1228%:% |
|
6363 %:%2971=1229%:% |
|
6364 %:%2972=1229%:% |
|
6365 %:%2973=1230%:% |
|
6366 %:%2974=1230%:% |
|
6367 %:%2975=1230%:% |
|
6368 %:%2976=1231%:% |
|
6369 %:%2977=1231%:% |
|
6370 %:%2978=1231%:% |
|
6371 %:%2983=1231%:% |
|
6372 %:%2986=1232%:% |
|
6373 %:%2987=1233%:% |
|
6374 %:%2988=1234%:% |
|
6375 %:%2989=1234%:% |
|
6376 %:%2992=1235%:% |
|
6377 %:%2996=1235%:% |
|
6378 %:%2997=1235%:% |
|
6379 %:%2998=1236%:% |
|
6380 %:%3004=1236%:% |
|
6381 %:%3007=1237%:% |
|
6382 %:%3008=1238%:% |
|
6383 %:%3009=1238%:% |
|
6384 %:%3010=1239%:% |
|
6385 %:%3011=1240%:% |
|
6386 %:%3012=1241%:% |
|
6387 %:%3014=1243%:% |
|
6388 %:%3015=1244%:% |
|
6389 %:%3016=1245%:% |
|
6390 %:%3017=1245%:% |
|
6391 %:%3020=1246%:% |
|
6392 %:%3024=1246%:% |
|
6393 %:%3025=1246%:% |
|
6394 %:%3026=1247%:% |
|
6395 %:%3032=1247%:% |
|
6396 %:%3035=1248%:% |
|
6397 %:%3036=1249%:% |
|
6398 %:%3037=1249%:% |
|
6399 %:%3040=1250%:% |
|
6400 %:%3044=1250%:% |
|
6401 %:%3045=1250%:% |
|
6402 %:%3046=1250%:% |
|
6403 %:%3051=1250%:% |
|
6404 %:%3054=1251%:% |
|
6405 %:%3055=1252%:% |
|
6406 %:%3056=1252%:% |
|
6407 %:%3059=1253%:% |
|
6408 %:%3063=1253%:% |
|
6409 %:%3064=1253%:% |
|
6410 %:%3065=1254%:% |
|
6411 %:%3066=1254%:% |
|
6412 %:%3071=1254%:% |
|
6413 %:%3074=1255%:% |
|
6414 %:%3075=1256%:% |
|
6415 %:%3076=1256%:% |
|
6416 %:%3079=1257%:% |
|
6417 %:%3083=1257%:% |
|
6418 %:%3084=1257%:% |
|
6419 %:%3085=1258%:% |
|
6420 %:%3086=1258%:% |
|
6421 %:%3087=1259%:% |
|
6422 %:%3088=1259%:% |
|
6423 %:%3089=1260%:% |
|
6424 %:%3090=1260%:% |
|
6425 %:%3091=1261%:% |
|
6426 %:%3092=1261%:% |
|
6427 %:%3093=1262%:% |
|
6428 %:%3094=1262%:% |
|
6429 %:%3095=1263%:% |
|
6430 %:%3096=1263%:% |
|
6431 %:%3097=1264%:% |
|
6432 %:%3098=1264%:% |
|
6433 %:%3099=1265%:% |
|
6434 %:%3100=1265%:% |
|
6435 %:%3101=1266%:% |
|
6436 %:%3102=1266%:% |
|
6437 %:%3103=1267%:% |
|
6438 %:%3104=1267%:% |
|
6439 %:%3105=1268%:% |
|
6440 %:%3106=1268%:% |
|
6441 %:%3117=1279%:% |
|
6442 %:%3118=1280%:% |
|
6443 %:%3119=1280%:% |
|
6444 %:%3120=1281%:% |
|
6445 %:%3121=1281%:% |
|
6446 %:%3122=1281%:% |
|
6447 %:%3123=1282%:% |
|
6448 %:%3124=1282%:% |
|
6449 %:%3125=1282%:% |
|
6450 %:%3126=1283%:% |
|
6451 %:%3127=1283%:% |
|
6452 %:%3128=1284%:% |
|
6453 %:%3129=1284%:% |
|
6454 %:%3130=1285%:% |
|
6455 %:%3131=1286%:% |
|
6456 %:%3132=1286%:% |
|
6457 %:%3133=1287%:% |
|
6458 %:%3134=1287%:% |
|
6459 %:%3135=1288%:% |
|
6460 %:%3136=1289%:% |
|
6461 %:%3137=1289%:% |
|
6462 %:%3138=1290%:% |
|
6463 %:%3139=1290%:% |
|
6464 %:%3140=1291%:% |
|
6465 %:%3141=1292%:% |
|
6466 %:%3142=1292%:% |
|
6467 %:%3143=1293%:% |
|
6468 %:%3144=1293%:% |
|
6469 %:%3145=1294%:% |
|
6470 %:%3146=1294%:% |
|
6471 %:%3151=1294%:% |
|
6472 %:%3154=1295%:% |
|
6473 %:%3155=1296%:% |
|
6474 %:%3156=1297%:% |
|
6475 %:%3157=1298%:% |
|
6476 %:%3158=1298%:% |
|
6477 %:%3161=1299%:% |
|
6478 %:%3165=1299%:% |
|
6479 %:%3166=1299%:% |
|
6480 %:%3167=1300%:% |
|
6481 %:%3168=1300%:% |
|
6482 %:%3169=1301%:% |
|
6483 %:%3170=1301%:% |
|
6484 %:%3171=1302%:% |
|
6485 %:%3172=1302%:% |
|
6486 %:%3173=1303%:% |
|
6487 %:%3174=1303%:% |
|
6488 %:%3179=1303%:% |
|
6489 %:%3182=1304%:% |
|
6490 %:%3183=1305%:% |
|
6491 %:%3184=1306%:% |
|
6492 %:%3185=1307%:% |
|
6493 %:%3186=1308%:% |
|
6494 %:%3187=1309%:% |
|
6495 %:%3188=1310%:% |
|
6496 %:%3189=1310%:% |
|
6497 %:%3192=1311%:% |
|
6498 %:%3196=1311%:% |
|
6499 %:%3197=1311%:% |
|
6500 %:%3198=1312%:% |
|
6501 %:%3199=1312%:% |
|
6502 %:%3200=1313%:% |
|
6503 %:%3201=1313%:% |
|
6504 %:%3202=1314%:% |
|
6505 %:%3203=1314%:% |
|
6506 %:%3204=1315%:% |
|
6507 %:%3205=1315%:% |
|
6508 %:%3206=1315%:% |
|
6509 %:%3207=1316%:% |
|
6510 %:%3208=1316%:% |
|
6511 %:%3209=1317%:% |
|
6512 %:%3210=1317%:% |
|
6513 %:%3211=1318%:% |
|
6514 %:%3212=1318%:% |
|
6515 %:%3213=1319%:% |
|
6516 %:%3214=1319%:% |
|
6517 %:%3215=1320%:% |
|
6518 %:%3216=1320%:% |
|
6519 %:%3217=1321%:% |
|
6520 %:%3218=1321%:% |
|
6521 %:%3219=1322%:% |
|
6522 %:%3220=1322%:% |
|
6523 %:%3221=1323%:% |
|
6524 %:%3222=1323%:% |
|
6525 %:%3223=1323%:% |
|
6526 %:%3224=1324%:% |
|
6527 %:%3225=1324%:% |
|
6528 %:%3226=1325%:% |
|
6529 %:%3227=1325%:% |
|
6530 %:%3228=1326%:% |
|
6531 %:%3229=1326%:% |
|
6532 %:%3230=1327%:% |
|
6533 %:%3231=1328%:% |
|
6534 %:%3232=1328%:% |
|
6535 %:%3233=1329%:% |
|
6536 %:%3234=1330%:% |
|
6537 %:%3235=1331%:% |
|
6538 %:%3236=1331%:% |
|
6539 %:%3237=1332%:% |
|
6540 %:%3238=1332%:% |
|
6541 %:%3239=1333%:% |
|
6542 %:%3240=1333%:% |
|
6543 %:%3241=1334%:% |
|
6544 %:%3242=1334%:% |
|
6545 %:%3243=1335%:% |
|
6546 %:%3244=1336%:% |
|
6547 %:%3245=1337%:% |
|
6548 %:%3246=1337%:% |
|
6549 %:%3247=1338%:% |
|
6550 %:%3248=1339%:% |
|
6551 %:%3249=1339%:% |
|
6552 %:%3250=1340%:% |
|
6553 %:%3251=1341%:% |
|
6554 %:%3252=1341%:% |
|
6555 %:%3253=1342%:% |
|
6556 %:%3254=1343%:% |
|
6557 %:%3255=1343%:% |
|
6558 %:%3256=1343%:% |
|
6559 %:%3257=1344%:% |
|
6560 %:%3258=1345%:% |
|
6561 %:%3259=1345%:% |
|
6562 %:%3260=1345%:% |
|
6563 %:%3265=1345%:% |
|
6564 %:%3268=1346%:% |
|
6565 %:%3269=1347%:% |
|
6566 %:%3270=1348%:% |
|
6567 %:%3271=1348%:% |
|
6568 %:%3274=1349%:% |
|
6569 %:%3278=1349%:% |
|
6570 %:%3279=1349%:% |
|
6571 %:%3280=1350%:% |
|
6572 %:%3281=1350%:% |
|
6573 %:%3282=1351%:% |
|
6574 %:%3283=1351%:% |
|
6575 %:%3284=1352%:% |
|
6576 %:%3285=1352%:% |
|
6577 %:%3286=1353%:% |
|
6578 %:%3287=1353%:% |
|
6579 %:%3288=1354%:% |
|
6580 %:%3289=1354%:% |
|
6581 %:%3290=1355%:% |
|
6582 %:%3291=1355%:% |
|
6583 %:%3292=1356%:% |
|
6584 %:%3293=1356%:% |
|
6585 %:%3294=1357%:% |
|
6586 %:%3295=1357%:% |
|
6587 %:%3296=1358%:% |
|
6588 %:%3297=1358%:% |
|
6589 %:%3298=1359%:% |
|
6590 %:%3299=1359%:% |
|
6591 %:%3300=1360%:% |
|
6592 %:%3301=1361%:% |
|
6593 %:%3302=1361%:% |
|
6594 %:%3303=1362%:% |
|
6595 %:%3304=1363%:% |
|
6596 %:%3305=1364%:% |
|
6597 %:%3306=1364%:% |
|
6598 %:%3311=1364%:% |
|
6599 %:%3314=1365%:% |
|
6600 %:%3315=1366%:% |
|
6601 %:%3316=1366%:% |
|
6602 %:%3319=1367%:% |
|
6603 %:%3323=1367%:% |
|
6604 %:%3324=1367%:% |
|
6605 %:%3325=1368%:% |
|
6606 %:%3326=1368%:% |
|
6607 %:%3327=1369%:% |
|
6608 %:%3328=1369%:% |
|
6609 %:%3329=1370%:% |
|
6610 %:%3335=1370%:% |
|
6611 %:%3338=1371%:% |
|
6612 %:%3339=1372%:% |
|
6613 %:%3340=1373%:% |
|
6614 %:%3341=1373%:% |
|
6615 %:%3344=1374%:% |
|
6616 %:%3348=1374%:% |
|
6617 %:%3349=1374%:% |
|
6618 %:%3350=1375%:% |
|
6619 %:%3351=1375%:% |
|
6620 %:%3352=1376%:% |
|
6621 %:%3353=1376%:% |
|
6622 %:%3354=1377%:% |
|
6623 %:%3355=1377%:% |
|
6624 %:%3356=1378%:% |
|
6625 %:%3357=1378%:% |
|
6626 %:%3358=1379%:% |
|
6627 %:%3364=1379%:% |
|
6628 %:%3367=1380%:% |
|
6629 %:%3368=1381%:% |
|
6630 %:%3369=1381%:% |
|
6631 %:%3370=1382%:% |
|
6632 %:%3373=1383%:% |
|
6633 %:%3377=1383%:% |
|
6634 %:%3378=1383%:% |
|
6635 %:%3379=1384%:% |
|
6636 %:%3380=1384%:% |
|
6637 %:%3381=1385%:% |
|
6638 %:%3387=1385%:% |
|
6639 %:%3390=1386%:% |
|
6640 %:%3391=1387%:% |
|
6641 %:%3392=1388%:% |
|
6642 %:%3393=1389%:% |
|
6643 %:%3394=1389%:% |
|
6644 %:%3395=1390%:% |
|
6645 %:%3398=1391%:% |
|
6646 %:%3402=1391%:% |
|
6647 %:%3403=1391%:% |
|
6648 %:%3404=1391%:% |
|
6649 %:%3409=1391%:% |
|
6650 %:%3412=1392%:% |
|
6651 %:%3413=1393%:% |
|
6652 %:%3414=1393%:% |
|
6653 %:%3417=1394%:% |
|
6654 %:%3421=1394%:% |
|
6655 %:%3422=1394%:% |
|
6656 %:%3423=1395%:% |
|
6657 %:%3424=1396%:% |
|
6658 %:%3425=1396%:% |
|
6659 %:%3426=1396%:% |
|
6660 %:%3427=1397%:% |
|
6661 %:%3428=1397%:% |
|
6662 %:%3429=1398%:% |
|
6663 %:%3430=1399%:% |
|
6664 %:%3431=1399%:% |
|
6665 %:%3432=1400%:% |
|
6666 %:%3433=1400%:% |
|
6667 %:%3434=1401%:% |
|
6668 %:%3435=1402%:% |
|
6669 %:%3436=1402%:% |
|
6670 %:%3437=1402%:% |
|
6671 %:%3438=1403%:% |
|
6672 %:%3439=1403%:% |
|
6673 %:%3440=1404%:% |
|
6674 %:%3441=1405%:% |
|
6675 %:%3442=1405%:% |
|
6676 %:%3443=1406%:% |
|
6677 %:%3444=1407%:% |
|
6678 %:%3445=1407%:% |
|
6679 %:%3446=1407%:% |
|
6680 %:%3451=1407%:% |
|
6681 %:%3454=1408%:% |
|
6682 %:%3455=1409%:% |
|
6683 %:%3456=1410%:% |
|
6684 %:%3457=1411%:% |
|
6685 %:%3458=1411%:% |
|
6686 %:%3459=1412%:% |
|
6687 %:%3462=1413%:% |
|
6688 %:%3466=1413%:% |
|
6689 %:%3467=1413%:% |
|
6690 %:%3468=1413%:% |
|
6691 %:%3473=1413%:% |
|
6692 %:%3476=1414%:% |
|
6693 %:%3477=1415%:% |
|
6694 %:%3478=1415%:% |
|
6695 %:%3481=1416%:% |
|
6696 %:%3485=1416%:% |
|
6697 %:%3486=1416%:% |
|
6698 %:%3487=1417%:% |
|
6699 %:%3488=1417%:% |
|
6700 %:%3489=1418%:% |
|
6701 %:%3490=1418%:% |
|
6702 %:%3491=1419%:% |
|
6703 %:%3492=1419%:% |
|
6704 %:%3493=1420%:% |
|
6705 %:%3494=1420%:% |
|
6706 %:%3495=1421%:% |
|
6707 %:%3496=1421%:% |
|
6708 %:%3497=1422%:% |
|
6709 %:%3498=1422%:% |
|
6710 %:%3499=1423%:% |
|
6711 %:%3500=1423%:% |
|
6712 %:%3501=1424%:% |
|
6713 %:%3502=1424%:% |
|
6714 %:%3503=1425%:% |
|
6715 %:%3504=1425%:% |
|
6716 %:%3505=1426%:% |
|
6717 %:%3506=1426%:% |
|
6718 %:%3507=1427%:% |
|
6719 %:%3508=1427%:% |
|
6720 %:%3509=1428%:% |
|
6721 %:%3510=1428%:% |
|
6722 %:%3511=1429%:% |
|
6723 %:%3512=1429%:% |
|
6724 %:%3513=1430%:% |
|
6725 %:%3514=1430%:% |
|
6726 %:%3515=1431%:% |
|
6727 %:%3516=1431%:% |
|
6728 %:%3517=1432%:% |
|
6729 %:%3518=1432%:% |
|
6730 %:%3519=1433%:% |
|
6731 %:%3520=1434%:% |
|
6732 %:%3521=1434%:% |
|
6733 %:%3522=1435%:% |
|
6734 %:%3523=1436%:% |
|
6735 %:%3524=1436%:% |
|
6736 %:%3529=1436%:% |
|
6737 %:%3532=1437%:% |
|
6738 %:%3533=1438%:% |
|
6739 %:%3534=1439%:% |
|
6740 %:%3535=1440%:% |
|
6741 %:%3536=1441%:% |
|
6742 %:%3537=1441%:% |
|
6743 %:%3538=1442%:% |
|
6744 %:%3541=1443%:% |
|
6745 %:%3545=1443%:% |
|
6746 %:%3546=1443%:% |
|
6747 %:%3547=1444%:% |
|
6748 %:%3548=1445%:% |
|
6749 %:%3549=1445%:% |
|
6750 %:%3550=1446%:% |
|
6751 %:%3551=1446%:% |
|
6752 %:%3556=1446%:% |
|
6753 %:%3559=1447%:% |
|
6754 %:%3560=1448%:% |
|
6755 %:%3561=1448%:% |
|
6756 %:%3562=1449%:% |
|
6757 %:%3565=1450%:% |
|
6758 %:%3566=1451%:% |
|
6759 %:%3570=1451%:% |
|
6760 %:%3571=1451%:% |
|
6761 %:%3576=1451%:% |
|
6762 %:%3579=1452%:% |
|
6763 %:%3580=1453%:% |
|
6764 %:%3581=1454%:% |
|
6765 %:%3582=1454%:% |
|
6766 %:%3583=1455%:% |
|
6767 %:%3586=1456%:% |
|
6768 %:%3590=1456%:% |
|
6769 %:%3591=1456%:% |
|
6770 %:%3592=1457%:% |
|
6771 %:%3593=1457%:% |
|
6772 %:%3594=1458%:% |
|
6773 %:%3595=1458%:% |
|
6774 %:%3596=1459%:% |
|
6775 %:%3597=1459%:% |
|
6776 %:%3598=1460%:% |
|
6777 %:%3599=1461%:% |
|
6778 %:%3600=1461%:% |
|
6779 %:%3601=1462%:% |
|
6780 %:%3602=1463%:% |
|
6781 %:%3603=1463%:% |
|
6782 %:%3604=1464%:% |
|
6783 %:%3605=1465%:% |
|
6784 %:%3606=1465%:% |
|
6785 %:%3607=1465%:% |
|
6786 %:%3612=1465%:% |
|
6787 %:%3615=1466%:% |
|
6788 %:%3616=1467%:% |
|
6789 %:%3617=1468%:% |
|
6790 %:%3618=1468%:% |
|
6791 %:%3619=1469%:% |
|
6792 %:%3622=1470%:% |
|
6793 %:%3626=1470%:% |
|
6794 %:%3627=1470%:% |
|
6795 %:%3628=1471%:% |
|
6796 %:%3629=1472%:% |
|
6797 %:%3630=1472%:% |
|
6798 %:%3631=1472%:% |
|
6799 %:%3632=1473%:% |
|
6800 %:%3633=1473%:% |
|
6801 %:%3634=1474%:% |
|
6802 %:%3635=1474%:% |
|
6803 %:%3636=1475%:% |
|
6804 %:%3637=1476%:% |
|
6805 %:%3638=1477%:% |
|
6806 %:%3639=1477%:% |
|
6807 %:%3640=1477%:% |
|
6808 %:%3641=1478%:% |
|
6809 %:%3642=1479%:% |
|
6810 %:%3643=1479%:% |
|
6811 %:%3644=1480%:% |
|
6812 %:%3645=1480%:% |
|
6813 %:%3646=1481%:% |
|
6814 %:%3647=1482%:% |
|
6815 %:%3648=1483%:% |
|
6816 %:%3649=1483%:% |
|
6817 %:%3650=1484%:% |
|
6818 %:%3651=1484%:% |
|
6819 %:%3652=1485%:% |
|
6820 %:%3653=1485%:% |
|
6821 %:%3654=1486%:% |
|
6822 %:%3655=1487%:% |
|
6823 %:%3656=1487%:% |
|
6824 %:%3657=1488%:% |
|
6825 %:%3658=1489%:% |
|
6826 %:%3659=1489%:% |
|
6827 %:%3664=1489%:% |
|
6828 %:%3667=1490%:% |
|
6829 %:%3668=1491%:% |
|
6830 %:%3669=1492%:% |
|
6831 %:%3670=1493%:% |
|
6832 %:%3671=1493%:% |
|
6833 %:%3674=1494%:% |
|
6834 %:%3675=1495%:% |
|
6835 %:%3679=1495%:% |
|
6836 %:%3680=1495%:% |
|
6837 %:%3681=1496%:% |
|
6838 %:%3682=1496%:% |
|
6839 %:%3683=1497%:% |
|
6840 %:%3684=1497%:% |
|
6841 %:%3685=1498%:% |
|
6842 %:%3686=1498%:% |
|
6843 %:%3687=1499%:% |
|
6844 %:%3688=1499%:% |
|
6845 %:%3689=1499%:% |
|
6846 %:%3690=1500%:% |
|
6847 %:%3691=1500%:% |
|
6848 %:%3692=1501%:% |
|
6849 %:%3693=1501%:% |
|
6850 %:%3694=1502%:% |
|
6851 %:%3695=1502%:% |
|
6852 %:%3696=1503%:% |
|
6853 %:%3697=1503%:% |
|
6854 %:%3698=1504%:% |
|
6855 %:%3699=1504%:% |
|
6856 %:%3700=1505%:% |
|
6857 %:%3701=1505%:% |
|
6858 %:%3702=1505%:% |
|
6859 %:%3703=1506%:% |
|
6860 %:%3704=1506%:% |
|
6861 %:%3705=1507%:% |
|
6862 %:%3706=1507%:% |
|
6863 %:%3707=1507%:% |
|
6864 %:%3708=1508%:% |
|
6865 %:%3709=1508%:% |
|
6866 %:%3710=1509%:% |
|
6867 %:%3711=1509%:% |
|
6868 %:%3712=1510%:% |
|
6869 %:%3713=1510%:% |
|
6870 %:%3714=1511%:% |
|
6871 %:%3715=1512%:% |
|
6872 %:%3716=1512%:% |
|
6873 %:%3717=1512%:% |
|
6874 %:%3718=1513%:% |
|
6875 %:%3719=1514%:% |
|
6876 %:%3720=1514%:% |
|
6877 %:%3721=1515%:% |
|
6878 %:%3722=1515%:% |
|
6879 %:%3723=1516%:% |
|
6880 %:%3724=1517%:% |
|
6881 %:%3725=1517%:% |
|
6882 %:%3726=1518%:% |
|
6883 %:%3727=1519%:% |
|
6884 %:%3728=1519%:% |
|
6885 %:%3729=1519%:% |
|
6886 %:%3730=1520%:% |
|
6887 %:%3731=1521%:% |
|
6888 %:%3732=1521%:% |
|
6889 %:%3733=1522%:% |
|
6890 %:%3734=1523%:% |
|
6891 %:%3735=1523%:% |
|
6892 %:%3736=1523%:% |
|
6893 %:%3737=1524%:% |
|
6894 %:%3738=1525%:% |
|
6895 %:%3739=1525%:% |
|
6896 %:%3740=1526%:% |
|
6897 %:%3741=1527%:% |
|
6898 %:%3742=1527%:% |
|
6899 %:%3747=1527%:% |
|
6900 %:%3750=1528%:% |
|
6901 %:%3751=1529%:% |
|
6902 %:%3752=1530%:% |
|
6903 %:%3753=1531%:% |
|
6904 %:%3754=1531%:% |
|
6905 %:%3757=1532%:% |
|
6906 %:%3761=1532%:% |
|
6907 %:%3762=1532%:% |
|
6908 %:%3763=1533%:% |
|
6909 %:%3764=1533%:% |
|
6910 %:%3765=1534%:% |
|
6911 %:%3766=1534%:% |
|
6912 %:%3767=1535%:% |
|
6913 %:%3768=1535%:% |
|
6914 %:%3769=1536%:% |
|
6915 %:%3770=1536%:% |
|
6916 %:%3771=1537%:% |
|
6917 %:%3772=1537%:% |
|
6918 %:%3773=1538%:% |
|
6919 %:%3774=1538%:% |
|
6920 %:%3775=1539%:% |
|
6921 %:%3776=1539%:% |
|
6922 %:%3777=1540%:% |
|
6923 %:%3778=1540%:% |
|
6924 %:%3779=1540%:% |
|
6925 %:%3784=1540%:% |
|
6926 %:%3787=1541%:% |
|
6927 %:%3788=1542%:% |
|
6928 %:%3789=1543%:% |
|
6929 %:%3790=1543%:% |
|
6930 %:%3791=1544%:% |
|
6931 %:%3792=1544%:% |
|
6932 %:%3795=1545%:% |
|
6933 %:%3799=1545%:% |
|
6934 %:%3800=1545%:% |
|
6935 %:%3805=1545%:% |
|
6936 %:%3808=1546%:% |
|
6937 %:%3809=1547%:% |
|
6938 %:%3810=1547%:% |
|
6939 %:%3813=1548%:% |
|
6940 %:%3817=1548%:% |
|
6941 %:%3818=1548%:% |
|
6942 %:%3819=1548%:% |
|
6943 %:%3824=1548%:% |
|
6944 %:%3827=1549%:% |
|
6945 %:%3828=1550%:% |
|
6946 %:%3829=1550%:% |
|
6947 %:%3832=1551%:% |
|
6948 %:%3836=1551%:% |
|
6949 %:%3837=1551%:% |
|
6950 %:%3842=1551%:% |
|
6951 %:%3845=1552%:% |
|
6952 %:%3846=1553%:% |
|
6953 %:%3847=1553%:% |
|
6954 %:%3850=1554%:% |
|
6955 %:%3854=1554%:% |
|
6956 %:%3855=1554%:% |
|
6957 %:%3860=1554%:% |
|
6958 %:%3863=1555%:% |
|
6959 %:%3864=1556%:% |
|
6960 %:%3865=1556%:% |
|
6961 %:%3868=1557%:% |
|
6962 %:%3872=1557%:% |
|
6963 %:%3873=1557%:% |
|
6964 %:%3874=1558%:% |
|
6965 %:%3875=1558%:% |
|
6966 %:%3876=1559%:% |
|
6967 %:%3877=1559%:% |
|
6968 %:%3882=1559%:% |
|
6969 %:%3885=1560%:% |
|
6970 %:%3886=1561%:% |
|
6971 %:%3887=1561%:% |
|
6972 %:%3890=1562%:% |
|
6973 %:%3894=1562%:% |
|
6974 %:%3895=1562%:% |
|
6975 %:%3896=1563%:% |
|
6976 %:%3897=1563%:% |
|
6977 %:%3898=1564%:% |
|
6978 %:%3899=1565%:% |
|
6979 %:%3900=1565%:% |
|
6980 %:%3901=1566%:% |
|
6981 %:%3902=1567%:% |
|
6982 %:%3903=1567%:% |
|
6983 %:%3904=1568%:% |
|
6984 %:%3905=1569%:% |
|
6985 %:%3906=1569%:% |
|
6986 %:%3907=1570%:% |
|
6987 %:%3908=1571%:% |
|
6988 %:%3909=1571%:% |
|
6989 %:%3910=1571%:% |
|
6990 %:%3911=1572%:% |
|
6991 %:%3912=1573%:% |
|
6992 %:%3913=1573%:% |
|
6993 %:%3914=1573%:% |
|
6994 %:%3915=1574%:% |
|
6995 %:%3916=1575%:% |
|
6996 %:%3917=1575%:% |
|
6997 %:%3918=1575%:% |
|
6998 %:%3919=1576%:% |
|
6999 %:%3920=1577%:% |
|
7000 %:%3921=1577%:% |
|
7001 %:%3922=1578%:% |
|
7002 %:%3923=1579%:% |
|
7003 %:%3924=1579%:% |
|
7004 %:%3925=1579%:% |
|
7005 %:%3926=1580%:% |
|
7006 %:%3927=1581%:% |
|
7007 %:%3928=1581%:% |
|
7008 %:%3929=1582%:% |
|
7009 %:%3930=1583%:% |
|
7010 %:%3931=1583%:% |
|
7011 %:%3932=1584%:% |
|
7012 %:%3933=1585%:% |
|
7013 %:%3934=1585%:% |
|
7014 %:%3935=1586%:% |
|
7015 %:%3936=1587%:% |
|
7016 %:%3937=1587%:% |
|
7017 %:%3938=1588%:% |
|
7018 %:%3939=1589%:% |
|
7019 %:%3940=1589%:% |
|
7020 %:%3941=1589%:% |
|
7021 %:%3946=1589%:% |
|
7022 %:%3949=1590%:% |
|
7023 %:%3950=1591%:% |
|
7024 %:%3951=1592%:% |
|
7025 %:%3952=1593%:% |
|
7026 %:%3953=1593%:% |
|
7027 %:%3956=1594%:% |
|
7028 %:%3960=1594%:% |
|
7029 %:%3961=1594%:% |
|
7030 %:%3962=1595%:% |
|
7031 %:%3963=1595%:% |
|
7032 %:%3964=1596%:% |
|
7033 %:%3965=1596%:% |
|
7034 %:%3970=1596%:% |
|
7035 %:%3973=1597%:% |
|
7036 %:%3974=1598%:% |
|
7037 %:%3975=1598%:% |
|
7038 %:%3978=1599%:% |
|
7039 %:%3982=1599%:% |
|
7040 %:%3983=1599%:% |
|
7041 %:%3984=1600%:% |
|
7042 %:%3985=1600%:% |
|
7043 %:%3986=1601%:% |
|
7044 %:%3987=1601%:% |
|
7045 %:%3992=1601%:% |
|
7046 %:%3995=1602%:% |
|
7047 %:%3996=1603%:% |
|
7048 %:%3997=1604%:% |
|
7049 %:%3998=1605%:% |
|
7050 %:%3999=1605%:% |
|
7051 %:%4002=1606%:% |
|
7052 %:%4006=1606%:% |
|
7053 %:%4007=1606%:% |
|
7054 %:%4008=1607%:% |
|
7055 %:%4009=1607%:% |
|
7056 %:%4010=1608%:% |
|
7057 %:%4011=1608%:% |
|
7058 %:%4012=1609%:% |
|
7059 %:%4013=1609%:% |
|
7060 %:%4014=1610%:% |
|
7061 %:%4015=1610%:% |
|
7062 %:%4016=1611%:% |
|
7063 %:%4017=1612%:% |
|
7064 %:%4018=1612%:% |
|
7065 %:%4023=1612%:% |
|
7066 %:%4026=1613%:% |
|
7067 %:%4027=1614%:% |
|
7068 %:%4028=1614%:% |
|
7069 %:%4029=1615%:% |
|
7070 %:%4031=1617%:% |
|
7071 %:%4034=1618%:% |
|
7072 %:%4038=1618%:% |
|
7073 %:%4039=1618%:% |
|
7074 %:%4040=1619%:% |
|
7075 %:%4041=1620%:% |
|
7076 %:%4042=1620%:% |
|
7077 %:%4043=1620%:% |
|
7078 %:%4048=1620%:% |
|
7079 %:%4051=1621%:% |
|
7080 %:%4052=1622%:% |
|
7081 %:%4053=1622%:% |
|
7082 %:%4056=1623%:% |
|
7083 %:%4060=1623%:% |
|
7084 %:%4061=1623%:% |
|
7085 %:%4062=1624%:% |
|
7086 %:%4063=1625%:% |
|
7087 %:%4064=1625%:% |
|
7088 %:%4065=1626%:% |
|
7089 %:%4066=1626%:% |
|
7090 %:%4067=1627%:% |
|
7091 %:%4068=1628%:% |
|
7092 %:%4069=1628%:% |
|
7093 %:%4070=1629%:% |
|
7094 %:%4071=1629%:% |
|
7095 %:%4072=1630%:% |
|
7096 %:%4073=1630%:% |
|
7097 %:%4074=1631%:% |
|
7098 %:%4075=1631%:% |
|
7099 %:%4076=1632%:% |
|
7100 %:%4077=1632%:% |
|
7101 %:%4078=1633%:% |
|
7102 %:%4079=1633%:% |
|
7103 %:%4080=1634%:% |
|
7104 %:%4081=1634%:% |
|
7105 %:%4082=1635%:% |
|
7106 %:%4083=1635%:% |
|
7107 %:%4084=1636%:% |
|
7108 %:%4085=1636%:% |
|
7109 %:%4086=1636%:% |
|
7110 %:%4087=1637%:% |
|
7111 %:%4088=1637%:% |
|
7112 %:%4089=1638%:% |
|
7113 %:%4090=1638%:% |
|
7114 %:%4091=1639%:% |
|
7115 %:%4092=1639%:% |
|
7116 %:%4093=1640%:% |
|
7117 %:%4094=1640%:% |
|
7118 %:%4095=1641%:% |
|
7119 %:%4096=1641%:% |
|
7120 %:%4097=1641%:% |
|
7121 %:%4098=1642%:% |
|
7122 %:%4099=1642%:% |
|
7123 %:%4100=1643%:% |
|
7124 %:%4101=1644%:% |
|
7125 %:%4102=1644%:% |
|
7126 %:%4103=1644%:% |
|
7127 %:%4104=1645%:% |
|
7128 %:%4105=1645%:% |
|
7129 %:%4106=1646%:% |
|
7130 %:%4107=1646%:% |
|
7131 %:%4108=1647%:% |
|
7132 %:%4109=1647%:% |
|
7133 %:%4110=1648%:% |
|
7134 %:%4111=1648%:% |
|
7135 %:%4112=1649%:% |
|
7136 %:%4113=1649%:% |
|
7137 %:%4114=1649%:% |
|
7138 %:%4115=1650%:% |
|
7139 %:%4116=1650%:% |
|
7140 %:%4117=1650%:% |
|
7141 %:%4118=1651%:% |
|
7142 %:%4119=1651%:% |
|
7143 %:%4120=1651%:% |
|
7144 %:%4121=1652%:% |
|
7145 %:%4122=1652%:% |
|
7146 %:%4123=1653%:% |
|
7147 %:%4124=1653%:% |
|
7148 %:%4125=1654%:% |
|
7149 %:%4126=1654%:% |
|
7150 %:%4127=1655%:% |
|
7151 %:%4128=1655%:% |
|
7152 %:%4129=1656%:% |
|
7153 %:%4130=1656%:% |
|
7154 %:%4131=1656%:% |
|
7155 %:%4132=1657%:% |
|
7156 %:%4133=1657%:% |
|
7157 %:%4134=1658%:% |
|
7158 %:%4135=1658%:% |
|
7159 %:%4136=1659%:% |
|
7160 %:%4137=1659%:% |
|
7161 %:%4138=1660%:% |
|
7162 %:%4139=1660%:% |
|
7163 %:%4140=1661%:% |
|
7164 %:%4141=1662%:% |
|
7165 %:%4142=1662%:% |
|
7166 %:%4143=1663%:% |
|
7167 %:%4144=1664%:% |
|
7168 %:%4145=1664%:% |
|
7169 %:%4146=1664%:% |
|
7170 %:%4147=1665%:% |
|
7171 %:%4148=1666%:% |
|
7172 %:%4149=1666%:% |
|
7173 %:%4150=1666%:% |
|
7174 %:%4151=1667%:% |
|
7175 %:%4152=1668%:% |
|
7176 %:%4153=1668%:% |
|
7177 %:%4154=1668%:% |
|
7178 %:%4155=1669%:% |
|
7179 %:%4156=1670%:% |
|
7180 %:%4157=1670%:% |
|
7181 %:%4158=1671%:% |
|
7182 %:%4159=1672%:% |
|
7183 %:%4160=1672%:% |
|
7184 %:%4161=1673%:% |
|
7185 %:%4162=1674%:% |
|
7186 %:%4163=1674%:% |
|
7187 %:%4164=1675%:% |
|
7188 %:%4165=1676%:% |
|
7189 %:%4166=1676%:% |
|
7190 %:%4167=1677%:% |
|
7191 %:%4168=1678%:% |
|
7192 %:%4169=1679%:% |
|
7193 %:%4170=1679%:% |
|
7194 %:%4171=1679%:% |
|
7195 %:%4176=1679%:% |
|
7196 %:%4179=1680%:% |
|
7197 %:%4180=1681%:% |
|
7198 %:%4181=1682%:% |
|
7199 %:%4182=1683%:% |
|
7200 %:%4183=1683%:% |
|
7201 %:%4186=1684%:% |
|
7202 %:%4190=1684%:% |
|
7203 %:%4191=1684%:% |
|
7204 %:%4192=1685%:% |
|
7205 %:%4193=1685%:% |
|
7206 %:%4194=1686%:% |
|
7207 %:%4195=1686%:% |
|
7208 %:%4200=1686%:% |
|
7209 %:%4203=1687%:% |
|
7210 %:%4204=1688%:% |
|
7211 %:%4205=1689%:% |
|
7212 %:%4206=1690%:% |
|
7213 %:%4207=1691%:% |
|
7214 %:%4208=1691%:% |
|
7215 %:%4211=1692%:% |
|
7216 %:%4215=1692%:% |
|
7217 %:%4216=1692%:% |
|
7218 %:%4217=1693%:% |
|
7219 %:%4218=1694%:% |
|
7220 %:%4219=1694%:% |
|
7221 %:%4220=1695%:% |
|
7222 %:%4221=1695%:% |
|
7223 %:%4222=1696%:% |
|
7224 %:%4223=1696%:% |
|
7225 %:%4224=1697%:% |
|
7226 %:%4225=1697%:% |
|
7227 %:%4230=1697%:% |
|
7228 %:%4233=1698%:% |
|
7229 %:%4234=1699%:% |
|
7230 %:%4235=1700%:% |
|
7231 %:%4236=1701%:% |
|
7232 %:%4237=1701%:% |
|
7233 %:%4238=1702%:% |
|
7234 %:%4239=1703%:% |
|
7235 %:%4240=1703%:% |
|
7236 %:%4243=1704%:% |
|
7237 %:%4247=1704%:% |
|
7238 %:%4248=1704%:% |
|
7239 %:%4249=1704%:% |
|
7240 %:%4254=1704%:% |
|
7241 %:%4257=1705%:% |
|
7242 %:%4258=1706%:% |
|
7243 %:%4259=1706%:% |
|
7244 %:%4262=1707%:% |
|
7245 %:%4266=1707%:% |
|
7246 %:%4267=1707%:% |
|
7247 %:%4272=1707%:% |
|
7248 %:%4275=1708%:% |
|
7249 %:%4276=1709%:% |
|
7250 %:%4277=1710%:% |
|
7251 %:%4278=1710%:% |
|
7252 %:%4281=1711%:% |
|
7253 %:%4285=1711%:% |
|
7254 %:%4286=1711%:% |
|
7255 %:%4287=1711%:% |
|
7256 %:%4292=1711%:% |
|
7257 %:%4295=1712%:% |
|
7258 %:%4296=1713%:% |
|
7259 %:%4297=1714%:% |
|
7260 %:%4298=1714%:% |
|
7261 %:%4299=1715%:% |
|
7262 %:%4302=1716%:% |
|
7263 %:%4307=1717%:% |