369
|
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%:% |