a
authorChengsong
Tue, 02 Nov 2021 13:57:59 +0000
changeset 371 f65444d29e74
parent 370 5499ba68188c
child 372 78cc255e286f
a
thys2/Journal/Paper.tex
thys2/Journal/Paper.thy
thys2/Journal/SizeBound.tex
thys2/Journal/root.log
thys2/Journal/root.pdf
thys2/Journal/session_graph.pdf
thys2/journal.pdf
--- a/thys2/Journal/Paper.tex	Mon Nov 01 10:52:44 2021 +0000
+++ b/thys2/Journal/Paper.tex	Tue Nov 02 13:57:59 2021 +0000
@@ -47,7 +47,7 @@
 %
 \isatagdocument
 %
-\isamarkupsection{Introduction%
+\isamarkupsection{Core of the proof%
 }
 \isamarkuptrue%
 %
@@ -69,12 +69,93 @@
 
 In the previous work, Ausaf and Urban established the below equality:
 \begin{lemma}
-\isa{{\normalsize{}If\,}\ v\ {\isacharcolon}{\kern0pt}\ {\isacharparenleft}{\kern0pt}r\mbox{$^\downarrow$}{\isacharparenright}{\kern0pt}{\isacharbackslash}{\kern0pt}c\ {\normalsize \,then\,}\ retrieve\ {\isacharparenleft}{\kern0pt}r\mbox{$\bbslash$}c{\isacharparenright}{\kern0pt}\ v\ {\isacharequal}{\kern0pt}\ retrieve\ r\ {\isacharparenleft}{\kern0pt}inj\ {\isacharparenleft}{\kern0pt}r\mbox{$^\downarrow$}{\isacharparenright}{\kern0pt}\ c\ v{\isacharparenright}{\kern0pt}{\isachardot}{\kern0pt}}
+\isa{{\normalsize{}If\,}\ v\ {\isacharcolon}{\kern0pt}\ r{\isacharbackslash}{\kern0pt}s\ {\normalsize \,then\,}\ Some\ {\isacharparenleft}{\kern0pt}flex\ r\ id\ s\ v{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ decode\ {\isacharparenleft}{\kern0pt}retrieve\ {\isacharparenleft}{\kern0pt}r\mbox{$^\uparrow$}\mbox{$\bbslash$}s{\isacharparenright}{\kern0pt}\ v{\isacharparenright}{\kern0pt}\ r{\isachardot}{\kern0pt}}
+\end{lemma}
+
+This lemma establishes a link with the lexer without bit-codes.
+
+With it we get the correctness of bit-coded algorithm.
+\begin{lemma}
+\isa{lexer\mbox{$_b$}\ r\ s\ {\isacharequal}{\kern0pt}\ lexer\ r\ s}
 \end{lemma}
 
-This lemma links the derivative of a bit-coded regular expression with
-the regular expression itself before the derivative. 
+However what is not certain is whether we can add simplification
+to the bit-coded algorithm, without breaking the correct lexing output.
+This might sound trivial in the case of producing a YES/NO answer,
+but once we require a lexing output to be produced (which is required
+in applications like compiler front-end, malicious attack domain extraction, 
+etc.), it is not straightforward if we still extract what is needed according
+to the POSIX standard.
+
+By simplification, we mean specifically the following rules:
+
+\begin{center}
+  \begin{tabular}{lcl}
+  \isa{\mbox{}\inferrule{\mbox{}}{\mbox{ASEQ\ bs\ AZERO\ r\isactrlsub {\isadigit{2}}\ {\isasymleadsto}\ AZERO}}}\\
+  \isa{\mbox{}\inferrule{\mbox{}}{\mbox{ASEQ\ bs\ r\isactrlsub {\isadigit{1}}\ AZERO\ {\isasymleadsto}\ AZERO}}}\\
+  \isa{\mbox{}\inferrule{\mbox{}}{\mbox{ASEQ\ bs\ {\isacharparenleft}{\kern0pt}AONE\ bs\isactrlsub {\isadigit{1}}{\isacharparenright}{\kern0pt}\ r\isactrlsub {\isadigit{1}}\ {\isasymleadsto}\ fuse\ {\isacharparenleft}{\kern0pt}bs\ {\isacharat}{\kern0pt}\ bs\isactrlsub {\isadigit{1}}{\isacharparenright}{\kern0pt}\ r\isactrlsub {\isadigit{1}}}}}\\
+  \isa{\mbox{}\inferrule{\mbox{bs\ {\isasymleadsto}\ r\isactrlsub {\isadigit{1}}}}{\mbox{ASEQ\ bs\ bs\ r{\isadigit{3}}{\isachardot}{\kern0pt}{\isadigit{0}}\ {\isasymleadsto}\ ASEQ\ bs\ r\isactrlsub {\isadigit{1}}\ r{\isadigit{3}}{\isachardot}{\kern0pt}{\isadigit{0}}}}}\\
+  \isa{\mbox{}\inferrule{\mbox{bs\ {\isasymleadsto}\ r\isactrlsub {\isadigit{2}}}}{\mbox{ASEQ\ bs\ r{\isadigit{1}}{\isachardot}{\kern0pt}{\isadigit{0}}\ bs\ {\isasymleadsto}\ ASEQ\ bs\ r{\isadigit{1}}{\isachardot}{\kern0pt}{\isadigit{0}}\ r\isactrlsub {\isadigit{2}}}}}\\
+  \isa{\mbox{}\inferrule{\mbox{bs\ {\isasymleadsto}\ r\isactrlsub {\isadigit{1}}}}{\mbox{AALTs\ bs\ {\isacharparenleft}{\kern0pt}rs{\isadigit{1}}{\isachardot}{\kern0pt}{\isadigit{0}}\ {\isacharat}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}bs{\isacharbrackright}{\kern0pt}\ {\isacharat}{\kern0pt}\ rs{\isadigit{2}}{\isachardot}{\kern0pt}{\isadigit{0}}{\isacharparenright}{\kern0pt}\ {\isasymleadsto}\ AALTs\ bs\ {\isacharparenleft}{\kern0pt}rs{\isadigit{1}}{\isachardot}{\kern0pt}{\isadigit{0}}\ {\isacharat}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}r\isactrlsub {\isadigit{1}}{\isacharbrackright}{\kern0pt}\ {\isacharat}{\kern0pt}\ rs{\isadigit{2}}{\isachardot}{\kern0pt}{\isadigit{0}}{\isacharparenright}{\kern0pt}}}}\\
+  \isa{\mbox{}\inferrule{\mbox{}}{\mbox{AALTs\ bs\ {\isacharparenleft}{\kern0pt}r\isactrlsub {\isadigit{2}}\ {\isacharat}{\kern0pt}\ AZERO\mbox{$\,$}{\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\mbox{$\,$}rsb{\isacharparenright}{\kern0pt}\ {\isasymleadsto}\ AALTs\ bs\ {\isacharparenleft}{\kern0pt}r\isactrlsub {\isadigit{2}}\ {\isacharat}{\kern0pt}\ rsb{\isacharparenright}{\kern0pt}}}}\\
+  \isa{\mbox{}\inferrule{\mbox{}}{\mbox{AALTs\ bs\ {\isacharparenleft}{\kern0pt}r\isactrlsub {\isadigit{1}}\ {\isacharat}{\kern0pt}\ AALTs\ bs{\isadigit{1}}{\isachardot}{\kern0pt}{\isadigit{0}}\ rs{\isadigit{1}}{\isachardot}{\kern0pt}{\isadigit{0}}\mbox{$\,$}{\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\mbox{$\,$}rsb{\isacharparenright}{\kern0pt}\ {\isasymleadsto}\ AALTs\ bs\ {\isacharparenleft}{\kern0pt}r\isactrlsub {\isadigit{1}}\ {\isacharat}{\kern0pt}\ map\ {\isacharparenleft}{\kern0pt}fuse\ bs{\isadigit{1}}{\isachardot}{\kern0pt}{\isadigit{0}}{\isacharparenright}{\kern0pt}\ rs{\isadigit{1}}{\isachardot}{\kern0pt}{\isadigit{0}}\ {\isacharat}{\kern0pt}\ rsb{\isacharparenright}{\kern0pt}}}}\\
+  \isa{\mbox{}\inferrule{\mbox{}}{\mbox{AALTs\ bs\ {\isacharparenleft}{\kern0pt}map\ {\isacharparenleft}{\kern0pt}fuse\ r\isactrlsub {\isadigit{2}}{\isacharparenright}{\kern0pt}\ rs{\isacharparenright}{\kern0pt}\ {\isasymleadsto}\ AALTs\ {\isacharparenleft}{\kern0pt}bs\ {\isacharat}{\kern0pt}\ r\isactrlsub {\isadigit{2}}{\isacharparenright}{\kern0pt}\ rs}}}\\
+  \isa{\mbox{}\inferrule{\mbox{}}{\mbox{AALTs\ {\isacharparenleft}{\kern0pt}bs\ {\isacharat}{\kern0pt}\ r\isactrlsub {\isadigit{1}}{\isacharparenright}{\kern0pt}\ rs\ {\isasymleadsto}\ AALTs\ bs\ {\isacharparenleft}{\kern0pt}map\ {\isacharparenleft}{\kern0pt}fuse\ r\isactrlsub {\isadigit{1}}{\isacharparenright}{\kern0pt}\ rs{\isacharparenright}{\kern0pt}}}}\\
+  \isa{\mbox{}\inferrule{\mbox{}}{\mbox{AALTs\ bs\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ {\isasymleadsto}\ AZERO}}}\\
+  \isa{\mbox{}\inferrule{\mbox{}}{\mbox{AALTs\ bs\ {\isacharbrackleft}{\kern0pt}r\isactrlsub {\isadigit{1}}{\isacharbrackright}{\kern0pt}\ {\isasymleadsto}\ fuse\ bs\ r\isactrlsub {\isadigit{1}}}}}\\
+  \isa{\mbox{}\inferrule{\mbox{bs\mbox{$^\downarrow$}\ {\isacharequal}{\kern0pt}\ r\isactrlsub {\isadigit{2}}\mbox{$^\downarrow$}}}{\mbox{AALTs\ bs\ {\isacharparenleft}{\kern0pt}rsa\ {\isacharat}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}bs{\isacharbrackright}{\kern0pt}\ {\isacharat}{\kern0pt}\ rsb\ {\isacharat}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}r\isactrlsub {\isadigit{2}}{\isacharbrackright}{\kern0pt}\ {\isacharat}{\kern0pt}\ rsc{\isacharparenright}{\kern0pt}\ {\isasymleadsto}\ AALTs\ bs\ {\isacharparenleft}{\kern0pt}rsa\ {\isacharat}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}bs{\isacharbrackright}{\kern0pt}\ {\isacharat}{\kern0pt}\ rsb\ {\isacharat}{\kern0pt}\ rsc{\isacharparenright}{\kern0pt}}}}\\
+
+
+  \isa{\mbox{}\inferrule{\mbox{}}{\mbox{Empty\ {\isacharcolon}{\kern0pt}\ \isactrlbold {\isadigit{1}}}}} & 
+  \isa{\mbox{}\inferrule{\mbox{}}{\mbox{Char\ c\ {\isacharcolon}{\kern0pt}\ c}}}\\[4mm]
+  \isa{\mbox{}\inferrule{\mbox{v\isactrlsub {\isadigit{1}}\ {\isacharcolon}{\kern0pt}\ r\isactrlsub {\isadigit{1}}}}{\mbox{Left\ v\isactrlsub {\isadigit{1}}\ {\isacharcolon}{\kern0pt}\ r\isactrlsub {\isadigit{1}}\ {\isacharplus}{\kern0pt}\ r\isactrlsub {\isadigit{2}}}}} &
+  \isa{\mbox{}\inferrule{\mbox{v\isactrlsub {\isadigit{2}}\ {\isacharcolon}{\kern0pt}\ r\isactrlsub {\isadigit{1}}}}{\mbox{Right\ v\isactrlsub {\isadigit{2}}\ {\isacharcolon}{\kern0pt}\ r\isactrlsub {\isadigit{2}}\ {\isacharplus}{\kern0pt}\ r\isactrlsub {\isadigit{1}}}}}\\[4mm]
+  \isa{\mbox{}\inferrule{\mbox{v\isactrlsub {\isadigit{1}}\ {\isacharcolon}{\kern0pt}\ r\isactrlsub {\isadigit{1}}}\\\ \mbox{v\isactrlsub {\isadigit{2}}\ {\isacharcolon}{\kern0pt}\ r\isactrlsub {\isadigit{2}}}}{\mbox{Seq\ v\isactrlsub {\isadigit{1}}\ v\isactrlsub {\isadigit{2}}\ {\isacharcolon}{\kern0pt}\ r\isactrlsub {\isadigit{1}}\ {\isasymcdot}\ r\isactrlsub {\isadigit{2}}}}}  &
+  \isa{\mbox{}\inferrule{\mbox{{\isasymforall}v{\isasymin}vs{\isachardot}{\kern0pt}\ v\ {\isacharcolon}{\kern0pt}\ r\ {\isasymand}\ {\isacharbar}{\kern0pt}v{\isacharbar}{\kern0pt}\ {\isasymnoteq}\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}}}{\mbox{Stars\ vs\ {\isacharcolon}{\kern0pt}\ r\isactrlsup {\isasymstar}}}}
+
+
+  \end{tabular}
+\end{center}
+
 
+And these can be made compact by the following simplification function:
+
+\begin{center}
+  \begin{tabular}{lcl}
+  \isa{bsimp\ {\isacharparenleft}{\kern0pt}ASEQ\ bs\ r\isactrlsub {\isadigit{1}}\ r\isactrlsub {\isadigit{2}}{\isacharparenright}{\kern0pt}} & $\dn$ & \isa{bsimp{\isacharunderscore}{\kern0pt}ASEQ\ bs\ {\isacharparenleft}{\kern0pt}bsimp\ r\isactrlsub {\isadigit{1}}{\isacharparenright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}bsimp\ r\isactrlsub {\isadigit{2}}{\isacharparenright}{\kern0pt}}\\
+  \isa{bsimp\ {\isacharparenleft}{\kern0pt}AALTs\ bs{\isadigit{1}}{\isachardot}{\kern0pt}{\isadigit{0}}\ rs{\isacharparenright}{\kern0pt}} & $\dn$ & \isa{bsimp{\isacharunderscore}{\kern0pt}AALTs\ bs{\isadigit{1}}{\isachardot}{\kern0pt}{\isadigit{0}}\ {\isacharparenleft}{\kern0pt}distinctBy\ {\isacharparenleft}{\kern0pt}flts\ {\isacharparenleft}{\kern0pt}map\ bsimp\ rs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ erase\ {\isasymemptyset}{\isacharparenright}{\kern0pt}}\\
+  \isa{bsimp\ AZERO} & $\dn$ & \isa{AZERO}\\
+  \isa{{\isacharparenleft}{\kern0pt}r\isactrlsub {\isadigit{1}}\ {\isacharplus}{\kern0pt}\ r\isactrlsub {\isadigit{2}}{\isacharparenright}{\kern0pt}\mbox{$^\uparrow$}} & $\dn$ & \isa{AALT\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}fuse\ {\isacharbrackleft}{\kern0pt}Z{\isacharbrackright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}r\isactrlsub {\isadigit{1}}\mbox{$^\uparrow$}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}fuse\ {\isacharbrackleft}{\kern0pt}S{\isacharbrackright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}r\isactrlsub {\isadigit{2}}\mbox{$^\uparrow$}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}}\\
+\end{tabular}
+\end{center}
+
+The core idea of the proof is that two regular expressions,
+if "isomorphic" up to a finite number of rewrite steps, will
+remain so when we take derivative on both of them.
+This can be expressed by the following rewrite relation lemma:
+\begin{lemma}
+\isa{{\isacharparenleft}{\kern0pt}r\mbox{$\bbslash$}s{\isacharparenright}{\kern0pt}\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ bders{\isacharunderscore}{\kern0pt}simp\ r\ s}
+\end{lemma}%
+\end{isamarkuptext}\isamarkuptrue%
+%
+\isadelimdocument
+%
+\endisadelimdocument
+%
+\isatagdocument
+%
+\isamarkupsection{Introduction%
+}
+\isamarkuptrue%
+%
+\endisatagdocument
+{\isafolddocument}%
+%
+\isadelimdocument
+%
+\endisadelimdocument
+%
+\begin{isamarkuptext}%
 Brzozowski \cite{Brzozowski1964} introduced the notion of the {\em
 derivative} \isa{r{\isacharbackslash}{\kern0pt}c} of a regular expression \isa{r} w.r.t.\
 a character~\isa{c}, and showed that it gave a simple solution to the
@@ -1586,1311 +1667,1311 @@
 \end{isabellebody}%
 \endinput
 %:%file=~/Dropbox/Workspace/journalpaper/lexing/thys2/Journal/Paper.thy%:%
-%:%50=136%:%
-%:%62=141%:%
-%:%63=142%:%
-%:%64=143%:%
-%:%65=144%:%
-%:%66=145%:%
-%:%67=146%:%
-%:%68=147%:%
-%:%69=148%:%
-%:%70=149%:%
-%:%71=150%:%
-%:%72=151%:%
-%:%73=152%:%
-%:%74=153%:%
-%:%75=154%:%
-%:%76=155%:%
-%:%77=156%:%
-%:%78=157%:%
-%:%79=158%:%
-%:%80=159%:%
-%:%81=160%:%
-%:%81=161%:%
-%:%82=162%:%
-%:%83=163%:%
-%:%84=164%:%
-%:%85=165%:%
-%:%86=166%:%
-%:%87=167%:%
-%:%88=168%:%
-%:%89=169%:%
-%:%90=170%:%
-%:%91=171%:%
-%:%92=172%:%
-%:%93=173%:%
-%:%94=174%:%
-%:%95=175%:%
-%:%96=176%:%
-%:%97=177%:%
-%:%98=178%:%
-%:%99=179%:%
-%:%100=180%:%
-%:%101=181%:%
-%:%102=182%:%
-%:%103=183%:%
-%:%104=184%:%
-%:%105=185%:%
-%:%106=186%:%
-%:%107=187%:%
-%:%108=188%:%
-%:%109=189%:%
-%:%110=190%:%
-%:%111=191%:%
-%:%112=192%:%
-%:%113=193%:%
-%:%114=194%:%
-%:%115=195%:%
-%:%116=196%:%
-%:%117=197%:%
-%:%118=198%:%
-%:%119=199%:%
-%:%120=200%:%
-%:%121=201%:%
-%:%122=202%:%
-%:%123=203%:%
-%:%124=204%:%
-%:%125=205%:%
-%:%126=206%:%
-%:%127=207%:%
-%:%128=208%:%
-%:%129=209%:%
-%:%130=210%:%
-%:%131=211%:%
-%:%132=212%:%
-%:%133=213%:%
-%:%134=214%:%
-%:%135=215%:%
-%:%136=216%:%
-%:%137=217%:%
-%:%138=218%:%
-%:%139=219%:%
-%:%140=220%:%
-%:%141=221%:%
-%:%142=222%:%
-%:%143=223%:%
-%:%144=224%:%
-%:%145=225%:%
-%:%145=226%:%
-%:%146=227%:%
-%:%147=228%:%
-%:%148=229%:%
-%:%149=230%:%
-%:%150=231%:%
-%:%151=232%:%
-%:%152=233%:%
-%:%153=234%:%
-%:%154=235%:%
-%:%155=236%:%
-%:%156=237%:%
-%:%157=238%:%
-%:%158=239%:%
-%:%159=240%:%
-%:%160=241%:%
-%:%161=242%:%
-%:%162=243%:%
-%:%163=244%:%
-%:%164=245%:%
-%:%165=246%:%
-%:%166=247%:%
-%:%167=248%:%
-%:%168=249%:%
-%:%169=250%:%
-%:%170=251%:%
-%:%171=252%:%
-%:%172=253%:%
-%:%173=254%:%
-%:%174=255%:%
-%:%175=256%:%
-%:%176=257%:%
-%:%177=258%:%
-%:%178=259%:%
-%:%179=260%:%
-%:%180=261%:%
-%:%181=262%:%
-%:%182=263%:%
-%:%183=264%:%
-%:%184=265%:%
-%:%185=266%:%
-%:%186=267%:%
-%:%187=268%:%
-%:%188=269%:%
-%:%189=270%:%
-%:%190=271%:%
-%:%191=272%:%
-%:%192=273%:%
-%:%193=274%:%
-%:%194=275%:%
-%:%195=276%:%
-%:%196=277%:%
-%:%197=278%:%
-%:%198=279%:%
-%:%199=280%:%
-%:%200=281%:%
-%:%201=282%:%
-%:%202=283%:%
-%:%203=284%:%
-%:%204=285%:%
-%:%205=286%:%
-%:%206=287%:%
-%:%207=288%:%
-%:%208=289%:%
-%:%209=290%:%
-%:%210=291%:%
-%:%211=292%:%
-%:%212=293%:%
-%:%213=294%:%
-%:%214=295%:%
-%:%215=296%:%
-%:%216=297%:%
-%:%217=298%:%
-%:%218=299%:%
-%:%219=300%:%
-%:%220=301%:%
-%:%221=302%:%
-%:%222=303%:%
-%:%223=304%:%
-%:%224=305%:%
-%:%225=306%:%
-%:%226=307%:%
-%:%227=308%:%
-%:%228=309%:%
-%:%229=310%:%
-%:%230=311%:%
-%:%231=312%:%
-%:%232=313%:%
-%:%233=314%:%
-%:%234=315%:%
-%:%235=316%:%
-%:%236=317%:%
-%:%237=318%:%
-%:%238=319%:%
-%:%239=320%:%
-%:%240=321%:%
-%:%241=322%:%
-%:%242=323%:%
-%:%243=324%:%
-%:%244=325%:%
-%:%245=326%:%
-%:%246=327%:%
-%:%247=328%:%
-%:%248=329%:%
-%:%249=330%:%
-%:%250=331%:%
-%:%259=335%:%
+%:%50=134%:%
+%:%62=136%:%
+%:%63=137%:%
+%:%64=138%:%
+%:%65=139%:%
+%:%66=140%:%
+%:%67=141%:%
+%:%68=142%:%
+%:%69=143%:%
+%:%70=144%:%
+%:%71=145%:%
+%:%72=146%:%
+%:%73=147%:%
+%:%74=148%:%
+%:%75=149%:%
+%:%76=150%:%
+%:%77=151%:%
+%:%78=152%:%
+%:%79=153%:%
+%:%80=154%:%
+%:%81=155%:%
+%:%82=156%:%
+%:%83=157%:%
+%:%84=158%:%
+%:%85=159%:%
+%:%86=160%:%
+%:%87=161%:%
+%:%88=162%:%
+%:%89=163%:%
+%:%90=164%:%
+%:%91=165%:%
+%:%92=166%:%
+%:%93=167%:%
+%:%94=168%:%
+%:%95=169%:%
+%:%96=170%:%
+%:%97=171%:%
+%:%98=172%:%
+%:%99=173%:%
+%:%100=174%:%
+%:%101=175%:%
+%:%102=176%:%
+%:%103=177%:%
+%:%104=178%:%
+%:%105=179%:%
+%:%106=180%:%
+%:%107=181%:%
+%:%108=182%:%
+%:%109=183%:%
+%:%110=184%:%
+%:%111=185%:%
+%:%112=186%:%
+%:%113=187%:%
+%:%114=188%:%
+%:%115=189%:%
+%:%116=190%:%
+%:%117=191%:%
+%:%118=192%:%
+%:%119=193%:%
+%:%120=194%:%
+%:%121=195%:%
+%:%122=196%:%
+%:%123=197%:%
+%:%124=198%:%
+%:%125=199%:%
+%:%126=200%:%
+%:%127=201%:%
+%:%128=202%:%
+%:%129=203%:%
+%:%130=204%:%
+%:%131=205%:%
+%:%132=206%:%
+%:%133=207%:%
+%:%134=208%:%
+%:%135=209%:%
+%:%136=210%:%
+%:%137=211%:%
+%:%138=212%:%
+%:%147=217%:%
+%:%159=223%:%
+%:%160=224%:%
+%:%161=225%:%
+%:%162=226%:%
+%:%162=227%:%
+%:%163=228%:%
+%:%164=229%:%
+%:%165=230%:%
+%:%166=231%:%
+%:%167=232%:%
+%:%168=233%:%
+%:%169=234%:%
+%:%170=235%:%
+%:%171=236%:%
+%:%172=237%:%
+%:%173=238%:%
+%:%174=239%:%
+%:%175=240%:%
+%:%176=241%:%
+%:%177=242%:%
+%:%178=243%:%
+%:%179=244%:%
+%:%180=245%:%
+%:%181=246%:%
+%:%182=247%:%
+%:%183=248%:%
+%:%184=249%:%
+%:%185=250%:%
+%:%186=251%:%
+%:%187=252%:%
+%:%188=253%:%
+%:%189=254%:%
+%:%190=255%:%
+%:%191=256%:%
+%:%192=257%:%
+%:%193=258%:%
+%:%194=259%:%
+%:%195=260%:%
+%:%196=261%:%
+%:%197=262%:%
+%:%198=263%:%
+%:%199=264%:%
+%:%200=265%:%
+%:%201=266%:%
+%:%202=267%:%
+%:%203=268%:%
+%:%204=269%:%
+%:%205=270%:%
+%:%206=271%:%
+%:%207=272%:%
+%:%208=273%:%
+%:%209=274%:%
+%:%210=275%:%
+%:%211=276%:%
+%:%212=277%:%
+%:%213=278%:%
+%:%214=279%:%
+%:%215=280%:%
+%:%216=281%:%
+%:%217=282%:%
+%:%218=283%:%
+%:%219=284%:%
+%:%220=285%:%
+%:%221=286%:%
+%:%222=287%:%
+%:%223=288%:%
+%:%224=289%:%
+%:%225=290%:%
+%:%226=291%:%
+%:%226=292%:%
+%:%227=293%:%
+%:%228=294%:%
+%:%229=295%:%
+%:%230=296%:%
+%:%231=297%:%
+%:%232=298%:%
+%:%233=299%:%
+%:%234=300%:%
+%:%235=301%:%
+%:%236=302%:%
+%:%237=303%:%
+%:%238=304%:%
+%:%239=305%:%
+%:%240=306%:%
+%:%241=307%:%
+%:%242=308%:%
+%:%243=309%:%
+%:%244=310%:%
+%:%245=311%:%
+%:%246=312%:%
+%:%247=313%:%
+%:%248=314%:%
+%:%249=315%:%
+%:%250=316%:%
+%:%251=317%:%
+%:%252=318%:%
+%:%253=319%:%
+%:%254=320%:%
+%:%255=321%:%
+%:%256=322%:%
+%:%257=323%:%
+%:%258=324%:%
+%:%259=325%:%
+%:%260=326%:%
+%:%261=327%:%
+%:%262=328%:%
+%:%263=329%:%
+%:%264=330%:%
+%:%265=331%:%
+%:%266=332%:%
+%:%267=333%:%
+%:%268=334%:%
+%:%269=335%:%
+%:%270=336%:%
 %:%271=337%:%
 %:%272=338%:%
-%:%272=339%:%
-%:%273=340%:%
-%:%274=341%:%
-%:%275=342%:%
-%:%276=343%:%
-%:%277=344%:%
-%:%278=345%:%
-%:%279=346%:%
-%:%280=347%:%
-%:%281=348%:%
-%:%282=349%:%
-%:%283=350%:%
-%:%284=351%:%
-%:%285=352%:%
-%:%286=353%:%
-%:%287=354%:%
-%:%288=355%:%
-%:%289=356%:%
-%:%290=357%:%
-%:%291=358%:%
-%:%292=359%:%
-%:%293=360%:%
-%:%294=361%:%
-%:%295=362%:%
-%:%296=363%:%
-%:%297=364%:%
-%:%298=365%:%
-%:%299=366%:%
-%:%300=367%:%
-%:%301=368%:%
-%:%302=369%:%
-%:%303=370%:%
-%:%304=371%:%
-%:%305=372%:%
-%:%306=373%:%
-%:%307=374%:%
-%:%308=375%:%
-%:%309=376%:%
-%:%310=377%:%
-%:%311=378%:%
-%:%311=379%:%
-%:%312=380%:%
-%:%313=381%:%
-%:%314=382%:%
-%:%315=383%:%
-%:%316=384%:%
-%:%316=385%:%
-%:%317=386%:%
-%:%318=387%:%
-%:%319=388%:%
-%:%320=389%:%
-%:%321=390%:%
-%:%322=391%:%
-%:%323=392%:%
-%:%324=393%:%
-%:%325=394%:%
-%:%326=395%:%
-%:%327=396%:%
-%:%328=397%:%
-%:%329=398%:%
-%:%330=399%:%
-%:%331=400%:%
-%:%332=401%:%
-%:%333=402%:%
-%:%334=403%:%
-%:%335=404%:%
-%:%336=405%:%
-%:%337=406%:%
-%:%338=407%:%
-%:%339=408%:%
-%:%340=409%:%
-%:%341=410%:%
-%:%342=411%:%
-%:%343=412%:%
-%:%344=413%:%
-%:%345=414%:%
-%:%346=415%:%
-%:%347=416%:%
-%:%348=417%:%
-%:%349=418%:%
-%:%350=419%:%
-%:%351=420%:%
-%:%352=421%:%
-%:%353=422%:%
-%:%354=423%:%
-%:%355=424%:%
-%:%356=425%:%
-%:%357=426%:%
-%:%358=427%:%
-%:%359=428%:%
-%:%360=429%:%
-%:%361=430%:%
-%:%362=431%:%
-%:%363=432%:%
-%:%364=433%:%
-%:%365=434%:%
-%:%366=435%:%
-%:%367=436%:%
-%:%368=437%:%
-%:%369=438%:%
-%:%370=439%:%
-%:%371=440%:%
-%:%372=441%:%
-%:%373=442%:%
-%:%374=443%:%
-%:%375=444%:%
-%:%376=445%:%
-%:%377=446%:%
-%:%378=447%:%
-%:%379=448%:%
-%:%380=449%:%
-%:%381=450%:%
-%:%382=451%:%
-%:%383=452%:%
-%:%384=453%:%
-%:%385=454%:%
-%:%386=455%:%
-%:%387=456%:%
-%:%388=457%:%
-%:%389=458%:%
-%:%390=459%:%
-%:%391=460%:%
-%:%392=461%:%
-%:%393=462%:%
-%:%394=463%:%
-%:%395=464%:%
-%:%396=465%:%
-%:%397=466%:%
-%:%398=467%:%
-%:%399=468%:%
-%:%400=469%:%
-%:%401=470%:%
-%:%402=471%:%
-%:%403=472%:%
-%:%404=473%:%
-%:%405=474%:%
-%:%414=478%:%
-%:%426=482%:%
-%:%427=483%:%
-%:%428=484%:%
-%:%429=485%:%
-%:%430=486%:%
-%:%431=487%:%
-%:%432=488%:%
-%:%433=489%:%
-%:%434=490%:%
-%:%435=491%:%
-%:%436=492%:%
-%:%437=493%:%
-%:%438=494%:%
-%:%439=495%:%
-%:%440=496%:%
-%:%441=497%:%
-%:%442=498%:%
-%:%443=499%:%
-%:%444=500%:%
-%:%445=501%:%
-%:%446=502%:%
-%:%447=503%:%
-%:%448=504%:%
-%:%449=505%:%
-%:%450=506%:%
-%:%451=507%:%
-%:%452=508%:%
-%:%453=509%:%
-%:%454=510%:%
-%:%455=511%:%
-%:%456=512%:%
-%:%457=513%:%
-%:%458=514%:%
-%:%459=515%:%
-%:%460=516%:%
-%:%461=517%:%
-%:%462=518%:%
-%:%463=519%:%
-%:%464=520%:%
-%:%465=521%:%
-%:%466=522%:%
-%:%467=523%:%
-%:%468=524%:%
-%:%469=525%:%
-%:%470=526%:%
-%:%471=527%:%
-%:%472=528%:%
-%:%473=529%:%
-%:%474=530%:%
-%:%475=531%:%
-%:%476=532%:%
-%:%477=533%:%
-%:%478=534%:%
-%:%479=535%:%
-%:%480=536%:%
-%:%481=537%:%
-%:%482=538%:%
-%:%483=539%:%
-%:%484=540%:%
-%:%485=541%:%
-%:%486=542%:%
-%:%487=543%:%
-%:%488=544%:%
-%:%489=545%:%
-%:%490=546%:%
-%:%491=547%:%
-%:%492=548%:%
-%:%493=549%:%
-%:%494=550%:%
-%:%495=551%:%
-%:%496=552%:%
-%:%497=553%:%
-%:%498=554%:%
-%:%499=555%:%
-%:%500=556%:%
-%:%501=557%:%
-%:%502=558%:%
-%:%503=559%:%
-%:%504=560%:%
-%:%505=561%:%
-%:%506=562%:%
-%:%507=563%:%
-%:%508=564%:%
-%:%509=565%:%
-%:%510=566%:%
-%:%511=567%:%
-%:%512=568%:%
-%:%513=569%:%
-%:%514=570%:%
-%:%515=571%:%
-%:%516=572%:%
-%:%517=573%:%
-%:%518=574%:%
-%:%519=575%:%
-%:%520=576%:%
-%:%521=577%:%
-%:%522=578%:%
-%:%523=579%:%
-%:%524=580%:%
-%:%525=581%:%
-%:%526=582%:%
-%:%527=583%:%
-%:%528=584%:%
-%:%529=585%:%
-%:%530=586%:%
-%:%531=587%:%
-%:%532=588%:%
-%:%533=589%:%
-%:%534=590%:%
-%:%535=591%:%
-%:%536=592%:%
-%:%537=593%:%
-%:%538=594%:%
-%:%539=595%:%
-%:%540=596%:%
-%:%540=597%:%
-%:%541=598%:%
-%:%541=599%:%
-%:%542=600%:%
-%:%543=601%:%
-%:%543=602%:%
-%:%544=603%:%
-%:%545=604%:%
-%:%546=605%:%
-%:%547=606%:%
-%:%548=607%:%
-%:%549=608%:%
-%:%550=609%:%
-%:%551=610%:%
-%:%552=611%:%
-%:%553=612%:%
-%:%554=613%:%
-%:%555=614%:%
-%:%556=615%:%
-%:%557=616%:%
-%:%558=617%:%
-%:%559=618%:%
-%:%560=619%:%
-%:%561=620%:%
-%:%562=621%:%
-%:%563=622%:%
-%:%564=623%:%
-%:%565=624%:%
-%:%566=625%:%
-%:%567=626%:%
-%:%568=627%:%
-%:%569=628%:%
-%:%570=629%:%
-%:%571=630%:%
-%:%572=631%:%
-%:%573=632%:%
-%:%574=633%:%
-%:%575=634%:%
-%:%576=635%:%
-%:%577=636%:%
-%:%578=637%:%
-%:%579=638%:%
-%:%580=639%:%
-%:%581=640%:%
-%:%582=641%:%
-%:%583=642%:%
-%:%584=643%:%
-%:%585=644%:%
-%:%586=645%:%
-%:%587=646%:%
-%:%588=647%:%
-%:%589=648%:%
-%:%590=649%:%
-%:%591=650%:%
-%:%592=651%:%
-%:%593=652%:%
-%:%594=653%:%
-%:%595=654%:%
-%:%596=655%:%
-%:%597=656%:%
-%:%598=657%:%
-%:%599=658%:%
-%:%599=659%:%
-%:%599=660%:%
-%:%600=661%:%
-%:%601=662%:%
-%:%602=663%:%
-%:%603=664%:%
-%:%604=665%:%
-%:%605=666%:%
-%:%606=667%:%
-%:%607=668%:%
-%:%608=669%:%
-%:%608=670%:%
-%:%609=671%:%
-%:%610=672%:%
-%:%611=673%:%
-%:%612=674%:%
-%:%613=675%:%
-%:%614=676%:%
-%:%615=677%:%
-%:%616=678%:%
-%:%617=679%:%
-%:%618=680%:%
-%:%619=681%:%
-%:%620=682%:%
-%:%621=683%:%
-%:%622=684%:%
-%:%623=685%:%
-%:%624=686%:%
-%:%625=687%:%
-%:%626=688%:%
-%:%627=689%:%
-%:%628=690%:%
-%:%629=691%:%
-%:%630=692%:%
-%:%631=693%:%
-%:%632=694%:%
-%:%633=695%:%
-%:%634=696%:%
-%:%635=697%:%
-%:%636=698%:%
-%:%637=699%:%
-%:%638=700%:%
-%:%639=701%:%
-%:%640=702%:%
-%:%641=703%:%
-%:%642=704%:%
-%:%643=705%:%
-%:%643=706%:%
-%:%644=707%:%
-%:%645=708%:%
-%:%646=709%:%
-%:%647=710%:%
-%:%648=711%:%
-%:%649=712%:%
-%:%650=713%:%
-%:%650=714%:%
-%:%651=715%:%
-%:%652=716%:%
-%:%653=717%:%
-%:%653=718%:%
-%:%654=719%:%
-%:%655=720%:%
-%:%656=721%:%
-%:%657=722%:%
-%:%658=723%:%
-%:%659=724%:%
-%:%660=725%:%
-%:%661=726%:%
-%:%662=727%:%
-%:%663=728%:%
-%:%664=729%:%
-%:%664=730%:%
-%:%665=731%:%
-%:%666=732%:%
-%:%667=733%:%
-%:%668=734%:%
-%:%668=735%:%
-%:%669=736%:%
-%:%670=737%:%
-%:%671=738%:%
-%:%672=739%:%
-%:%673=740%:%
-%:%674=741%:%
-%:%675=742%:%
-%:%676=743%:%
-%:%677=744%:%
-%:%678=745%:%
-%:%679=746%:%
-%:%680=747%:%
-%:%681=748%:%
-%:%682=749%:%
-%:%683=750%:%
-%:%684=751%:%
-%:%685=752%:%
-%:%686=753%:%
-%:%687=754%:%
-%:%688=755%:%
-%:%689=756%:%
-%:%690=757%:%
-%:%691=758%:%
-%:%692=759%:%
-%:%693=760%:%
-%:%694=761%:%
-%:%695=762%:%
-%:%696=763%:%
-%:%697=764%:%
-%:%698=765%:%
-%:%699=766%:%
-%:%700=767%:%
-%:%701=768%:%
-%:%702=769%:%
-%:%703=770%:%
-%:%704=771%:%
-%:%705=772%:%
-%:%706=773%:%
-%:%707=774%:%
-%:%708=775%:%
-%:%709=776%:%
-%:%710=777%:%
-%:%711=778%:%
-%:%712=779%:%
-%:%713=780%:%
-%:%714=781%:%
-%:%715=782%:%
-%:%716=783%:%
-%:%717=784%:%
-%:%718=785%:%
-%:%719=786%:%
-%:%720=787%:%
-%:%721=788%:%
-%:%722=789%:%
-%:%723=790%:%
-%:%724=791%:%
-%:%725=792%:%
-%:%726=793%:%
-%:%726=794%:%
-%:%727=795%:%
-%:%728=796%:%
-%:%729=797%:%
-%:%730=798%:%
-%:%731=799%:%
-%:%732=800%:%
-%:%733=801%:%
-%:%734=802%:%
-%:%735=803%:%
-%:%736=804%:%
-%:%737=805%:%
-%:%738=806%:%
-%:%739=807%:%
-%:%740=808%:%
-%:%741=809%:%
-%:%742=810%:%
-%:%743=811%:%
-%:%744=812%:%
-%:%745=813%:%
-%:%746=814%:%
-%:%747=815%:%
-%:%748=816%:%
-%:%749=817%:%
-%:%750=818%:%
-%:%751=819%:%
-%:%752=820%:%
-%:%753=821%:%
-%:%754=822%:%
-%:%755=823%:%
-%:%756=824%:%
-%:%757=825%:%
-%:%758=826%:%
-%:%759=827%:%
-%:%759=828%:%
-%:%760=829%:%
-%:%761=830%:%
-%:%762=831%:%
-%:%763=832%:%
-%:%764=833%:%
-%:%765=834%:%
-%:%766=835%:%
-%:%767=836%:%
-%:%768=837%:%
-%:%769=838%:%
-%:%770=839%:%
-%:%771=840%:%
-%:%772=841%:%
-%:%773=842%:%
-%:%774=843%:%
-%:%775=844%:%
-%:%776=845%:%
-%:%777=846%:%
-%:%778=847%:%
-%:%779=848%:%
-%:%780=849%:%
-%:%781=850%:%
-%:%782=851%:%
-%:%783=852%:%
-%:%784=853%:%
-%:%785=854%:%
-%:%786=855%:%
-%:%787=856%:%
-%:%788=857%:%
-%:%789=858%:%
-%:%789=859%:%
-%:%790=860%:%
-%:%791=861%:%
-%:%792=862%:%
-%:%793=863%:%
-%:%794=864%:%
-%:%795=865%:%
-%:%796=866%:%
-%:%797=867%:%
-%:%797=868%:%
-%:%798=869%:%
-%:%799=870%:%
-%:%800=871%:%
-%:%801=872%:%
-%:%802=873%:%
-%:%803=874%:%
-%:%804=875%:%
-%:%805=876%:%
-%:%806=877%:%
-%:%807=878%:%
-%:%808=879%:%
-%:%809=880%:%
-%:%810=881%:%
-%:%811=882%:%
-%:%812=883%:%
-%:%813=884%:%
-%:%814=885%:%
-%:%815=886%:%
-%:%816=887%:%
-%:%817=888%:%
-%:%818=889%:%
-%:%819=890%:%
-%:%820=891%:%
-%:%821=892%:%
-%:%822=893%:%
-%:%823=894%:%
-%:%824=895%:%
-%:%825=896%:%
-%:%826=897%:%
-%:%827=898%:%
-%:%828=899%:%
-%:%829=900%:%
-%:%830=901%:%
-%:%831=902%:%
-%:%832=903%:%
-%:%833=904%:%
-%:%834=905%:%
-%:%834=906%:%
-%:%834=907%:%
-%:%835=908%:%
-%:%835=909%:%
-%:%835=910%:%
-%:%836=911%:%
-%:%837=912%:%
-%:%837=913%:%
-%:%838=914%:%
-%:%839=915%:%
-%:%840=916%:%
-%:%841=917%:%
-%:%842=918%:%
-%:%843=919%:%
-%:%844=920%:%
-%:%845=921%:%
-%:%846=922%:%
-%:%847=923%:%
-%:%848=924%:%
-%:%849=925%:%
-%:%850=926%:%
-%:%851=927%:%
-%:%852=928%:%
-%:%853=929%:%
-%:%854=930%:%
-%:%855=931%:%
-%:%856=932%:%
-%:%857=933%:%
-%:%858=934%:%
-%:%859=935%:%
-%:%860=936%:%
-%:%861=937%:%
-%:%862=938%:%
-%:%863=939%:%
-%:%864=940%:%
-%:%865=941%:%
-%:%866=942%:%
-%:%867=943%:%
-%:%868=944%:%
-%:%869=945%:%
-%:%870=946%:%
-%:%871=947%:%
-%:%871=948%:%
-%:%872=949%:%
-%:%873=950%:%
-%:%874=951%:%
-%:%874=952%:%
-%:%874=953%:%
-%:%874=954%:%
-%:%875=955%:%
-%:%876=956%:%
-%:%877=957%:%
-%:%878=958%:%
-%:%879=959%:%
-%:%880=960%:%
-%:%881=961%:%
-%:%882=962%:%
-%:%883=963%:%
-%:%884=964%:%
-%:%885=965%:%
-%:%886=966%:%
-%:%887=967%:%
-%:%888=968%:%
-%:%889=969%:%
-%:%890=970%:%
-%:%891=971%:%
-%:%892=972%:%
-%:%893=973%:%
-%:%894=974%:%
-%:%895=975%:%
-%:%896=976%:%
-%:%897=977%:%
-%:%898=978%:%
-%:%899=979%:%
-%:%900=980%:%
-%:%901=981%:%
-%:%902=982%:%
-%:%903=983%:%
-%:%904=984%:%
-%:%905=985%:%
-%:%906=986%:%
-%:%907=987%:%
-%:%908=988%:%
-%:%909=989%:%
-%:%910=990%:%
-%:%911=991%:%
-%:%920=995%:%
-%:%932=999%:%
-%:%933=1000%:%
-%:%934=1001%:%
-%:%935=1002%:%
-%:%936=1003%:%
-%:%937=1004%:%
-%:%938=1005%:%
-%:%939=1006%:%
-%:%940=1007%:%
-%:%941=1008%:%
-%:%942=1009%:%
-%:%943=1010%:%
-%:%944=1011%:%
-%:%945=1012%:%
-%:%946=1013%:%
-%:%947=1014%:%
-%:%948=1015%:%
-%:%949=1016%:%
-%:%950=1017%:%
-%:%951=1018%:%
-%:%952=1019%:%
-%:%953=1020%:%
-%:%954=1021%:%
+%:%273=339%:%
+%:%274=340%:%
+%:%275=341%:%
+%:%276=342%:%
+%:%277=343%:%
+%:%278=344%:%
+%:%279=345%:%
+%:%280=346%:%
+%:%281=347%:%
+%:%282=348%:%
+%:%283=349%:%
+%:%284=350%:%
+%:%285=351%:%
+%:%286=352%:%
+%:%287=353%:%
+%:%288=354%:%
+%:%289=355%:%
+%:%290=356%:%
+%:%291=357%:%
+%:%292=358%:%
+%:%293=359%:%
+%:%294=360%:%
+%:%295=361%:%
+%:%296=362%:%
+%:%297=363%:%
+%:%298=364%:%
+%:%299=365%:%
+%:%300=366%:%
+%:%301=367%:%
+%:%302=368%:%
+%:%303=369%:%
+%:%304=370%:%
+%:%305=371%:%
+%:%306=372%:%
+%:%307=373%:%
+%:%308=374%:%
+%:%309=375%:%
+%:%310=376%:%
+%:%311=377%:%
+%:%312=378%:%
+%:%313=379%:%
+%:%314=380%:%
+%:%315=381%:%
+%:%316=382%:%
+%:%317=383%:%
+%:%318=384%:%
+%:%319=385%:%
+%:%320=386%:%
+%:%321=387%:%
+%:%322=388%:%
+%:%323=389%:%
+%:%324=390%:%
+%:%325=391%:%
+%:%326=392%:%
+%:%327=393%:%
+%:%328=394%:%
+%:%329=395%:%
+%:%330=396%:%
+%:%331=397%:%
+%:%340=404%:%
+%:%352=406%:%
+%:%353=407%:%
+%:%353=408%:%
+%:%354=409%:%
+%:%355=410%:%
+%:%356=411%:%
+%:%357=412%:%
+%:%358=413%:%
+%:%359=414%:%
+%:%360=415%:%
+%:%361=416%:%
+%:%362=417%:%
+%:%363=418%:%
+%:%364=419%:%
+%:%365=420%:%
+%:%366=421%:%
+%:%367=422%:%
+%:%368=423%:%
+%:%369=424%:%
+%:%370=425%:%
+%:%371=426%:%
+%:%372=427%:%
+%:%373=428%:%
+%:%374=429%:%
+%:%375=430%:%
+%:%376=431%:%
+%:%377=432%:%
+%:%378=433%:%
+%:%379=434%:%
+%:%380=435%:%
+%:%381=436%:%
+%:%382=437%:%
+%:%383=438%:%
+%:%384=439%:%
+%:%385=440%:%
+%:%386=441%:%
+%:%387=442%:%
+%:%388=443%:%
+%:%389=444%:%
+%:%390=445%:%
+%:%391=446%:%
+%:%392=447%:%
+%:%392=448%:%
+%:%393=449%:%
+%:%394=450%:%
+%:%395=451%:%
+%:%396=452%:%
+%:%397=453%:%
+%:%397=454%:%
+%:%398=455%:%
+%:%399=456%:%
+%:%400=457%:%
+%:%401=458%:%
+%:%402=459%:%
+%:%403=460%:%
+%:%404=461%:%
+%:%405=462%:%
+%:%406=463%:%
+%:%407=464%:%
+%:%408=465%:%
+%:%409=466%:%
+%:%410=467%:%
+%:%411=468%:%
+%:%412=469%:%
+%:%413=470%:%
+%:%414=471%:%
+%:%415=472%:%
+%:%416=473%:%
+%:%417=474%:%
+%:%418=475%:%
+%:%419=476%:%
+%:%420=477%:%
+%:%421=478%:%
+%:%422=479%:%
+%:%423=480%:%
+%:%424=481%:%
+%:%425=482%:%
+%:%426=483%:%
+%:%427=484%:%
+%:%428=485%:%
+%:%429=486%:%
+%:%430=487%:%
+%:%431=488%:%
+%:%432=489%:%
+%:%433=490%:%
+%:%434=491%:%
+%:%435=492%:%
+%:%436=493%:%
+%:%437=494%:%
+%:%438=495%:%
+%:%439=496%:%
+%:%440=497%:%
+%:%441=498%:%
+%:%442=499%:%
+%:%443=500%:%
+%:%444=501%:%
+%:%445=502%:%
+%:%446=503%:%
+%:%447=504%:%
+%:%448=505%:%
+%:%449=506%:%
+%:%450=507%:%
+%:%451=508%:%
+%:%452=509%:%
+%:%453=510%:%
+%:%454=511%:%
+%:%455=512%:%
+%:%456=513%:%
+%:%457=514%:%
+%:%458=515%:%
+%:%459=516%:%
+%:%460=517%:%
+%:%461=518%:%
+%:%462=519%:%
+%:%463=520%:%
+%:%464=521%:%
+%:%465=522%:%
+%:%466=523%:%
+%:%467=524%:%
+%:%468=525%:%
+%:%469=526%:%
+%:%470=527%:%
+%:%471=528%:%
+%:%472=529%:%
+%:%473=530%:%
+%:%474=531%:%
+%:%475=532%:%
+%:%476=533%:%
+%:%477=534%:%
+%:%478=535%:%
+%:%479=536%:%
+%:%480=537%:%
+%:%481=538%:%
+%:%482=539%:%
+%:%483=540%:%
+%:%484=541%:%
+%:%485=542%:%
+%:%486=543%:%
+%:%495=547%:%
+%:%507=551%:%
+%:%508=552%:%
+%:%509=553%:%
+%:%510=554%:%
+%:%511=555%:%
+%:%512=556%:%
+%:%513=557%:%
+%:%514=558%:%
+%:%515=559%:%
+%:%516=560%:%
+%:%517=561%:%
+%:%518=562%:%
+%:%519=563%:%
+%:%520=564%:%
+%:%521=565%:%
+%:%522=566%:%
+%:%523=567%:%
+%:%524=568%:%
+%:%525=569%:%
+%:%526=570%:%
+%:%527=571%:%
+%:%528=572%:%
+%:%529=573%:%
+%:%530=574%:%
+%:%531=575%:%
+%:%532=576%:%
+%:%533=577%:%
+%:%534=578%:%
+%:%535=579%:%
+%:%536=580%:%
+%:%537=581%:%
+%:%538=582%:%
+%:%539=583%:%
+%:%540=584%:%
+%:%541=585%:%
+%:%542=586%:%
+%:%543=587%:%
+%:%544=588%:%
+%:%545=589%:%
+%:%546=590%:%
+%:%547=591%:%
+%:%548=592%:%
+%:%549=593%:%
+%:%550=594%:%
+%:%551=595%:%
+%:%552=596%:%
+%:%553=597%:%
+%:%554=598%:%
+%:%555=599%:%
+%:%556=600%:%
+%:%557=601%:%
+%:%558=602%:%
+%:%559=603%:%
+%:%560=604%:%
+%:%561=605%:%
+%:%562=606%:%
+%:%563=607%:%
+%:%564=608%:%
+%:%565=609%:%
+%:%566=610%:%
+%:%567=611%:%
+%:%568=612%:%
+%:%569=613%:%
+%:%570=614%:%
+%:%571=615%:%
+%:%572=616%:%
+%:%573=617%:%
+%:%574=618%:%
+%:%575=619%:%
+%:%576=620%:%
+%:%577=621%:%
+%:%578=622%:%
+%:%579=623%:%
+%:%580=624%:%
+%:%581=625%:%
+%:%582=626%:%
+%:%583=627%:%
+%:%584=628%:%
+%:%585=629%:%
+%:%586=630%:%
+%:%587=631%:%
+%:%588=632%:%
+%:%589=633%:%
+%:%590=634%:%
+%:%591=635%:%
+%:%592=636%:%
+%:%593=637%:%
+%:%594=638%:%
+%:%595=639%:%
+%:%596=640%:%
+%:%597=641%:%
+%:%598=642%:%
+%:%599=643%:%
+%:%600=644%:%
+%:%601=645%:%
+%:%602=646%:%
+%:%603=647%:%
+%:%604=648%:%
+%:%605=649%:%
+%:%606=650%:%
+%:%607=651%:%
+%:%608=652%:%
+%:%609=653%:%
+%:%610=654%:%
+%:%611=655%:%
+%:%612=656%:%
+%:%613=657%:%
+%:%614=658%:%
+%:%615=659%:%
+%:%616=660%:%
+%:%617=661%:%
+%:%618=662%:%
+%:%619=663%:%
+%:%620=664%:%
+%:%621=665%:%
+%:%621=666%:%
+%:%622=667%:%
+%:%622=668%:%
+%:%623=669%:%
+%:%624=670%:%
+%:%624=671%:%
+%:%625=672%:%
+%:%626=673%:%
+%:%627=674%:%
+%:%628=675%:%
+%:%629=676%:%
+%:%630=677%:%
+%:%631=678%:%
+%:%632=679%:%
+%:%633=680%:%
+%:%634=681%:%
+%:%635=682%:%
+%:%636=683%:%
+%:%637=684%:%
+%:%638=685%:%
+%:%639=686%:%
+%:%640=687%:%
+%:%641=688%:%
+%:%642=689%:%
+%:%643=690%:%
+%:%644=691%:%
+%:%645=692%:%
+%:%646=693%:%
+%:%647=694%:%
+%:%648=695%:%
+%:%649=696%:%
+%:%650=697%:%
+%:%651=698%:%
+%:%652=699%:%
+%:%653=700%:%
+%:%654=701%:%
+%:%655=702%:%
+%:%656=703%:%
+%:%657=704%:%
+%:%658=705%:%
+%:%659=706%:%
+%:%660=707%:%
+%:%661=708%:%
+%:%662=709%:%
+%:%663=710%:%
+%:%664=711%:%
+%:%665=712%:%
+%:%666=713%:%
+%:%667=714%:%
+%:%668=715%:%
+%:%669=716%:%
+%:%670=717%:%
+%:%671=718%:%
+%:%672=719%:%
+%:%673=720%:%
+%:%674=721%:%
+%:%675=722%:%
+%:%676=723%:%
+%:%677=724%:%
+%:%678=725%:%
+%:%679=726%:%
+%:%680=727%:%
+%:%680=728%:%
+%:%680=729%:%
+%:%681=730%:%
+%:%682=731%:%
+%:%683=732%:%
+%:%684=733%:%
+%:%685=734%:%
+%:%686=735%:%
+%:%687=736%:%
+%:%688=737%:%
+%:%689=738%:%
+%:%689=739%:%
+%:%690=740%:%
+%:%691=741%:%
+%:%692=742%:%
+%:%693=743%:%
+%:%694=744%:%
+%:%695=745%:%
+%:%696=746%:%
+%:%697=747%:%
+%:%698=748%:%
+%:%699=749%:%
+%:%700=750%:%
+%:%701=751%:%
+%:%702=752%:%
+%:%703=753%:%
+%:%704=754%:%
+%:%705=755%:%
+%:%706=756%:%
+%:%707=757%:%
+%:%708=758%:%
+%:%709=759%:%
+%:%710=760%:%
+%:%711=761%:%
+%:%712=762%:%
+%:%713=763%:%
+%:%714=764%:%
+%:%715=765%:%
+%:%716=766%:%
+%:%717=767%:%
+%:%718=768%:%
+%:%719=769%:%
+%:%720=770%:%
+%:%721=771%:%
+%:%722=772%:%
+%:%723=773%:%
+%:%724=774%:%
+%:%724=775%:%
+%:%725=776%:%
+%:%726=777%:%
+%:%727=778%:%
+%:%728=779%:%
+%:%729=780%:%
+%:%730=781%:%
+%:%731=782%:%
+%:%731=783%:%
+%:%732=784%:%
+%:%733=785%:%
+%:%734=786%:%
+%:%734=787%:%
+%:%735=788%:%
+%:%736=789%:%
+%:%737=790%:%
+%:%738=791%:%
+%:%739=792%:%
+%:%740=793%:%
+%:%741=794%:%
+%:%742=795%:%
+%:%743=796%:%
+%:%744=797%:%
+%:%745=798%:%
+%:%745=799%:%
+%:%746=800%:%
+%:%747=801%:%
+%:%748=802%:%
+%:%749=803%:%
+%:%749=804%:%
+%:%750=805%:%
+%:%751=806%:%
+%:%752=807%:%
+%:%753=808%:%
+%:%754=809%:%
+%:%755=810%:%
+%:%756=811%:%
+%:%757=812%:%
+%:%758=813%:%
+%:%759=814%:%
+%:%760=815%:%
+%:%761=816%:%
+%:%762=817%:%
+%:%763=818%:%
+%:%764=819%:%
+%:%765=820%:%
+%:%766=821%:%
+%:%767=822%:%
+%:%768=823%:%
+%:%769=824%:%
+%:%770=825%:%
+%:%771=826%:%
+%:%772=827%:%
+%:%773=828%:%
+%:%774=829%:%
+%:%775=830%:%
+%:%776=831%:%
+%:%777=832%:%
+%:%778=833%:%
+%:%779=834%:%
+%:%780=835%:%
+%:%781=836%:%
+%:%782=837%:%
+%:%783=838%:%
+%:%784=839%:%
+%:%785=840%:%
+%:%786=841%:%
+%:%787=842%:%
+%:%788=843%:%
+%:%789=844%:%
+%:%790=845%:%
+%:%791=846%:%
+%:%792=847%:%
+%:%793=848%:%
+%:%794=849%:%
+%:%795=850%:%
+%:%796=851%:%
+%:%797=852%:%
+%:%798=853%:%
+%:%799=854%:%
+%:%800=855%:%
+%:%801=856%:%
+%:%802=857%:%
+%:%803=858%:%
+%:%804=859%:%
+%:%805=860%:%
+%:%806=861%:%
+%:%807=862%:%
+%:%807=863%:%
+%:%808=864%:%
+%:%809=865%:%
+%:%810=866%:%
+%:%811=867%:%
+%:%812=868%:%
+%:%813=869%:%
+%:%814=870%:%
+%:%815=871%:%
+%:%816=872%:%
+%:%817=873%:%
+%:%818=874%:%
+%:%819=875%:%
+%:%820=876%:%
+%:%821=877%:%
+%:%822=878%:%
+%:%823=879%:%
+%:%824=880%:%
+%:%825=881%:%
+%:%826=882%:%
+%:%827=883%:%
+%:%828=884%:%
+%:%829=885%:%
+%:%830=886%:%
+%:%831=887%:%
+%:%832=888%:%
+%:%833=889%:%
+%:%834=890%:%
+%:%835=891%:%
+%:%836=892%:%
+%:%837=893%:%
+%:%838=894%:%
+%:%839=895%:%
+%:%840=896%:%
+%:%840=897%:%
+%:%841=898%:%
+%:%842=899%:%
+%:%843=900%:%
+%:%844=901%:%
+%:%845=902%:%
+%:%846=903%:%
+%:%847=904%:%
+%:%848=905%:%
+%:%849=906%:%
+%:%850=907%:%
+%:%851=908%:%
+%:%852=909%:%
+%:%853=910%:%
+%:%854=911%:%
+%:%855=912%:%
+%:%856=913%:%
+%:%857=914%:%
+%:%858=915%:%
+%:%859=916%:%
+%:%860=917%:%
+%:%861=918%:%
+%:%862=919%:%
+%:%863=920%:%
+%:%864=921%:%
+%:%865=922%:%
+%:%866=923%:%
+%:%867=924%:%
+%:%868=925%:%
+%:%869=926%:%
+%:%870=927%:%
+%:%870=928%:%
+%:%871=929%:%
+%:%872=930%:%
+%:%873=931%:%
+%:%874=932%:%
+%:%875=933%:%
+%:%876=934%:%
+%:%877=935%:%
+%:%878=936%:%
+%:%878=937%:%
+%:%879=938%:%
+%:%880=939%:%
+%:%881=940%:%
+%:%882=941%:%
+%:%883=942%:%
+%:%884=943%:%
+%:%885=944%:%
+%:%886=945%:%
+%:%887=946%:%
+%:%888=947%:%
+%:%889=948%:%
+%:%890=949%:%
+%:%891=950%:%
+%:%892=951%:%
+%:%893=952%:%
+%:%894=953%:%
+%:%895=954%:%
+%:%896=955%:%
+%:%897=956%:%
+%:%898=957%:%
+%:%899=958%:%
+%:%900=959%:%
+%:%901=960%:%
+%:%902=961%:%
+%:%903=962%:%
+%:%904=963%:%
+%:%905=964%:%
+%:%906=965%:%
+%:%907=966%:%
+%:%908=967%:%
+%:%909=968%:%
+%:%910=969%:%
+%:%911=970%:%
+%:%912=971%:%
+%:%913=972%:%
+%:%914=973%:%
+%:%915=974%:%
+%:%915=975%:%
+%:%915=976%:%
+%:%916=977%:%
+%:%916=978%:%
+%:%916=979%:%
+%:%917=980%:%
+%:%918=981%:%
+%:%918=982%:%
+%:%919=983%:%
+%:%920=984%:%
+%:%921=985%:%
+%:%922=986%:%
+%:%923=987%:%
+%:%924=988%:%
+%:%925=989%:%
+%:%926=990%:%
+%:%927=991%:%
+%:%928=992%:%
+%:%929=993%:%
+%:%930=994%:%
+%:%931=995%:%
+%:%932=996%:%
+%:%933=997%:%
+%:%934=998%:%
+%:%935=999%:%
+%:%936=1000%:%
+%:%937=1001%:%
+%:%938=1002%:%
+%:%939=1003%:%
+%:%940=1004%:%
+%:%941=1005%:%
+%:%942=1006%:%
+%:%943=1007%:%
+%:%944=1008%:%
+%:%945=1009%:%
+%:%946=1010%:%
+%:%947=1011%:%
+%:%948=1012%:%
+%:%949=1013%:%
+%:%950=1014%:%
+%:%951=1015%:%
+%:%952=1016%:%
+%:%952=1017%:%
+%:%953=1018%:%
+%:%954=1019%:%
+%:%955=1020%:%
+%:%955=1021%:%
 %:%955=1022%:%
-%:%956=1023%:%
-%:%957=1024%:%
-%:%958=1025%:%
-%:%959=1026%:%
-%:%960=1027%:%
-%:%961=1028%:%
-%:%962=1029%:%
-%:%963=1030%:%
-%:%964=1031%:%
-%:%965=1032%:%
-%:%966=1033%:%
-%:%967=1034%:%
-%:%968=1035%:%
-%:%969=1036%:%
-%:%970=1037%:%
-%:%971=1038%:%
-%:%972=1039%:%
-%:%973=1040%:%
-%:%974=1041%:%
-%:%975=1042%:%
-%:%976=1043%:%
-%:%977=1044%:%
-%:%978=1045%:%
-%:%979=1046%:%
-%:%980=1047%:%
-%:%981=1048%:%
-%:%982=1049%:%
-%:%983=1050%:%
-%:%984=1051%:%
-%:%985=1052%:%
-%:%986=1053%:%
-%:%987=1054%:%
-%:%988=1055%:%
-%:%989=1056%:%
-%:%990=1057%:%
-%:%991=1058%:%
-%:%992=1059%:%
-%:%993=1060%:%
-%:%994=1061%:%
-%:%995=1062%:%
-%:%996=1063%:%
-%:%997=1064%:%
-%:%998=1065%:%
-%:%999=1066%:%
-%:%1000=1067%:%
-%:%1001=1068%:%
-%:%1002=1069%:%
-%:%1003=1070%:%
-%:%1004=1071%:%
-%:%1005=1072%:%
-%:%1006=1073%:%
-%:%1007=1074%:%
-%:%1008=1075%:%
-%:%1009=1076%:%
-%:%1010=1077%:%
-%:%1011=1078%:%
-%:%1012=1079%:%
-%:%1013=1080%:%
-%:%1014=1081%:%
-%:%1015=1082%:%
-%:%1016=1083%:%
-%:%1017=1084%:%
-%:%1018=1085%:%
-%:%1019=1086%:%
-%:%1020=1087%:%
-%:%1021=1088%:%
-%:%1022=1089%:%
-%:%1023=1090%:%
-%:%1024=1091%:%
-%:%1025=1092%:%
-%:%1026=1093%:%
-%:%1027=1094%:%
-%:%1028=1095%:%
-%:%1029=1096%:%
-%:%1030=1097%:%
-%:%1031=1098%:%
-%:%1032=1099%:%
-%:%1033=1100%:%
-%:%1034=1101%:%
-%:%1035=1102%:%
-%:%1036=1103%:%
-%:%1037=1104%:%
-%:%1038=1105%:%
-%:%1039=1106%:%
-%:%1040=1107%:%
-%:%1041=1108%:%
-%:%1042=1109%:%
-%:%1043=1110%:%
-%:%1044=1111%:%
-%:%1045=1112%:%
-%:%1046=1113%:%
-%:%1047=1114%:%
-%:%1047=1115%:%
-%:%1048=1116%:%
-%:%1049=1117%:%
-%:%1050=1118%:%
-%:%1051=1119%:%
-%:%1052=1120%:%
-%:%1053=1121%:%
-%:%1054=1122%:%
-%:%1055=1123%:%
-%:%1056=1124%:%
-%:%1057=1125%:%
-%:%1058=1126%:%
-%:%1058=1127%:%
-%:%1059=1128%:%
-%:%1060=1129%:%
-%:%1061=1130%:%
-%:%1062=1131%:%
-%:%1063=1132%:%
-%:%1064=1133%:%
-%:%1065=1134%:%
-%:%1066=1135%:%
-%:%1067=1136%:%
-%:%1068=1137%:%
-%:%1069=1138%:%
-%:%1070=1139%:%
-%:%1071=1140%:%
-%:%1072=1141%:%
-%:%1073=1142%:%
-%:%1074=1143%:%
-%:%1075=1144%:%
-%:%1076=1145%:%
-%:%1077=1146%:%
-%:%1078=1147%:%
-%:%1079=1148%:%
-%:%1080=1149%:%
-%:%1081=1150%:%
-%:%1082=1151%:%
-%:%1083=1152%:%
-%:%1084=1153%:%
-%:%1085=1154%:%
-%:%1086=1155%:%
-%:%1087=1156%:%
-%:%1088=1157%:%
-%:%1089=1158%:%
-%:%1090=1159%:%
-%:%1091=1160%:%
-%:%1092=1161%:%
-%:%1093=1162%:%
-%:%1094=1163%:%
-%:%1095=1164%:%
-%:%1096=1165%:%
-%:%1097=1166%:%
-%:%1098=1167%:%
-%:%1099=1168%:%
-%:%1100=1169%:%
-%:%1101=1170%:%
-%:%1102=1171%:%
-%:%1103=1172%:%
-%:%1104=1173%:%
-%:%1105=1174%:%
-%:%1106=1175%:%
-%:%1107=1176%:%
-%:%1108=1177%:%
-%:%1109=1178%:%
-%:%1110=1179%:%
-%:%1111=1180%:%
-%:%1112=1181%:%
-%:%1112=1182%:%
-%:%1112=1183%:%
-%:%1113=1184%:%
-%:%1114=1185%:%
-%:%1114=1186%:%
-%:%1114=1187%:%
-%:%1114=1188%:%
-%:%1115=1189%:%
-%:%1116=1190%:%
-%:%1117=1191%:%
-%:%1118=1192%:%
-%:%1119=1193%:%
-%:%1119=1194%:%
-%:%1120=1195%:%
-%:%1121=1196%:%
-%:%1122=1197%:%
-%:%1123=1198%:%
-%:%1124=1199%:%
-%:%1125=1200%:%
-%:%1126=1201%:%
-%:%1127=1202%:%
-%:%1128=1203%:%
-%:%1129=1204%:%
-%:%1130=1205%:%
-%:%1131=1206%:%
-%:%1132=1207%:%
-%:%1133=1208%:%
-%:%1134=1209%:%
-%:%1135=1210%:%
-%:%1136=1211%:%
-%:%1137=1212%:%
-%:%1138=1213%:%
-%:%1139=1214%:%
-%:%1140=1215%:%
-%:%1141=1216%:%
-%:%1142=1217%:%
-%:%1143=1218%:%
-%:%1144=1219%:%
-%:%1145=1220%:%
-%:%1146=1221%:%
-%:%1147=1222%:%
-%:%1148=1223%:%
-%:%1149=1224%:%
-%:%1150=1225%:%
-%:%1151=1226%:%
-%:%1152=1227%:%
-%:%1153=1228%:%
-%:%1154=1229%:%
-%:%1155=1230%:%
-%:%1156=1231%:%
-%:%1157=1232%:%
-%:%1158=1233%:%
-%:%1159=1234%:%
-%:%1160=1235%:%
-%:%1161=1236%:%
-%:%1162=1237%:%
-%:%1163=1238%:%
-%:%1164=1239%:%
-%:%1165=1240%:%
-%:%1166=1241%:%
-%:%1167=1242%:%
-%:%1167=1243%:%
-%:%1168=1244%:%
-%:%1168=1245%:%
-%:%1169=1246%:%
-%:%1169=1247%:%
-%:%1170=1248%:%
-%:%1171=1249%:%
-%:%1172=1250%:%
-%:%1173=1251%:%
-%:%1174=1252%:%
-%:%1175=1253%:%
-%:%1176=1254%:%
-%:%1176=1255%:%
-%:%1177=1256%:%
-%:%1177=1257%:%
-%:%1178=1258%:%
-%:%1178=1259%:%
-%:%1179=1260%:%
-%:%1180=1261%:%
-%:%1181=1262%:%
-%:%1182=1263%:%
-%:%1183=1264%:%
-%:%1184=1265%:%
-%:%1185=1266%:%
-%:%1186=1267%:%
-%:%1187=1268%:%
-%:%1188=1269%:%
-%:%1189=1270%:%
-%:%1190=1271%:%
-%:%1191=1272%:%
-%:%1192=1273%:%
-%:%1193=1274%:%
-%:%1194=1275%:%
-%:%1195=1276%:%
-%:%1196=1277%:%
-%:%1197=1278%:%
-%:%1198=1279%:%
-%:%1199=1280%:%
-%:%1200=1281%:%
-%:%1201=1282%:%
-%:%1202=1283%:%
-%:%1203=1284%:%
-%:%1204=1285%:%
-%:%1205=1286%:%
-%:%1206=1287%:%
-%:%1207=1288%:%
-%:%1208=1289%:%
-%:%1209=1290%:%
-%:%1209=1291%:%
-%:%1210=1292%:%
-%:%1211=1293%:%
-%:%1212=1294%:%
-%:%1213=1295%:%
-%:%1214=1296%:%
-%:%1215=1297%:%
-%:%1216=1298%:%
-%:%1216=1299%:%
-%:%1217=1300%:%
-%:%1218=1301%:%
-%:%1219=1302%:%
-%:%1219=1303%:%
-%:%1220=1304%:%
-%:%1221=1305%:%
-%:%1222=1306%:%
-%:%1222=1307%:%
-%:%1223=1308%:%
-%:%1223=1309%:%
-%:%1224=1310%:%
-%:%1224=1311%:%
-%:%1225=1312%:%
-%:%1226=1313%:%
-%:%1227=1314%:%
-%:%1227=1315%:%
-%:%1228=1316%:%
-%:%1228=1317%:%
-%:%1229=1318%:%
-%:%1229=1319%:%
-%:%1229=1320%:%
-%:%1229=1321%:%
-%:%1230=1322%:%
-%:%1230=1323%:%
-%:%1231=1324%:%
-%:%1232=1325%:%
-%:%1232=1327%:%
-%:%1232=1328%:%
-%:%1232=1329%:%
-%:%1232=1330%:%
-%:%1232=1331%:%
-%:%1233=1332%:%
-%:%1233=1333%:%
-%:%1234=1334%:%
-%:%1234=1335%:%
-%:%1235=1336%:%
-%:%1235=1337%:%
-%:%1236=1338%:%
-%:%1237=1339%:%
-%:%1238=1340%:%
-%:%1239=1341%:%
-%:%1239=1342%:%
-%:%1240=1343%:%
-%:%1240=1344%:%
-%:%1241=1345%:%
-%:%1242=1346%:%
-%:%1242=1347%:%
-%:%1243=1348%:%
-%:%1244=1349%:%
-%:%1245=1350%:%
-%:%1246=1351%:%
-%:%1247=1352%:%
-%:%1248=1353%:%
-%:%1249=1354%:%
-%:%1250=1355%:%
-%:%1251=1356%:%
-%:%1252=1357%:%
-%:%1253=1358%:%
-%:%1254=1359%:%
-%:%1255=1360%:%
-%:%1256=1361%:%
-%:%1257=1362%:%
-%:%1258=1363%:%
-%:%1259=1364%:%
-%:%1260=1365%:%
-%:%1261=1366%:%
-%:%1262=1367%:%
-%:%1263=1368%:%
-%:%1264=1369%:%
-%:%1265=1370%:%
-%:%1266=1371%:%
-%:%1267=1372%:%
-%:%1268=1373%:%
-%:%1269=1374%:%
-%:%1270=1375%:%
-%:%1271=1376%:%
-%:%1272=1377%:%
-%:%1273=1378%:%
-%:%1274=1379%:%
-%:%1275=1380%:%
-%:%1276=1381%:%
-%:%1277=1382%:%
-%:%1278=1383%:%
-%:%1279=1384%:%
-%:%1280=1385%:%
-%:%1281=1386%:%
-%:%1282=1387%:%
-%:%1283=1388%:%
-%:%1284=1389%:%
-%:%1285=1390%:%
-%:%1286=1391%:%
-%:%1287=1392%:%
-%:%1288=1393%:%
-%:%1289=1394%:%
-%:%1290=1395%:%
-%:%1291=1396%:%
-%:%1292=1397%:%
-%:%1293=1398%:%
-%:%1302=1402%:%
-%:%1314=1409%:%
-%:%1315=1410%:%
-%:%1316=1411%:%
-%:%1317=1412%:%
-%:%1318=1413%:%
-%:%1319=1414%:%
-%:%1320=1415%:%
-%:%1329=1420%:%
-%:%1341=1424%:%
-%:%1342=1425%:%
-%:%1343=1426%:%
-%:%1344=1427%:%
-%:%1345=1428%:%
-%:%1346=1429%:%
-%:%1347=1430%:%
-%:%1348=1431%:%
-%:%1349=1432%:%
-%:%1350=1433%:%
-%:%1351=1434%:%
-%:%1352=1435%:%
-%:%1353=1436%:%
-%:%1354=1437%:%
-%:%1355=1438%:%
-%:%1356=1439%:%
-%:%1357=1440%:%
-%:%1358=1441%:%
-%:%1359=1442%:%
-%:%1360=1443%:%
-%:%1361=1444%:%
-%:%1362=1445%:%
-%:%1363=1446%:%
-%:%1364=1447%:%
-%:%1365=1448%:%
-%:%1366=1449%:%
-%:%1367=1450%:%
-%:%1368=1451%:%
-%:%1369=1452%:%
-%:%1370=1453%:%
-%:%1371=1454%:%
-%:%1372=1455%:%
-%:%1373=1456%:%
-%:%1374=1457%:%
-%:%1375=1458%:%
-%:%1376=1459%:%
-%:%1377=1460%:%
-%:%1378=1461%:%
-%:%1379=1462%:%
-%:%1380=1463%:%
-%:%1381=1464%:%
-%:%1382=1465%:%
-%:%1383=1466%:%
-%:%1384=1467%:%
-%:%1385=1468%:%
-%:%1386=1469%:%
-%:%1387=1470%:%
-%:%1388=1471%:%
-%:%1389=1472%:%
-%:%1390=1473%:%
-%:%1391=1474%:%
-%:%1392=1475%:%
-%:%1393=1476%:%
-%:%1394=1477%:%
+%:%955=1023%:%
+%:%956=1024%:%
+%:%957=1025%:%
+%:%958=1026%:%
+%:%959=1027%:%
+%:%960=1028%:%
+%:%961=1029%:%
+%:%962=1030%:%
+%:%963=1031%:%
+%:%964=1032%:%
+%:%965=1033%:%
+%:%966=1034%:%
+%:%967=1035%:%
+%:%968=1036%:%
+%:%969=1037%:%
+%:%970=1038%:%
+%:%971=1039%:%
+%:%972=1040%:%
+%:%973=1041%:%
+%:%974=1042%:%
+%:%975=1043%:%
+%:%976=1044%:%
+%:%977=1045%:%
+%:%978=1046%:%
+%:%979=1047%:%
+%:%980=1048%:%
+%:%981=1049%:%
+%:%982=1050%:%
+%:%983=1051%:%
+%:%984=1052%:%
+%:%985=1053%:%
+%:%986=1054%:%
+%:%987=1055%:%
+%:%988=1056%:%
+%:%989=1057%:%
+%:%990=1058%:%
+%:%991=1059%:%
+%:%992=1060%:%
+%:%1001=1064%:%
+%:%1013=1068%:%
+%:%1014=1069%:%
+%:%1015=1070%:%
+%:%1016=1071%:%
+%:%1017=1072%:%
+%:%1018=1073%:%
+%:%1019=1074%:%
+%:%1020=1075%:%
+%:%1021=1076%:%
+%:%1022=1077%:%
+%:%1023=1078%:%
+%:%1024=1079%:%
+%:%1025=1080%:%
+%:%1026=1081%:%
+%:%1027=1082%:%
+%:%1028=1083%:%
+%:%1029=1084%:%
+%:%1030=1085%:%
+%:%1031=1086%:%
+%:%1032=1087%:%
+%:%1033=1088%:%
+%:%1034=1089%:%
+%:%1035=1090%:%
+%:%1036=1091%:%
+%:%1037=1092%:%
+%:%1038=1093%:%
+%:%1039=1094%:%
+%:%1040=1095%:%
+%:%1041=1096%:%
+%:%1042=1097%:%
+%:%1043=1098%:%
+%:%1044=1099%:%
+%:%1045=1100%:%
+%:%1046=1101%:%
+%:%1047=1102%:%
+%:%1048=1103%:%
+%:%1049=1104%:%
+%:%1050=1105%:%
+%:%1051=1106%:%
+%:%1052=1107%:%
+%:%1053=1108%:%
+%:%1054=1109%:%
+%:%1055=1110%:%
+%:%1056=1111%:%
+%:%1057=1112%:%
+%:%1058=1113%:%
+%:%1059=1114%:%
+%:%1060=1115%:%
+%:%1061=1116%:%
+%:%1062=1117%:%
+%:%1063=1118%:%
+%:%1064=1119%:%
+%:%1065=1120%:%
+%:%1066=1121%:%
+%:%1067=1122%:%
+%:%1068=1123%:%
+%:%1069=1124%:%
+%:%1070=1125%:%
+%:%1071=1126%:%
+%:%1072=1127%:%
+%:%1073=1128%:%
+%:%1074=1129%:%
+%:%1075=1130%:%
+%:%1076=1131%:%
+%:%1077=1132%:%
+%:%1078=1133%:%
+%:%1079=1134%:%
+%:%1080=1135%:%
+%:%1081=1136%:%
+%:%1082=1137%:%
+%:%1083=1138%:%
+%:%1084=1139%:%
+%:%1085=1140%:%
+%:%1086=1141%:%
+%:%1087=1142%:%
+%:%1088=1143%:%
+%:%1089=1144%:%
+%:%1090=1145%:%
+%:%1091=1146%:%
+%:%1092=1147%:%
+%:%1093=1148%:%
+%:%1094=1149%:%
+%:%1095=1150%:%
+%:%1096=1151%:%
+%:%1097=1152%:%
+%:%1098=1153%:%
+%:%1099=1154%:%
+%:%1100=1155%:%
+%:%1101=1156%:%
+%:%1102=1157%:%
+%:%1103=1158%:%
+%:%1104=1159%:%
+%:%1105=1160%:%
+%:%1106=1161%:%
+%:%1107=1162%:%
+%:%1108=1163%:%
+%:%1109=1164%:%
+%:%1110=1165%:%
+%:%1111=1166%:%
+%:%1112=1167%:%
+%:%1113=1168%:%
+%:%1114=1169%:%
+%:%1115=1170%:%
+%:%1116=1171%:%
+%:%1117=1172%:%
+%:%1118=1173%:%
+%:%1119=1174%:%
+%:%1120=1175%:%
+%:%1121=1176%:%
+%:%1122=1177%:%
+%:%1123=1178%:%
+%:%1124=1179%:%
+%:%1125=1180%:%
+%:%1126=1181%:%
+%:%1127=1182%:%
+%:%1128=1183%:%
+%:%1128=1184%:%
+%:%1129=1185%:%
+%:%1130=1186%:%
+%:%1131=1187%:%
+%:%1132=1188%:%
+%:%1133=1189%:%
+%:%1134=1190%:%
+%:%1135=1191%:%
+%:%1136=1192%:%
+%:%1137=1193%:%
+%:%1138=1194%:%
+%:%1139=1195%:%
+%:%1139=1196%:%
+%:%1140=1197%:%
+%:%1141=1198%:%
+%:%1142=1199%:%
+%:%1143=1200%:%
+%:%1144=1201%:%
+%:%1145=1202%:%
+%:%1146=1203%:%
+%:%1147=1204%:%
+%:%1148=1205%:%
+%:%1149=1206%:%
+%:%1150=1207%:%
+%:%1151=1208%:%
+%:%1152=1209%:%
+%:%1153=1210%:%
+%:%1154=1211%:%
+%:%1155=1212%:%
+%:%1156=1213%:%
+%:%1157=1214%:%
+%:%1158=1215%:%
+%:%1159=1216%:%
+%:%1160=1217%:%
+%:%1161=1218%:%
+%:%1162=1219%:%
+%:%1163=1220%:%
+%:%1164=1221%:%
+%:%1165=1222%:%
+%:%1166=1223%:%
+%:%1167=1224%:%
+%:%1168=1225%:%
+%:%1169=1226%:%
+%:%1170=1227%:%
+%:%1171=1228%:%
+%:%1172=1229%:%
+%:%1173=1230%:%
+%:%1174=1231%:%
+%:%1175=1232%:%
+%:%1176=1233%:%
+%:%1177=1234%:%
+%:%1178=1235%:%
+%:%1179=1236%:%
+%:%1180=1237%:%
+%:%1181=1238%:%
+%:%1182=1239%:%
+%:%1183=1240%:%
+%:%1184=1241%:%
+%:%1185=1242%:%
+%:%1186=1243%:%
+%:%1187=1244%:%
+%:%1188=1245%:%
+%:%1189=1246%:%
+%:%1190=1247%:%
+%:%1191=1248%:%
+%:%1192=1249%:%
+%:%1193=1250%:%
+%:%1193=1251%:%
+%:%1193=1252%:%
+%:%1194=1253%:%
+%:%1195=1254%:%
+%:%1195=1255%:%
+%:%1195=1256%:%
+%:%1195=1257%:%
+%:%1196=1258%:%
+%:%1197=1259%:%
+%:%1198=1260%:%
+%:%1199=1261%:%
+%:%1200=1262%:%
+%:%1200=1263%:%
+%:%1201=1264%:%
+%:%1202=1265%:%
+%:%1203=1266%:%
+%:%1204=1267%:%
+%:%1205=1268%:%
+%:%1206=1269%:%
+%:%1207=1270%:%
+%:%1208=1271%:%
+%:%1209=1272%:%
+%:%1210=1273%:%
+%:%1211=1274%:%
+%:%1212=1275%:%
+%:%1213=1276%:%
+%:%1214=1277%:%
+%:%1215=1278%:%
+%:%1216=1279%:%
+%:%1217=1280%:%
+%:%1218=1281%:%
+%:%1219=1282%:%
+%:%1220=1283%:%
+%:%1221=1284%:%
+%:%1222=1285%:%
+%:%1223=1286%:%
+%:%1224=1287%:%
+%:%1225=1288%:%
+%:%1226=1289%:%
+%:%1227=1290%:%
+%:%1228=1291%:%
+%:%1229=1292%:%
+%:%1230=1293%:%
+%:%1231=1294%:%
+%:%1232=1295%:%
+%:%1233=1296%:%
+%:%1234=1297%:%
+%:%1235=1298%:%
+%:%1236=1299%:%
+%:%1237=1300%:%
+%:%1238=1301%:%
+%:%1239=1302%:%
+%:%1240=1303%:%
+%:%1241=1304%:%
+%:%1242=1305%:%
+%:%1243=1306%:%
+%:%1244=1307%:%
+%:%1245=1308%:%
+%:%1246=1309%:%
+%:%1247=1310%:%
+%:%1248=1311%:%
+%:%1248=1312%:%
+%:%1249=1313%:%
+%:%1249=1314%:%
+%:%1250=1315%:%
+%:%1250=1316%:%
+%:%1251=1317%:%
+%:%1252=1318%:%
+%:%1253=1319%:%
+%:%1254=1320%:%
+%:%1255=1321%:%
+%:%1256=1322%:%
+%:%1257=1323%:%
+%:%1257=1324%:%
+%:%1258=1325%:%
+%:%1258=1326%:%
+%:%1259=1327%:%
+%:%1259=1328%:%
+%:%1260=1329%:%
+%:%1261=1330%:%
+%:%1262=1331%:%
+%:%1263=1332%:%
+%:%1264=1333%:%
+%:%1265=1334%:%
+%:%1266=1335%:%
+%:%1267=1336%:%
+%:%1268=1337%:%
+%:%1269=1338%:%
+%:%1270=1339%:%
+%:%1271=1340%:%
+%:%1272=1341%:%
+%:%1273=1342%:%
+%:%1274=1343%:%
+%:%1275=1344%:%
+%:%1276=1345%:%
+%:%1277=1346%:%
+%:%1278=1347%:%
+%:%1279=1348%:%
+%:%1280=1349%:%
+%:%1281=1350%:%
+%:%1282=1351%:%
+%:%1283=1352%:%
+%:%1284=1353%:%
+%:%1285=1354%:%
+%:%1286=1355%:%
+%:%1287=1356%:%
+%:%1288=1357%:%
+%:%1289=1358%:%
+%:%1290=1359%:%
+%:%1290=1360%:%
+%:%1291=1361%:%
+%:%1292=1362%:%
+%:%1293=1363%:%
+%:%1294=1364%:%
+%:%1295=1365%:%
+%:%1296=1366%:%
+%:%1297=1367%:%
+%:%1297=1368%:%
+%:%1298=1369%:%
+%:%1299=1370%:%
+%:%1300=1371%:%
+%:%1300=1372%:%
+%:%1301=1373%:%
+%:%1302=1374%:%
+%:%1303=1375%:%
+%:%1303=1376%:%
+%:%1304=1377%:%
+%:%1304=1378%:%
+%:%1305=1379%:%
+%:%1305=1380%:%
+%:%1306=1381%:%
+%:%1307=1382%:%
+%:%1308=1383%:%
+%:%1308=1384%:%
+%:%1309=1385%:%
+%:%1309=1386%:%
+%:%1310=1387%:%
+%:%1310=1388%:%
+%:%1310=1389%:%
+%:%1310=1390%:%
+%:%1311=1391%:%
+%:%1311=1392%:%
+%:%1312=1393%:%
+%:%1313=1394%:%
+%:%1313=1396%:%
+%:%1313=1397%:%
+%:%1313=1398%:%
+%:%1313=1399%:%
+%:%1313=1400%:%
+%:%1314=1401%:%
+%:%1314=1402%:%
+%:%1315=1403%:%
+%:%1315=1404%:%
+%:%1316=1405%:%
+%:%1316=1406%:%
+%:%1317=1407%:%
+%:%1318=1408%:%
+%:%1319=1409%:%
+%:%1320=1410%:%
+%:%1320=1411%:%
+%:%1321=1412%:%
+%:%1321=1413%:%
+%:%1322=1414%:%
+%:%1323=1415%:%
+%:%1323=1416%:%
+%:%1324=1417%:%
+%:%1325=1418%:%
+%:%1326=1419%:%
+%:%1327=1420%:%
+%:%1328=1421%:%
+%:%1329=1422%:%
+%:%1330=1423%:%
+%:%1331=1424%:%
+%:%1332=1425%:%
+%:%1333=1426%:%
+%:%1334=1427%:%
+%:%1335=1428%:%
+%:%1336=1429%:%
+%:%1337=1430%:%
+%:%1338=1431%:%
+%:%1339=1432%:%
+%:%1340=1433%:%
+%:%1341=1434%:%
+%:%1342=1435%:%
+%:%1343=1436%:%
+%:%1344=1437%:%
+%:%1345=1438%:%
+%:%1346=1439%:%
+%:%1347=1440%:%
+%:%1348=1441%:%
+%:%1349=1442%:%
+%:%1350=1443%:%
+%:%1351=1444%:%
+%:%1352=1445%:%
+%:%1353=1446%:%
+%:%1354=1447%:%
+%:%1355=1448%:%
+%:%1356=1449%:%
+%:%1357=1450%:%
+%:%1358=1451%:%
+%:%1359=1452%:%
+%:%1360=1453%:%
+%:%1361=1454%:%
+%:%1362=1455%:%
+%:%1363=1456%:%
+%:%1364=1457%:%
+%:%1365=1458%:%
+%:%1366=1459%:%
+%:%1367=1460%:%
+%:%1368=1461%:%
+%:%1369=1462%:%
+%:%1370=1463%:%
+%:%1371=1464%:%
+%:%1372=1465%:%
+%:%1373=1466%:%
+%:%1374=1467%:%
+%:%1383=1471%:%
 %:%1395=1478%:%
 %:%1396=1479%:%
 %:%1397=1480%:%
@@ -2898,156 +2979,156 @@
 %:%1399=1482%:%
 %:%1400=1483%:%
 %:%1401=1484%:%
-%:%1402=1485%:%
-%:%1403=1486%:%
-%:%1404=1487%:%
-%:%1405=1488%:%
-%:%1406=1489%:%
-%:%1407=1490%:%
-%:%1408=1491%:%
-%:%1409=1492%:%
-%:%1410=1493%:%
-%:%1411=1494%:%
-%:%1412=1495%:%
-%:%1413=1496%:%
-%:%1414=1497%:%
-%:%1415=1498%:%
-%:%1416=1499%:%
-%:%1417=1500%:%
-%:%1418=1501%:%
-%:%1419=1502%:%
-%:%1420=1503%:%
-%:%1421=1504%:%
-%:%1422=1505%:%
-%:%1423=1506%:%
-%:%1424=1507%:%
-%:%1425=1508%:%
-%:%1426=1509%:%
-%:%1427=1510%:%
-%:%1428=1511%:%
-%:%1429=1512%:%
-%:%1430=1513%:%
-%:%1430=1629%:%
-%:%1431=1630%:%
-%:%1432=1631%:%
-%:%1433=1632%:%
-%:%1434=1633%:%
-%:%1434=1794%:%
-%:%1435=1795%:%
-%:%1436=1796%:%
-%:%1437=1797%:%
-%:%1438=1798%:%
-%:%1439=1799%:%
-%:%1440=1800%:%
-%:%1441=1801%:%
-%:%1442=1802%:%
-%:%1443=1803%:%
-%:%1444=1804%:%
-%:%1445=1805%:%
-%:%1446=1806%:%
-%:%1447=1807%:%
-%:%1448=1808%:%
-%:%1449=1809%:%
-%:%1450=1810%:%
-%:%1451=1811%:%
-%:%1452=1812%:%
-%:%1453=1813%:%
-%:%1453=1814%:%
-%:%1454=1815%:%
-%:%1454=1816%:%
-%:%1454=1817%:%
-%:%1455=1818%:%
-%:%1455=1819%:%
-%:%1456=1820%:%
-%:%1457=1821%:%
-%:%1458=1822%:%
-%:%1459=1823%:%
-%:%1460=1824%:%
-%:%1461=1825%:%
-%:%1462=1826%:%
-%:%1463=1827%:%
-%:%1464=1828%:%
-%:%1465=1829%:%
-%:%1466=1830%:%
-%:%1467=1831%:%
-%:%1468=1832%:%
-%:%1469=1833%:%
-%:%1470=1834%:%
-%:%1471=1835%:%
-%:%1472=1836%:%
-%:%1472=1837%:%
-%:%1473=1838%:%
-%:%1474=1839%:%
-%:%1475=1840%:%
-%:%1475=1841%:%
-%:%1475=1842%:%
-%:%1476=1843%:%
-%:%1477=1844%:%
-%:%1478=1845%:%
-%:%1478=1846%:%
-%:%1479=1847%:%
-%:%1479=1848%:%
-%:%1480=1849%:%
-%:%1481=1850%:%
-%:%1482=1851%:%
-%:%1483=1852%:%
-%:%1484=1853%:%
-%:%1485=1854%:%
-%:%1486=1855%:%
-%:%1487=1856%:%
-%:%1488=1857%:%
-%:%1489=1858%:%
-%:%1490=1859%:%
-%:%1491=1860%:%
-%:%1492=1861%:%
-%:%1493=1862%:%
-%:%1494=1863%:%
-%:%1495=1864%:%
-%:%1496=1865%:%
-%:%1505=1870%:%
-%:%1517=1874%:%
-%:%1518=1875%:%
-%:%1519=1876%:%
-%:%1520=1877%:%
-%:%1521=1878%:%
-%:%1522=1879%:%
-%:%1523=1880%:%
-%:%1524=1881%:%
-%:%1525=1882%:%
-%:%1526=1883%:%
-%:%1527=1884%:%
-%:%1528=1885%:%
-%:%1529=1886%:%
-%:%1530=1887%:%
-%:%1531=1888%:%
-%:%1532=1889%:%
-%:%1533=1890%:%
-%:%1534=1891%:%
-%:%1535=1892%:%
-%:%1536=1893%:%
-%:%1537=1894%:%
-%:%1538=1895%:%
-%:%1539=1896%:%
-%:%1540=1897%:%
-%:%1541=1898%:%
-%:%1542=1899%:%
-%:%1543=1900%:%
-%:%1544=1901%:%
-%:%1545=1902%:%
-%:%1546=1903%:%
-%:%1547=1904%:%
-%:%1548=1905%:%
-%:%1549=1906%:%
-%:%1550=1907%:%
-%:%1551=1908%:%
-%:%1552=1909%:%
-%:%1553=1910%:%
-%:%1554=1911%:%
-%:%1555=1912%:%
-%:%1556=1913%:%
-%:%1557=1914%:%
-%:%1558=1915%:%
-%:%1559=1916%:%
+%:%1410=1489%:%
+%:%1422=1493%:%
+%:%1423=1494%:%
+%:%1424=1495%:%
+%:%1425=1496%:%
+%:%1426=1497%:%
+%:%1427=1498%:%
+%:%1428=1499%:%
+%:%1429=1500%:%
+%:%1430=1501%:%
+%:%1431=1502%:%
+%:%1432=1503%:%
+%:%1433=1504%:%
+%:%1434=1505%:%
+%:%1435=1506%:%
+%:%1436=1507%:%
+%:%1437=1508%:%
+%:%1438=1509%:%
+%:%1439=1510%:%
+%:%1440=1511%:%
+%:%1441=1512%:%
+%:%1442=1513%:%
+%:%1443=1514%:%
+%:%1444=1515%:%
+%:%1445=1516%:%
+%:%1446=1517%:%
+%:%1447=1518%:%
+%:%1448=1519%:%
+%:%1449=1520%:%
+%:%1450=1521%:%
+%:%1451=1522%:%
+%:%1452=1523%:%
+%:%1453=1524%:%
+%:%1454=1525%:%
+%:%1455=1526%:%
+%:%1456=1527%:%
+%:%1457=1528%:%
+%:%1458=1529%:%
+%:%1459=1530%:%
+%:%1460=1531%:%
+%:%1461=1532%:%
+%:%1462=1533%:%
+%:%1463=1534%:%
+%:%1464=1535%:%
+%:%1465=1536%:%
+%:%1466=1537%:%
+%:%1467=1538%:%
+%:%1468=1539%:%
+%:%1469=1540%:%
+%:%1470=1541%:%
+%:%1471=1542%:%
+%:%1472=1543%:%
+%:%1473=1544%:%
+%:%1474=1545%:%
+%:%1475=1546%:%
+%:%1476=1547%:%
+%:%1477=1548%:%
+%:%1478=1549%:%
+%:%1479=1550%:%
+%:%1480=1551%:%
+%:%1481=1552%:%
+%:%1482=1553%:%
+%:%1483=1554%:%
+%:%1484=1555%:%
+%:%1485=1556%:%
+%:%1486=1557%:%
+%:%1487=1558%:%
+%:%1488=1559%:%
+%:%1489=1560%:%
+%:%1490=1561%:%
+%:%1491=1562%:%
+%:%1492=1563%:%
+%:%1493=1564%:%
+%:%1494=1565%:%
+%:%1495=1566%:%
+%:%1496=1567%:%
+%:%1497=1568%:%
+%:%1498=1569%:%
+%:%1499=1570%:%
+%:%1500=1571%:%
+%:%1501=1572%:%
+%:%1502=1573%:%
+%:%1503=1574%:%
+%:%1504=1575%:%
+%:%1505=1576%:%
+%:%1506=1577%:%
+%:%1507=1578%:%
+%:%1508=1579%:%
+%:%1509=1580%:%
+%:%1510=1581%:%
+%:%1511=1582%:%
+%:%1511=1698%:%
+%:%1512=1699%:%
+%:%1513=1700%:%
+%:%1514=1701%:%
+%:%1515=1702%:%
+%:%1515=1863%:%
+%:%1516=1864%:%
+%:%1517=1865%:%
+%:%1518=1866%:%
+%:%1519=1867%:%
+%:%1520=1868%:%
+%:%1521=1869%:%
+%:%1522=1870%:%
+%:%1523=1871%:%
+%:%1524=1872%:%
+%:%1525=1873%:%
+%:%1526=1874%:%
+%:%1527=1875%:%
+%:%1528=1876%:%
+%:%1529=1877%:%
+%:%1530=1878%:%
+%:%1531=1879%:%
+%:%1532=1880%:%
+%:%1533=1881%:%
+%:%1534=1882%:%
+%:%1534=1883%:%
+%:%1535=1884%:%
+%:%1535=1885%:%
+%:%1535=1886%:%
+%:%1536=1887%:%
+%:%1536=1888%:%
+%:%1537=1889%:%
+%:%1538=1890%:%
+%:%1539=1891%:%
+%:%1540=1892%:%
+%:%1541=1893%:%
+%:%1542=1894%:%
+%:%1543=1895%:%
+%:%1544=1896%:%
+%:%1545=1897%:%
+%:%1546=1898%:%
+%:%1547=1899%:%
+%:%1548=1900%:%
+%:%1549=1901%:%
+%:%1550=1902%:%
+%:%1551=1903%:%
+%:%1552=1904%:%
+%:%1553=1905%:%
+%:%1553=1906%:%
+%:%1554=1907%:%
+%:%1555=1908%:%
+%:%1556=1909%:%
+%:%1556=1910%:%
+%:%1556=1911%:%
+%:%1557=1912%:%
+%:%1558=1913%:%
+%:%1559=1914%:%
+%:%1559=1915%:%
+%:%1560=1916%:%
 %:%1560=1917%:%
 %:%1561=1918%:%
 %:%1562=1919%:%
@@ -3058,4 +3139,66 @@
 %:%1567=1924%:%
 %:%1568=1925%:%
 %:%1569=1926%:%
-%:%1582=1932%:%
\ No newline at end of file
+%:%1570=1927%:%
+%:%1571=1928%:%
+%:%1572=1929%:%
+%:%1573=1930%:%
+%:%1574=1931%:%
+%:%1575=1932%:%
+%:%1576=1933%:%
+%:%1577=1934%:%
+%:%1586=1939%:%
+%:%1598=1943%:%
+%:%1599=1944%:%
+%:%1600=1945%:%
+%:%1601=1946%:%
+%:%1602=1947%:%
+%:%1603=1948%:%
+%:%1604=1949%:%
+%:%1605=1950%:%
+%:%1606=1951%:%
+%:%1607=1952%:%
+%:%1608=1953%:%
+%:%1609=1954%:%
+%:%1610=1955%:%
+%:%1611=1956%:%
+%:%1612=1957%:%
+%:%1613=1958%:%
+%:%1614=1959%:%
+%:%1615=1960%:%
+%:%1616=1961%:%
+%:%1617=1962%:%
+%:%1618=1963%:%
+%:%1619=1964%:%
+%:%1620=1965%:%
+%:%1621=1966%:%
+%:%1622=1967%:%
+%:%1623=1968%:%
+%:%1624=1969%:%
+%:%1625=1970%:%
+%:%1626=1971%:%
+%:%1627=1972%:%
+%:%1628=1973%:%
+%:%1629=1974%:%
+%:%1630=1975%:%
+%:%1631=1976%:%
+%:%1632=1977%:%
+%:%1633=1978%:%
+%:%1634=1979%:%
+%:%1635=1980%:%
+%:%1636=1981%:%
+%:%1637=1982%:%
+%:%1638=1983%:%
+%:%1639=1984%:%
+%:%1640=1985%:%
+%:%1641=1986%:%
+%:%1642=1987%:%
+%:%1643=1988%:%
+%:%1644=1989%:%
+%:%1645=1990%:%
+%:%1646=1991%:%
+%:%1647=1992%:%
+%:%1648=1993%:%
+%:%1649=1994%:%
+%:%1650=1995%:%
+%:%1663=2001%:%
\ No newline at end of file
--- a/thys2/Journal/Paper.thy	Mon Nov 01 10:52:44 2021 +0000
+++ b/thys2/Journal/Paper.thy	Tue Nov 02 13:57:59 2021 +0000
@@ -131,16 +131,11 @@
 
 (*>*)
 
-
-
-section \<open>Introduction\<close>
-
-
+section\<open>Core of the proof\<close>
 text \<open>
-
-This works builds on previous work by Ausaf and Urban using 
+This paper builds on previous work by Ausaf and Urban using 
 regular expression'd bit-coded derivatives to do lexing that 
-is both fast and satisfied the POSIX specification.
+is both fast and satisfies the POSIX specification.
 In their work, a bit-coded algorithm introduced by Sulzmann and Lu
 was formally verified in Isabelle, by a very clever use of
 flex function and retrieve to carefully mimic the way a value is 
@@ -148,11 +143,102 @@
 
 In the previous work, Ausaf and Urban established the below equality:
 \begin{lemma}
-@{thm [mode=IfThen] bder_retrieve}
+@{thm [mode=IfThen] MAIN_decode}
+\end{lemma}
+
+This lemma establishes a link with the lexer without bit-codes.
+
+With it we get the correctness of bit-coded algorithm.
+\begin{lemma}
+@{thm [mode=IfThen] blexer_correctness}
 \end{lemma}
 
-This lemma links the derivative of a bit-coded regular expression with
-the regular expression itself before the derivative. 
+However what is not certain is whether we can add simplification
+to the bit-coded algorithm, without breaking the correct lexing output.
+This might sound trivial in the case of producing a YES/NO answer,
+but once we require a lexing output to be produced (which is required
+in applications like compiler front-end, malicious attack domain extraction, 
+etc.), it is not straightforward if we still extract what is needed according
+to the POSIX standard.
+
+By simplification, we mean specifically the following rules:
+
+\begin{center}
+  \begin{tabular}{lcl}
+  @{thm[mode=Axiom] rrewrite.intros(1)[of "bs" "r\<^sub>2"]}\\
+  @{thm[mode=Axiom] rrewrite.intros(2)[of "bs" "r\<^sub>1"]}\\
+  @{thm[mode=Axiom] rrewrite.intros(3)[of  "bs" "bs\<^sub>1" "r\<^sub>1"]}\\
+  @{thm[mode=Rule] rrewrite.intros(4)[of  "r\<^sub>1" "r\<^sub>2" "bs" "r\<^sub>3"]}\\
+  @{thm[mode=Rule] rrewrite.intros(5)[of "bs" "r\<^sub>2"]}\\
+  @{thm[mode=Rule] rrewrite.intros(6)[of "bs" "r\<^sub>1"]}\\
+  @{thm[mode=Axiom] rrewrite.intros(7)[of "bs" "r\<^sub>2"]}\\
+  @{thm[mode=Axiom] rrewrite.intros(8)[of "bs" "r\<^sub>1"]}\\
+  @{thm[mode=Axiom] rrewrite.intros(9)[of "bs" "r\<^sub>2"]}\\
+  @{thm[mode=Axiom] rrewrite.intros(10)[of "bs" "r\<^sub>1"]}\\
+  @{thm[mode=Axiom] rrewrite.intros(11)[of "bs" ]}\\
+  @{thm[mode=Axiom] rrewrite.intros(12)[of "bs" "r\<^sub>1"]}\\
+  @{thm[mode=Rule] rrewrite.intros(13)[of "a\<^sub>1" "a\<^sub>2" "bs" "rs\<^sub>a" "rs\<^sub>b" "rs\<^sub>c"]}\\
+
+  \end{tabular}
+\end{center}
+
+
+And these can be made compact by the following simplification function:
+
+\begin{center}
+  \begin{tabular}{lcl}
+  @{thm (lhs) bsimp.simps(1)[of  "bs" "r\<^sub>1" "r\<^sub>2"]} & $\dn$ & @{thm (rhs) bsimp.simps(1)[of  "bs" "r\<^sub>1" "r\<^sub>2"]}\\
+  @{thm (lhs) bsimp.simps(2)} & $\dn$ & @{thm (rhs) bsimp.simps(2)}\\
+  @{thm (lhs) bsimp.simps(3)} & $\dn$ & @{thm (rhs) bsimp.simps(3)}\\
+  @{thm (lhs) intern.simps(4)[of "r\<^sub>1" "r\<^sub>2"]} & $\dn$ & @{thm (rhs) intern.simps(4)[of "r\<^sub>1" "r\<^sub>2"]}\\
+\end{tabular}
+\end{center}
+
+where the function $\mathit{bsimp_AALTs}$
+
+The core idea of the proof is that two regular expressions,
+if "isomorphic" up to a finite number of rewrite steps, will
+remain "isomorphic" when we take the same sequence of
+derivatives on both of them.
+This can be expressed by the following rewrite relation lemma:
+\begin{lemma}
+@{thm [mode=IfThen] central}
+\end{lemma}
+
+This isomorphic relation implies a property that leads to the 
+correctness result: 
+if two (nullable) regular expressions are "rewritable" in many steps
+from one another, 
+then a call to function $textit{bmkeps}$ gives the same
+bit-sequence :
+\begin{lemma}
+@{thm [mode=IfThen] rewrites_bmkeps}
+\end{lemma}
+
+Given the same bit-sequence, the decode function
+will give out the same value, which is the output
+of both lexers:
+\begin{lemma}
+@{thm blexer_def}
+\end{lemma}
+
+\begin{lemma}
+@{thm blexer_simp_def}
+\end{lemma}
+
+And that yields the correctness result:
+\begin{lemma}
+@{thm blexersimp_correctness}
+\end{lemma}
+
+
+\<close>
+
+section \<open>Introduction\<close>
+
+
+text \<open>
+
 
 Brzozowski \cite{Brzozowski1964} introduced the notion of the {\em
 derivative} @{term "der c r"} of a regular expression \<open>r\<close> w.r.t.\
@@ -332,6 +418,9 @@
 
 \<close>
 
+
+
+
 section \<open>Preliminaries\<close>
 
 text \<open>\noindent Strings in Isabelle/HOL are lists of characters with
--- a/thys2/Journal/SizeBound.tex	Mon Nov 01 10:52:44 2021 +0000
+++ b/thys2/Journal/SizeBound.tex	Tue Nov 02 13:57:59 2021 +0000
@@ -1,7263 +0,0 @@
-%
-\begin{isabellebody}%
-\setisabellecontext{SizeBound}%
-%
-\isadelimtheory
-\isanewline
-%
-\endisadelimtheory
-%
-\isatagtheory
-\isacommand{theory}\isamarkupfalse%
-\ SizeBound\isanewline
-\ \ \isakeyword{imports}\ {\isachardoublequoteopen}Lexer{\isachardoublequoteclose}\ \isanewline
-\isakeyword{begin}%
-\endisatagtheory
-{\isafoldtheory}%
-%
-\isadelimtheory
-%
-\endisadelimtheory
-%
-\isadelimdocument
-%
-\endisadelimdocument
-%
-\isatagdocument
-%
-\isamarkupsection{Bit-Encodings%
-}
-\isamarkuptrue%
-%
-\endisatagdocument
-{\isafolddocument}%
-%
-\isadelimdocument
-%
-\endisadelimdocument
-\isacommand{datatype}\isamarkupfalse%
-\ bit\ {\isacharequal}{\kern0pt}\ Z\ {\isacharbar}{\kern0pt}\ S\isanewline
-\isanewline
-\isacommand{fun}\isamarkupfalse%
-\ code\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}val\ {\isasymRightarrow}\ bit\ list{\isachardoublequoteclose}\isanewline
-\isakeyword{where}\isanewline
-\ \ {\isachardoublequoteopen}code\ Void\ {\isacharequal}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}code\ {\isacharparenleft}{\kern0pt}Char\ c{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}code\ {\isacharparenleft}{\kern0pt}Left\ v{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ Z\ {\isacharhash}{\kern0pt}\ {\isacharparenleft}{\kern0pt}code\ v{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}code\ {\isacharparenleft}{\kern0pt}Right\ v{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ S\ {\isacharhash}{\kern0pt}\ {\isacharparenleft}{\kern0pt}code\ v{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-{\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
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}code\ {\isacharparenleft}{\kern0pt}Stars\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}S{\isacharbrackright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-{\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
-\isanewline
-\isanewline
-\isacommand{fun}\isamarkupfalse%
-\ \isanewline
-\ \ Stars{\isacharunderscore}{\kern0pt}add\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}val\ {\isasymRightarrow}\ val\ {\isasymRightarrow}\ val{\isachardoublequoteclose}\isanewline
-\isakeyword{where}\isanewline
-\ \ {\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
-\isanewline
-\isacommand{function}\isamarkupfalse%
-\isanewline
-\ \ decode{\isacharprime}{\kern0pt}\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}bit\ list\ {\isasymRightarrow}\ rexp\ {\isasymRightarrow}\ {\isacharparenleft}{\kern0pt}val\ {\isacharasterisk}{\kern0pt}\ bit\ list{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-\isakeyword{where}\isanewline
-\ \ {\isachardoublequoteopen}decode{\isacharprime}{\kern0pt}\ ds\ ZERO\ {\isacharequal}{\kern0pt}\ {\isacharparenleft}{\kern0pt}Void{\isacharcomma}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}decode{\isacharprime}{\kern0pt}\ ds\ ONE\ {\isacharequal}{\kern0pt}\ {\isacharparenleft}{\kern0pt}Void{\isacharcomma}{\kern0pt}\ ds{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-{\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
-{\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
-{\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
-{\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
-{\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
-\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 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
-{\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
-{\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
-{\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
-\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 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
-\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ in\ {\isacharparenleft}{\kern0pt}Stars{\isacharunderscore}{\kern0pt}add\ v\ vs{\isacharcomma}{\kern0pt}\ ds{\isacharprime}{\kern0pt}{\isacharprime}{\kern0pt}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-%
-\isadelimproof
-%
-\endisadelimproof
-%
-\isatagproof
-\isacommand{by}\isamarkupfalse%
-\ pat{\isacharunderscore}{\kern0pt}completeness\ auto%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ decode{\isacharprime}{\kern0pt}{\isacharunderscore}{\kern0pt}smaller{\isacharcolon}{\kern0pt}\isanewline
-\ \ \isakeyword{assumes}\ {\isachardoublequoteopen}decode{\isacharprime}{\kern0pt}{\isacharunderscore}{\kern0pt}dom\ {\isacharparenleft}{\kern0pt}ds{\isacharcomma}{\kern0pt}\ r{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-\ \ \isakeyword{shows}\ {\isachardoublequoteopen}length\ {\isacharparenleft}{\kern0pt}snd\ {\isacharparenleft}{\kern0pt}decode{\isacharprime}{\kern0pt}\ ds\ r{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isasymle}\ length\ ds{\isachardoublequoteclose}\isanewline
-%
-\isadelimproof
-%
-\endisadelimproof
-%
-\isatagproof
-\isacommand{using}\isamarkupfalse%
-\ assms\isanewline
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ ds\ r{\isacharparenright}{\kern0pt}\isanewline
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto\ simp\ add{\isacharcolon}{\kern0pt}\ decode{\isacharprime}{\kern0pt}{\isachardot}{\kern0pt}psimps\ split{\isacharcolon}{\kern0pt}\ prod{\isachardot}{\kern0pt}split{\isacharparenright}{\kern0pt}\isanewline
-\isacommand{using}\isamarkupfalse%
-\ dual{\isacharunderscore}{\kern0pt}order{\isachardot}{\kern0pt}trans\ \isacommand{apply}\isamarkupfalse%
-\ blast\isanewline
-\isacommand{by}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}meson\ dual{\isacharunderscore}{\kern0pt}order{\isachardot}{\kern0pt}trans\ le{\isacharunderscore}{\kern0pt}SucI{\isacharparenright}{\kern0pt}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{termination}\isamarkupfalse%
-\ {\isachardoublequoteopen}decode{\isacharprime}{\kern0pt}{\isachardoublequoteclose}\ \ \isanewline
-%
-\isadelimproof
-%
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\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
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto\ dest{\isacharbang}{\kern0pt}{\isacharcolon}{\kern0pt}\ decode{\isacharprime}{\kern0pt}{\isacharunderscore}{\kern0pt}smaller{\isacharparenright}{\kern0pt}\isanewline
-\isacommand{by}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}metis\ less{\isacharunderscore}{\kern0pt}Suc{\isacharunderscore}{\kern0pt}eq{\isacharunderscore}{\kern0pt}le\ snd{\isacharunderscore}{\kern0pt}conv{\isacharparenright}{\kern0pt}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{definition}\isamarkupfalse%
-\isanewline
-\ \ decode\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}bit\ list\ {\isasymRightarrow}\ rexp\ {\isasymRightarrow}\ val\ option{\isachardoublequoteclose}\isanewline
-\isakeyword{where}\isanewline
-\ \ {\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
-\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ in\ {\isacharparenleft}{\kern0pt}if\ ds{\isacharprime}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ then\ Some\ v\ else\ None{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ decode{\isacharprime}{\kern0pt}{\isacharunderscore}{\kern0pt}code{\isacharunderscore}{\kern0pt}Stars{\isacharcolon}{\kern0pt}\isanewline
-\ \ \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
-\ \ \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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{using}\isamarkupfalse%
-\ assms\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ vs{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ decode{\isacharprime}{\kern0pt}{\isacharunderscore}{\kern0pt}code{\isacharcolon}{\kern0pt}\isanewline
-\ \ \isakeyword{assumes}\ {\isachardoublequoteopen}{\isasymTurnstile}\ v\ {\isacharcolon}{\kern0pt}\ r{\isachardoublequoteclose}\isanewline
-\ \ \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
-%
-\isadelimproof
-%
-\endisadelimproof
-%
-\isatagproof
-\isacommand{using}\isamarkupfalse%
-\ assms\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ v\ r\ arbitrary{\isacharcolon}{\kern0pt}\ ds{\isacharparenright}{\kern0pt}\ \isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ decode{\isacharprime}{\kern0pt}{\isacharunderscore}{\kern0pt}code{\isacharunderscore}{\kern0pt}Stars\ \isacommand{by}\isamarkupfalse%
-\ blast%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ decode{\isacharunderscore}{\kern0pt}code{\isacharcolon}{\kern0pt}\isanewline
-\ \ \isakeyword{assumes}\ {\isachardoublequoteopen}{\isasymTurnstile}\ v\ {\isacharcolon}{\kern0pt}\ r{\isachardoublequoteclose}\isanewline
-\ \ \isakeyword{shows}\ {\isachardoublequoteopen}decode\ {\isacharparenleft}{\kern0pt}code\ v{\isacharparenright}{\kern0pt}\ r\ {\isacharequal}{\kern0pt}\ Some\ v{\isachardoublequoteclose}\isanewline
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{using}\isamarkupfalse%
-\ assms\ \isacommand{unfolding}\isamarkupfalse%
-\ decode{\isacharunderscore}{\kern0pt}def\isanewline
-\ \ \isacommand{by}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}smt\ append{\isacharunderscore}{\kern0pt}Nil{\isadigit{2}}\ decode{\isacharprime}{\kern0pt}{\isacharunderscore}{\kern0pt}code\ old{\isachardot}{\kern0pt}prod{\isachardot}{\kern0pt}case{\isacharparenright}{\kern0pt}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-%
-\endisadelimproof
-%
-\isadelimdocument
-%
-\endisadelimdocument
-%
-\isatagdocument
-%
-\isamarkupsection{Annotated Regular Expressions%
-}
-\isamarkuptrue%
-%
-\endisatagdocument
-{\isafolddocument}%
-%
-\isadelimdocument
-%
-\endisadelimdocument
-\isacommand{datatype}\isamarkupfalse%
-\ arexp\ {\isacharequal}{\kern0pt}\ \isanewline
-\ \ AZERO\isanewline
-{\isacharbar}{\kern0pt}\ AONE\ {\isachardoublequoteopen}bit\ list{\isachardoublequoteclose}\isanewline
-{\isacharbar}{\kern0pt}\ ACHAR\ {\isachardoublequoteopen}bit\ list{\isachardoublequoteclose}\ char\isanewline
-{\isacharbar}{\kern0pt}\ ASEQ\ {\isachardoublequoteopen}bit\ list{\isachardoublequoteclose}\ arexp\ arexp\isanewline
-{\isacharbar}{\kern0pt}\ AALTs\ {\isachardoublequoteopen}bit\ list{\isachardoublequoteclose}\ {\isachardoublequoteopen}arexp\ list{\isachardoublequoteclose}\isanewline
-{\isacharbar}{\kern0pt}\ ASTAR\ {\isachardoublequoteopen}bit\ list{\isachardoublequoteclose}\ arexp\isanewline
-\isanewline
-\isacommand{abbreviation}\isamarkupfalse%
-\isanewline
-\ \ {\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
-\isanewline
-\isacommand{fun}\isamarkupfalse%
-\ asize\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}arexp\ {\isasymRightarrow}\ nat{\isachardoublequoteclose}\ \isakeyword{where}\isanewline
-\ \ {\isachardoublequoteopen}asize\ AZERO\ {\isacharequal}{\kern0pt}\ {\isadigit{1}}{\isachardoublequoteclose}\isanewline
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}asize\ {\isacharparenleft}{\kern0pt}AONE\ cs{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isadigit{1}}{\isachardoublequoteclose}\ \isanewline
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}asize\ {\isacharparenleft}{\kern0pt}ACHAR\ cs\ c{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isadigit{1}}{\isachardoublequoteclose}\isanewline
-{\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
-{\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
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}asize\ {\isacharparenleft}{\kern0pt}ASTAR\ cs\ r{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ Suc\ {\isacharparenleft}{\kern0pt}asize\ r{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-\isanewline
-\isacommand{fun}\isamarkupfalse%
-\ \isanewline
-\ \ erase\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}arexp\ {\isasymRightarrow}\ rexp{\isachardoublequoteclose}\isanewline
-\isakeyword{where}\isanewline
-\ \ {\isachardoublequoteopen}erase\ AZERO\ {\isacharequal}{\kern0pt}\ ZERO{\isachardoublequoteclose}\isanewline
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}erase\ {\isacharparenleft}{\kern0pt}AONE\ {\isacharunderscore}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ ONE{\isachardoublequoteclose}\isanewline
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}erase\ {\isacharparenleft}{\kern0pt}ACHAR\ {\isacharunderscore}{\kern0pt}\ c{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ CH\ c{\isachardoublequoteclose}\isanewline
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}erase\ {\isacharparenleft}{\kern0pt}AALTs\ {\isacharunderscore}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ ZERO{\isachardoublequoteclose}\isanewline
-{\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
-{\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
-{\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
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}erase\ {\isacharparenleft}{\kern0pt}ASTAR\ {\isacharunderscore}{\kern0pt}\ r{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ STAR\ {\isacharparenleft}{\kern0pt}erase\ r{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-\isanewline
-\isanewline
-\isanewline
-\isanewline
-\isacommand{fun}\isamarkupfalse%
-\ nonalt\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}arexp\ {\isasymRightarrow}\ bool{\isachardoublequoteclose}\isanewline
-\ \ \isakeyword{where}\isanewline
-\ \ {\isachardoublequoteopen}nonalt\ {\isacharparenleft}{\kern0pt}AALTs\ bs{\isadigit{2}}\ rs{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ False{\isachardoublequoteclose}\isanewline
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}nonalt\ r\ {\isacharequal}{\kern0pt}\ True{\isachardoublequoteclose}\isanewline
-\isanewline
-\isanewline
-\isacommand{fun}\isamarkupfalse%
-\ good\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}arexp\ {\isasymRightarrow}\ bool{\isachardoublequoteclose}\ \isakeyword{where}\isanewline
-\ \ {\isachardoublequoteopen}good\ AZERO\ {\isacharequal}{\kern0pt}\ False{\isachardoublequoteclose}\isanewline
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}good\ {\isacharparenleft}{\kern0pt}AONE\ cs{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ True{\isachardoublequoteclose}\ \isanewline
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}good\ {\isacharparenleft}{\kern0pt}ACHAR\ cs\ c{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ True{\isachardoublequoteclose}\isanewline
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}good\ {\isacharparenleft}{\kern0pt}AALTs\ cs\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ False{\isachardoublequoteclose}\isanewline
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}good\ {\isacharparenleft}{\kern0pt}AALTs\ cs\ {\isacharbrackleft}{\kern0pt}r{\isacharbrackright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ False{\isachardoublequoteclose}\isanewline
-{\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
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}good\ {\isacharparenleft}{\kern0pt}ASEQ\ {\isacharunderscore}{\kern0pt}\ AZERO\ {\isacharunderscore}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ False{\isachardoublequoteclose}\isanewline
-{\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
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}good\ {\isacharparenleft}{\kern0pt}ASEQ\ {\isacharunderscore}{\kern0pt}\ {\isacharunderscore}{\kern0pt}\ AZERO{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ False{\isachardoublequoteclose}\isanewline
-{\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
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}good\ {\isacharparenleft}{\kern0pt}ASTAR\ cs\ r{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ True{\isachardoublequoteclose}\isanewline
-\isanewline
-\isanewline
-\isanewline
-\isanewline
-\isacommand{fun}\isamarkupfalse%
-\ fuse\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}bit\ list\ {\isasymRightarrow}\ arexp\ {\isasymRightarrow}\ arexp{\isachardoublequoteclose}\ \isakeyword{where}\isanewline
-\ \ {\isachardoublequoteopen}fuse\ bs\ AZERO\ {\isacharequal}{\kern0pt}\ AZERO{\isachardoublequoteclose}\isanewline
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}fuse\ bs\ {\isacharparenleft}{\kern0pt}AONE\ cs{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ AONE\ {\isacharparenleft}{\kern0pt}bs\ {\isacharat}{\kern0pt}\ cs{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\ \isanewline
-{\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
-{\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
-{\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
-{\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
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ fuse{\isacharunderscore}{\kern0pt}append{\isacharcolon}{\kern0pt}\isanewline
-\ \ \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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ r{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isacommand{fun}\isamarkupfalse%
-\ intern\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}rexp\ {\isasymRightarrow}\ arexp{\isachardoublequoteclose}\ \isakeyword{where}\isanewline
-\ \ {\isachardoublequoteopen}intern\ ZERO\ {\isacharequal}{\kern0pt}\ AZERO{\isachardoublequoteclose}\isanewline
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}intern\ ONE\ {\isacharequal}{\kern0pt}\ AONE\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}intern\ {\isacharparenleft}{\kern0pt}CH\ c{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ ACHAR\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ c{\isachardoublequoteclose}\isanewline
-{\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
-\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {\isacharparenleft}{\kern0pt}fuse\ {\isacharbrackleft}{\kern0pt}S{\isacharbrackright}{\kern0pt}\ \ {\isacharparenleft}{\kern0pt}intern\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-{\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
-{\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
-\isanewline
-\isanewline
-\isacommand{fun}\isamarkupfalse%
-\ retrieve\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}arexp\ {\isasymRightarrow}\ val\ {\isasymRightarrow}\ bit\ list{\isachardoublequoteclose}\ \isakeyword{where}\isanewline
-\ \ {\isachardoublequoteopen}retrieve\ {\isacharparenleft}{\kern0pt}AONE\ bs{\isacharparenright}{\kern0pt}\ Void\ {\isacharequal}{\kern0pt}\ bs{\isachardoublequoteclose}\isanewline
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}retrieve\ {\isacharparenleft}{\kern0pt}ACHAR\ bs\ c{\isacharparenright}{\kern0pt}\ {\isacharparenleft}{\kern0pt}Char\ d{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ bs{\isachardoublequoteclose}\isanewline
-{\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
-{\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
-{\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
-{\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
-{\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
-{\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
-\ \ \ \ \ 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
-\isanewline
-\isanewline
-\isanewline
-\isacommand{fun}\isamarkupfalse%
-\isanewline
-\ bnullable\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}arexp\ {\isasymRightarrow}\ bool{\isachardoublequoteclose}\isanewline
-\isakeyword{where}\isanewline
-\ \ {\isachardoublequoteopen}bnullable\ {\isacharparenleft}{\kern0pt}AZERO{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ False{\isachardoublequoteclose}\isanewline
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}bnullable\ {\isacharparenleft}{\kern0pt}AONE\ bs{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ True{\isachardoublequoteclose}\isanewline
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}bnullable\ {\isacharparenleft}{\kern0pt}ACHAR\ bs\ c{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ False{\isachardoublequoteclose}\isanewline
-{\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
-{\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
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}bnullable\ {\isacharparenleft}{\kern0pt}ASTAR\ bs\ r{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ True{\isachardoublequoteclose}\isanewline
-\isanewline
-\isacommand{fun}\isamarkupfalse%
-\ \isanewline
-\ \ bmkeps\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}arexp\ {\isasymRightarrow}\ bit\ list{\isachardoublequoteclose}\isanewline
-\isakeyword{where}\isanewline
-\ \ {\isachardoublequoteopen}bmkeps{\isacharparenleft}{\kern0pt}AONE\ bs{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ bs{\isachardoublequoteclose}\isanewline
-{\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
-{\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
-{\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
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}bmkeps{\isacharparenleft}{\kern0pt}ASTAR\ bs\ r{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ bs\ {\isacharat}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}S{\isacharbrackright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-\isanewline
-\isanewline
-\isacommand{fun}\isamarkupfalse%
-\isanewline
-\ bder\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}char\ {\isasymRightarrow}\ arexp\ {\isasymRightarrow}\ arexp{\isachardoublequoteclose}\isanewline
-\isakeyword{where}\isanewline
-\ \ {\isachardoublequoteopen}bder\ c\ {\isacharparenleft}{\kern0pt}AZERO{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ AZERO{\isachardoublequoteclose}\isanewline
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}bder\ c\ {\isacharparenleft}{\kern0pt}AONE\ bs{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ AZERO{\isachardoublequoteclose}\isanewline
-{\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
-{\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
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}bder\ c\ {\isacharparenleft}{\kern0pt}ASEQ\ bs\ r{\isadigit{1}}\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ \isanewline
-\ \ \ \ \ {\isacharparenleft}{\kern0pt}if\ bnullable\ r{\isadigit{1}}\isanewline
-\ \ \ \ \ \ 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
-\ \ \ \ \ \ else\ ASEQ\ bs\ {\isacharparenleft}{\kern0pt}bder\ c\ r{\isadigit{1}}{\isacharparenright}{\kern0pt}\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-{\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
-\isanewline
-\isanewline
-\isacommand{fun}\isamarkupfalse%
-\ \isanewline
-\ \ bders\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}arexp\ {\isasymRightarrow}\ string\ {\isasymRightarrow}\ arexp{\isachardoublequoteclose}\isanewline
-\isakeyword{where}\isanewline
-\ \ {\isachardoublequoteopen}bders\ r\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ r{\isachardoublequoteclose}\isanewline
-{\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
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ bders{\isacharunderscore}{\kern0pt}append{\isacharcolon}{\kern0pt}\isanewline
-\ \ {\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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ s{\isadigit{1}}\ arbitrary{\isacharcolon}{\kern0pt}\ r\ s{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharunderscore}{\kern0pt}all{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ bnullable{\isacharunderscore}{\kern0pt}correctness{\isacharcolon}{\kern0pt}\isanewline
-\ \ \isakeyword{shows}\ {\isachardoublequoteopen}nullable\ {\isacharparenleft}{\kern0pt}erase\ r{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ bnullable\ r{\isachardoublequoteclose}\isanewline
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ r\ rule{\isacharcolon}{\kern0pt}\ erase{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharunderscore}{\kern0pt}all{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ erase{\isacharunderscore}{\kern0pt}fuse{\isacharcolon}{\kern0pt}\isanewline
-\ \ \isakeyword{shows}\ {\isachardoublequoteopen}erase\ {\isacharparenleft}{\kern0pt}fuse\ bs\ r{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ erase\ r{\isachardoublequoteclose}\isanewline
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ r\ rule{\isacharcolon}{\kern0pt}\ erase{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharunderscore}{\kern0pt}all{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{thm}\isamarkupfalse%
-\ Posix{\isachardot}{\kern0pt}induct\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ erase{\isacharunderscore}{\kern0pt}intern\ {\isacharbrackleft}{\kern0pt}simp{\isacharbrackright}{\kern0pt}{\isacharcolon}{\kern0pt}\isanewline
-\ \ \isakeyword{shows}\ {\isachardoublequoteopen}erase\ {\isacharparenleft}{\kern0pt}intern\ r{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ r{\isachardoublequoteclose}\isanewline
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ r{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharunderscore}{\kern0pt}all\ add{\isacharcolon}{\kern0pt}\ erase{\isacharunderscore}{\kern0pt}fuse{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ erase{\isacharunderscore}{\kern0pt}bder\ {\isacharbrackleft}{\kern0pt}simp{\isacharbrackright}{\kern0pt}{\isacharcolon}{\kern0pt}\isanewline
-\ \ \isakeyword{shows}\ {\isachardoublequoteopen}erase\ {\isacharparenleft}{\kern0pt}bder\ a\ r{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ der\ a\ {\isacharparenleft}{\kern0pt}erase\ r{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ r\ rule{\isacharcolon}{\kern0pt}\ erase{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharunderscore}{\kern0pt}all\ add{\isacharcolon}{\kern0pt}\ erase{\isacharunderscore}{\kern0pt}fuse\ bnullable{\isacharunderscore}{\kern0pt}correctness{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ erase{\isacharunderscore}{\kern0pt}bders\ {\isacharbrackleft}{\kern0pt}simp{\isacharbrackright}{\kern0pt}{\isacharcolon}{\kern0pt}\isanewline
-\ \ \isakeyword{shows}\ {\isachardoublequoteopen}erase\ {\isacharparenleft}{\kern0pt}bders\ r\ s{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ ders\ s\ {\isacharparenleft}{\kern0pt}erase\ r{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ s\ arbitrary{\isacharcolon}{\kern0pt}\ r\ {\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharunderscore}{\kern0pt}all{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ retrieve{\isacharunderscore}{\kern0pt}encode{\isacharunderscore}{\kern0pt}STARS{\isacharcolon}{\kern0pt}\isanewline
-\ \ \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
-\ \ \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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{using}\isamarkupfalse%
-\ assms\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ vs{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharunderscore}{\kern0pt}all{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ retrieve{\isacharunderscore}{\kern0pt}fuse{\isadigit{2}}{\isacharcolon}{\kern0pt}\isanewline
-\ \ \isakeyword{assumes}\ {\isachardoublequoteopen}{\isasymTurnstile}\ v\ {\isacharcolon}{\kern0pt}\ {\isacharparenleft}{\kern0pt}erase\ r{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-\ \ \isakeyword{shows}\ {\isachardoublequoteopen}retrieve\ {\isacharparenleft}{\kern0pt}fuse\ bs\ r{\isacharparenright}{\kern0pt}\ v\ {\isacharequal}{\kern0pt}\ bs\ {\isacharat}{\kern0pt}\ retrieve\ r\ v{\isachardoublequoteclose}\isanewline
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{using}\isamarkupfalse%
-\ assms\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ r\ arbitrary{\isacharcolon}{\kern0pt}\ v\ bs{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto\ elim{\isacharcolon}{\kern0pt}\ Prf{\isacharunderscore}{\kern0pt}elims{\isacharparenright}{\kern0pt}{\isacharbrackleft}{\kern0pt}{\isadigit{4}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \ \isacommand{defer}\isamarkupfalse%
-\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ retrieve{\isacharunderscore}{\kern0pt}encode{\isacharunderscore}{\kern0pt}STARS\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto\ elim{\isacharbang}{\kern0pt}{\isacharcolon}{\kern0pt}\ Prf{\isacharunderscore}{\kern0pt}elims{\isacharparenright}{\kern0pt}{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ vs{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ x{\isadigit{2}}a{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto\ elim{\isacharbang}{\kern0pt}{\isacharcolon}{\kern0pt}\ Prf{\isacharunderscore}{\kern0pt}elims{\isacharparenright}{\kern0pt}{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ list{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto\ elim{\isacharbang}{\kern0pt}{\isacharcolon}{\kern0pt}\ Prf{\isacharunderscore}{\kern0pt}elims{\isacharparenright}{\kern0pt}{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ retrieve{\isacharunderscore}{\kern0pt}fuse{\isacharcolon}{\kern0pt}\isanewline
-\ \ \isakeyword{assumes}\ {\isachardoublequoteopen}{\isasymTurnstile}\ v\ {\isacharcolon}{\kern0pt}\ r{\isachardoublequoteclose}\isanewline
-\ \ \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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{using}\isamarkupfalse%
-\ assms\ \isanewline
-\ \ \isacommand{by}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}simp{\isacharunderscore}{\kern0pt}all\ add{\isacharcolon}{\kern0pt}\ retrieve{\isacharunderscore}{\kern0pt}fuse{\isadigit{2}}{\isacharparenright}{\kern0pt}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ retrieve{\isacharunderscore}{\kern0pt}code{\isacharcolon}{\kern0pt}\isanewline
-\ \ \isakeyword{assumes}\ {\isachardoublequoteopen}{\isasymTurnstile}\ v\ {\isacharcolon}{\kern0pt}\ r{\isachardoublequoteclose}\isanewline
-\ \ \isakeyword{shows}\ {\isachardoublequoteopen}code\ v\ {\isacharequal}{\kern0pt}\ retrieve\ {\isacharparenleft}{\kern0pt}intern\ r{\isacharparenright}{\kern0pt}\ v{\isachardoublequoteclose}\isanewline
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{using}\isamarkupfalse%
-\ assms\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ v\ r\ {\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharunderscore}{\kern0pt}all\ add{\isacharcolon}{\kern0pt}\ retrieve{\isacharunderscore}{\kern0pt}fuse\ retrieve{\isacharunderscore}{\kern0pt}encode{\isacharunderscore}{\kern0pt}STARS{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ bnullable{\isacharunderscore}{\kern0pt}Hdbmkeps{\isacharunderscore}{\kern0pt}Hd{\isacharcolon}{\kern0pt}\isanewline
-\ \ \isakeyword{assumes}\ {\isachardoublequoteopen}bnullable\ a{\isachardoublequoteclose}\ \isanewline
-\ \ \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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{using}\isamarkupfalse%
-\ assms\isanewline
-\ \ \isacommand{by}\isamarkupfalse%
-\ {\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}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ r{\isadigit{1}}{\isacharcolon}{\kern0pt}\isanewline
-\ \ \isakeyword{assumes}\ {\isachardoublequoteopen}{\isasymnot}\ bnullable\ a{\isachardoublequoteclose}\ {\isachardoublequoteopen}bnullable\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-\ \ \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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{using}\isamarkupfalse%
-\ assms\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ rs{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ r{\isadigit{2}}{\isacharcolon}{\kern0pt}\isanewline
-\ \ \isakeyword{assumes}\ {\isachardoublequoteopen}x\ {\isasymin}\ set\ rs{\isachardoublequoteclose}\ {\isachardoublequoteopen}bnullable\ x{\isachardoublequoteclose}\isanewline
-\ \ \isakeyword{shows}\ {\isachardoublequoteopen}bnullable\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{using}\isamarkupfalse%
-\ assms\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ rs{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ \ r{\isadigit{3}}{\isacharcolon}{\kern0pt}\isanewline
-\ \ \isakeyword{assumes}\ {\isachardoublequoteopen}{\isasymnot}\ bnullable\ r{\isachardoublequoteclose}\ \isanewline
-\ \ \ \ \ \ \ \ \ \ {\isachardoublequoteopen}\ {\isasymexists}\ x\ {\isasymin}\ set\ rs{\isachardot}{\kern0pt}\ bnullable\ x{\isachardoublequoteclose}\isanewline
-\ \ \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
-\ \ \ \ \ \ \ \ \ 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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{using}\isamarkupfalse%
-\ assms\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ rs\ arbitrary{\isacharcolon}{\kern0pt}\ r\ bs{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ bnullable{\isacharunderscore}{\kern0pt}correctness\ \isacommand{apply}\isamarkupfalse%
-\ blast\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto\ simp\ add{\isacharcolon}{\kern0pt}\ bnullable{\isacharunderscore}{\kern0pt}correctness\ mkeps{\isacharunderscore}{\kern0pt}nullable\ retrieve{\isacharunderscore}{\kern0pt}fuse{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subst\ retrieve{\isacharunderscore}{\kern0pt}fuse{\isadigit{2}}{\isacharbrackleft}{\kern0pt}symmetric{\isacharbrackright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ {\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
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bnullable\ a{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ {\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
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}drule{\isacharunderscore}{\kern0pt}tac\ x{\isacharequal}{\kern0pt}{\isachardoublequoteopen}a{\isachardoublequoteclose}\ \isakeyword{in}\ meta{\isacharunderscore}{\kern0pt}spec{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}drule{\isacharunderscore}{\kern0pt}tac\ x{\isacharequal}{\kern0pt}{\isachardoublequoteopen}bs{\isachardoublequoteclose}\ \isakeyword{in}\ meta{\isacharunderscore}{\kern0pt}spec{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}drule\ meta{\isacharunderscore}{\kern0pt}mp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}drule\ meta{\isacharunderscore}{\kern0pt}mp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subst\ retrieve{\isacharunderscore}{\kern0pt}fuse{\isadigit{2}}{\isacharbrackleft}{\kern0pt}symmetric{\isacharbrackright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ rs{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ bnullable{\isacharunderscore}{\kern0pt}correctness{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ {\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
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ bnullable{\isacharunderscore}{\kern0pt}correctness{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ {\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
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ t{\isacharcolon}{\kern0pt}\ \isanewline
-\ \ \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
-\ \ \ \ \ \ \ \ \ \ {\isachardoublequoteopen}nullable\ {\isacharparenleft}{\kern0pt}erase\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-\ \ \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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{using}\isamarkupfalse%
-\ assms\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ rs\ arbitrary{\isacharcolon}{\kern0pt}\ bs{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto\ simp\ add{\isacharcolon}{\kern0pt}\ bnullable{\isacharunderscore}{\kern0pt}correctness{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ rs{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto\ simp\ add{\isacharcolon}{\kern0pt}\ bnullable{\isacharunderscore}{\kern0pt}correctness{\isacharparenright}{\kern0pt}{\isacharbrackleft}{\kern0pt}{\isadigit{2}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subst\ r{\isadigit{1}}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}rule\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}assumption{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}drule{\isacharunderscore}{\kern0pt}tac\ x{\isacharequal}{\kern0pt}{\isachardoublequoteopen}bs{\isachardoublequoteclose}\ \isakeyword{in}\ meta{\isacharunderscore}{\kern0pt}spec{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}drule\ meta{\isacharunderscore}{\kern0pt}mp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \ \isacommand{prefer}\isamarkupfalse%
-\ {\isadigit{2}}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bnullable\ a{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subst\ bnullable{\isacharunderscore}{\kern0pt}Hdbmkeps{\isacharunderscore}{\kern0pt}Hd{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ blast\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}nullable\ {\isacharparenleft}{\kern0pt}erase\ a{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{prefer}\isamarkupfalse%
-\ {\isadigit{2}}\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ bnullable{\isacharunderscore}{\kern0pt}correctness\ \isacommand{apply}\isamarkupfalse%
-\ blast\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ {\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
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subst\ r{\isadigit{1}}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ r{\isadigit{2}}\ \isacommand{apply}\isamarkupfalse%
-\ blast\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}drule{\isacharunderscore}{\kern0pt}tac\ x{\isacharequal}{\kern0pt}{\isachardoublequoteopen}bs{\isachardoublequoteclose}\ \isakeyword{in}\ meta{\isacharunderscore}{\kern0pt}spec{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}drule\ meta{\isacharunderscore}{\kern0pt}mp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ r{\isadigit{3}}\ \isacommand{apply}\isamarkupfalse%
-\ blast\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ r{\isadigit{3}}\ \isacommand{by}\isamarkupfalse%
-\ blast%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ bmkeps{\isacharunderscore}{\kern0pt}retrieve{\isacharcolon}{\kern0pt}\isanewline
-\ \ \isakeyword{assumes}\ {\isachardoublequoteopen}nullable\ {\isacharparenleft}{\kern0pt}erase\ r{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-\ \ \isakeyword{shows}\ {\isachardoublequoteopen}bmkeps\ r\ {\isacharequal}{\kern0pt}\ retrieve\ r\ {\isacharparenleft}{\kern0pt}mkeps\ {\isacharparenleft}{\kern0pt}erase\ r{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{using}\isamarkupfalse%
-\ assms\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ r{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{defer}\isamarkupfalse%
-\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}rule\ t{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ bder{\isacharunderscore}{\kern0pt}retrieve{\isacharcolon}{\kern0pt}\isanewline
-\ \ \isakeyword{assumes}\ {\isachardoublequoteopen}{\isasymTurnstile}\ v\ {\isacharcolon}{\kern0pt}\ der\ c\ {\isacharparenleft}{\kern0pt}erase\ r{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-\ \ \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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{using}\isamarkupfalse%
-\ assms\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ r\ arbitrary{\isacharcolon}{\kern0pt}\ v\ rule{\isacharcolon}{\kern0pt}\ erase{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}erule\ Prf{\isacharunderscore}{\kern0pt}elims{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}erule\ Prf{\isacharunderscore}{\kern0pt}elims{\isacharparenright}{\kern0pt}\ \isanewline
-\ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}c\ {\isacharequal}{\kern0pt}\ ca{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}erule\ Prf{\isacharunderscore}{\kern0pt}elims{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}erule\ Prf{\isacharunderscore}{\kern0pt}elims{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}erule\ Prf{\isacharunderscore}{\kern0pt}elims{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}rename{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}r\isactrlsub {\isadigit{1}}{\isachardoublequoteclose}\ {\isachardoublequoteopen}r\isactrlsub {\isadigit{2}}{\isachardoublequoteclose}\ rs\ v{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}erule\ Prf{\isacharunderscore}{\kern0pt}elims{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ rs{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ {\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
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}nullable\ {\isacharparenleft}{\kern0pt}erase\ r{\isadigit{1}}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}erule\ Prf{\isacharunderscore}{\kern0pt}elims{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bnullable\ r{\isadigit{1}}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{prefer}\isamarkupfalse%
-\ {\isadigit{2}}\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ bnullable{\isacharunderscore}{\kern0pt}correctness\ \isacommand{apply}\isamarkupfalse%
-\ blast\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}erule\ Prf{\isacharunderscore}{\kern0pt}elims{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bnullable\ r{\isadigit{1}}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{prefer}\isamarkupfalse%
-\ {\isadigit{2}}\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ bnullable{\isacharunderscore}{\kern0pt}correctness\ \isacommand{apply}\isamarkupfalse%
-\ blast\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ retrieve{\isacharunderscore}{\kern0pt}fuse{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ bmkeps{\isacharunderscore}{\kern0pt}retrieve{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}erule\ Prf{\isacharunderscore}{\kern0pt}elims{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ bnullable{\isacharunderscore}{\kern0pt}correctness\ \isacommand{apply}\isamarkupfalse%
-\ blast\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}rename{\isacharunderscore}{\kern0pt}tac\ bs\ r\ v{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}erule\ Prf{\isacharunderscore}{\kern0pt}elims{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}clarify{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}erule\ Prf{\isacharunderscore}{\kern0pt}elims{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}clarify{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subst\ injval{\isachardot}{\kern0pt}simps{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp\ del{\isacharcolon}{\kern0pt}\ retrieve{\isachardot}{\kern0pt}simps{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subst\ retrieve{\isachardot}{\kern0pt}simps{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subst\ retrieve{\isachardot}{\kern0pt}simps{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ retrieve{\isacharunderscore}{\kern0pt}fuse{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\ \ \isanewline
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ MAIN{\isacharunderscore}{\kern0pt}decode{\isacharcolon}{\kern0pt}\isanewline
-\ \ \isakeyword{assumes}\ {\isachardoublequoteopen}{\isasymTurnstile}\ v\ {\isacharcolon}{\kern0pt}\ ders\ s\ r{\isachardoublequoteclose}\isanewline
-\ \ \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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{using}\isamarkupfalse%
-\ assms\isanewline
-\isacommand{proof}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}induct\ s\ arbitrary{\isacharcolon}{\kern0pt}\ v\ rule{\isacharcolon}{\kern0pt}\ rev{\isacharunderscore}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{case}\isamarkupfalse%
-\ Nil\isanewline
-\ \ \isacommand{have}\isamarkupfalse%
-\ {\isachardoublequoteopen}{\isasymTurnstile}\ v\ {\isacharcolon}{\kern0pt}\ ders\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ r{\isachardoublequoteclose}\ \isacommand{by}\isamarkupfalse%
-\ fact\isanewline
-\ \ \isacommand{then}\isamarkupfalse%
-\ \isacommand{have}\isamarkupfalse%
-\ {\isachardoublequoteopen}{\isasymTurnstile}\ v\ {\isacharcolon}{\kern0pt}\ r{\isachardoublequoteclose}\ \isacommand{by}\isamarkupfalse%
-\ simp\isanewline
-\ \ \isacommand{then}\isamarkupfalse%
-\ \isacommand{have}\isamarkupfalse%
-\ {\isachardoublequoteopen}Some\ v\ {\isacharequal}{\kern0pt}\ decode\ {\isacharparenleft}{\kern0pt}retrieve\ {\isacharparenleft}{\kern0pt}intern\ r{\isacharparenright}{\kern0pt}\ v{\isacharparenright}{\kern0pt}\ r{\isachardoublequoteclose}\isanewline
-\ \ \ \ \isacommand{using}\isamarkupfalse%
-\ decode{\isacharunderscore}{\kern0pt}code\ retrieve{\isacharunderscore}{\kern0pt}code\ \isacommand{by}\isamarkupfalse%
-\ auto\isanewline
-\ \ \isacommand{then}\isamarkupfalse%
-\ \isacommand{show}\isamarkupfalse%
-\ {\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
-\ \ \ \ \isacommand{by}\isamarkupfalse%
-\ simp\isanewline
-\isacommand{next}\isamarkupfalse%
-\isanewline
-\ \ \isacommand{case}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}snoc\ c\ s\ v{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{have}\isamarkupfalse%
-\ IH{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}{\isasymAnd}v{\isachardot}{\kern0pt}\ {\isasymTurnstile}\ v\ {\isacharcolon}{\kern0pt}\ ders\ s\ r\ {\isasymLongrightarrow}\ \isanewline
-\ \ \ \ \ 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%
-\ fact\isanewline
-\ \ \isacommand{have}\isamarkupfalse%
-\ 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%
-\ fact\isanewline
-\ \ \isacommand{then}\isamarkupfalse%
-\ \isacommand{have}\isamarkupfalse%
-\ asm{\isadigit{2}}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}{\isasymTurnstile}\ injval\ {\isacharparenleft}{\kern0pt}ders\ s\ r{\isacharparenright}{\kern0pt}\ c\ v\ {\isacharcolon}{\kern0pt}\ ders\ s\ r{\isachardoublequoteclose}\ \isanewline
-\ \ \ \ \isacommand{by}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ Prf{\isacharunderscore}{\kern0pt}injval\ ders{\isacharunderscore}{\kern0pt}append{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{have}\isamarkupfalse%
-\ {\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
-\ \ \ \ \isacommand{by}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ flex{\isacharunderscore}{\kern0pt}append{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{also}\isamarkupfalse%
-\ \isacommand{have}\isamarkupfalse%
-\ {\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
-\ \ \ \ \isacommand{using}\isamarkupfalse%
-\ asm{\isadigit{2}}\ IH\ \isacommand{by}\isamarkupfalse%
-\ simp\isanewline
-\ \ \isacommand{also}\isamarkupfalse%
-\ \isacommand{have}\isamarkupfalse%
-\ {\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
-\ \ \ \ \isacommand{using}\isamarkupfalse%
-\ asm\ \isacommand{by}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}simp{\isacharunderscore}{\kern0pt}all\ add{\isacharcolon}{\kern0pt}\ bder{\isacharunderscore}{\kern0pt}retrieve\ ders{\isacharunderscore}{\kern0pt}append{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{finally}\isamarkupfalse%
-\ \isacommand{show}\isamarkupfalse%
-\ {\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
-\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 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%
-\ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ bders{\isacharunderscore}{\kern0pt}append{\isacharparenright}{\kern0pt}\isanewline
-\isacommand{qed}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isacommand{definition}\isamarkupfalse%
-\ blex\ \isakeyword{where}\isanewline
-\ {\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
-\isanewline
-\isanewline
-\isanewline
-\isacommand{definition}\isamarkupfalse%
-\ blexer\ \isakeyword{where}\isanewline
-\ {\isachardoublequoteopen}blexer\ r\ s\ {\isasymequiv}\ if\ bnullable\ {\isacharparenleft}{\kern0pt}bders\ {\isacharparenleft}{\kern0pt}intern\ r{\isacharparenright}{\kern0pt}\ s{\isacharparenright}{\kern0pt}\ then\ \isanewline
-\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ decode\ {\isacharparenleft}{\kern0pt}bmkeps\ {\isacharparenleft}{\kern0pt}bders\ {\isacharparenleft}{\kern0pt}intern\ r{\isacharparenright}{\kern0pt}\ s{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ r\ else\ None{\isachardoublequoteclose}\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ blexer{\isacharunderscore}{\kern0pt}correctness{\isacharcolon}{\kern0pt}\isanewline
-\ \ \isakeyword{shows}\ {\isachardoublequoteopen}blexer\ r\ s\ {\isacharequal}{\kern0pt}\ lexer\ r\ s{\isachardoublequoteclose}\isanewline
-%
-\isadelimproof
-%
-\endisadelimproof
-%
-\isatagproof
-\isacommand{proof}\isamarkupfalse%
-\ {\isacharminus}{\kern0pt}\isanewline
-\ \ \isacommand{{\isacharbraceleft}{\kern0pt}}\isamarkupfalse%
-\ \isacommand{define}\isamarkupfalse%
-\ bds\ \isakeyword{where}\ {\isachardoublequoteopen}bds\ {\isasymequiv}\ bders\ {\isacharparenleft}{\kern0pt}intern\ r{\isacharparenright}{\kern0pt}\ s{\isachardoublequoteclose}\isanewline
-\ \ \ \ \isacommand{define}\isamarkupfalse%
-\ ds\ \ \isakeyword{where}\ {\isachardoublequoteopen}ds\ {\isasymequiv}\ ders\ s\ r{\isachardoublequoteclose}\isanewline
-\ \ \ \ \isacommand{assume}\isamarkupfalse%
-\ asm{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}nullable\ ds{\isachardoublequoteclose}\isanewline
-\ \ \ \ \isacommand{have}\isamarkupfalse%
-\ era{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}erase\ bds\ {\isacharequal}{\kern0pt}\ ds{\isachardoublequoteclose}\ \isanewline
-\ \ \ \ \ \ \isacommand{unfolding}\isamarkupfalse%
-\ ds{\isacharunderscore}{\kern0pt}def\ bds{\isacharunderscore}{\kern0pt}def\ \isacommand{by}\isamarkupfalse%
-\ simp\isanewline
-\ \ \ \ \isacommand{have}\isamarkupfalse%
-\ mke{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}{\isasymTurnstile}\ mkeps\ ds\ {\isacharcolon}{\kern0pt}\ ds{\isachardoublequoteclose}\isanewline
-\ \ \ \ \ \ \isacommand{using}\isamarkupfalse%
-\ asm\ \isacommand{by}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ mkeps{\isacharunderscore}{\kern0pt}nullable{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{have}\isamarkupfalse%
-\ {\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
-\ \ \ \ \ \ \isacommand{using}\isamarkupfalse%
-\ bmkeps{\isacharunderscore}{\kern0pt}retrieve\isanewline
-\ \ \ \ \ \ \isacommand{using}\isamarkupfalse%
-\ asm\ era\ \isacommand{by}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ bmkeps{\isacharunderscore}{\kern0pt}retrieve{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{also}\isamarkupfalse%
-\ \isacommand{have}\isamarkupfalse%
-\ {\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
-\ \ \ \ \ \ \isacommand{using}\isamarkupfalse%
-\ mke\ \isacommand{by}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}simp{\isacharunderscore}{\kern0pt}all\ add{\isacharcolon}{\kern0pt}\ MAIN{\isacharunderscore}{\kern0pt}decode\ ds{\isacharunderscore}{\kern0pt}def\ bds{\isacharunderscore}{\kern0pt}def{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{finally}\isamarkupfalse%
-\ \isacommand{have}\isamarkupfalse%
-\ {\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
-\ \ \ \ \ \ \isacommand{unfolding}\isamarkupfalse%
-\ bds{\isacharunderscore}{\kern0pt}def\ ds{\isacharunderscore}{\kern0pt}def\ \isacommand{{\isachardot}{\kern0pt}}\isamarkupfalse%
-\isanewline
-\ \ \isacommand{{\isacharbraceright}{\kern0pt}}\isamarkupfalse%
-\isanewline
-\ \ \isacommand{then}\isamarkupfalse%
-\ \isacommand{show}\isamarkupfalse%
-\ {\isachardoublequoteopen}blexer\ r\ s\ {\isacharequal}{\kern0pt}\ lexer\ r\ s{\isachardoublequoteclose}\isanewline
-\ \ \ \ \isacommand{unfolding}\isamarkupfalse%
-\ blexer{\isacharunderscore}{\kern0pt}def\ lexer{\isacharunderscore}{\kern0pt}flex\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subst\ bnullable{\isacharunderscore}{\kern0pt}correctness{\isacharbrackleft}{\kern0pt}symmetric{\isacharbrackright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{done}\isamarkupfalse%
-\isanewline
-\isacommand{qed}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isacommand{fun}\isamarkupfalse%
-\ 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
-\ \ \isakeyword{where}\isanewline
-\ \ {\isachardoublequoteopen}distinctBy\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ f\ acc\ {\isacharequal}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}distinctBy\ {\isacharparenleft}{\kern0pt}x{\isacharhash}{\kern0pt}xs{\isacharparenright}{\kern0pt}\ f\ acc\ {\isacharequal}{\kern0pt}\ \isanewline
-\ \ \ \ \ {\isacharparenleft}{\kern0pt}if\ {\isacharparenleft}{\kern0pt}f\ x{\isacharparenright}{\kern0pt}\ {\isasymin}\ acc\ then\ distinctBy\ xs\ f\ acc\ \isanewline
-\ \ \ \ \ \ 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
-\isanewline
-\isanewline
-\isanewline
-\isanewline
-\isacommand{fun}\isamarkupfalse%
-\ flts\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}arexp\ list\ {\isasymRightarrow}\ arexp\ list{\isachardoublequoteclose}\isanewline
-\ \ \isakeyword{where}\ \isanewline
-\ \ {\isachardoublequoteopen}flts\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}flts\ {\isacharparenleft}{\kern0pt}AZERO\ {\isacharhash}{\kern0pt}\ rs{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ flts\ rs{\isachardoublequoteclose}\isanewline
-{\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
-{\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
-\isanewline
-\isanewline
-\isanewline
-\isanewline
-\isacommand{fun}\isamarkupfalse%
-\ li\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}bit\ list\ {\isasymRightarrow}\ arexp\ list\ {\isasymRightarrow}\ arexp{\isachardoublequoteclose}\isanewline
-\ \ \isakeyword{where}\isanewline
-\ \ {\isachardoublequoteopen}li\ {\isacharunderscore}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ AZERO{\isachardoublequoteclose}\isanewline
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}li\ bs\ {\isacharbrackleft}{\kern0pt}a{\isacharbrackright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ fuse\ bs\ a{\isachardoublequoteclose}\isanewline
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}li\ bs\ as\ {\isacharequal}{\kern0pt}\ AALTs\ bs\ as{\isachardoublequoteclose}\isanewline
-\isanewline
-\isanewline
-\isanewline
-\isanewline
-\isacommand{fun}\isamarkupfalse%
-\ bsimp{\isacharunderscore}{\kern0pt}ASEQ\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}bit\ list\ {\isasymRightarrow}\ arexp\ {\isasymRightarrow}\ arexp\ {\isasymRightarrow}\ arexp{\isachardoublequoteclose}\isanewline
-\ \ \isakeyword{where}\isanewline
-\ \ {\isachardoublequoteopen}bsimp{\isacharunderscore}{\kern0pt}ASEQ\ {\isacharunderscore}{\kern0pt}\ AZERO\ {\isacharunderscore}{\kern0pt}\ {\isacharequal}{\kern0pt}\ AZERO{\isachardoublequoteclose}\isanewline
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}bsimp{\isacharunderscore}{\kern0pt}ASEQ\ {\isacharunderscore}{\kern0pt}\ {\isacharunderscore}{\kern0pt}\ AZERO\ {\isacharequal}{\kern0pt}\ AZERO{\isachardoublequoteclose}\isanewline
-{\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
-{\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
-\isanewline
-\isanewline
-\isacommand{fun}\isamarkupfalse%
-\ bsimp{\isacharunderscore}{\kern0pt}AALTs\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}bit\ list\ {\isasymRightarrow}\ arexp\ list\ {\isasymRightarrow}\ arexp{\isachardoublequoteclose}\isanewline
-\ \ \isakeyword{where}\isanewline
-\ \ {\isachardoublequoteopen}bsimp{\isacharunderscore}{\kern0pt}AALTs\ {\isacharunderscore}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ AZERO{\isachardoublequoteclose}\isanewline
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}bsimp{\isacharunderscore}{\kern0pt}AALTs\ bs{\isadigit{1}}\ {\isacharbrackleft}{\kern0pt}r{\isacharbrackright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ fuse\ bs{\isadigit{1}}\ r{\isachardoublequoteclose}\isanewline
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}bsimp{\isacharunderscore}{\kern0pt}AALTs\ bs{\isadigit{1}}\ rs\ {\isacharequal}{\kern0pt}\ AALTs\ bs{\isadigit{1}}\ rs{\isachardoublequoteclose}\isanewline
-\isanewline
-\isanewline
-\isacommand{fun}\isamarkupfalse%
-\ bsimp\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}arexp\ {\isasymRightarrow}\ arexp{\isachardoublequoteclose}\ \isanewline
-\ \ \isakeyword{where}\isanewline
-\ \ {\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
-{\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
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}bsimp\ r\ {\isacharequal}{\kern0pt}\ r{\isachardoublequoteclose}\isanewline
-\isanewline
-\isanewline
-\isanewline
-\isanewline
-\isacommand{fun}\isamarkupfalse%
-\ \isanewline
-\ \ bders{\isacharunderscore}{\kern0pt}simp\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}arexp\ {\isasymRightarrow}\ string\ {\isasymRightarrow}\ arexp{\isachardoublequoteclose}\isanewline
-\isakeyword{where}\isanewline
-\ \ {\isachardoublequoteopen}bders{\isacharunderscore}{\kern0pt}simp\ r\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ r{\isachardoublequoteclose}\isanewline
-{\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
-\isanewline
-\isacommand{definition}\isamarkupfalse%
-\ blexer{\isacharunderscore}{\kern0pt}simp\ \isakeyword{where}\isanewline
-\ {\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
-\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 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
-\isanewline
-\isacommand{export{\isacharunderscore}{\kern0pt}code}\isamarkupfalse%
-\ bders{\isacharunderscore}{\kern0pt}simp\ \isakeyword{in}\ Scala\ \isakeyword{module{\isacharunderscore}{\kern0pt}name}\ Example\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ bders{\isacharunderscore}{\kern0pt}simp{\isacharunderscore}{\kern0pt}append{\isacharcolon}{\kern0pt}\isanewline
-\ \ \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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ s{\isadigit{1}}\ arbitrary{\isacharcolon}{\kern0pt}\ r\ s{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isanewline
-\isanewline
-\isanewline
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ L{\isacharunderscore}{\kern0pt}bsimp{\isacharunderscore}{\kern0pt}ASEQ{\isacharcolon}{\kern0pt}\isanewline
-\ \ {\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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ bs\ r{\isadigit{1}}\ r{\isadigit{2}}\ rule{\isacharcolon}{\kern0pt}\ bsimp{\isacharunderscore}{\kern0pt}ASEQ{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharunderscore}{\kern0pt}all{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{by}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}metis\ erase{\isacharunderscore}{\kern0pt}fuse\ fuse{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{4}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ L{\isacharunderscore}{\kern0pt}bsimp{\isacharunderscore}{\kern0pt}AALTs{\isacharcolon}{\kern0pt}\isanewline
-\ \ {\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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ bs\ rs\ rule{\isacharcolon}{\kern0pt}\ bsimp{\isacharunderscore}{\kern0pt}AALTs{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharunderscore}{\kern0pt}all\ add{\isacharcolon}{\kern0pt}\ erase{\isacharunderscore}{\kern0pt}fuse{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ L{\isacharunderscore}{\kern0pt}erase{\isacharunderscore}{\kern0pt}AALTs{\isacharcolon}{\kern0pt}\isanewline
-\ \ \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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ rs{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ rs{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ L{\isacharunderscore}{\kern0pt}erase{\isacharunderscore}{\kern0pt}flts{\isacharcolon}{\kern0pt}\isanewline
-\ \ \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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ rs\ rule{\isacharcolon}{\kern0pt}\ flts{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharunderscore}{\kern0pt}all{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ L{\isacharunderscore}{\kern0pt}erase{\isacharunderscore}{\kern0pt}AALTs\ erase{\isacharunderscore}{\kern0pt}fuse\ \isacommand{apply}\isamarkupfalse%
-\ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \isacommand{by}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ L{\isacharunderscore}{\kern0pt}erase{\isacharunderscore}{\kern0pt}AALTs\ erase{\isacharunderscore}{\kern0pt}fuse{\isacharparenright}{\kern0pt}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ L{\isacharunderscore}{\kern0pt}erase{\isacharunderscore}{\kern0pt}dB{\isacharunderscore}{\kern0pt}acc{\isacharcolon}{\kern0pt}\isanewline
-\ \ \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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induction\ rs\ arbitrary{\isacharcolon}{\kern0pt}\ acc{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \isacommand{by}\isamarkupfalse%
-\ {\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}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ L{\isacharunderscore}{\kern0pt}erase{\isacharunderscore}{\kern0pt}dB{\isacharcolon}{\kern0pt}\isanewline
-\ \ \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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{by}\isamarkupfalse%
-\ {\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}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ L{\isacharunderscore}{\kern0pt}bsimp{\isacharunderscore}{\kern0pt}erase{\isacharcolon}{\kern0pt}\isanewline
-\ \ \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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ r{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto\ simp\ add{\isacharcolon}{\kern0pt}\ Sequ{\isacharunderscore}{\kern0pt}def{\isacharparenright}{\kern0pt}{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subst\ L{\isacharunderscore}{\kern0pt}bsimp{\isacharunderscore}{\kern0pt}ASEQ{\isacharbrackleft}{\kern0pt}symmetric{\isacharbrackright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto\ simp\ add{\isacharcolon}{\kern0pt}\ Sequ{\isacharunderscore}{\kern0pt}def{\isacharparenright}{\kern0pt}{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subst\ {\isacharparenleft}{\kern0pt}asm{\isacharparenright}{\kern0pt}\ \ L{\isacharunderscore}{\kern0pt}bsimp{\isacharunderscore}{\kern0pt}ASEQ{\isacharbrackleft}{\kern0pt}symmetric{\isacharbrackright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto\ simp\ add{\isacharcolon}{\kern0pt}\ Sequ{\isacharunderscore}{\kern0pt}def{\isacharparenright}{\kern0pt}{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subst\ L{\isacharunderscore}{\kern0pt}bsimp{\isacharunderscore}{\kern0pt}AALTs{\isacharbrackleft}{\kern0pt}symmetric{\isacharbrackright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{defer}\isamarkupfalse%
-\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subst\ {\isacharparenleft}{\kern0pt}{\isadigit{2}}{\isacharparenright}{\kern0pt}L{\isacharunderscore}{\kern0pt}erase{\isacharunderscore}{\kern0pt}AALTs{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subst\ L{\isacharunderscore}{\kern0pt}erase{\isacharunderscore}{\kern0pt}dB{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subst\ L{\isacharunderscore}{\kern0pt}erase{\isacharunderscore}{\kern0pt}flts{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ L{\isacharunderscore}{\kern0pt}erase{\isacharunderscore}{\kern0pt}AALTs{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ L{\isacharunderscore}{\kern0pt}erase{\isacharunderscore}{\kern0pt}AALTs\ \isacommand{by}\isamarkupfalse%
-\ blast%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ bsimp{\isacharunderscore}{\kern0pt}ASEQ{\isadigit{0}}{\isacharcolon}{\kern0pt}\isanewline
-\ \ \isakeyword{shows}\ {\isachardoublequoteopen}bsimp{\isacharunderscore}{\kern0pt}ASEQ\ bs\ r{\isadigit{1}}\ AZERO\ {\isacharequal}{\kern0pt}\ AZERO{\isachardoublequoteclose}\isanewline
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ r{\isadigit{1}}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ bsimp{\isacharunderscore}{\kern0pt}ASEQ{\isadigit{1}}{\isacharcolon}{\kern0pt}\isanewline
-\ \ \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
-\ \ \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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{using}\isamarkupfalse%
-\ assms\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ bs\ r{\isadigit{1}}\ r{\isadigit{2}}\ rule{\isacharcolon}{\kern0pt}\ bsimp{\isacharunderscore}{\kern0pt}ASEQ{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ bsimp{\isacharunderscore}{\kern0pt}ASEQ{\isadigit{2}}{\isacharcolon}{\kern0pt}\isanewline
-\ \ \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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ r{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ L{\isacharunderscore}{\kern0pt}bders{\isacharunderscore}{\kern0pt}simp{\isacharcolon}{\kern0pt}\isanewline
-\ \ \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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ s\ arbitrary{\isacharcolon}{\kern0pt}\ r\ rule{\isacharcolon}{\kern0pt}\ rev{\isacharunderscore}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ ders{\isacharunderscore}{\kern0pt}append{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ bders{\isacharunderscore}{\kern0pt}simp{\isacharunderscore}{\kern0pt}append{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ L{\isacharunderscore}{\kern0pt}bsimp{\isacharunderscore}{\kern0pt}erase{\isacharbrackleft}{\kern0pt}symmetric{\isacharbrackright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{by}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ der{\isacharunderscore}{\kern0pt}correctness{\isacharparenright}{\kern0pt}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ b{\isadigit{2}}{\isacharcolon}{\kern0pt}\isanewline
-\ \ \isakeyword{assumes}\ {\isachardoublequoteopen}bnullable\ r{\isachardoublequoteclose}\isanewline
-\ \ \isakeyword{shows}\ {\isachardoublequoteopen}bmkeps\ {\isacharparenleft}{\kern0pt}fuse\ bs\ r{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ bs\ {\isacharat}{\kern0pt}\ bmkeps\ r{\isachardoublequoteclose}\isanewline
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{by}\isamarkupfalse%
-\ {\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}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ b{\isadigit{4}}{\isacharcolon}{\kern0pt}\isanewline
-\ \ \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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{by}\isamarkupfalse%
-\ {\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}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ qq{\isadigit{1}}{\isacharcolon}{\kern0pt}\isanewline
-\ \ \isakeyword{assumes}\ {\isachardoublequoteopen}{\isasymexists}r\ {\isasymin}\ set\ rs{\isachardot}{\kern0pt}\ bnullable\ r{\isachardoublequoteclose}\isanewline
-\ \ \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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{using}\isamarkupfalse%
-\ assms\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ rs\ arbitrary{\isacharcolon}{\kern0pt}\ rs{\isadigit{1}}\ bs{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{by}\isamarkupfalse%
-\ {\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}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ qq{\isadigit{2}}{\isacharcolon}{\kern0pt}\isanewline
-\ \ \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
-\ \ \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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{using}\isamarkupfalse%
-\ assms\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ rs\ arbitrary{\isacharcolon}{\kern0pt}\ rs{\isadigit{1}}\ bs{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{by}\isamarkupfalse%
-\ {\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}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\ \ \isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ qq{\isadigit{3}}{\isacharcolon}{\kern0pt}\isanewline
-\ \ \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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ rs\ arbitrary{\isacharcolon}{\kern0pt}\ bs{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isanewline
-\isanewline
-\isanewline
-\isacommand{fun}\isamarkupfalse%
-\ nonnested\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}arexp\ {\isasymRightarrow}\ bool{\isachardoublequoteclose}\isanewline
-\ \ \isakeyword{where}\isanewline
-\ \ {\isachardoublequoteopen}nonnested\ {\isacharparenleft}{\kern0pt}AALTs\ bs{\isadigit{2}}\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ True{\isachardoublequoteclose}\isanewline
-{\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
-{\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
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}nonnested\ r\ {\isacharequal}{\kern0pt}\ True{\isachardoublequoteclose}\isanewline
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ \ k{\isadigit{0}}{\isacharcolon}{\kern0pt}\isanewline
-\ \ \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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ r\ arbitrary{\isacharcolon}{\kern0pt}\ rs{\isadigit{1}}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ \ k{\isadigit{0}}{\isadigit{0}}{\isacharcolon}{\kern0pt}\isanewline
-\ \ \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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ rs{\isadigit{1}}\ arbitrary{\isacharcolon}{\kern0pt}\ rs{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{by}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}metis\ append{\isachardot}{\kern0pt}assoc\ k{\isadigit{0}}{\isacharparenright}{\kern0pt}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ \ k{\isadigit{0}}a{\isacharcolon}{\kern0pt}\isanewline
-\ \ \isakeyword{shows}\ {\isachardoublequoteopen}flts\ {\isacharbrackleft}{\kern0pt}AALTs\ bs\ rs{\isacharbrackright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ map\ {\isacharparenleft}{\kern0pt}fuse\ bs{\isacharparenright}{\kern0pt}\ \ rs{\isachardoublequoteclose}\isanewline
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isanewline
-\isanewline
-\isanewline
-\isanewline
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ bsimp{\isacharunderscore}{\kern0pt}AALTs{\isacharunderscore}{\kern0pt}qq{\isacharcolon}{\kern0pt}\isanewline
-\ \ \isakeyword{assumes}\ {\isachardoublequoteopen}{\isadigit{1}}\ {\isacharless}{\kern0pt}\ length\ rs{\isachardoublequoteclose}\isanewline
-\ \ \isakeyword{shows}\ {\isachardoublequoteopen}bsimp{\isacharunderscore}{\kern0pt}AALTs\ bs\ rs\ {\isacharequal}{\kern0pt}\ AALTs\ bs\ \ rs{\isachardoublequoteclose}\isanewline
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{using}\isamarkupfalse%
-\ \ assms\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ rs{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ list{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharunderscore}{\kern0pt}all{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ bbbbs{\isadigit{1}}{\isacharcolon}{\kern0pt}\isanewline
-\ \ \isakeyword{shows}\ {\isachardoublequoteopen}nonalt\ r\ {\isasymor}\ {\isacharparenleft}{\kern0pt}{\isasymexists}bs\ rs{\isachardot}{\kern0pt}\ r\ \ {\isacharequal}{\kern0pt}\ AALTs\ bs\ rs{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{using}\isamarkupfalse%
-\ nonalt{\isachardot}{\kern0pt}elims{\isacharparenleft}{\kern0pt}{\isadigit{3}}{\isacharparenright}{\kern0pt}\ \isacommand{by}\isamarkupfalse%
-\ auto%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\ \ \isanewline
-\isanewline
-\isanewline
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ flts{\isacharunderscore}{\kern0pt}append{\isacharcolon}{\kern0pt}\isanewline
-\ \ {\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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ xs{\isadigit{1}}\ \ arbitrary{\isacharcolon}{\kern0pt}\ xs{\isadigit{2}}\ \ rule{\isacharcolon}{\kern0pt}\ rev{\isacharunderscore}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ xs{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ x{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ x{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{fun}\isamarkupfalse%
-\ nonazero\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}arexp\ {\isasymRightarrow}\ bool{\isachardoublequoteclose}\isanewline
-\ \ \isakeyword{where}\isanewline
-\ \ {\isachardoublequoteopen}nonazero\ AZERO\ {\isacharequal}{\kern0pt}\ False{\isachardoublequoteclose}\isanewline
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}nonazero\ r\ {\isacharequal}{\kern0pt}\ True{\isachardoublequoteclose}\isanewline
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ flts{\isacharunderscore}{\kern0pt}single{\isadigit{1}}{\isacharcolon}{\kern0pt}\isanewline
-\ \ \isakeyword{assumes}\ {\isachardoublequoteopen}nonalt\ r{\isachardoublequoteclose}\ {\isachardoublequoteopen}nonazero\ r{\isachardoublequoteclose}\isanewline
-\ \ \isakeyword{shows}\ {\isachardoublequoteopen}flts\ {\isacharbrackleft}{\kern0pt}r{\isacharbrackright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}r{\isacharbrackright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{using}\isamarkupfalse%
-\ assms\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ r{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ q{\isadigit{3}}a{\isacharcolon}{\kern0pt}\isanewline
-\ \ \isakeyword{assumes}\ {\isachardoublequoteopen}{\isasymexists}r\ {\isasymin}\ set\ rs{\isachardot}{\kern0pt}\ bnullable\ r{\isachardoublequoteclose}\isanewline
-\ \ \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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{using}\isamarkupfalse%
-\ assms\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ rs\ arbitrary{\isacharcolon}{\kern0pt}\ bs\ bs{\isadigit{1}}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\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
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bnullable\ a{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\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
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ rs{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}metis\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isacharunderscore}{\kern0pt}fuse{\isacharparenright}{\kern0pt}{\isacharplus}{\kern0pt}\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ qq{\isadigit{4}}{\isacharcolon}{\kern0pt}\isanewline
-\ \ \isakeyword{assumes}\ {\isachardoublequoteopen}{\isasymexists}x{\isasymin}set\ list{\isachardot}{\kern0pt}\ bnullable\ x{\isachardoublequoteclose}\isanewline
-\ \ \isakeyword{shows}\ {\isachardoublequoteopen}{\isasymexists}x{\isasymin}set\ {\isacharparenleft}{\kern0pt}flts\ list{\isacharparenright}{\kern0pt}{\isachardot}{\kern0pt}\ bnullable\ x{\isachardoublequoteclose}\isanewline
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{using}\isamarkupfalse%
-\ assms\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ list\ rule{\isacharcolon}{\kern0pt}\ flts{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{by}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}metis\ UnCI\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isacharunderscore}{\kern0pt}fuse\ imageI{\isacharparenright}{\kern0pt}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\ \ \isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ qs{\isadigit{3}}{\isacharcolon}{\kern0pt}\isanewline
-\ \ \isakeyword{assumes}\ {\isachardoublequoteopen}{\isasymexists}r\ {\isasymin}\ set\ rs{\isachardot}{\kern0pt}\ bnullable\ r{\isachardoublequoteclose}\isanewline
-\ \ \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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{using}\isamarkupfalse%
-\ assms\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ rs\ arbitrary{\isacharcolon}{\kern0pt}\ bs\ taking{\isacharcolon}{\kern0pt}\ size\ rule{\isacharcolon}{\kern0pt}\ measure{\isacharunderscore}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ x{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ a{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ r{\isadigit{1}}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ bnullable{\isacharunderscore}{\kern0pt}Hdbmkeps{\isacharunderscore}{\kern0pt}Hd{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}flts\ list{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ {\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
-\ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ r{\isadigit{1}}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{prefer}\isamarkupfalse%
-\ {\isadigit{3}}\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ bnullable{\isacharunderscore}{\kern0pt}Hdbmkeps{\isacharunderscore}{\kern0pt}Hd{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{prefer}\isamarkupfalse%
-\ {\isadigit{2}}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}{\isasymexists}x{\isasymin}set\ x{\isadigit{5}}{\isadigit{2}}{\isachardot}{\kern0pt}\ bnullable\ x{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}list{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\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
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}erule\ disjE{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subst\ qq{\isadigit{1}}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}metis\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isacharunderscore}{\kern0pt}fuse{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\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
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subst\ qq{\isadigit{1}}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}metis\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isacharunderscore}{\kern0pt}fuse\ image{\isacharunderscore}{\kern0pt}eqI\ set{\isacharunderscore}{\kern0pt}map{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\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
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subst\ qq{\isadigit{1}}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}metis\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isacharunderscore}{\kern0pt}fuse\ image{\isacharunderscore}{\kern0pt}eqI\ set{\isacharunderscore}{\kern0pt}map{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\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
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subst\ qq{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}metis\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isacharunderscore}{\kern0pt}fuse\ imageE\ set{\isacharunderscore}{\kern0pt}map{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{prefer}\isamarkupfalse%
-\ {\isadigit{2}}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}list{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ qq{\isadigit{4}}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ list{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ bnullable{\isacharunderscore}{\kern0pt}Hdbmkeps{\isacharunderscore}{\kern0pt}Hd{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\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
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ list{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ bnullable{\isacharunderscore}{\kern0pt}Hdbmkeps{\isacharunderscore}{\kern0pt}Hd{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ qq{\isadigit{4}}\ r{\isadigit{1}}\ r{\isadigit{2}}\ \isacommand{by}\isamarkupfalse%
-\ auto%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isanewline
-\ \ \isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ bder{\isacharunderscore}{\kern0pt}fuse{\isacharcolon}{\kern0pt}\isanewline
-\ \ \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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ a\ arbitrary{\isacharcolon}{\kern0pt}\ bs\ c{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharunderscore}{\kern0pt}all{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isacommand{fun}\isamarkupfalse%
-\ flts{\isadigit{2}}\ {\isacharcolon}{\kern0pt}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}char\ {\isasymRightarrow}\ arexp\ list\ {\isasymRightarrow}\ arexp\ list{\isachardoublequoteclose}\isanewline
-\ \ \isakeyword{where}\ \isanewline
-\ \ {\isachardoublequoteopen}flts{\isadigit{2}}\ {\isacharunderscore}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}flts{\isadigit{2}}\ c\ {\isacharparenleft}{\kern0pt}AZERO\ {\isacharhash}{\kern0pt}\ rs{\isacharparenright}{\kern0pt}\ {\isacharequal}{\kern0pt}\ flts{\isadigit{2}}\ c\ rs{\isachardoublequoteclose}\isanewline
-{\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
-{\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
-{\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
-{\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
-\ \ \ \ flts{\isadigit{2}}\ c\ rs\isanewline
-\ \ \ \ else\ ASEQ\ bs\ r{\isadigit{1}}\ r{\isadigit{2}}\ {\isacharhash}{\kern0pt}\ flts{\isadigit{2}}\ c\ rs{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-{\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
-\isanewline
-\isanewline
-\isanewline
-\isanewline
-\isanewline
-\isanewline
-\isanewline
-\isanewline
-\ \isanewline
-\isanewline
-\isanewline
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ WQ{\isadigit{1}}{\isacharcolon}{\kern0pt}\isanewline
-\ \ \isakeyword{assumes}\ {\isachardoublequoteopen}s\ {\isasymin}\ L\ {\isacharparenleft}{\kern0pt}der\ c\ r{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-\ \ \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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{using}\isamarkupfalse%
-\ assms\isanewline
-\ \ \isacommand{oops}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ bder{\isacharunderscore}{\kern0pt}bsimp{\isacharunderscore}{\kern0pt}AALTs{\isacharcolon}{\kern0pt}\isanewline
-\ \ \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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ bs\ rs\ rule{\isacharcolon}{\kern0pt}\ bsimp{\isacharunderscore}{\kern0pt}AALTs{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\ \ \isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ bder{\isacharunderscore}{\kern0pt}fuse{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\isanewline
-\ \ \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
-\ \ \isakeyword{shows}\ {\isachardoublequoteopen}bsimp\ a\ {\isacharequal}{\kern0pt}\ a{\isachardoublequoteclose}\isanewline
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{using}\isamarkupfalse%
-\ assms\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{oops}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isanewline
-\isanewline
-\isanewline
-\isanewline
-\isanewline
-\isanewline
-\isacommand{inductive}\isamarkupfalse%
-\ 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
-\ \ \isakeyword{where}\isanewline
-\ \ {\isachardoublequoteopen}ASEQ\ bs\ AZERO\ r{\isadigit{2}}\ {\isasymleadsto}\ AZERO{\isachardoublequoteclose}\isanewline
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}ASEQ\ bs\ r{\isadigit{1}}\ AZERO\ {\isasymleadsto}\ AZERO{\isachardoublequoteclose}\isanewline
-{\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
-{\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
-{\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
-{\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
-\isanewline
-{\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
-{\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
-\isanewline
-{\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
-\isanewline
-{\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
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}AALTs\ bs\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ {\isasymleadsto}\ AZERO{\isachardoublequoteclose}\isanewline
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}AALTs\ bs\ {\isacharbrackleft}{\kern0pt}r{\isacharbrackright}{\kern0pt}\ {\isasymleadsto}\ fuse\ bs\ r{\isachardoublequoteclose}\isanewline
-{\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
-\isanewline
-\isanewline
-\isacommand{inductive}\isamarkupfalse%
-\ 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
-\ \ \isakeyword{where}\ \isanewline
-rs{\isadigit{1}}{\isacharbrackleft}{\kern0pt}intro{\isacharcomma}{\kern0pt}\ simp{\isacharbrackright}{\kern0pt}{\isacharcolon}{\kern0pt}{\isachardoublequoteopen}r\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ r{\isachardoublequoteclose}\isanewline
-{\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
-\isanewline
-\isacommand{inductive}\isamarkupfalse%
-\ 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
-\ \ \isakeyword{where}\isanewline
-ss{\isadigit{1}}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}{\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ s{\isasymleadsto}{\isacharasterisk}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-{\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
-\isanewline
-\isanewline
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{using}\isamarkupfalse%
-\ rrewrites{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isacharparenright}{\kern0pt}\ rrewrites{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{2}}{\isacharparenright}{\kern0pt}\ \isacommand{by}\isamarkupfalse%
-\ blast%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\ \isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ real{\isacharunderscore}{\kern0pt}trans{\isacharcolon}{\kern0pt}\ \isanewline
-\ \ \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
-\ \ \isakeyword{shows}\ {\isachardoublequoteopen}r{\isadigit{1}}\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ r{\isadigit{3}}{\isachardoublequoteclose}\isanewline
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{using}\isamarkupfalse%
-\ a{\isadigit{2}}\ a{\isadigit{1}}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\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
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}auto{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ \ 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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{by}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}meson\ r{\isacharunderscore}{\kern0pt}in{\isacharunderscore}{\kern0pt}rstar\ real{\isacharunderscore}{\kern0pt}trans{\isacharparenright}{\kern0pt}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ r\ r{\isacharprime}{\kern0pt}\ rule{\isacharcolon}{\kern0pt}\ rrewrites{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \isacommand{by}\isamarkupfalse%
-\ {\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}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ r\ r{\isacharprime}{\kern0pt}\ rule{\isacharcolon}{\kern0pt}\ rrewrites{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{6}}{\isacharparenright}{\kern0pt}\ \isacommand{by}\isamarkupfalse%
-\ blast%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-%
-\isadelimproof
-\isanewline
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ rs{\isadigit{1}}\ rs{\isadigit{2}}\ arbitrary{\isacharcolon}{\kern0pt}\ bs\ rs\ rule{\isacharcolon}{\kern0pt}\ srewrites{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}rule\ rs{\isadigit{1}}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}drule{\isacharunderscore}{\kern0pt}tac\ x\ {\isacharequal}{\kern0pt}\ {\isachardoublequoteopen}bs{\isachardoublequoteclose}\ \isakeyword{in}\ meta{\isacharunderscore}{\kern0pt}spec{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\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
-\ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}rule\ real{\isacharunderscore}{\kern0pt}trans{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{prefer}\isamarkupfalse%
-\ {\isadigit{2}}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}assumption{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}drule\ contextrewrites{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ auto\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isacommand{corollary}\isamarkupfalse%
-\ 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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{by}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}metis\ append{\isachardot}{\kern0pt}left{\isacharunderscore}{\kern0pt}neutral\ srewrites{\isacharunderscore}{\kern0pt}alt{\isacharparenright}{\kern0pt}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\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
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}rule\ rs{\isadigit{1}}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}erule\ rrewrites{\isachardot}{\kern0pt}cases{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}rule\ r{\isacharunderscore}{\kern0pt}in{\isacharunderscore}{\kern0pt}rstar{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}rule\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{4}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}rule\ rs{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}assumption{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}rule\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{4}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{by}\isamarkupfalse%
-\ assumption%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\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
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ auto\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{5}}{\isacharparenright}{\kern0pt}\ \isacommand{by}\isamarkupfalse%
-\ blast%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\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
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\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
-\isanewline
-\ \ \isacommand{by}\isamarkupfalse%
-\ {\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}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\ \ \isanewline
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ rrewrites{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ rrewrites{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{by}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ rrewrites{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-%
-\isadelimproof
-\isanewline
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induction\ rs{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}rule\ ss{\isadigit{1}}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{by}\isamarkupfalse%
-\ {\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}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induction\ rs{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}rule\ r{\isacharunderscore}{\kern0pt}in{\isacharunderscore}{\kern0pt}rstar{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ \ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isadigit{1}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}rs\ {\isacharequal}{\kern0pt}\ Nil{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isadigit{2}}{\isacharparenright}{\kern0pt}\ \isacommand{apply}\isamarkupfalse%
-\ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}length\ {\isacharparenleft}{\kern0pt}a{\isacharhash}{\kern0pt}rs{\isacharparenright}{\kern0pt}\ {\isachargreater}{\kern0pt}\ {\isadigit{1}}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ bsimp{\isacharunderscore}{\kern0pt}AALTs{\isacharunderscore}{\kern0pt}qq{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\ \isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{inductive}\isamarkupfalse%
-\ 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
-\ \ \isakeyword{where}\isanewline
-fs{\isadigit{1}}{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}{\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ f{\isasymleadsto}{\isacharasterisk}{\kern0pt}\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-{\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
-{\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
-{\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
-\isanewline
-\isanewline
-\isanewline
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{by}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}metis\ append{\isacharunderscore}{\kern0pt}Cons\ append{\isacharunderscore}{\kern0pt}Nil\ flts{\isacharunderscore}{\kern0pt}single{\isadigit{1}}\ k{\isadigit{0}}{\isadigit{0}}{\isacharparenright}{\kern0pt}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ fltsfrewrites{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}rs\ f{\isasymleadsto}{\isacharasterisk}{\kern0pt}\ {\isacharparenleft}{\kern0pt}flts\ rs{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induction\ rs{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}rule\ fs{\isadigit{1}}{\isacharparenright}{\kern0pt}\isanewline
-\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}a\ {\isacharequal}{\kern0pt}\ AZERO{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline
-\isanewline
-\ \ \ \isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ fs{\isadigit{2}}\ \isacommand{apply}\isamarkupfalse%
-\ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}{\isasymexists}bs\ rs{\isachardot}{\kern0pt}\ a\ {\isacharequal}{\kern0pt}\ AALTs\ bs\ rs{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}erule\ exE{\isacharparenright}{\kern0pt}{\isacharplus}{\kern0pt}\isanewline
-\ \ \ \isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ fs{\isadigit{3}}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subst\ flts{\isacharunderscore}{\kern0pt}prepend{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}rule\ nonalt{\isachardot}{\kern0pt}elims{\isacharparenleft}{\kern0pt}{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{prefer}\isamarkupfalse%
-\ {\isadigit{2}}\isanewline
-\ \ \isacommand{thm}\isamarkupfalse%
-\ nonalt{\isachardot}{\kern0pt}elims\isanewline
-\ \ \ \isanewline
-\ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ blast\isanewline
-\ \ \ \isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ bbbbs{\isadigit{1}}\ \isacommand{apply}\isamarkupfalse%
-\ blast\isanewline
-\ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ nonalt{\isachardot}{\kern0pt}simps{\isacharparenright}{\kern0pt}{\isacharplus}{\kern0pt}\isanewline
-\ \ \ \isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}meson\ nonazero{\isachardot}{\kern0pt}elims{\isacharparenleft}{\kern0pt}{\isadigit{3}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isanewline
-\ \ \isacommand{by}\isamarkupfalse%
-\ {\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}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ rrewrite{\isadigit{0}}away{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}AALTs\ bs\ {\isacharparenleft}{\kern0pt}\ AZERO\ {\isacharhash}{\kern0pt}\ rsb{\isacharparenright}{\kern0pt}\ {\isasymleadsto}\ AALTs\ bs\ rsb{\isachardoublequoteclose}\isanewline
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{by}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}metis\ append{\isacharunderscore}{\kern0pt}Nil\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{7}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ rs\ rs{\isacharprime}{\kern0pt}\ arbitrary{\isacharcolon}{\kern0pt}\ bs\ rs{\isadigit{1}}\ rule{\isacharcolon}{\kern0pt}frewrites{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}rule\ rs{\isadigit{1}}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}drule{\isacharunderscore}{\kern0pt}tac\ x\ {\isacharequal}{\kern0pt}\ {\isachardoublequoteopen}bs{\isachardoublequoteclose}\ \isakeyword{in}\ meta{\isacharunderscore}{\kern0pt}spec{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\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
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}rule\ real{\isacharunderscore}{\kern0pt}trans{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ r{\isacharunderscore}{\kern0pt}in{\isacharunderscore}{\kern0pt}rstar\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{7}}{\isacharparenright}{\kern0pt}\ \isacommand{apply}\isamarkupfalse%
-\ presburger\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}drule{\isacharunderscore}{\kern0pt}tac\ x\ {\isacharequal}{\kern0pt}\ {\isachardoublequoteopen}bsa{\isachardoublequoteclose}\ \isakeyword{in}\ meta{\isacharunderscore}{\kern0pt}spec{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\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
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}rule\ real{\isacharunderscore}{\kern0pt}trans{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ r{\isacharunderscore}{\kern0pt}in{\isacharunderscore}{\kern0pt}rstar\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{8}}{\isacharparenright}{\kern0pt}\ \isacommand{apply}\isamarkupfalse%
-\ presburger\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}drule{\isacharunderscore}{\kern0pt}tac\ x\ {\isacharequal}{\kern0pt}\ {\isachardoublequoteopen}bs{\isachardoublequoteclose}\ \isakeyword{in}\ meta{\isacharunderscore}{\kern0pt}spec{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\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
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}rule\ real{\isacharunderscore}{\kern0pt}trans{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ auto\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ fltsrewrites{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}\ \ AALTs\ bs{\isadigit{1}}\ rs\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ AALTs\ bs{\isadigit{1}}\ {\isacharparenleft}{\kern0pt}flts\ rs{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induction\ rs{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}a\ {\isacharequal}{\kern0pt}\ AZERO{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ {\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
-\isanewline
-\isanewline
-\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\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
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}erule\ exE{\isacharparenright}{\kern0pt}{\isacharplus}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ flts{\isachardot}{\kern0pt}simps{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{prefer}\isamarkupfalse%
-\ {\isadigit{2}}\isanewline
-\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subst\ flts{\isacharunderscore}{\kern0pt}prepend{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isanewline
-\ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}meson\ nonalt{\isachardot}{\kern0pt}elims{\isacharparenleft}{\kern0pt}{\isadigit{3}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}meson\ nonazero{\isachardot}{\kern0pt}elims{\isacharparenleft}{\kern0pt}{\isadigit{3}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\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
-\ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}metis\ append{\isacharunderscore}{\kern0pt}Nil\ frewritesaalts{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ {\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
-\ \ \isacommand{by}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}metis\ append{\isacharunderscore}{\kern0pt}Cons\ append{\isacharunderscore}{\kern0pt}Nil\ fltsfrewrites\ frewritesaalts\ k{\isadigit{0}}{\isadigit{0}}\ k{\isadigit{0}}a{\isacharparenright}{\kern0pt}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-AALTs\ bs{\isadigit{1}}\ rs\ {\isasymleadsto}{\isacharasterisk}{\kern0pt}\ AALTs\ bs{\isadigit{1}}\ {\isacharparenleft}{\kern0pt}map\ bsimp\ rs{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}\ rs\ s{\isasymleadsto}{\isacharasterisk}{\kern0pt}\ \ {\isacharparenleft}{\kern0pt}map\ bsimp\ rs{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{prefer}\isamarkupfalse%
-\ {\isadigit{2}}\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ trivialbsimpsrewrites\ \isacommand{apply}\isamarkupfalse%
-\ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ srewrites{\isacharunderscore}{\kern0pt}alt{\isadigit{1}}\ \isacommand{by}\isamarkupfalse%
-\ auto%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-\ auto\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{fun}\isamarkupfalse%
-\ 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
-\ \ \isakeyword{where}\isanewline
-\ \ {\isachardoublequoteopen}distinctByAcc\ {\isacharbrackleft}{\kern0pt}{\isacharbrackright}{\kern0pt}\ f\ acc\ {\isacharequal}{\kern0pt}\ acc{\isachardoublequoteclose}\isanewline
-{\isacharbar}{\kern0pt}\ {\isachardoublequoteopen}distinctByAcc\ {\isacharparenleft}{\kern0pt}x{\isacharhash}{\kern0pt}xs{\isacharparenright}{\kern0pt}\ f\ acc\ {\isacharequal}{\kern0pt}\ \isanewline
-\ \ \ \ \ {\isacharparenleft}{\kern0pt}if\ {\isacharparenleft}{\kern0pt}f\ x{\isacharparenright}{\kern0pt}\ {\isasymin}\ acc\ then\ distinctByAcc\ xs\ f\ acc\ \isanewline
-\ \ \ \ \ \ else\ \ {\isacharparenleft}{\kern0pt}distinctByAcc\ xs\ f\ {\isacharparenleft}{\kern0pt}{\isacharbraceleft}{\kern0pt}f\ x{\isacharbraceright}{\kern0pt}\ {\isasymunion}\ acc{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{using}\isamarkupfalse%
-\ split{\isacharunderscore}{\kern0pt}list\ \isacommand{by}\isamarkupfalse%
-\ fastforce%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-\ auto\isanewline
-\ \ \isacommand{by}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}metis\ split{\isacharunderscore}{\kern0pt}list{\isacharparenright}{\kern0pt}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induction\ rs\ arbitrary{\isacharcolon}{\kern0pt}\ rsa{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\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
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subst\ threelistsappend{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}rule\ real{\isacharunderscore}{\kern0pt}trans{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}a\ {\isasymin}\ set\ rsa{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}drule\ somewhereInside{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}erule\ exE{\isacharparenright}{\kern0pt}{\isacharplus}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}\ AALTs\ bs\isanewline
-\ \ \ \ \ \ \ \ \ \ \ \ {\isacharparenleft}{\kern0pt}rs{\isadigit{1}}\ {\isacharat}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \ \ \ \ \ a\ {\isacharhash}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \ \ \ \ \ rs{\isadigit{2}}\ {\isacharat}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \ \ \ \ \ a\ {\isacharhash}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \ \ \ \ \ distinctBy\ rs\ erase\isanewline
-\ \ \ \ \ \ \ \ \ \ \ \ \ \ {\isacharparenleft}{\kern0pt}insert\ {\isacharparenleft}{\kern0pt}erase\ a{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {\isacharparenleft}{\kern0pt}erase\ {\isacharbackquote}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {\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
-\ \ \ \ \ \ \ \ \ \ \ \ \ \ {\isacharparenleft}{\kern0pt}insert\ {\isacharparenleft}{\kern0pt}erase\ a{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {\isacharparenleft}{\kern0pt}erase\ {\isacharbackquote}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {\isacharparenleft}{\kern0pt}set\ rs{\isadigit{1}}\ {\isasymunion}\ set\ rs{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\ {\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{prefer}\isamarkupfalse%
-\ {\isadigit{2}}\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isadigit{3}}{\isacharparenright}{\kern0pt}\ \isacommand{apply}\isamarkupfalse%
-\ force\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ r{\isacharunderscore}{\kern0pt}in{\isacharunderscore}{\kern0pt}rstar\ \isacommand{apply}\isamarkupfalse%
-\ force\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\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
-\ \ \isacommand{prefer}\isamarkupfalse%
-\ {\isadigit{2}}\isanewline
-\ \ \ \ \isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}erase\ a\ {\isasymin}\ erase\ {\isacharbackquote}{\kern0pt}set\ rsa{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline
-\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\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
-\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 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
-\ \ \isacommand{apply}\isamarkupfalse%
-\ force\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ {\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
-\ \ \isacommand{by}\isamarkupfalse%
-\ force%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\ \isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induction\ rs{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ alts{\isacharunderscore}{\kern0pt}dBrewrites{\isacharunderscore}{\kern0pt}withFront\isanewline
-\ \ \isacommand{by}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}metis\ append{\isacharunderscore}{\kern0pt}Nil\ dB{\isacharunderscore}{\kern0pt}single{\isacharunderscore}{\kern0pt}step\ empty{\isacharunderscore}{\kern0pt}set\ image{\isacharunderscore}{\kern0pt}empty{\isacharparenright}{\kern0pt}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isanewline
-\ \ \isanewline
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ bsimp{\isacharunderscore}{\kern0pt}rewrite{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}\ {\isacharparenleft}{\kern0pt}rrewrites\ r\ {\isacharparenleft}{\kern0pt}\ bsimp\ r{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induction\ r\ rule{\isacharcolon}{\kern0pt}\ bsimp{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bsimp\ r{\isadigit{1}}\ {\isacharequal}{\kern0pt}\ AZERO{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ continuous{\isacharunderscore}{\kern0pt}rewrite\ \isacommand{apply}\isamarkupfalse%
-\ blast\isanewline
-\ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}{\isasymexists}bs{\isachardot}{\kern0pt}\ bsimp\ r{\isadigit{1}}\ {\isacharequal}{\kern0pt}\ AONE\ bs{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}erule\ exE{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subst\ bsimp{\isacharunderscore}{\kern0pt}ASEQ{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\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
-\ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\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
-\ \ \ \ \ \ \isacommand{defer}\isamarkupfalse%
-\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ bsimp{\isacharunderscore}{\kern0pt}aalts{\isacharunderscore}{\kern0pt}simpcases{\isacharparenleft}{\kern0pt}{\isadigit{2}}{\isacharparenright}{\kern0pt}\ \isacommand{apply}\isamarkupfalse%
-\ blast\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ auto\isanewline
-\isanewline
-\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\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
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\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
-\ \ \isacommand{apply}\isamarkupfalse%
-{\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
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\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
-\isanewline
-\ \ \isanewline
-\ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}meson\ real{\isacharunderscore}{\kern0pt}trans{\isacharparenright}{\kern0pt}\isanewline
-\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}meson\ bsimp{\isacharunderscore}{\kern0pt}AALTsrewrites{\isacharparenright}{\kern0pt}\isanewline
-\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}meson\ alts{\isacharunderscore}{\kern0pt}dBrewrites{\isacharparenright}{\kern0pt}\isanewline
-\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ fltsrewrites\ \isacommand{apply}\isamarkupfalse%
-\ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ alts{\isacharunderscore}{\kern0pt}simpalts\ \isacommand{by}\isamarkupfalse%
-\ force%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induction\ r{\isadigit{1}}\ r{\isadigit{2}}\ rule{\isacharcolon}{\kern0pt}\ rrewrite{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}{\isacharplus}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}metis\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isacharunderscore}{\kern0pt}fuse{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ auto{\isacharbrackleft}{\kern0pt}{\isadigit{4}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}metis\ UnCI\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isacharunderscore}{\kern0pt}fuse\ imageI{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}metis\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isacharunderscore}{\kern0pt}fuse{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}metis\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isacharunderscore}{\kern0pt}fuse{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}metis\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{5}}{\isacharparenright}{\kern0pt}\ erase{\isacharunderscore}{\kern0pt}fuse{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isanewline
-\isanewline
-\ \ \isacommand{by}\isamarkupfalse%
-\ {\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}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induction\ r{\isadigit{1}}\ r{\isadigit{2}}\ rule{\isacharcolon}{\kern0pt}\ rrewrite{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ auto\ \isanewline
-\ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}metis\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isacharunderscore}{\kern0pt}fuse{\isacharparenright}{\kern0pt}{\isacharplus}{\kern0pt}\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induction\ r{\isadigit{1}}\ r{\isadigit{2}}\ rule{\isacharcolon}{\kern0pt}\ rrewrites{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}rule\ rewritenullable{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-{\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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ blast\isanewline
-\ \ \isacommand{done}\isamarkupfalse%
-%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-\ {\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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{using}\isamarkupfalse%
-\ nonbnullable{\isacharunderscore}{\kern0pt}lists{\isacharunderscore}{\kern0pt}concat\ qq{\isadigit{3}}\ \isacommand{by}\isamarkupfalse%
-\ presburger%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\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
-\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ qq{\isadigit{3}}\ \isacommand{apply}\isamarkupfalse%
-\ blast\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bnullable\ r{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline
-\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ blast\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\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
-\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ bnullable{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{4}}{\isacharparenright}{\kern0pt}\ \isacommand{apply}\isamarkupfalse%
-\ presburger\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}False{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline
-\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ blast\isanewline
-\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ nomember{\isacharunderscore}{\kern0pt}bnullable\ \isacommand{by}\isamarkupfalse%
-\ blast%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\ \ \isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-\ {\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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{using}\isamarkupfalse%
-\ qq{\isadigit{2}}\ bnullable{\isacharunderscore}{\kern0pt}Hdbmkeps{\isacharunderscore}{\kern0pt}Hd\ \isacommand{by}\isamarkupfalse%
-\ force%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induction\ rule{\isacharcolon}{\kern0pt}\ rrewrite{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}metis\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isacharunderscore}{\kern0pt}fuse{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}metis\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isacharunderscore}{\kern0pt}fuse{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}metis\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isacharunderscore}{\kern0pt}fuse{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}metis\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isacharunderscore}{\kern0pt}fuse{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}metis\ bnullable{\isacharunderscore}{\kern0pt}correctness\ erase{\isacharunderscore}{\kern0pt}fuse{\isacharparenright}{\kern0pt}\isanewline
-\isanewline
-\ \ \isacommand{by}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}meson\ rewrite{\isacharunderscore}{\kern0pt}non{\isacharunderscore}{\kern0pt}nullable\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isadigit{3}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ spillbmkepslistr{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}bnullable\ {\isacharparenleft}{\kern0pt}AALTs\ bs{\isadigit{1}}\ rs{\isadigit{1}}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ {\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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subst\ bnullable{\isacharunderscore}{\kern0pt}Hdbmkeps{\isacharunderscore}{\kern0pt}Hd{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \isacommand{by}\isamarkupfalse%
-\ {\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}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-bnullable\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isadigit{3}}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}\isanewline
-%
-\isadelimproof
-\ \ \isanewline
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{by}\isamarkupfalse%
-\ {\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}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bnullable\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isadigit{3}}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\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
-\ \ \isacommand{apply}\isamarkupfalse%
-{\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
-\ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}metis\ qq{\isadigit{2}}\ qq{\isadigit{3}}{\isacharparenright}{\kern0pt}\isanewline
-\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}metis\ append{\isachardot}{\kern0pt}assoc{\isacharparenright}{\kern0pt}\isanewline
-\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ {\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
-\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ third{\isacharunderscore}{\kern0pt}segment{\isacharunderscore}{\kern0pt}bnullable\ \isacommand{by}\isamarkupfalse%
-\ blast%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-\ \ \ \ \ \ \ {\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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bnullable\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rsa{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ qq{\isadigit{1}}\ \isacommand{apply}\isamarkupfalse%
-\ force\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bnullable\ {\isacharparenleft}{\kern0pt}AALTs\ bs{\isadigit{1}}\ rs{\isadigit{1}}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subst\ qq{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline
-\isanewline
-\ \ \isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ r{\isadigit{2}}\ \isacommand{apply}\isamarkupfalse%
-\ blast\isanewline
-\ \ \isanewline
-\ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}metis\ list{\isachardot}{\kern0pt}set{\isacharunderscore}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ {\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
-\isanewline
-\isanewline
-\ \ \isacommand{thm}\isamarkupfalse%
-\ qq{\isadigit{1}}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\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
-\ \ \ \isacommand{prefer}\isamarkupfalse%
-\ {\isadigit{2}}\isanewline
-\ \ \isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ {\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
-\isanewline
-\ \ \isacommand{by}\isamarkupfalse%
-\ {\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}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-%
-\isadelimproof
-\isanewline
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}frule\ rewritenullable{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induction\ r{\isadigit{1}}\ r{\isadigit{2}}\ rule{\isacharcolon}{\kern0pt}\ rrewrite{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ bnullable{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isacharparenright}{\kern0pt}\ bnullable{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{5}}{\isacharparenright}{\kern0pt}\ \isacommand{apply}\isamarkupfalse%
-\ blast\isanewline
-\ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ b{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}frule\ bnullable{\isacharunderscore}{\kern0pt}segment{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bnullable\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isadigit{1}}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ qq{\isadigit{1}}\ \isacommand{apply}\isamarkupfalse%
-\ force\isanewline
-\ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bnullable\ r{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ bnullablewhichbmkeps\ rewritenullable\ \isacommand{apply}\isamarkupfalse%
-\ presburger\isanewline
-\ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bnullable\ {\isacharparenleft}{\kern0pt}AALTs\ bs\ rs{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}{\isasymnot}\ bnullable\ r{\isacharprime}{\kern0pt}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ qq{\isadigit{2}}\ r{\isadigit{1}}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ rrewrite{\isacharunderscore}{\kern0pt}nbnullable\ \isacommand{apply}\isamarkupfalse%
-\ blast\isanewline
-\isanewline
-\ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ blast\isanewline
-\ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ flts{\isacharunderscore}{\kern0pt}append\ qs{\isadigit{3}}{\isacharparenright}{\kern0pt}\isanewline
-\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}meson\ rewrite{\isacharunderscore}{\kern0pt}bmkepsalt{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ bnullable{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{4}}{\isacharparenright}{\kern0pt}\ q{\isadigit{3}}a\ \isacommand{apply}\isamarkupfalse%
-\ blast\isanewline
-\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ q{\isadigit{3}}a{\isacharparenright}{\kern0pt}\isanewline
-\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ bnullable{\isachardot}{\kern0pt}simps{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isacharparenright}{\kern0pt}\ \isacommand{apply}\isamarkupfalse%
-\ blast\isanewline
-\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ b{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline
-\ \isanewline
-\ \ \isacommand{by}\isamarkupfalse%
-\ {\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}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induction\ r{\isadigit{1}}\ r{\isadigit{2}}\ rule{\isacharcolon}{\kern0pt}\ rrewrites{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bnullable\ r{\isadigit{2}}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{prefer}\isamarkupfalse%
-\ {\isadigit{2}}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}metis\ rewritesnullable{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bmkeps\ r{\isadigit{1}}\ {\isacharequal}{\kern0pt}\ bmkeps\ r{\isadigit{2}}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{prefer}\isamarkupfalse%
-\ {\isadigit{2}}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ fastforce\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ rewrite{\isacharunderscore}{\kern0pt}bmkeps\ \isacommand{by}\isamarkupfalse%
-\ presburger%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isacommand{thm}\isamarkupfalse%
-\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isadigit{2}}{\isacharparenright}{\kern0pt}\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{by}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}metis\ append{\isacharunderscore}{\kern0pt}Cons\ append{\isacharunderscore}{\kern0pt}Nil\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{6}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{using}\isamarkupfalse%
-\ alts{\isacharunderscore}{\kern0pt}rewrite{\isacharunderscore}{\kern0pt}front\ \isacommand{by}\isamarkupfalse%
-\ blast%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{by}\isamarkupfalse%
-\ {\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}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{by}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ rrewrite{\isadigit{0}}away{\isacharparenright}{\kern0pt}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\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
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \isacommand{by}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}meson\ rs{\isadigit{1}}\ rs{\isadigit{2}}\ srewrites{\isacharunderscore}{\kern0pt}alt{\isadigit{1}}\ ss{\isadigit{1}}\ ss{\isadigit{2}}{\isacharparenright}{\kern0pt}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induction\ r{\isadigit{2}}\ r{\isadigit{3}}\ arbitrary{\isacharcolon}{\kern0pt}\ bs\ rule{\isacharcolon}{\kern0pt}\ rrewrite{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ auto\isanewline
-\isanewline
-\ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ continuous{\isacharunderscore}{\kern0pt}rewrite{\isacharparenright}{\kern0pt}\isanewline
-\isanewline
-\ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\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
-\isanewline
-\ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\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
-\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ r{\isacharunderscore}{\kern0pt}in{\isacharunderscore}{\kern0pt}rstar\ star{\isacharunderscore}{\kern0pt}seq\ \isacommand{apply}\isamarkupfalse%
-\ blast\isanewline
-\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ r{\isacharunderscore}{\kern0pt}in{\isacharunderscore}{\kern0pt}rstar\ star{\isacharunderscore}{\kern0pt}seq{\isadigit{2}}\ \isacommand{apply}\isamarkupfalse%
-\ blast\isanewline
-\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ contextrewrites{\isadigit{2}}\ r{\isacharunderscore}{\kern0pt}in{\isacharunderscore}{\kern0pt}rstar\ \isacommand{apply}\isamarkupfalse%
-\ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \isanewline
-\ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\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
-\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{8}}{\isacharparenright}{\kern0pt}\ \isacommand{apply}\isamarkupfalse%
-\ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\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
-\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ {\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
-\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ {\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
-\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ {\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
-\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isadigit{3}}{\isacharparenright}{\kern0pt}\ \isacommand{by}\isamarkupfalse%
-\ auto%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\ \ \isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\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
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \isacommand{by}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}meson\ real{\isacharunderscore}{\kern0pt}trans\ rewrite{\isacharunderscore}{\kern0pt}fuse{\isacharparenright}{\kern0pt}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ \ 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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induction\ rs{\isadigit{1}}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \isacommand{by}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ bder{\isacharunderscore}{\kern0pt}fuse{\isacharparenright}{\kern0pt}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-%
-\isadelimproof
-\ \ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp\ add{\isacharcolon}{\kern0pt}\ bder{\isacharunderscore}{\kern0pt}fuse{\isacharunderscore}{\kern0pt}list{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}rule\ many{\isacharunderscore}{\kern0pt}steps{\isacharunderscore}{\kern0pt}later{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subst\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{8}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\isanewline
-\ \ \isacommand{by}\isamarkupfalse%
-\ fastforce%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ lock{\isacharunderscore}{\kern0pt}step{\isacharunderscore}{\kern0pt}der{\isacharunderscore}{\kern0pt}removal{\isacharcolon}{\kern0pt}\ \isanewline
-\ \ \isakeyword{shows}\ {\isachardoublequoteopen}\ erase\ a{\isadigit{1}}\ {\isacharequal}{\kern0pt}\ erase\ a{\isadigit{2}}\ {\isasymLongrightarrow}\ \isanewline
-\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 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
-\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isadigit{3}}{\isacharparenright}{\kern0pt}\ \isacommand{by}\isamarkupfalse%
-\ auto%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induction\ r{\isadigit{1}}\ r{\isadigit{2}}\ arbitrary{\isacharcolon}{\kern0pt}\ c\ rule{\isacharcolon}{\kern0pt}\ rrewrite{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isanewline
-\ \ \ \ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\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
-\ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ {\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
-\ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}simp{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}rule\ many{\isacharunderscore}{\kern0pt}steps{\isacharunderscore}{\kern0pt}later{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}rule\ to{\isacharunderscore}{\kern0pt}zero{\isacharunderscore}{\kern0pt}in{\isacharunderscore}{\kern0pt}alt{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}rule\ many{\isacharunderscore}{\kern0pt}steps{\isacharunderscore}{\kern0pt}later{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}rule\ alt{\isacharunderscore}{\kern0pt}remove{\isadigit{0}}{\isacharunderscore}{\kern0pt}front{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}rule\ many{\isacharunderscore}{\kern0pt}steps{\isacharunderscore}{\kern0pt}later{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}rule\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{1}}{\isadigit{2}}{\isacharparenright}{\kern0pt}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ bder{\isacharunderscore}{\kern0pt}fuse\ fuse{\isacharunderscore}{\kern0pt}append\ rs{\isadigit{1}}\ \isacommand{apply}\isamarkupfalse%
-\ presburger\isanewline
-\ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bnullable\ r{\isadigit{1}}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{prefer}\isamarkupfalse%
-\ {\isadigit{2}}\isanewline
-\ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}{\isasymnot}bnullable\ r{\isadigit{2}}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \ \ \ \ \isacommand{prefer}\isamarkupfalse%
-\ {\isadigit{2}}\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ rewrite{\isacharunderscore}{\kern0pt}non{\isacharunderscore}{\kern0pt}nullable\ \isacommand{apply}\isamarkupfalse%
-\ presburger\isanewline
-\ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ simp{\isacharplus}{\kern0pt}\isanewline
-\ \ \isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ star{\isacharunderscore}{\kern0pt}seq\ \isacommand{apply}\isamarkupfalse%
-\ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bnullable\ r{\isadigit{2}}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ simp{\isacharplus}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subgoal{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bmkeps\ r{\isadigit{1}}\ {\isacharequal}{\kern0pt}\ bmkeps\ r{\isadigit{2}}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{prefer}\isamarkupfalse%
-\ {\isadigit{2}}\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ rewrite{\isacharunderscore}{\kern0pt}bmkeps\ \isacommand{apply}\isamarkupfalse%
-\ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ contextrewrites{\isadigit{1}}\ star{\isacharunderscore}{\kern0pt}seq\ \isacommand{apply}\isamarkupfalse%
-\ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ rewritenullable\ \isacommand{apply}\isamarkupfalse%
-\ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}case{\isacharunderscore}{\kern0pt}tac\ {\isachardoublequoteopen}bnullable\ r{\isadigit{1}}{\isachardoublequoteclose}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\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
-\ \ \ \ \ \ \ \ \ \ \ \isacommand{prefer}\isamarkupfalse%
-\ {\isadigit{2}}\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{5}}{\isacharparenright}{\kern0pt}\ \isacommand{apply}\isamarkupfalse%
-\ blast\isanewline
-\ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}rule\ many{\isacharunderscore}{\kern0pt}steps{\isacharunderscore}{\kern0pt}later{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}rule\ alt{\isacharunderscore}{\kern0pt}rewrite{\isacharunderscore}{\kern0pt}front{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \ \ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ assumption\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}meson\ alt{\isacharunderscore}{\kern0pt}rewrites{\isacharunderscore}{\kern0pt}back\ rewrites{\isacharunderscore}{\kern0pt}fuse{\isacharparenright}{\kern0pt}\ \isanewline
-\isanewline
-\ \ \ \ \ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\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
-\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ contextrewrites{\isadigit{2}}\ \isacommand{apply}\isamarkupfalse%
-\ force\isanewline
-\isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ rrewrite{\isachardot}{\kern0pt}intros{\isacharparenleft}{\kern0pt}{\isadigit{7}}{\isacharparenright}{\kern0pt}\ \isacommand{apply}\isamarkupfalse%
-\ force\isanewline
-\ \ \isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ rewrite{\isacharunderscore}{\kern0pt}der{\isacharunderscore}{\kern0pt}altmiddle\ \isacommand{apply}\isamarkupfalse%
-\ auto{\isacharbrackleft}{\kern0pt}{\isadigit{1}}{\isacharbrackright}{\kern0pt}\isanewline
-\ \ \isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ {\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
-\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ {\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
-\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-\ {\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
-\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ {\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
-\isanewline
-\ \ \isanewline
-\ \ \isacommand{using}\isamarkupfalse%
-\ lock{\isacharunderscore}{\kern0pt}step{\isacharunderscore}{\kern0pt}der{\isacharunderscore}{\kern0pt}removal\ \isacommand{by}\isamarkupfalse%
-\ auto%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induction\ r{\isadigit{1}}\ r{\isadigit{2}}\ rule{\isacharcolon}{\kern0pt}\ rrewrites{\isachardot}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}rule\ rs{\isadigit{1}}{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{by}\isamarkupfalse%
-\ {\isacharparenleft}{\kern0pt}meson\ real{\isacharunderscore}{\kern0pt}trans\ rewrite{\isacharunderscore}{\kern0pt}after{\isacharunderscore}{\kern0pt}der{\isacharparenright}{\kern0pt}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\ \ \isanewline
-\isanewline
-\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}induct\ s\ arbitrary{\isacharcolon}{\kern0pt}\ r\ rule{\isacharcolon}{\kern0pt}\ rev{\isacharunderscore}{\kern0pt}induct{\isacharparenright}{\kern0pt}\isanewline
-\isanewline
-\ \ \ \isacommand{apply}\isamarkupfalse%
-\ simp\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subst\ bders{\isacharunderscore}{\kern0pt}append{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{apply}\isamarkupfalse%
-{\isacharparenleft}{\kern0pt}subst\ bders{\isacharunderscore}{\kern0pt}simp{\isacharunderscore}{\kern0pt}append{\isacharparenright}{\kern0pt}\isanewline
-\ \ \isacommand{by}\isamarkupfalse%
-\ {\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}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isanewline
-\isacommand{thm}\isamarkupfalse%
-\ arexp{\isachardot}{\kern0pt}induct\isanewline
-\isanewline
-\isacommand{lemma}\isamarkupfalse%
-\ 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
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{using}\isamarkupfalse%
-\ central\ rewrites{\isacharunderscore}{\kern0pt}bmkeps\ \isacommand{by}\isamarkupfalse%
-\ blast%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isacommand{theorem}\isamarkupfalse%
-\ main{\isacharunderscore}{\kern0pt}main{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}blexer\ r\ s\ {\isacharequal}{\kern0pt}\ blexer{\isacharunderscore}{\kern0pt}simp\ r\ s{\isachardoublequoteclose}\isanewline
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{by}\isamarkupfalse%
-\ {\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}%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isacommand{theorem}\isamarkupfalse%
-\ blexersimp{\isacharunderscore}{\kern0pt}correctness{\isacharcolon}{\kern0pt}\ {\isachardoublequoteopen}blexer{\isacharunderscore}{\kern0pt}simp\ r\ s{\isacharequal}{\kern0pt}\ lexer\ r\ s{\isachardoublequoteclose}\isanewline
-%
-\isadelimproof
-\ \ %
-\endisadelimproof
-%
-\isatagproof
-\isacommand{using}\isamarkupfalse%
-\ blexer{\isacharunderscore}{\kern0pt}correctness\ main{\isacharunderscore}{\kern0pt}main\ \isacommand{by}\isamarkupfalse%
-\ auto%
-\endisatagproof
-{\isafoldproof}%
-%
-\isadelimproof
-\isanewline
-%
-\endisadelimproof
-\isanewline
-\isanewline
-\isacommand{unused{\isacharunderscore}{\kern0pt}thms}\isamarkupfalse%
-\isanewline
-\isanewline
-%
-\isadelimtheory
-\isanewline
-%
-\endisadelimtheory
-%
-\isatagtheory
-\isacommand{end}\isamarkupfalse%
-%
-\endisatagtheory
-{\isafoldtheory}%
-%
-\isadelimtheory
-%
-\endisadelimtheory
-%
-\end{isabellebody}%
-\endinput
-%:%file=~/Dropbox/Workspace/journalpaper/lexing/thys2/SizeBound.thy%:%
-%:%6=1%:%
-%:%11=2%:%
-%:%12=2%:%
-%:%13=3%:%
-%:%14=4%:%
-%:%28=6%:%
-%:%38=8%:%
-%:%39=8%:%
-%:%40=9%:%
-%:%41=10%:%
-%:%42=10%:%
-%:%43=11%:%
-%:%44=12%:%
-%:%45=13%:%
-%:%46=14%:%
-%:%47=15%:%
-%:%48=16%:%
-%:%49=17%:%
-%:%50=18%:%
-%:%51=19%:%
-%:%52=20%:%
-%:%53=21%:%
-%:%54=21%:%
-%:%55=22%:%
-%:%56=23%:%
-%:%57=24%:%
-%:%58=25%:%
-%:%59=26%:%
-%:%60=26%:%
-%:%61=27%:%
-%:%62=28%:%
-%:%63=29%:%
-%:%64=30%:%
-%:%65=31%:%
-%:%66=32%:%
-%:%67=33%:%
-%:%68=34%:%
-%:%69=35%:%
-%:%70=36%:%
-%:%71=37%:%
-%:%72=38%:%
-%:%73=39%:%
-%:%75=41%:%
-%:%82=42%:%
-%:%83=42%:%
-%:%88=42%:%
-%:%91=43%:%
-%:%92=44%:%
-%:%93=44%:%
-%:%94=45%:%
-%:%95=46%:%
-%:%102=47%:%
-%:%103=47%:%
-%:%104=48%:%
-%:%105=48%:%
-%:%106=49%:%
-%:%107=49%:%
-%:%108=50%:%
-%:%109=50%:%
-%:%110=50%:%
-%:%111=51%:%
-%:%112=51%:%
-%:%117=51%:%
-%:%120=52%:%
-%:%121=53%:%
-%:%122=53%:%
-%:%129=54%:%
-%:%130=54%:%
-%:%131=55%:%
-%:%132=55%:%
-%:%133=56%:%
-%:%134=56%:%
-%:%139=56%:%
-%:%142=57%:%
-%:%143=58%:%
-%:%144=58%:%
-%:%145=59%:%
-%:%146=60%:%
-%:%147=61%:%
-%:%148=62%:%
-%:%149=63%:%
-%:%150=64%:%
-%:%151=64%:%
-%:%152=65%:%
-%:%153=66%:%
-%:%156=67%:%
-%:%160=67%:%
-%:%161=67%:%
-%:%162=68%:%
-%:%163=68%:%
-%:%164=69%:%
-%:%165=69%:%
-%:%166=70%:%
-%:%172=70%:%
-%:%175=71%:%
-%:%176=72%:%
-%:%177=72%:%
-%:%178=73%:%
-%:%179=74%:%
-%:%186=75%:%
-%:%187=75%:%
-%:%188=76%:%
-%:%189=76%:%
-%:%190=77%:%
-%:%191=77%:%
-%:%192=78%:%
-%:%193=78%:%
-%:%194=78%:%
-%:%199=78%:%
-%:%202=79%:%
-%:%203=80%:%
-%:%204=80%:%
-%:%205=81%:%
-%:%206=82%:%
-%:%209=83%:%
-%:%213=83%:%
-%:%214=83%:%
-%:%215=83%:%
-%:%216=84%:%
-%:%217=84%:%
-%:%231=87%:%
-%:%241=89%:%
-%:%242=89%:%
-%:%243=90%:%
-%:%244=91%:%
-%:%245=92%:%
-%:%246=93%:%
-%:%247=94%:%
-%:%248=95%:%
-%:%249=96%:%
-%:%250=97%:%
-%:%251=97%:%
-%:%252=98%:%
-%:%253=99%:%
-%:%254=100%:%
-%:%255=100%:%
-%:%256=101%:%
-%:%257=102%:%
-%:%258=103%:%
-%:%259=104%:%
-%:%260=105%:%
-%:%261=106%:%
-%:%262=107%:%
-%:%263=108%:%
-%:%264=108%:%
-%:%265=109%:%
-%:%266=110%:%
-%:%267=111%:%
-%:%268=112%:%
-%:%269=113%:%
-%:%270=114%:%
-%:%271=115%:%
-%:%272=116%:%
-%:%273=117%:%
-%:%274=118%:%
-%:%275=119%:%
-%:%276=120%:%
-%:%277=121%:%
-%:%278=122%:%
-%:%279=123%:%
-%:%280=123%:%
-%:%281=124%:%
-%:%282=125%:%
-%:%283=126%:%
-%:%284=127%:%
-%:%285=128%:%
-%:%286=129%:%
-%:%287=129%:%
-%:%288=130%:%
-%:%289=131%:%
-%:%290=132%:%
-%:%291=133%:%
-%:%292=134%:%
-%:%293=135%:%
-%:%294=136%:%
-%:%295=137%:%
-%:%296=138%:%
-%:%297=139%:%
-%:%298=140%:%
-%:%299=141%:%
-%:%300=142%:%
-%:%301=143%:%
-%:%302=144%:%
-%:%303=145%:%
-%:%304=145%:%
-%:%305=146%:%
-%:%306=147%:%
-%:%307=148%:%
-%:%308=149%:%
-%:%309=150%:%
-%:%310=151%:%
-%:%311=152%:%
-%:%312=153%:%
-%:%313=153%:%
-%:%314=154%:%
-%:%317=155%:%
-%:%321=155%:%
-%:%322=155%:%
-%:%323=156%:%
-%:%324=156%:%
-%:%325=157%:%
-%:%331=157%:%
-%:%334=158%:%
-%:%335=159%:%
-%:%336=160%:%
-%:%337=160%:%
-%:%338=161%:%
-%:%339=162%:%
-%:%340=163%:%
-%:%341=164%:%
-%:%342=165%:%
-%:%343=166%:%
-%:%344=167%:%
-%:%345=168%:%
-%:%346=169%:%
-%:%347=170%:%
-%:%348=170%:%
-%:%349=171%:%
-%:%350=172%:%
-%:%351=173%:%
-%:%352=174%:%
-%:%353=175%:%
-%:%354=176%:%
-%:%355=177%:%
-%:%356=178%:%
-%:%357=179%:%
-%:%358=180%:%
-%:%359=181%:%
-%:%360=182%:%
-%:%361=183%:%
-%:%362=183%:%
-%:%363=184%:%
-%:%364=185%:%
-%:%365=186%:%
-%:%366=187%:%
-%:%367=188%:%
-%:%368=189%:%
-%:%369=190%:%
-%:%370=191%:%
-%:%371=192%:%
-%:%372=193%:%
-%:%373=193%:%
-%:%374=194%:%
-%:%375=195%:%
-%:%376=196%:%
-%:%377=197%:%
-%:%378=198%:%
-%:%379=199%:%
-%:%380=200%:%
-%:%381=201%:%
-%:%382=202%:%
-%:%383=203%:%
-%:%384=203%:%
-%:%385=204%:%
-%:%386=205%:%
-%:%387=206%:%
-%:%388=207%:%
-%:%389=208%:%
-%:%390=209%:%
-%:%391=210%:%
-%:%394=213%:%
-%:%395=214%:%
-%:%396=215%:%
-%:%397=216%:%
-%:%398=217%:%
-%:%399=217%:%
-%:%400=218%:%
-%:%401=219%:%
-%:%402=220%:%
-%:%403=221%:%
-%:%404=222%:%
-%:%405=223%:%
-%:%406=223%:%
-%:%407=224%:%
-%:%410=225%:%
-%:%414=225%:%
-%:%415=225%:%
-%:%416=226%:%
-%:%417=226%:%
-%:%418=227%:%
-%:%424=227%:%
-%:%427=228%:%
-%:%428=229%:%
-%:%429=229%:%
-%:%430=230%:%
-%:%433=231%:%
-%:%437=231%:%
-%:%438=231%:%
-%:%439=232%:%
-%:%440=232%:%
-%:%441=233%:%
-%:%447=233%:%
-%:%450=234%:%
-%:%451=235%:%
-%:%452=235%:%
-%:%453=236%:%
-%:%456=237%:%
-%:%460=237%:%
-%:%461=237%:%
-%:%462=238%:%
-%:%463=238%:%
-%:%464=239%:%
-%:%470=239%:%
-%:%473=240%:%
-%:%474=241%:%
-%:%475=241%:%
-%:%476=242%:%
-%:%477=243%:%
-%:%478=243%:%
-%:%479=244%:%
-%:%482=245%:%
-%:%486=245%:%
-%:%487=245%:%
-%:%488=246%:%
-%:%489=246%:%
-%:%490=247%:%
-%:%496=247%:%
-%:%499=248%:%
-%:%500=249%:%
-%:%501=249%:%
-%:%502=250%:%
-%:%505=251%:%
-%:%509=251%:%
-%:%510=251%:%
-%:%511=252%:%
-%:%512=252%:%
-%:%513=253%:%
-%:%519=253%:%
-%:%522=254%:%
-%:%523=255%:%
-%:%524=255%:%
-%:%525=256%:%
-%:%528=257%:%
-%:%532=257%:%
-%:%533=257%:%
-%:%534=258%:%
-%:%535=258%:%
-%:%536=259%:%
-%:%542=259%:%
-%:%545=260%:%
-%:%546=261%:%
-%:%547=261%:%
-%:%548=262%:%
-%:%549=263%:%
-%:%552=264%:%
-%:%556=264%:%
-%:%557=264%:%
-%:%558=265%:%
-%:%559=265%:%
-%:%560=266%:%
-%:%561=266%:%
-%:%562=267%:%
-%:%568=267%:%
-%:%571=268%:%
-%:%572=269%:%
-%:%573=270%:%
-%:%574=270%:%
-%:%575=271%:%
-%:%576=272%:%
-%:%579=273%:%
-%:%583=273%:%
-%:%584=273%:%
-%:%585=274%:%
-%:%586=274%:%
-%:%587=275%:%
-%:%588=275%:%
-%:%589=276%:%
-%:%590=276%:%
-%:%591=277%:%
-%:%592=277%:%
-%:%593=278%:%
-%:%594=278%:%
-%:%595=279%:%
-%:%596=279%:%
-%:%597=280%:%
-%:%598=280%:%
-%:%599=281%:%
-%:%600=281%:%
-%:%601=282%:%
-%:%602=283%:%
-%:%603=283%:%
-%:%604=284%:%
-%:%605=284%:%
-%:%606=285%:%
-%:%607=285%:%
-%:%608=286%:%
-%:%609=286%:%
-%:%610=287%:%
-%:%611=287%:%
-%:%612=288%:%
-%:%613=288%:%
-%:%614=289%:%
-%:%615=289%:%
-%:%616=290%:%
-%:%617=290%:%
-%:%618=291%:%
-%:%619=291%:%
-%:%620=292%:%
-%:%626=292%:%
-%:%629=293%:%
-%:%630=294%:%
-%:%631=294%:%
-%:%632=295%:%
-%:%633=296%:%
-%:%636=297%:%
-%:%640=297%:%
-%:%641=297%:%
-%:%642=298%:%
-%:%643=298%:%
-%:%648=298%:%
-%:%651=299%:%
-%:%652=300%:%
-%:%653=301%:%
-%:%654=301%:%
-%:%655=302%:%
-%:%656=303%:%
-%:%659=304%:%
-%:%663=304%:%
-%:%664=304%:%
-%:%665=305%:%
-%:%666=305%:%
-%:%667=306%:%
-%:%668=306%:%
-%:%669=307%:%
-%:%675=307%:%
-%:%678=308%:%
-%:%679=309%:%
-%:%680=310%:%
-%:%681=310%:%
-%:%682=311%:%
-%:%683=312%:%
-%:%686=313%:%
-%:%690=313%:%
-%:%691=313%:%
-%:%692=314%:%
-%:%693=314%:%
-%:%698=314%:%
-%:%701=315%:%
-%:%702=316%:%
-%:%703=316%:%
-%:%704=317%:%
-%:%705=318%:%
-%:%708=319%:%
-%:%712=319%:%
-%:%713=319%:%
-%:%714=320%:%
-%:%715=320%:%
-%:%716=321%:%
-%:%717=321%:%
-%:%718=322%:%
-%:%724=322%:%
-%:%727=323%:%
-%:%728=324%:%
-%:%729=324%:%
-%:%730=325%:%
-%:%731=326%:%
-%:%734=327%:%
-%:%738=327%:%
-%:%739=327%:%
-%:%740=328%:%
-%:%741=328%:%
-%:%742=329%:%
-%:%743=329%:%
-%:%744=330%:%
-%:%750=330%:%
-%:%753=331%:%
-%:%754=332%:%
-%:%755=332%:%
-%:%756=333%:%
-%:%757=334%:%
-%:%758=335%:%
-%:%759=336%:%
-%:%762=337%:%
-%:%766=337%:%
-%:%767=337%:%
-%:%768=338%:%
-%:%769=338%:%
-%:%770=339%:%
-%:%771=339%:%
-%:%772=340%:%
-%:%773=340%:%
-%:%774=341%:%
-%:%775=341%:%
-%:%776=341%:%
-%:%777=342%:%
-%:%778=342%:%
-%:%779=343%:%
-%:%780=343%:%
-%:%781=344%:%
-%:%782=344%:%
-%:%783=345%:%
-%:%784=345%:%
-%:%785=346%:%
-%:%786=346%:%
-%:%787=347%:%
-%:%788=347%:%
-%:%789=348%:%
-%:%790=348%:%
-%:%791=349%:%
-%:%792=349%:%
-%:%793=350%:%
-%:%794=350%:%
-%:%795=351%:%
-%:%796=351%:%
-%:%797=352%:%
-%:%798=352%:%
-%:%799=353%:%
-%:%800=353%:%
-%:%801=354%:%
-%:%802=354%:%
-%:%803=355%:%
-%:%804=355%:%
-%:%805=356%:%
-%:%806=356%:%
-%:%807=357%:%
-%:%808=357%:%
-%:%809=358%:%
-%:%810=358%:%
-%:%811=359%:%
-%:%812=359%:%
-%:%813=360%:%
-%:%814=360%:%
-%:%815=361%:%
-%:%816=361%:%
-%:%817=362%:%
-%:%818=362%:%
-%:%819=363%:%
-%:%825=363%:%
-%:%828=364%:%
-%:%829=365%:%
-%:%830=366%:%
-%:%831=366%:%
-%:%832=367%:%
-%:%833=368%:%
-%:%834=369%:%
-%:%837=370%:%
-%:%841=370%:%
-%:%842=370%:%
-%:%843=371%:%
-%:%844=371%:%
-%:%845=372%:%
-%:%846=372%:%
-%:%847=373%:%
-%:%848=373%:%
-%:%849=374%:%
-%:%850=374%:%
-%:%851=375%:%
-%:%852=375%:%
-%:%853=376%:%
-%:%854=376%:%
-%:%855=377%:%
-%:%856=377%:%
-%:%857=378%:%
-%:%858=378%:%
-%:%859=379%:%
-%:%860=379%:%
-%:%861=380%:%
-%:%862=380%:%
-%:%863=381%:%
-%:%864=381%:%
-%:%865=382%:%
-%:%866=382%:%
-%:%867=383%:%
-%:%868=383%:%
-%:%869=384%:%
-%:%870=384%:%
-%:%871=385%:%
-%:%872=385%:%
-%:%873=386%:%
-%:%874=386%:%
-%:%875=387%:%
-%:%876=387%:%
-%:%877=388%:%
-%:%878=388%:%
-%:%879=389%:%
-%:%880=389%:%
-%:%881=390%:%
-%:%882=390%:%
-%:%883=390%:%
-%:%884=391%:%
-%:%885=391%:%
-%:%886=392%:%
-%:%887=392%:%
-%:%888=393%:%
-%:%889=393%:%
-%:%890=394%:%
-%:%891=394%:%
-%:%892=394%:%
-%:%893=395%:%
-%:%894=395%:%
-%:%895=396%:%
-%:%896=396%:%
-%:%897=397%:%
-%:%898=397%:%
-%:%899=398%:%
-%:%900=398%:%
-%:%901=399%:%
-%:%902=399%:%
-%:%903=399%:%
-%:%904=400%:%
-%:%905=400%:%
-%:%906=401%:%
-%:%907=401%:%
-%:%908=401%:%
-%:%913=401%:%
-%:%916=402%:%
-%:%917=403%:%
-%:%918=403%:%
-%:%919=404%:%
-%:%920=405%:%
-%:%923=406%:%
-%:%927=406%:%
-%:%928=406%:%
-%:%929=407%:%
-%:%930=407%:%
-%:%931=408%:%
-%:%932=408%:%
-%:%933=409%:%
-%:%934=409%:%
-%:%935=410%:%
-%:%936=410%:%
-%:%937=411%:%
-%:%938=411%:%
-%:%939=412%:%
-%:%940=412%:%
-%:%941=413%:%
-%:%942=413%:%
-%:%943=414%:%
-%:%944=414%:%
-%:%945=415%:%
-%:%946=415%:%
-%:%947=416%:%
-%:%953=416%:%
-%:%956=417%:%
-%:%957=418%:%
-%:%958=418%:%
-%:%959=419%:%
-%:%960=420%:%
-%:%963=421%:%
-%:%967=421%:%
-%:%968=421%:%
-%:%969=422%:%
-%:%970=422%:%
-%:%971=423%:%
-%:%972=423%:%
-%:%973=424%:%
-%:%974=424%:%
-%:%975=425%:%
-%:%976=425%:%
-%:%977=426%:%
-%:%978=426%:%
-%:%979=427%:%
-%:%980=427%:%
-%:%981=428%:%
-%:%982=428%:%
-%:%983=429%:%
-%:%984=429%:%
-%:%985=430%:%
-%:%986=430%:%
-%:%987=431%:%
-%:%988=431%:%
-%:%989=432%:%
-%:%990=432%:%
-%:%991=433%:%
-%:%992=433%:%
-%:%993=434%:%
-%:%994=434%:%
-%:%995=435%:%
-%:%996=435%:%
-%:%997=436%:%
-%:%998=436%:%
-%:%999=437%:%
-%:%1000=437%:%
-%:%1001=438%:%
-%:%1002=438%:%
-%:%1003=439%:%
-%:%1004=439%:%
-%:%1005=440%:%
-%:%1006=440%:%
-%:%1007=441%:%
-%:%1008=441%:%
-%:%1009=442%:%
-%:%1010=442%:%
-%:%1011=443%:%
-%:%1012=443%:%
-%:%1013=444%:%
-%:%1014=444%:%
-%:%1015=445%:%
-%:%1016=445%:%
-%:%1017=446%:%
-%:%1018=446%:%
-%:%1019=447%:%
-%:%1020=447%:%
-%:%1021=448%:%
-%:%1022=448%:%
-%:%1023=449%:%
-%:%1024=449%:%
-%:%1025=450%:%
-%:%1026=450%:%
-%:%1027=451%:%
-%:%1028=451%:%
-%:%1029=452%:%
-%:%1030=452%:%
-%:%1031=452%:%
-%:%1032=453%:%
-%:%1033=453%:%
-%:%1034=454%:%
-%:%1035=454%:%
-%:%1036=455%:%
-%:%1037=455%:%
-%:%1038=456%:%
-%:%1039=456%:%
-%:%1040=457%:%
-%:%1041=457%:%
-%:%1042=458%:%
-%:%1043=458%:%
-%:%1044=458%:%
-%:%1045=459%:%
-%:%1046=459%:%
-%:%1047=460%:%
-%:%1048=460%:%
-%:%1049=461%:%
-%:%1050=461%:%
-%:%1051=462%:%
-%:%1052=462%:%
-%:%1053=463%:%
-%:%1054=463%:%
-%:%1055=464%:%
-%:%1056=464%:%
-%:%1057=465%:%
-%:%1058=465%:%
-%:%1059=465%:%
-%:%1060=466%:%
-%:%1061=466%:%
-%:%1062=467%:%
-%:%1063=467%:%
-%:%1064=468%:%
-%:%1065=468%:%
-%:%1066=469%:%
-%:%1067=469%:%
-%:%1068=470%:%
-%:%1069=470%:%
-%:%1070=471%:%
-%:%1071=471%:%
-%:%1072=472%:%
-%:%1073=472%:%
-%:%1074=473%:%
-%:%1075=473%:%
-%:%1076=474%:%
-%:%1077=474%:%
-%:%1078=475%:%
-%:%1079=475%:%
-%:%1080=476%:%
-%:%1081=476%:%
-%:%1082=477%:%
-%:%1083=477%:%
-%:%1084=478%:%
-%:%1090=478%:%
-%:%1093=479%:%
-%:%1094=480%:%
-%:%1095=481%:%
-%:%1096=482%:%
-%:%1097=482%:%
-%:%1098=483%:%
-%:%1099=484%:%
-%:%1102=485%:%
-%:%1106=485%:%
-%:%1107=485%:%
-%:%1108=486%:%
-%:%1109=486%:%
-%:%1110=487%:%
-%:%1111=487%:%
-%:%1112=488%:%
-%:%1113=488%:%
-%:%1114=488%:%
-%:%1115=489%:%
-%:%1116=489%:%
-%:%1117=489%:%
-%:%1118=489%:%
-%:%1119=490%:%
-%:%1120=490%:%
-%:%1121=490%:%
-%:%1122=491%:%
-%:%1123=491%:%
-%:%1124=491%:%
-%:%1125=492%:%
-%:%1126=492%:%
-%:%1127=492%:%
-%:%1128=493%:%
-%:%1129=493%:%
-%:%1130=494%:%
-%:%1131=494%:%
-%:%1132=495%:%
-%:%1133=495%:%
-%:%1134=496%:%
-%:%1135=496%:%
-%:%1136=497%:%
-%:%1137=497%:%
-%:%1138=498%:%
-%:%1139=498%:%
-%:%1140=498%:%
-%:%1141=499%:%
-%:%1142=499%:%
-%:%1143=499%:%
-%:%1144=500%:%
-%:%1145=500%:%
-%:%1146=501%:%
-%:%1147=501%:%
-%:%1148=502%:%
-%:%1149=502%:%
-%:%1150=503%:%
-%:%1151=503%:%
-%:%1152=503%:%
-%:%1153=504%:%
-%:%1154=504%:%
-%:%1155=504%:%
-%:%1156=505%:%
-%:%1157=505%:%
-%:%1158=505%:%
-%:%1159=506%:%
-%:%1160=506%:%
-%:%1161=506%:%
-%:%1162=507%:%
-%:%1163=507%:%
-%:%1164=507%:%
-%:%1165=508%:%
-%:%1166=508%:%
-%:%1167=509%:%
-%:%1173=509%:%
-%:%1176=510%:%
-%:%1177=511%:%
-%:%1178=512%:%
-%:%1179=512%:%
-%:%1180=513%:%
-%:%1181=514%:%
-%:%1182=515%:%
-%:%1183=516%:%
-%:%1184=517%:%
-%:%1185=517%:%
-%:%1186=518%:%
-%:%1187=519%:%
-%:%1188=520%:%
-%:%1189=521%:%
-%:%1190=521%:%
-%:%1191=522%:%
-%:%1198=523%:%
-%:%1199=523%:%
-%:%1200=524%:%
-%:%1201=524%:%
-%:%1202=524%:%
-%:%1203=525%:%
-%:%1204=525%:%
-%:%1205=526%:%
-%:%1206=526%:%
-%:%1207=527%:%
-%:%1208=527%:%
-%:%1209=528%:%
-%:%1210=528%:%
-%:%1211=528%:%
-%:%1212=529%:%
-%:%1213=529%:%
-%:%1214=530%:%
-%:%1215=530%:%
-%:%1216=530%:%
-%:%1217=531%:%
-%:%1218=531%:%
-%:%1219=532%:%
-%:%1220=532%:%
-%:%1221=533%:%
-%:%1222=533%:%
-%:%1223=533%:%
-%:%1224=534%:%
-%:%1225=534%:%
-%:%1226=534%:%
-%:%1227=535%:%
-%:%1228=535%:%
-%:%1229=535%:%
-%:%1230=536%:%
-%:%1231=536%:%
-%:%1232=536%:%
-%:%1233=537%:%
-%:%1234=537%:%
-%:%1235=537%:%
-%:%1236=538%:%
-%:%1237=538%:%
-%:%1238=539%:%
-%:%1239=539%:%
-%:%1240=539%:%
-%:%1241=540%:%
-%:%1242=540%:%
-%:%1243=541%:%
-%:%1244=541%:%
-%:%1245=542%:%
-%:%1246=542%:%
-%:%1247=543%:%
-%:%1248=543%:%
-%:%1249=544%:%
-%:%1255=544%:%
-%:%1258=545%:%
-%:%1259=546%:%
-%:%1260=547%:%
-%:%1261=547%:%
-%:%1262=548%:%
-%:%1263=549%:%
-%:%1264=550%:%
-%:%1266=552%:%
-%:%1267=553%:%
-%:%1268=554%:%
-%:%1269=555%:%
-%:%1270=556%:%
-%:%1271=557%:%
-%:%1272=557%:%
-%:%1273=558%:%
-%:%1274=559%:%
-%:%1275=560%:%
-%:%1276=561%:%
-%:%1277=562%:%
-%:%1278=563%:%
-%:%1279=564%:%
-%:%1280=565%:%
-%:%1281=566%:%
-%:%1282=567%:%
-%:%1283=567%:%
-%:%1284=568%:%
-%:%1285=569%:%
-%:%1286=570%:%
-%:%1287=571%:%
-%:%1288=572%:%
-%:%1289=573%:%
-%:%1290=574%:%
-%:%1291=575%:%
-%:%1292=576%:%
-%:%1293=576%:%
-%:%1294=577%:%
-%:%1295=578%:%
-%:%1296=579%:%
-%:%1297=580%:%
-%:%1298=581%:%
-%:%1299=582%:%
-%:%1300=583%:%
-%:%1301=584%:%
-%:%1302=584%:%
-%:%1303=585%:%
-%:%1304=586%:%
-%:%1305=587%:%
-%:%1306=588%:%
-%:%1307=589%:%
-%:%1308=590%:%
-%:%1309=591%:%
-%:%1310=591%:%
-%:%1311=592%:%
-%:%1312=593%:%
-%:%1313=594%:%
-%:%1314=595%:%
-%:%1315=596%:%
-%:%1316=597%:%
-%:%1317=598%:%
-%:%1318=599%:%
-%:%1319=600%:%
-%:%1320=600%:%
-%:%1321=601%:%
-%:%1322=602%:%
-%:%1323=603%:%
-%:%1324=604%:%
-%:%1325=605%:%
-%:%1326=606%:%
-%:%1327=606%:%
-%:%1328=607%:%
-%:%1329=608%:%
-%:%1330=609%:%
-%:%1331=610%:%
-%:%1332=610%:%
-%:%1333=611%:%
-%:%1334=612%:%
-%:%1335=612%:%
-%:%1336=613%:%
-%:%1339=614%:%
-%:%1343=614%:%
-%:%1344=614%:%
-%:%1345=615%:%
-%:%1346=615%:%
-%:%1347=616%:%
-%:%1348=616%:%
-%:%1349=617%:%
-%:%1355=617%:%
-%:%1358=618%:%
-%:%1359=619%:%
-%:%1360=620%:%
-%:%1361=621%:%
-%:%1362=622%:%
-%:%1363=623%:%
-%:%1364=624%:%
-%:%1365=625%:%
-%:%1366=625%:%
-%:%1367=626%:%
-%:%1370=627%:%
-%:%1374=627%:%
-%:%1375=627%:%
-%:%1376=628%:%
-%:%1377=628%:%
-%:%1378=629%:%
-%:%1379=629%:%
-%:%1384=629%:%
-%:%1387=630%:%
-%:%1388=631%:%
-%:%1389=631%:%
-%:%1390=632%:%
-%:%1393=633%:%
-%:%1397=633%:%
-%:%1398=633%:%
-%:%1399=634%:%
-%:%1400=634%:%
-%:%1401=635%:%
-%:%1407=635%:%
-%:%1410=636%:%
-%:%1411=637%:%
-%:%1412=637%:%
-%:%1413=638%:%
-%:%1416=639%:%
-%:%1420=639%:%
-%:%1421=639%:%
-%:%1422=640%:%
-%:%1423=640%:%
-%:%1424=641%:%
-%:%1425=641%:%
-%:%1426=642%:%
-%:%1427=642%:%
-%:%1428=643%:%
-%:%1429=643%:%
-%:%1430=644%:%
-%:%1431=644%:%
-%:%1432=645%:%
-%:%1438=645%:%
-%:%1441=646%:%
-%:%1442=647%:%
-%:%1443=647%:%
-%:%1444=648%:%
-%:%1447=649%:%
-%:%1451=649%:%
-%:%1452=649%:%
-%:%1453=650%:%
-%:%1454=650%:%
-%:%1455=651%:%
-%:%1456=651%:%
-%:%1457=652%:%
-%:%1458=652%:%
-%:%1459=652%:%
-%:%1460=653%:%
-%:%1461=653%:%
-%:%1466=653%:%
-%:%1469=654%:%
-%:%1470=655%:%
-%:%1471=655%:%
-%:%1472=656%:%
-%:%1475=657%:%
-%:%1479=657%:%
-%:%1480=657%:%
-%:%1481=658%:%
-%:%1482=658%:%
-%:%1483=659%:%
-%:%1484=659%:%
-%:%1485=660%:%
-%:%1486=660%:%
-%:%1491=660%:%
-%:%1494=661%:%
-%:%1495=662%:%
-%:%1496=662%:%
-%:%1497=663%:%
-%:%1500=664%:%
-%:%1504=664%:%
-%:%1505=664%:%
-%:%1510=664%:%
-%:%1513=665%:%
-%:%1514=666%:%
-%:%1515=666%:%
-%:%1516=667%:%
-%:%1519=668%:%
-%:%1523=668%:%
-%:%1524=668%:%
-%:%1525=669%:%
-%:%1526=669%:%
-%:%1527=670%:%
-%:%1528=670%:%
-%:%1529=671%:%
-%:%1530=671%:%
-%:%1531=672%:%
-%:%1532=672%:%
-%:%1533=673%:%
-%:%1534=673%:%
-%:%1535=674%:%
-%:%1536=674%:%
-%:%1537=675%:%
-%:%1538=675%:%
-%:%1539=676%:%
-%:%1540=676%:%
-%:%1541=677%:%
-%:%1542=677%:%
-%:%1543=678%:%
-%:%1544=678%:%
-%:%1545=679%:%
-%:%1546=679%:%
-%:%1547=680%:%
-%:%1548=680%:%
-%:%1549=681%:%
-%:%1550=681%:%
-%:%1551=682%:%
-%:%1552=682%:%
-%:%1553=683%:%
-%:%1554=683%:%
-%:%1555=684%:%
-%:%1556=684%:%
-%:%1557=685%:%
-%:%1558=685%:%
-%:%1559=686%:%
-%:%1560=686%:%
-%:%1561=686%:%
-%:%1566=686%:%
-%:%1569=687%:%
-%:%1570=688%:%
-%:%1571=688%:%
-%:%1572=689%:%
-%:%1575=690%:%
-%:%1579=690%:%
-%:%1580=690%:%
-%:%1581=691%:%
-%:%1582=691%:%
-%:%1583=692%:%
-%:%1589=692%:%
-%:%1592=693%:%
-%:%1593=694%:%
-%:%1594=695%:%
-%:%1595=696%:%
-%:%1596=696%:%
-%:%1597=697%:%
-%:%1598=698%:%
-%:%1601=699%:%
-%:%1605=699%:%
-%:%1606=699%:%
-%:%1607=700%:%
-%:%1608=700%:%
-%:%1609=701%:%
-%:%1610=701%:%
-%:%1611=702%:%
-%:%1617=702%:%
-%:%1620=703%:%
-%:%1621=704%:%
-%:%1622=704%:%
-%:%1623=705%:%
-%:%1626=706%:%
-%:%1630=706%:%
-%:%1631=706%:%
-%:%1632=707%:%
-%:%1633=707%:%
-%:%1634=708%:%
-%:%1640=708%:%
-%:%1643=709%:%
-%:%1644=710%:%
-%:%1645=711%:%
-%:%1646=711%:%
-%:%1647=712%:%
-%:%1650=713%:%
-%:%1654=713%:%
-%:%1655=713%:%
-%:%1656=714%:%
-%:%1657=714%:%
-%:%1658=715%:%
-%:%1659=715%:%
-%:%1660=716%:%
-%:%1661=716%:%
-%:%1662=717%:%
-%:%1663=717%:%
-%:%1664=718%:%
-%:%1665=718%:%
-%:%1666=719%:%
-%:%1667=719%:%
-%:%1672=719%:%
-%:%1675=720%:%
-%:%1676=721%:%
-%:%1677=722%:%
-%:%1678=722%:%
-%:%1679=723%:%
-%:%1680=724%:%
-%:%1683=725%:%
-%:%1687=725%:%
-%:%1688=725%:%
-%:%1693=725%:%
-%:%1696=726%:%
-%:%1697=727%:%
-%:%1698=728%:%
-%:%1699=728%:%
-%:%1700=729%:%
-%:%1703=730%:%
-%:%1707=730%:%
-%:%1708=730%:%
-%:%1713=730%:%
-%:%1716=731%:%
-%:%1717=732%:%
-%:%1718=733%:%
-%:%1719=733%:%
-%:%1720=734%:%
-%:%1721=735%:%
-%:%1724=736%:%
-%:%1728=736%:%
-%:%1729=736%:%
-%:%1730=737%:%
-%:%1731=737%:%
-%:%1732=738%:%
-%:%1733=738%:%
-%:%1734=739%:%
-%:%1735=739%:%
-%:%1736=740%:%
-%:%1737=740%:%
-%:%1742=740%:%
-%:%1745=741%:%
-%:%1746=742%:%
-%:%1747=742%:%
-%:%1748=743%:%
-%:%1749=744%:%
-%:%1752=745%:%
-%:%1756=745%:%
-%:%1757=745%:%
-%:%1758=746%:%
-%:%1759=746%:%
-%:%1760=747%:%
-%:%1761=747%:%
-%:%1762=748%:%
-%:%1763=748%:%
-%:%1764=749%:%
-%:%1765=749%:%
-%:%1770=749%:%
-%:%1773=750%:%
-%:%1774=751%:%
-%:%1775=751%:%
-%:%1776=752%:%
-%:%1779=753%:%
-%:%1783=753%:%
-%:%1784=753%:%
-%:%1785=754%:%
-%:%1786=754%:%
-%:%1787=755%:%
-%:%1788=755%:%
-%:%1789=756%:%
-%:%1795=756%:%
-%:%1798=757%:%
-%:%1799=758%:%
-%:%1800=759%:%
-%:%1801=760%:%
-%:%1802=761%:%
-%:%1803=762%:%
-%:%1804=762%:%
-%:%1805=763%:%
-%:%1806=764%:%
-%:%1807=765%:%
-%:%1808=766%:%
-%:%1809=767%:%
-%:%1810=768%:%
-%:%1811=769%:%
-%:%1812=770%:%
-%:%1813=770%:%
-%:%1814=771%:%
-%:%1817=772%:%
-%:%1821=772%:%
-%:%1822=772%:%
-%:%1823=773%:%
-%:%1824=773%:%
-%:%1825=774%:%
-%:%1831=774%:%
-%:%1834=775%:%
-%:%1835=776%:%
-%:%1836=776%:%
-%:%1837=777%:%
-%:%1840=778%:%
-%:%1844=778%:%
-%:%1845=778%:%
-%:%1846=779%:%
-%:%1847=779%:%
-%:%1848=780%:%
-%:%1849=780%:%
-%:%1854=780%:%
-%:%1857=781%:%
-%:%1858=782%:%
-%:%1859=782%:%
-%:%1860=783%:%
-%:%1863=784%:%
-%:%1867=784%:%
-%:%1868=784%:%
-%:%1869=785%:%
-%:%1875=785%:%
-%:%1878=786%:%
-%:%1879=787%:%
-%:%1880=788%:%
-%:%1881=789%:%
-%:%1882=790%:%
-%:%1883=791%:%
-%:%1884=792%:%
-%:%1885=793%:%
-%:%1886=794%:%
-%:%1887=794%:%
-%:%1888=795%:%
-%:%1889=796%:%
-%:%1892=797%:%
-%:%1896=797%:%
-%:%1897=797%:%
-%:%1898=798%:%
-%:%1899=798%:%
-%:%1900=799%:%
-%:%1901=799%:%
-%:%1902=800%:%
-%:%1903=800%:%
-%:%1904=801%:%
-%:%1905=801%:%
-%:%1906=802%:%
-%:%1912=802%:%
-%:%1915=803%:%
-%:%1916=804%:%
-%:%1917=805%:%
-%:%1918=806%:%
-%:%1919=806%:%
-%:%1920=807%:%
-%:%1923=808%:%
-%:%1927=808%:%
-%:%1928=808%:%
-%:%1929=808%:%
-%:%1934=808%:%
-%:%1937=809%:%
-%:%1938=810%:%
-%:%1939=811%:%
-%:%1940=812%:%
-%:%1941=813%:%
-%:%1942=814%:%
-%:%1943=814%:%
-%:%1944=815%:%
-%:%1947=816%:%
-%:%1951=816%:%
-%:%1952=816%:%
-%:%1953=817%:%
-%:%1954=817%:%
-%:%1955=818%:%
-%:%1956=818%:%
-%:%1957=819%:%
-%:%1958=819%:%
-%:%1959=820%:%
-%:%1960=820%:%
-%:%1961=821%:%
-%:%1962=821%:%
-%:%1963=822%:%
-%:%1964=822%:%
-%:%1965=823%:%
-%:%1966=823%:%
-%:%1967=824%:%
-%:%1973=824%:%
-%:%1976=825%:%
-%:%1977=826%:%
-%:%1978=826%:%
-%:%1979=827%:%
-%:%1980=828%:%
-%:%1981=829%:%
-%:%1982=830%:%
-%:%1983=831%:%
-%:%1984=832%:%
-%:%1985=832%:%
-%:%1986=833%:%
-%:%1987=834%:%
-%:%1990=835%:%
-%:%1994=835%:%
-%:%1995=835%:%
-%:%1996=836%:%
-%:%1997=836%:%
-%:%1998=837%:%
-%:%1999=837%:%
-%:%2000=838%:%
-%:%2006=838%:%
-%:%2009=839%:%
-%:%2010=840%:%
-%:%2011=841%:%
-%:%2012=842%:%
-%:%2013=842%:%
-%:%2014=843%:%
-%:%2015=844%:%
-%:%2018=845%:%
-%:%2022=845%:%
-%:%2023=845%:%
-%:%2024=846%:%
-%:%2025=846%:%
-%:%2026=847%:%
-%:%2027=847%:%
-%:%2028=848%:%
-%:%2029=848%:%
-%:%2030=849%:%
-%:%2031=849%:%
-%:%2032=850%:%
-%:%2033=850%:%
-%:%2034=851%:%
-%:%2035=851%:%
-%:%2036=852%:%
-%:%2037=852%:%
-%:%2038=853%:%
-%:%2039=853%:%
-%:%2040=854%:%
-%:%2041=854%:%
-%:%2042=855%:%
-%:%2043=855%:%
-%:%2044=856%:%
-%:%2045=856%:%
-%:%2046=857%:%
-%:%2047=857%:%
-%:%2048=858%:%
-%:%2054=858%:%
-%:%2057=859%:%
-%:%2058=860%:%
-%:%2059=860%:%
-%:%2060=861%:%
-%:%2061=862%:%
-%:%2064=863%:%
-%:%2068=863%:%
-%:%2069=863%:%
-%:%2070=864%:%
-%:%2071=864%:%
-%:%2072=865%:%
-%:%2073=865%:%
-%:%2074=866%:%
-%:%2075=866%:%
-%:%2080=866%:%
-%:%2083=867%:%
-%:%2084=868%:%
-%:%2085=869%:%
-%:%2086=869%:%
-%:%2087=870%:%
-%:%2088=871%:%
-%:%2091=872%:%
-%:%2095=872%:%
-%:%2096=872%:%
-%:%2097=873%:%
-%:%2098=873%:%
-%:%2099=874%:%
-%:%2100=874%:%
-%:%2101=875%:%
-%:%2102=875%:%
-%:%2103=876%:%
-%:%2104=876%:%
-%:%2105=877%:%
-%:%2106=877%:%
-%:%2107=878%:%
-%:%2108=878%:%
-%:%2109=879%:%
-%:%2110=879%:%
-%:%2111=880%:%
-%:%2112=880%:%
-%:%2113=881%:%
-%:%2114=881%:%
-%:%2115=882%:%
-%:%2116=882%:%
-%:%2117=883%:%
-%:%2118=883%:%
-%:%2119=884%:%
-%:%2120=884%:%
-%:%2121=885%:%
-%:%2122=885%:%
-%:%2123=886%:%
-%:%2124=886%:%
-%:%2125=887%:%
-%:%2126=887%:%
-%:%2127=888%:%
-%:%2128=888%:%
-%:%2129=889%:%
-%:%2130=889%:%
-%:%2131=890%:%
-%:%2132=890%:%
-%:%2133=891%:%
-%:%2134=891%:%
-%:%2135=892%:%
-%:%2136=892%:%
-%:%2137=893%:%
-%:%2138=893%:%
-%:%2139=894%:%
-%:%2140=894%:%
-%:%2141=895%:%
-%:%2142=895%:%
-%:%2143=896%:%
-%:%2144=896%:%
-%:%2145=897%:%
-%:%2146=897%:%
-%:%2147=898%:%
-%:%2148=898%:%
-%:%2149=899%:%
-%:%2150=899%:%
-%:%2151=900%:%
-%:%2152=900%:%
-%:%2153=901%:%
-%:%2154=901%:%
-%:%2155=902%:%
-%:%2156=902%:%
-%:%2157=903%:%
-%:%2158=903%:%
-%:%2159=904%:%
-%:%2160=904%:%
-%:%2161=905%:%
-%:%2162=905%:%
-%:%2163=906%:%
-%:%2164=906%:%
-%:%2165=907%:%
-%:%2166=907%:%
-%:%2167=908%:%
-%:%2168=908%:%
-%:%2169=909%:%
-%:%2170=909%:%
-%:%2171=910%:%
-%:%2172=910%:%
-%:%2173=911%:%
-%:%2174=911%:%
-%:%2175=912%:%
-%:%2176=912%:%
-%:%2177=913%:%
-%:%2178=913%:%
-%:%2179=914%:%
-%:%2180=914%:%
-%:%2181=915%:%
-%:%2182=915%:%
-%:%2183=916%:%
-%:%2184=916%:%
-%:%2185=917%:%
-%:%2186=917%:%
-%:%2187=918%:%
-%:%2188=918%:%
-%:%2189=919%:%
-%:%2190=919%:%
-%:%2191=920%:%
-%:%2192=920%:%
-%:%2193=921%:%
-%:%2194=921%:%
-%:%2195=922%:%
-%:%2196=922%:%
-%:%2197=923%:%
-%:%2198=923%:%
-%:%2199=924%:%
-%:%2200=924%:%
-%:%2201=925%:%
-%:%2202=925%:%
-%:%2203=926%:%
-%:%2204=926%:%
-%:%2205=927%:%
-%:%2206=927%:%
-%:%2207=928%:%
-%:%2208=928%:%
-%:%2209=929%:%
-%:%2210=929%:%
-%:%2211=930%:%
-%:%2212=930%:%
-%:%2213=931%:%
-%:%2214=931%:%
-%:%2215=931%:%
-%:%2220=931%:%
-%:%2223=932%:%
-%:%2224=933%:%
-%:%2225=934%:%
-%:%2226=935%:%
-%:%2227=936%:%
-%:%2228=936%:%
-%:%2229=937%:%
-%:%2232=938%:%
-%:%2236=938%:%
-%:%2237=938%:%
-%:%2238=939%:%
-%:%2239=939%:%
-%:%2240=940%:%
-%:%2246=940%:%
-%:%2249=941%:%
-%:%2250=942%:%
-%:%2251=943%:%
-%:%2252=943%:%
-%:%2253=944%:%
-%:%2254=945%:%
-%:%2255=946%:%
-%:%2256=947%:%
-%:%2257=948%:%
-%:%2258=949%:%
-%:%2259=950%:%
-%:%2261=952%:%
-%:%2262=953%:%
-%:%2263=954%:%
-%:%2264=955%:%
-%:%2265=956%:%
-%:%2266=957%:%
-%:%2267=958%:%
-%:%2268=959%:%
-%:%2269=960%:%
-%:%2270=961%:%
-%:%2271=962%:%
-%:%2272=963%:%
-%:%2273=964%:%
-%:%2274=965%:%
-%:%2275=966%:%
-%:%2276=967%:%
-%:%2277=967%:%
-%:%2278=968%:%
-%:%2279=969%:%
-%:%2282=970%:%
-%:%2286=970%:%
-%:%2287=970%:%
-%:%2288=971%:%
-%:%2294=971%:%
-%:%2297=972%:%
-%:%2298=973%:%
-%:%2299=974%:%
-%:%2300=975%:%
-%:%2301=975%:%
-%:%2302=976%:%
-%:%2305=977%:%
-%:%2309=977%:%
-%:%2310=977%:%
-%:%2311=978%:%
-%:%2312=978%:%
-%:%2313=979%:%
-%:%2314=979%:%
-%:%2315=980%:%
-%:%2316=980%:%
-%:%2317=981%:%
-%:%2318=981%:%
-%:%2319=982%:%
-%:%2325=982%:%
-%:%2328=983%:%
-%:%2329=984%:%
-%:%2330=985%:%
-%:%2331=986%:%
-%:%2332=986%:%
-%:%2333=987%:%
-%:%2334=988%:%
-%:%2337=989%:%
-%:%2341=989%:%
-%:%2342=989%:%
-%:%2343=990%:%
-%:%2344=990%:%
-%:%2345=991%:%
-%:%2351=991%:%
-%:%2354=992%:%
-%:%2355=993%:%
-%:%2356=994%:%
-%:%2357=995%:%
-%:%2358=996%:%
-%:%2359=997%:%
-%:%2360=998%:%
-%:%2361=999%:%
-%:%2362=1000%:%
-%:%2363=1000%:%
-%:%2364=1001%:%
-%:%2365=1002%:%
-%:%2366=1003%:%
-%:%2367=1004%:%
-%:%2368=1005%:%
-%:%2369=1006%:%
-%:%2370=1007%:%
-%:%2371=1008%:%
-%:%2372=1009%:%
-%:%2373=1010%:%
-%:%2374=1011%:%
-%:%2375=1012%:%
-%:%2376=1014%:%
-%:%2377=1015%:%
-%:%2378=1016%:%
-%:%2379=1017%:%
-%:%2380=1018%:%
-%:%2381=1019%:%
-%:%2382=1020%:%
-%:%2383=1021%:%
-%:%2384=1021%:%
-%:%2385=1022%:%
-%:%2386=1023%:%
-%:%2387=1024%:%
-%:%2388=1025%:%
-%:%2389=1026%:%
-%:%2390=1026%:%
-%:%2391=1027%:%
-%:%2392=1028%:%
-%:%2393=1029%:%
-%:%2394=1032%:%
-%:%2395=1033%:%
-%:%2396=1034%:%
-%:%2397=1035%:%
-%:%2398=1036%:%
-%:%2399=1036%:%
-%:%2402=1037%:%
-%:%2406=1037%:%
-%:%2407=1037%:%
-%:%2408=1037%:%
-%:%2413=1037%:%
-%:%2416=1038%:%
-%:%2417=1039%:%
-%:%2418=1039%:%
-%:%2419=1040%:%
-%:%2420=1041%:%
-%:%2423=1042%:%
-%:%2427=1042%:%
-%:%2428=1042%:%
-%:%2429=1043%:%
-%:%2430=1043%:%
-%:%2431=1044%:%
-%:%2432=1044%:%
-%:%2433=1045%:%
-%:%2439=1045%:%
-%:%2442=1046%:%
-%:%2443=1047%:%
-%:%2444=1048%:%
-%:%2445=1048%:%
-%:%2448=1049%:%
-%:%2452=1049%:%
-%:%2453=1049%:%
-%:%2458=1049%:%
-%:%2461=1050%:%
-%:%2462=1051%:%
-%:%2463=1052%:%
-%:%2464=1052%:%
-%:%2467=1053%:%
-%:%2471=1053%:%
-%:%2472=1053%:%
-%:%2473=1054%:%
-%:%2474=1054%:%
-%:%2475=1055%:%
-%:%2476=1055%:%
-%:%2481=1055%:%
-%:%2484=1056%:%
-%:%2485=1057%:%
-%:%2486=1058%:%
-%:%2487=1058%:%
-%:%2490=1059%:%
-%:%2494=1059%:%
-%:%2495=1059%:%
-%:%2496=1060%:%
-%:%2497=1060%:%
-%:%2498=1061%:%
-%:%2499=1061%:%
-%:%2500=1061%:%
-%:%2505=1061%:%
-%:%2508=1062%:%
-%:%2509=1063%:%
-%:%2510=1064%:%
-%:%2511=1065%:%
-%:%2512=1065%:%
-%:%2515=1066%:%
-%:%2516=1067%:%
-%:%2520=1067%:%
-%:%2521=1067%:%
-%:%2522=1068%:%
-%:%2523=1068%:%
-%:%2524=1069%:%
-%:%2525=1069%:%
-%:%2526=1070%:%
-%:%2527=1070%:%
-%:%2528=1071%:%
-%:%2529=1071%:%
-%:%2530=1072%:%
-%:%2531=1072%:%
-%:%2532=1073%:%
-%:%2533=1073%:%
-%:%2534=1074%:%
-%:%2535=1074%:%
-%:%2536=1075%:%
-%:%2537=1075%:%
-%:%2538=1076%:%
-%:%2539=1076%:%
-%:%2540=1077%:%
-%:%2546=1077%:%
-%:%2549=1078%:%
-%:%2550=1079%:%
-%:%2551=1080%:%
-%:%2552=1080%:%
-%:%2555=1081%:%
-%:%2559=1081%:%
-%:%2560=1081%:%
-%:%2565=1081%:%
-%:%2568=1082%:%
-%:%2569=1083%:%
-%:%2570=1084%:%
-%:%2571=1084%:%
-%:%2574=1085%:%
-%:%2578=1085%:%
-%:%2579=1085%:%
-%:%2580=1086%:%
-%:%2581=1086%:%
-%:%2582=1087%:%
-%:%2583=1087%:%
-%:%2584=1088%:%
-%:%2585=1088%:%
-%:%2586=1089%:%
-%:%2587=1089%:%
-%:%2588=1090%:%
-%:%2589=1090%:%
-%:%2590=1091%:%
-%:%2591=1091%:%
-%:%2592=1092%:%
-%:%2593=1092%:%
-%:%2594=1093%:%
-%:%2595=1093%:%
-%:%2596=1094%:%
-%:%2597=1094%:%
-%:%2598=1095%:%
-%:%2599=1095%:%
-%:%2604=1095%:%
-%:%2607=1096%:%
-%:%2608=1097%:%
-%:%2609=1097%:%
-%:%2612=1098%:%
-%:%2616=1098%:%
-%:%2617=1098%:%
-%:%2618=1099%:%
-%:%2619=1099%:%
-%:%2620=1100%:%
-%:%2621=1100%:%
-%:%2622=1100%:%
-%:%2627=1100%:%
-%:%2630=1101%:%
-%:%2631=1102%:%
-%:%2632=1103%:%
-%:%2633=1103%:%
-%:%2636=1104%:%
-%:%2640=1104%:%
-%:%2641=1104%:%
-%:%2642=1105%:%
-%:%2643=1105%:%
-%:%2644=1106%:%
-%:%2645=1107%:%
-%:%2646=1107%:%
-%:%2651=1107%:%
-%:%2654=1108%:%
-%:%2655=1109%:%
-%:%2656=1110%:%
-%:%2657=1111%:%
-%:%2658=1111%:%
-%:%2661=1112%:%
-%:%2665=1112%:%
-%:%2666=1112%:%
-%:%2667=1113%:%
-%:%2668=1113%:%
-%:%2669=1114%:%
-%:%2670=1114%:%
-%:%2675=1114%:%
-%:%2678=1115%:%
-%:%2679=1116%:%
-%:%2680=1116%:%
-%:%2683=1117%:%
-%:%2684=1118%:%
-%:%2688=1118%:%
-%:%2689=1118%:%
-%:%2690=1119%:%
-%:%2691=1119%:%
-%:%2692=1120%:%
-%:%2693=1120%:%
-%:%2694=1121%:%
-%:%2695=1121%:%
-%:%2700=1121%:%
-%:%2703=1122%:%
-%:%2704=1123%:%
-%:%2705=1124%:%
-%:%2706=1124%:%
-%:%2709=1125%:%
-%:%2713=1125%:%
-%:%2714=1125%:%
-%:%2715=1126%:%
-%:%2716=1126%:%
-%:%2717=1127%:%
-%:%2718=1127%:%
-%:%2719=1128%:%
-%:%2720=1128%:%
-%:%2721=1129%:%
-%:%2722=1129%:%
-%:%2723=1130%:%
-%:%2724=1130%:%
-%:%2725=1131%:%
-%:%2726=1131%:%
-%:%2727=1131%:%
-%:%2728=1132%:%
-%:%2729=1132%:%
-%:%2730=1133%:%
-%:%2731=1133%:%
-%:%2732=1134%:%
-%:%2733=1134%:%
-%:%2734=1135%:%
-%:%2740=1135%:%
-%:%2743=1136%:%
-%:%2744=1137%:%
-%:%2745=1137%:%
-%:%2746=1138%:%
-%:%2747=1139%:%
-%:%2748=1140%:%
-%:%2749=1141%:%
-%:%2750=1142%:%
-%:%2751=1143%:%
-%:%2752=1144%:%
-%:%2753=1145%:%
-%:%2754=1146%:%
-%:%2755=1147%:%
-%:%2756=1148%:%
-%:%2757=1148%:%
-%:%2760=1149%:%
-%:%2764=1149%:%
-%:%2765=1149%:%
-%:%2770=1149%:%
-%:%2773=1150%:%
-%:%2774=1151%:%
-%:%2775=1151%:%
-%:%2778=1152%:%
-%:%2782=1152%:%
-%:%2783=1152%:%
-%:%2784=1153%:%
-%:%2785=1153%:%
-%:%2786=1154%:%
-%:%2787=1154%:%
-%:%2788=1155%:%
-%:%2789=1156%:%
-%:%2790=1156%:%
-%:%2791=1157%:%
-%:%2792=1158%:%
-%:%2793=1159%:%
-%:%2794=1159%:%
-%:%2795=1159%:%
-%:%2796=1160%:%
-%:%2797=1160%:%
-%:%2798=1161%:%
-%:%2799=1161%:%
-%:%2800=1162%:%
-%:%2801=1163%:%
-%:%2802=1163%:%
-%:%2803=1164%:%
-%:%2804=1164%:%
-%:%2805=1165%:%
-%:%2806=1165%:%
-%:%2807=1166%:%
-%:%2808=1166%:%
-%:%2809=1167%:%
-%:%2810=1167%:%
-%:%2811=1168%:%
-%:%2812=1169%:%
-%:%2813=1169%:%
-%:%2814=1170%:%
-%:%2815=1171%:%
-%:%2816=1171%:%
-%:%2817=1171%:%
-%:%2818=1172%:%
-%:%2819=1172%:%
-%:%2820=1173%:%
-%:%2821=1174%:%
-%:%2822=1174%:%
-%:%2823=1175%:%
-%:%2824=1176%:%
-%:%2825=1176%:%
-%:%2830=1176%:%
-%:%2833=1177%:%
-%:%2834=1178%:%
-%:%2835=1179%:%
-%:%2836=1179%:%
-%:%2839=1180%:%
-%:%2843=1180%:%
-%:%2844=1180%:%
-%:%2849=1180%:%
-%:%2852=1181%:%
-%:%2853=1182%:%
-%:%2854=1183%:%
-%:%2855=1183%:%
-%:%2858=1184%:%
-%:%2862=1184%:%
-%:%2863=1184%:%
-%:%2864=1185%:%
-%:%2865=1185%:%
-%:%2866=1186%:%
-%:%2867=1186%:%
-%:%2868=1187%:%
-%:%2869=1187%:%
-%:%2870=1188%:%
-%:%2871=1188%:%
-%:%2872=1189%:%
-%:%2873=1189%:%
-%:%2874=1190%:%
-%:%2875=1190%:%
-%:%2876=1190%:%
-%:%2877=1191%:%
-%:%2878=1191%:%
-%:%2879=1192%:%
-%:%2880=1192%:%
-%:%2881=1193%:%
-%:%2882=1193%:%
-%:%2883=1194%:%
-%:%2884=1194%:%
-%:%2885=1195%:%
-%:%2886=1195%:%
-%:%2887=1195%:%
-%:%2888=1196%:%
-%:%2889=1196%:%
-%:%2890=1197%:%
-%:%2891=1197%:%
-%:%2892=1198%:%
-%:%2893=1198%:%
-%:%2894=1199%:%
-%:%2895=1199%:%
-%:%2896=1200%:%
-%:%2897=1200%:%
-%:%2898=1201%:%
-%:%2904=1201%:%
-%:%2907=1202%:%
-%:%2908=1203%:%
-%:%2909=1203%:%
-%:%2912=1204%:%
-%:%2916=1204%:%
-%:%2917=1204%:%
-%:%2918=1205%:%
-%:%2919=1205%:%
-%:%2920=1206%:%
-%:%2921=1206%:%
-%:%2922=1207%:%
-%:%2923=1207%:%
-%:%2924=1208%:%
-%:%2925=1209%:%
-%:%2926=1210%:%
-%:%2927=1211%:%
-%:%2928=1211%:%
-%:%2929=1212%:%
-%:%2930=1212%:%
-%:%2931=1213%:%
-%:%2932=1213%:%
-%:%2933=1214%:%
-%:%2934=1214%:%
-%:%2935=1215%:%
-%:%2936=1216%:%
-%:%2937=1216%:%
-%:%2938=1217%:%
-%:%2939=1218%:%
-%:%2940=1218%:%
-%:%2941=1219%:%
-%:%2942=1220%:%
-%:%2943=1220%:%
-%:%2944=1221%:%
-%:%2945=1221%:%
-%:%2946=1222%:%
-%:%2947=1222%:%
-%:%2948=1223%:%
-%:%2949=1223%:%
-%:%2950=1224%:%
-%:%2951=1224%:%
-%:%2956=1224%:%
-%:%2959=1225%:%
-%:%2960=1226%:%
-%:%2961=1226%:%
-%:%2962=1227%:%
-%:%2965=1228%:%
-%:%2969=1228%:%
-%:%2970=1228%:%
-%:%2971=1229%:%
-%:%2972=1229%:%
-%:%2973=1230%:%
-%:%2974=1230%:%
-%:%2975=1230%:%
-%:%2976=1231%:%
-%:%2977=1231%:%
-%:%2978=1231%:%
-%:%2983=1231%:%
-%:%2986=1232%:%
-%:%2987=1233%:%
-%:%2988=1234%:%
-%:%2989=1234%:%
-%:%2992=1235%:%
-%:%2996=1235%:%
-%:%2997=1235%:%
-%:%2998=1236%:%
-%:%3004=1236%:%
-%:%3007=1237%:%
-%:%3008=1238%:%
-%:%3009=1238%:%
-%:%3010=1239%:%
-%:%3011=1240%:%
-%:%3012=1241%:%
-%:%3014=1243%:%
-%:%3015=1244%:%
-%:%3016=1245%:%
-%:%3017=1245%:%
-%:%3020=1246%:%
-%:%3024=1246%:%
-%:%3025=1246%:%
-%:%3026=1247%:%
-%:%3032=1247%:%
-%:%3035=1248%:%
-%:%3036=1249%:%
-%:%3037=1249%:%
-%:%3040=1250%:%
-%:%3044=1250%:%
-%:%3045=1250%:%
-%:%3046=1250%:%
-%:%3051=1250%:%
-%:%3054=1251%:%
-%:%3055=1252%:%
-%:%3056=1252%:%
-%:%3059=1253%:%
-%:%3063=1253%:%
-%:%3064=1253%:%
-%:%3065=1254%:%
-%:%3066=1254%:%
-%:%3071=1254%:%
-%:%3074=1255%:%
-%:%3075=1256%:%
-%:%3076=1256%:%
-%:%3079=1257%:%
-%:%3083=1257%:%
-%:%3084=1257%:%
-%:%3085=1258%:%
-%:%3086=1258%:%
-%:%3087=1259%:%
-%:%3088=1259%:%
-%:%3089=1260%:%
-%:%3090=1260%:%
-%:%3091=1261%:%
-%:%3092=1261%:%
-%:%3093=1262%:%
-%:%3094=1262%:%
-%:%3095=1263%:%
-%:%3096=1263%:%
-%:%3097=1264%:%
-%:%3098=1264%:%
-%:%3099=1265%:%
-%:%3100=1265%:%
-%:%3101=1266%:%
-%:%3102=1266%:%
-%:%3103=1267%:%
-%:%3104=1267%:%
-%:%3105=1268%:%
-%:%3106=1268%:%
-%:%3117=1279%:%
-%:%3118=1280%:%
-%:%3119=1280%:%
-%:%3120=1281%:%
-%:%3121=1281%:%
-%:%3122=1281%:%
-%:%3123=1282%:%
-%:%3124=1282%:%
-%:%3125=1282%:%
-%:%3126=1283%:%
-%:%3127=1283%:%
-%:%3128=1284%:%
-%:%3129=1284%:%
-%:%3130=1285%:%
-%:%3131=1286%:%
-%:%3132=1286%:%
-%:%3133=1287%:%
-%:%3134=1287%:%
-%:%3135=1288%:%
-%:%3136=1289%:%
-%:%3137=1289%:%
-%:%3138=1290%:%
-%:%3139=1290%:%
-%:%3140=1291%:%
-%:%3141=1292%:%
-%:%3142=1292%:%
-%:%3143=1293%:%
-%:%3144=1293%:%
-%:%3145=1294%:%
-%:%3146=1294%:%
-%:%3151=1294%:%
-%:%3154=1295%:%
-%:%3155=1296%:%
-%:%3156=1297%:%
-%:%3157=1298%:%
-%:%3158=1298%:%
-%:%3161=1299%:%
-%:%3165=1299%:%
-%:%3166=1299%:%
-%:%3167=1300%:%
-%:%3168=1300%:%
-%:%3169=1301%:%
-%:%3170=1301%:%
-%:%3171=1302%:%
-%:%3172=1302%:%
-%:%3173=1303%:%
-%:%3174=1303%:%
-%:%3179=1303%:%
-%:%3182=1304%:%
-%:%3183=1305%:%
-%:%3184=1306%:%
-%:%3185=1307%:%
-%:%3186=1308%:%
-%:%3187=1309%:%
-%:%3188=1310%:%
-%:%3189=1310%:%
-%:%3192=1311%:%
-%:%3196=1311%:%
-%:%3197=1311%:%
-%:%3198=1312%:%
-%:%3199=1312%:%
-%:%3200=1313%:%
-%:%3201=1313%:%
-%:%3202=1314%:%
-%:%3203=1314%:%
-%:%3204=1315%:%
-%:%3205=1315%:%
-%:%3206=1315%:%
-%:%3207=1316%:%
-%:%3208=1316%:%
-%:%3209=1317%:%
-%:%3210=1317%:%
-%:%3211=1318%:%
-%:%3212=1318%:%
-%:%3213=1319%:%
-%:%3214=1319%:%
-%:%3215=1320%:%
-%:%3216=1320%:%
-%:%3217=1321%:%
-%:%3218=1321%:%
-%:%3219=1322%:%
-%:%3220=1322%:%
-%:%3221=1323%:%
-%:%3222=1323%:%
-%:%3223=1323%:%
-%:%3224=1324%:%
-%:%3225=1324%:%
-%:%3226=1325%:%
-%:%3227=1325%:%
-%:%3228=1326%:%
-%:%3229=1326%:%
-%:%3230=1327%:%
-%:%3231=1328%:%
-%:%3232=1328%:%
-%:%3233=1329%:%
-%:%3234=1330%:%
-%:%3235=1331%:%
-%:%3236=1331%:%
-%:%3237=1332%:%
-%:%3238=1332%:%
-%:%3239=1333%:%
-%:%3240=1333%:%
-%:%3241=1334%:%
-%:%3242=1334%:%
-%:%3243=1335%:%
-%:%3244=1336%:%
-%:%3245=1337%:%
-%:%3246=1337%:%
-%:%3247=1338%:%
-%:%3248=1339%:%
-%:%3249=1339%:%
-%:%3250=1340%:%
-%:%3251=1341%:%
-%:%3252=1341%:%
-%:%3253=1342%:%
-%:%3254=1343%:%
-%:%3255=1343%:%
-%:%3256=1343%:%
-%:%3257=1344%:%
-%:%3258=1345%:%
-%:%3259=1345%:%
-%:%3260=1345%:%
-%:%3265=1345%:%
-%:%3268=1346%:%
-%:%3269=1347%:%
-%:%3270=1348%:%
-%:%3271=1348%:%
-%:%3274=1349%:%
-%:%3278=1349%:%
-%:%3279=1349%:%
-%:%3280=1350%:%
-%:%3281=1350%:%
-%:%3282=1351%:%
-%:%3283=1351%:%
-%:%3284=1352%:%
-%:%3285=1352%:%
-%:%3286=1353%:%
-%:%3287=1353%:%
-%:%3288=1354%:%
-%:%3289=1354%:%
-%:%3290=1355%:%
-%:%3291=1355%:%
-%:%3292=1356%:%
-%:%3293=1356%:%
-%:%3294=1357%:%
-%:%3295=1357%:%
-%:%3296=1358%:%
-%:%3297=1358%:%
-%:%3298=1359%:%
-%:%3299=1359%:%
-%:%3300=1360%:%
-%:%3301=1361%:%
-%:%3302=1361%:%
-%:%3303=1362%:%
-%:%3304=1363%:%
-%:%3305=1364%:%
-%:%3306=1364%:%
-%:%3311=1364%:%
-%:%3314=1365%:%
-%:%3315=1366%:%
-%:%3316=1366%:%
-%:%3319=1367%:%
-%:%3323=1367%:%
-%:%3324=1367%:%
-%:%3325=1368%:%
-%:%3326=1368%:%
-%:%3327=1369%:%
-%:%3328=1369%:%
-%:%3329=1370%:%
-%:%3335=1370%:%
-%:%3338=1371%:%
-%:%3339=1372%:%
-%:%3340=1373%:%
-%:%3341=1373%:%
-%:%3344=1374%:%
-%:%3348=1374%:%
-%:%3349=1374%:%
-%:%3350=1375%:%
-%:%3351=1375%:%
-%:%3352=1376%:%
-%:%3353=1376%:%
-%:%3354=1377%:%
-%:%3355=1377%:%
-%:%3356=1378%:%
-%:%3357=1378%:%
-%:%3358=1379%:%
-%:%3364=1379%:%
-%:%3367=1380%:%
-%:%3368=1381%:%
-%:%3369=1381%:%
-%:%3370=1382%:%
-%:%3373=1383%:%
-%:%3377=1383%:%
-%:%3378=1383%:%
-%:%3379=1384%:%
-%:%3380=1384%:%
-%:%3381=1385%:%
-%:%3387=1385%:%
-%:%3390=1386%:%
-%:%3391=1387%:%
-%:%3392=1388%:%
-%:%3393=1389%:%
-%:%3394=1389%:%
-%:%3395=1390%:%
-%:%3398=1391%:%
-%:%3402=1391%:%
-%:%3403=1391%:%
-%:%3404=1391%:%
-%:%3409=1391%:%
-%:%3412=1392%:%
-%:%3413=1393%:%
-%:%3414=1393%:%
-%:%3417=1394%:%
-%:%3421=1394%:%
-%:%3422=1394%:%
-%:%3423=1395%:%
-%:%3424=1396%:%
-%:%3425=1396%:%
-%:%3426=1396%:%
-%:%3427=1397%:%
-%:%3428=1397%:%
-%:%3429=1398%:%
-%:%3430=1399%:%
-%:%3431=1399%:%
-%:%3432=1400%:%
-%:%3433=1400%:%
-%:%3434=1401%:%
-%:%3435=1402%:%
-%:%3436=1402%:%
-%:%3437=1402%:%
-%:%3438=1403%:%
-%:%3439=1403%:%
-%:%3440=1404%:%
-%:%3441=1405%:%
-%:%3442=1405%:%
-%:%3443=1406%:%
-%:%3444=1407%:%
-%:%3445=1407%:%
-%:%3446=1407%:%
-%:%3451=1407%:%
-%:%3454=1408%:%
-%:%3455=1409%:%
-%:%3456=1410%:%
-%:%3457=1411%:%
-%:%3458=1411%:%
-%:%3459=1412%:%
-%:%3462=1413%:%
-%:%3466=1413%:%
-%:%3467=1413%:%
-%:%3468=1413%:%
-%:%3473=1413%:%
-%:%3476=1414%:%
-%:%3477=1415%:%
-%:%3478=1415%:%
-%:%3481=1416%:%
-%:%3485=1416%:%
-%:%3486=1416%:%
-%:%3487=1417%:%
-%:%3488=1417%:%
-%:%3489=1418%:%
-%:%3490=1418%:%
-%:%3491=1419%:%
-%:%3492=1419%:%
-%:%3493=1420%:%
-%:%3494=1420%:%
-%:%3495=1421%:%
-%:%3496=1421%:%
-%:%3497=1422%:%
-%:%3498=1422%:%
-%:%3499=1423%:%
-%:%3500=1423%:%
-%:%3501=1424%:%
-%:%3502=1424%:%
-%:%3503=1425%:%
-%:%3504=1425%:%
-%:%3505=1426%:%
-%:%3506=1426%:%
-%:%3507=1427%:%
-%:%3508=1427%:%
-%:%3509=1428%:%
-%:%3510=1428%:%
-%:%3511=1429%:%
-%:%3512=1429%:%
-%:%3513=1430%:%
-%:%3514=1430%:%
-%:%3515=1431%:%
-%:%3516=1431%:%
-%:%3517=1432%:%
-%:%3518=1432%:%
-%:%3519=1433%:%
-%:%3520=1434%:%
-%:%3521=1434%:%
-%:%3522=1435%:%
-%:%3523=1436%:%
-%:%3524=1436%:%
-%:%3529=1436%:%
-%:%3532=1437%:%
-%:%3533=1438%:%
-%:%3534=1439%:%
-%:%3535=1440%:%
-%:%3536=1441%:%
-%:%3537=1441%:%
-%:%3538=1442%:%
-%:%3541=1443%:%
-%:%3545=1443%:%
-%:%3546=1443%:%
-%:%3547=1444%:%
-%:%3548=1445%:%
-%:%3549=1445%:%
-%:%3550=1446%:%
-%:%3551=1446%:%
-%:%3556=1446%:%
-%:%3559=1447%:%
-%:%3560=1448%:%
-%:%3561=1448%:%
-%:%3562=1449%:%
-%:%3565=1450%:%
-%:%3566=1451%:%
-%:%3570=1451%:%
-%:%3571=1451%:%
-%:%3576=1451%:%
-%:%3579=1452%:%
-%:%3580=1453%:%
-%:%3581=1454%:%
-%:%3582=1454%:%
-%:%3583=1455%:%
-%:%3586=1456%:%
-%:%3590=1456%:%
-%:%3591=1456%:%
-%:%3592=1457%:%
-%:%3593=1457%:%
-%:%3594=1458%:%
-%:%3595=1458%:%
-%:%3596=1459%:%
-%:%3597=1459%:%
-%:%3598=1460%:%
-%:%3599=1461%:%
-%:%3600=1461%:%
-%:%3601=1462%:%
-%:%3602=1463%:%
-%:%3603=1463%:%
-%:%3604=1464%:%
-%:%3605=1465%:%
-%:%3606=1465%:%
-%:%3607=1465%:%
-%:%3612=1465%:%
-%:%3615=1466%:%
-%:%3616=1467%:%
-%:%3617=1468%:%
-%:%3618=1468%:%
-%:%3619=1469%:%
-%:%3622=1470%:%
-%:%3626=1470%:%
-%:%3627=1470%:%
-%:%3628=1471%:%
-%:%3629=1472%:%
-%:%3630=1472%:%
-%:%3631=1472%:%
-%:%3632=1473%:%
-%:%3633=1473%:%
-%:%3634=1474%:%
-%:%3635=1474%:%
-%:%3636=1475%:%
-%:%3637=1476%:%
-%:%3638=1477%:%
-%:%3639=1477%:%
-%:%3640=1477%:%
-%:%3641=1478%:%
-%:%3642=1479%:%
-%:%3643=1479%:%
-%:%3644=1480%:%
-%:%3645=1480%:%
-%:%3646=1481%:%
-%:%3647=1482%:%
-%:%3648=1483%:%
-%:%3649=1483%:%
-%:%3650=1484%:%
-%:%3651=1484%:%
-%:%3652=1485%:%
-%:%3653=1485%:%
-%:%3654=1486%:%
-%:%3655=1487%:%
-%:%3656=1487%:%
-%:%3657=1488%:%
-%:%3658=1489%:%
-%:%3659=1489%:%
-%:%3664=1489%:%
-%:%3667=1490%:%
-%:%3668=1491%:%
-%:%3669=1492%:%
-%:%3670=1493%:%
-%:%3671=1493%:%
-%:%3674=1494%:%
-%:%3675=1495%:%
-%:%3679=1495%:%
-%:%3680=1495%:%
-%:%3681=1496%:%
-%:%3682=1496%:%
-%:%3683=1497%:%
-%:%3684=1497%:%
-%:%3685=1498%:%
-%:%3686=1498%:%
-%:%3687=1499%:%
-%:%3688=1499%:%
-%:%3689=1499%:%
-%:%3690=1500%:%
-%:%3691=1500%:%
-%:%3692=1501%:%
-%:%3693=1501%:%
-%:%3694=1502%:%
-%:%3695=1502%:%
-%:%3696=1503%:%
-%:%3697=1503%:%
-%:%3698=1504%:%
-%:%3699=1504%:%
-%:%3700=1505%:%
-%:%3701=1505%:%
-%:%3702=1505%:%
-%:%3703=1506%:%
-%:%3704=1506%:%
-%:%3705=1507%:%
-%:%3706=1507%:%
-%:%3707=1507%:%
-%:%3708=1508%:%
-%:%3709=1508%:%
-%:%3710=1509%:%
-%:%3711=1509%:%
-%:%3712=1510%:%
-%:%3713=1510%:%
-%:%3714=1511%:%
-%:%3715=1512%:%
-%:%3716=1512%:%
-%:%3717=1512%:%
-%:%3718=1513%:%
-%:%3719=1514%:%
-%:%3720=1514%:%
-%:%3721=1515%:%
-%:%3722=1515%:%
-%:%3723=1516%:%
-%:%3724=1517%:%
-%:%3725=1517%:%
-%:%3726=1518%:%
-%:%3727=1519%:%
-%:%3728=1519%:%
-%:%3729=1519%:%
-%:%3730=1520%:%
-%:%3731=1521%:%
-%:%3732=1521%:%
-%:%3733=1522%:%
-%:%3734=1523%:%
-%:%3735=1523%:%
-%:%3736=1523%:%
-%:%3737=1524%:%
-%:%3738=1525%:%
-%:%3739=1525%:%
-%:%3740=1526%:%
-%:%3741=1527%:%
-%:%3742=1527%:%
-%:%3747=1527%:%
-%:%3750=1528%:%
-%:%3751=1529%:%
-%:%3752=1530%:%
-%:%3753=1531%:%
-%:%3754=1531%:%
-%:%3757=1532%:%
-%:%3761=1532%:%
-%:%3762=1532%:%
-%:%3763=1533%:%
-%:%3764=1533%:%
-%:%3765=1534%:%
-%:%3766=1534%:%
-%:%3767=1535%:%
-%:%3768=1535%:%
-%:%3769=1536%:%
-%:%3770=1536%:%
-%:%3771=1537%:%
-%:%3772=1537%:%
-%:%3773=1538%:%
-%:%3774=1538%:%
-%:%3775=1539%:%
-%:%3776=1539%:%
-%:%3777=1540%:%
-%:%3778=1540%:%
-%:%3779=1540%:%
-%:%3784=1540%:%
-%:%3787=1541%:%
-%:%3788=1542%:%
-%:%3789=1543%:%
-%:%3790=1543%:%
-%:%3791=1544%:%
-%:%3792=1544%:%
-%:%3795=1545%:%
-%:%3799=1545%:%
-%:%3800=1545%:%
-%:%3805=1545%:%
-%:%3808=1546%:%
-%:%3809=1547%:%
-%:%3810=1547%:%
-%:%3813=1548%:%
-%:%3817=1548%:%
-%:%3818=1548%:%
-%:%3819=1548%:%
-%:%3824=1548%:%
-%:%3827=1549%:%
-%:%3828=1550%:%
-%:%3829=1550%:%
-%:%3832=1551%:%
-%:%3836=1551%:%
-%:%3837=1551%:%
-%:%3842=1551%:%
-%:%3845=1552%:%
-%:%3846=1553%:%
-%:%3847=1553%:%
-%:%3850=1554%:%
-%:%3854=1554%:%
-%:%3855=1554%:%
-%:%3860=1554%:%
-%:%3863=1555%:%
-%:%3864=1556%:%
-%:%3865=1556%:%
-%:%3868=1557%:%
-%:%3872=1557%:%
-%:%3873=1557%:%
-%:%3874=1558%:%
-%:%3875=1558%:%
-%:%3876=1559%:%
-%:%3877=1559%:%
-%:%3882=1559%:%
-%:%3885=1560%:%
-%:%3886=1561%:%
-%:%3887=1561%:%
-%:%3890=1562%:%
-%:%3894=1562%:%
-%:%3895=1562%:%
-%:%3896=1563%:%
-%:%3897=1563%:%
-%:%3898=1564%:%
-%:%3899=1565%:%
-%:%3900=1565%:%
-%:%3901=1566%:%
-%:%3902=1567%:%
-%:%3903=1567%:%
-%:%3904=1568%:%
-%:%3905=1569%:%
-%:%3906=1569%:%
-%:%3907=1570%:%
-%:%3908=1571%:%
-%:%3909=1571%:%
-%:%3910=1571%:%
-%:%3911=1572%:%
-%:%3912=1573%:%
-%:%3913=1573%:%
-%:%3914=1573%:%
-%:%3915=1574%:%
-%:%3916=1575%:%
-%:%3917=1575%:%
-%:%3918=1575%:%
-%:%3919=1576%:%
-%:%3920=1577%:%
-%:%3921=1577%:%
-%:%3922=1578%:%
-%:%3923=1579%:%
-%:%3924=1579%:%
-%:%3925=1579%:%
-%:%3926=1580%:%
-%:%3927=1581%:%
-%:%3928=1581%:%
-%:%3929=1582%:%
-%:%3930=1583%:%
-%:%3931=1583%:%
-%:%3932=1584%:%
-%:%3933=1585%:%
-%:%3934=1585%:%
-%:%3935=1586%:%
-%:%3936=1587%:%
-%:%3937=1587%:%
-%:%3938=1588%:%
-%:%3939=1589%:%
-%:%3940=1589%:%
-%:%3941=1589%:%
-%:%3946=1589%:%
-%:%3949=1590%:%
-%:%3950=1591%:%
-%:%3951=1592%:%
-%:%3952=1593%:%
-%:%3953=1593%:%
-%:%3956=1594%:%
-%:%3960=1594%:%
-%:%3961=1594%:%
-%:%3962=1595%:%
-%:%3963=1595%:%
-%:%3964=1596%:%
-%:%3965=1596%:%
-%:%3970=1596%:%
-%:%3973=1597%:%
-%:%3974=1598%:%
-%:%3975=1598%:%
-%:%3978=1599%:%
-%:%3982=1599%:%
-%:%3983=1599%:%
-%:%3984=1600%:%
-%:%3985=1600%:%
-%:%3986=1601%:%
-%:%3987=1601%:%
-%:%3992=1601%:%
-%:%3995=1602%:%
-%:%3996=1603%:%
-%:%3997=1604%:%
-%:%3998=1605%:%
-%:%3999=1605%:%
-%:%4002=1606%:%
-%:%4006=1606%:%
-%:%4007=1606%:%
-%:%4008=1607%:%
-%:%4009=1607%:%
-%:%4010=1608%:%
-%:%4011=1608%:%
-%:%4012=1609%:%
-%:%4013=1609%:%
-%:%4014=1610%:%
-%:%4015=1610%:%
-%:%4016=1611%:%
-%:%4017=1612%:%
-%:%4018=1612%:%
-%:%4023=1612%:%
-%:%4026=1613%:%
-%:%4027=1614%:%
-%:%4028=1614%:%
-%:%4029=1615%:%
-%:%4031=1617%:%
-%:%4034=1618%:%
-%:%4038=1618%:%
-%:%4039=1618%:%
-%:%4040=1619%:%
-%:%4041=1620%:%
-%:%4042=1620%:%
-%:%4043=1620%:%
-%:%4048=1620%:%
-%:%4051=1621%:%
-%:%4052=1622%:%
-%:%4053=1622%:%
-%:%4056=1623%:%
-%:%4060=1623%:%
-%:%4061=1623%:%
-%:%4062=1624%:%
-%:%4063=1625%:%
-%:%4064=1625%:%
-%:%4065=1626%:%
-%:%4066=1626%:%
-%:%4067=1627%:%
-%:%4068=1628%:%
-%:%4069=1628%:%
-%:%4070=1629%:%
-%:%4071=1629%:%
-%:%4072=1630%:%
-%:%4073=1630%:%
-%:%4074=1631%:%
-%:%4075=1631%:%
-%:%4076=1632%:%
-%:%4077=1632%:%
-%:%4078=1633%:%
-%:%4079=1633%:%
-%:%4080=1634%:%
-%:%4081=1634%:%
-%:%4082=1635%:%
-%:%4083=1635%:%
-%:%4084=1636%:%
-%:%4085=1636%:%
-%:%4086=1636%:%
-%:%4087=1637%:%
-%:%4088=1637%:%
-%:%4089=1638%:%
-%:%4090=1638%:%
-%:%4091=1639%:%
-%:%4092=1639%:%
-%:%4093=1640%:%
-%:%4094=1640%:%
-%:%4095=1641%:%
-%:%4096=1641%:%
-%:%4097=1641%:%
-%:%4098=1642%:%
-%:%4099=1642%:%
-%:%4100=1643%:%
-%:%4101=1644%:%
-%:%4102=1644%:%
-%:%4103=1644%:%
-%:%4104=1645%:%
-%:%4105=1645%:%
-%:%4106=1646%:%
-%:%4107=1646%:%
-%:%4108=1647%:%
-%:%4109=1647%:%
-%:%4110=1648%:%
-%:%4111=1648%:%
-%:%4112=1649%:%
-%:%4113=1649%:%
-%:%4114=1649%:%
-%:%4115=1650%:%
-%:%4116=1650%:%
-%:%4117=1650%:%
-%:%4118=1651%:%
-%:%4119=1651%:%
-%:%4120=1651%:%
-%:%4121=1652%:%
-%:%4122=1652%:%
-%:%4123=1653%:%
-%:%4124=1653%:%
-%:%4125=1654%:%
-%:%4126=1654%:%
-%:%4127=1655%:%
-%:%4128=1655%:%
-%:%4129=1656%:%
-%:%4130=1656%:%
-%:%4131=1656%:%
-%:%4132=1657%:%
-%:%4133=1657%:%
-%:%4134=1658%:%
-%:%4135=1658%:%
-%:%4136=1659%:%
-%:%4137=1659%:%
-%:%4138=1660%:%
-%:%4139=1660%:%
-%:%4140=1661%:%
-%:%4141=1662%:%
-%:%4142=1662%:%
-%:%4143=1663%:%
-%:%4144=1664%:%
-%:%4145=1664%:%
-%:%4146=1664%:%
-%:%4147=1665%:%
-%:%4148=1666%:%
-%:%4149=1666%:%
-%:%4150=1666%:%
-%:%4151=1667%:%
-%:%4152=1668%:%
-%:%4153=1668%:%
-%:%4154=1668%:%
-%:%4155=1669%:%
-%:%4156=1670%:%
-%:%4157=1670%:%
-%:%4158=1671%:%
-%:%4159=1672%:%
-%:%4160=1672%:%
-%:%4161=1673%:%
-%:%4162=1674%:%
-%:%4163=1674%:%
-%:%4164=1675%:%
-%:%4165=1676%:%
-%:%4166=1676%:%
-%:%4167=1677%:%
-%:%4168=1678%:%
-%:%4169=1679%:%
-%:%4170=1679%:%
-%:%4171=1679%:%
-%:%4176=1679%:%
-%:%4179=1680%:%
-%:%4180=1681%:%
-%:%4181=1682%:%
-%:%4182=1683%:%
-%:%4183=1683%:%
-%:%4186=1684%:%
-%:%4190=1684%:%
-%:%4191=1684%:%
-%:%4192=1685%:%
-%:%4193=1685%:%
-%:%4194=1686%:%
-%:%4195=1686%:%
-%:%4200=1686%:%
-%:%4203=1687%:%
-%:%4204=1688%:%
-%:%4205=1689%:%
-%:%4206=1690%:%
-%:%4207=1691%:%
-%:%4208=1691%:%
-%:%4211=1692%:%
-%:%4215=1692%:%
-%:%4216=1692%:%
-%:%4217=1693%:%
-%:%4218=1694%:%
-%:%4219=1694%:%
-%:%4220=1695%:%
-%:%4221=1695%:%
-%:%4222=1696%:%
-%:%4223=1696%:%
-%:%4224=1697%:%
-%:%4225=1697%:%
-%:%4230=1697%:%
-%:%4233=1698%:%
-%:%4234=1699%:%
-%:%4235=1700%:%
-%:%4236=1701%:%
-%:%4237=1701%:%
-%:%4238=1702%:%
-%:%4239=1703%:%
-%:%4240=1703%:%
-%:%4243=1704%:%
-%:%4247=1704%:%
-%:%4248=1704%:%
-%:%4249=1704%:%
-%:%4254=1704%:%
-%:%4257=1705%:%
-%:%4258=1706%:%
-%:%4259=1706%:%
-%:%4262=1707%:%
-%:%4266=1707%:%
-%:%4267=1707%:%
-%:%4272=1707%:%
-%:%4275=1708%:%
-%:%4276=1709%:%
-%:%4277=1710%:%
-%:%4278=1710%:%
-%:%4281=1711%:%
-%:%4285=1711%:%
-%:%4286=1711%:%
-%:%4287=1711%:%
-%:%4292=1711%:%
-%:%4295=1712%:%
-%:%4296=1713%:%
-%:%4297=1714%:%
-%:%4298=1714%:%
-%:%4299=1715%:%
-%:%4302=1716%:%
-%:%4307=1717%:%
\ No newline at end of file
--- a/thys2/Journal/root.log	Mon Nov 01 10:52:44 2021 +0000
+++ b/thys2/Journal/root.log	Tue Nov 02 13:57:59 2021 +0000
@@ -1,4 +1,4 @@
-This is LuaTeX, Version 1.07.0 (TeX Live 2018)  (format=lualatex 2019.2.7)  1 NOV 2021 09:38
+This is LuaTeX, Version 1.07.0 (TeX Live 2018)  (format=lualatex 2019.2.7)  1 NOV 2021 11:19
  restricted system commands enabled.
 **root.tex
 (./root.tex
@@ -34,7 +34,7 @@
 '.
 Inserting `luaotfload.rewrite_fontname' at position 4 in `luaotfload.patch_font'
 .
-luaotfload | main : initialization completed in 0.091 seconds
+luaotfload | main : initialization completed in 0.120 seconds
 Babel <3.18> and hyphenation patterns for 1 language(s) loaded.
 (./llncs.cls
 Document Class: llncs 2002/01/28 v2.13 
@@ -1580,147 +1580,147 @@
 
 ) (./Paper.tex
 
-LaTeX Warning: Citation `Brzozowski1964' on page 41 undefined on input line 82.
+LaTeX Warning: Citation `Brzozowski1964' on page 41 undefined on input line 78.
 
 
-LaTeX Warning: Citation `Owens2008' on page 41 undefined on input line 96.
+LaTeX Warning: Citation `Owens2008' on page 41 undefined on input line 92.
 
 
-LaTeX Warning: Citation `Krauss2011' on page 41 undefined on input line 97.
+LaTeX Warning: Citation `Krauss2011' on page 41 undefined on input line 93.
 
 
-LaTeX Warning: Citation `Coquand2012' on page 41 undefined on input line 98.
+LaTeX Warning: Citation `Coquand2012' on page 41 undefined on input line 94.
 
 [41]
 
-LaTeX Warning: Citation `Frisch2004' on page 42 undefined on input line 103.
+LaTeX Warning: Citation `Frisch2004' on page 42 undefined on input line 99.
 
 
-LaTeX Warning: Citation `POSIX' on page 42 undefined on input line 104.
+LaTeX Warning: Citation `POSIX' on page 42 undefined on input line 100.
 
 
-LaTeX Warning: Citation `Kuklewicz' on page 42 undefined on input line 104.
+LaTeX Warning: Citation `Kuklewicz' on page 42 undefined on input line 100.
 
 
-LaTeX Warning: Citation `OkuiSuzuki2010' on page 42 undefined on input line 104.
+LaTeX Warning: Citation `OkuiSuzuki2010' on page 42 undefined on input line 100.
 
 
 
-LaTeX Warning: Citation `Sulzmann2014' on page 42 undefined on input line 104.
+LaTeX Warning: Citation `Sulzmann2014' on page 42 undefined on input line 100.
 
 
-LaTeX Warning: Citation `Vansummeren2006' on page 42 undefined on input line 104
+LaTeX Warning: Citation `Vansummeren2006' on page 42 undefined on input line 100
 .
 
 
-LaTeX Warning: Citation `POSIX' on page 42 undefined on input line 121.
+LaTeX Warning: Citation `POSIX' on page 42 undefined on input line 117.
 
 [42]
 
-LaTeX Warning: Citation `Sulzmann2014' on page 43 undefined on input line 160.
+LaTeX Warning: Citation `Sulzmann2014' on page 43 undefined on input line 156.
 
 
 LaTeX Warning: Citation `HosoyaVouillonPierce2005' on page 43 undefined on input
- line 182.
+ line 178.
 
 
-LaTeX Warning: Citation `Sulzmann2014' on page 43 undefined on input line 204.
+LaTeX Warning: Citation `Sulzmann2014' on page 43 undefined on input line 200.
 
 
-LaTeX Warning: Citation `Frisch2004' on page 43 undefined on input line 208.
+LaTeX Warning: Citation `Frisch2004' on page 43 undefined on input line 204.
 
 
-LaTeX Warning: Citation `Sulzmann2014' on page 43 undefined on input line 213.
+LaTeX Warning: Citation `Sulzmann2014' on page 43 undefined on input line 209.
 
 
-LaTeX Warning: Citation `Kuklewicz' on page 43 undefined on input line 221.
+LaTeX Warning: Citation `Kuklewicz' on page 43 undefined on input line 217.
 
 
-LaTeX Warning: Citation `Sulzmann2014' on page 43 undefined on input line 222.
+LaTeX Warning: Citation `Sulzmann2014' on page 43 undefined on input line 218.
 
 
-LaTeX Warning: Citation `CrashCourse2014' on page 43 undefined on input line 223
+LaTeX Warning: Citation `CrashCourse2014' on page 43 undefined on input line 219
 .
 
 [43]
 
-LaTeX Warning: Citation `Sulzmann2014' on page 44 undefined on input line 235.
+LaTeX Warning: Citation `Sulzmann2014' on page 44 undefined on input line 231.
 
 
-LaTeX Warning: Citation `Vansummeren2006' on page 44 undefined on input line 237
+LaTeX Warning: Citation `Vansummeren2006' on page 44 undefined on input line 233
 .
 
 
-LaTeX Warning: Citation `Sulzmann2014' on page 44 undefined on input line 238.
+LaTeX Warning: Citation `Sulzmann2014' on page 44 undefined on input line 234.
 
 (load luc: /Users/cstan/Library/texlive/2018/texmf-var/luatex-cache/generic/font
 s/otl/lmroman8-regular.luc)
 
-LaTeX Warning: Citation `Sulzmann2014' on page 44 undefined on input line 242.
+LaTeX Warning: Citation `Sulzmann2014' on page 44 undefined on input line 238.
 
 
-LaTeX Warning: Citation `OkuiSuzuki2010' on page 44 undefined on input line 246.
+LaTeX Warning: Citation `OkuiSuzuki2010' on page 44 undefined on input line 242.
 
 
 (load luc: /Users/cstan/Library/texlive/2018/texmf-var/luatex-cache/generic/font
 s/otl/lmroman10-bolditalic.luc) [44]
 
 LaTeX Font Warning: Font shape `U/stmry/b/n' undefined
-(Font)              using `U/stmry/m/n' instead on input line 325.
+(Font)              using `U/stmry/m/n' instead on input line 321.
 
 
-LaTeX Warning: Citation `Krauss2011' on page 45 undefined on input line 330.
+LaTeX Warning: Citation `Krauss2011' on page 45 undefined on input line 326.
 
 (load luc: /Users/cstan/Library/texlive/2018/texmf-var/luatex-cache/generic/font
 s/otl/lmroman6-regular.luc)
 
-LaTeX Warning: Citation `Brzozowski1964' on page 45 undefined on input line 345.
+LaTeX Warning: Citation `Brzozowski1964' on page 45 undefined on input line 341.
 
 
 
-Overfull \hbox (1.4002pt too wide) in paragraph at lines 352--373
+Overfull \hbox (1.4002pt too wide) in paragraph at lines 348--369
  [] 
  []
 
 [45]
 
-LaTeX Warning: Citation `Sulzmann2014' on page 46 undefined on input line 408.
+LaTeX Warning: Citation `Sulzmann2014' on page 46 undefined on input line 404.
 
 
-LaTeX Warning: Citation `Sulzmann2014' on page 46 undefined on input line 432.
+LaTeX Warning: Citation `Sulzmann2014' on page 46 undefined on input line 428.
 
 
-LaTeX Warning: Citation `Frisch2004' on page 46 undefined on input line 449.
+LaTeX Warning: Citation `Frisch2004' on page 46 undefined on input line 445.
 
 
-LaTeX Warning: Citation `Sulzmann2014' on page 46 undefined on input line 450.
+LaTeX Warning: Citation `Sulzmann2014' on page 46 undefined on input line 446.
 
 
 LaTeX Warning: Citation `AusafDyckhoffUrban2016' on page 46 undefined on input l
-ine 482.
+ine 478.
 
 [46]
 
-LaTeX Warning: Citation `OkuiSuzuki2010' on page 47 undefined on input line 519.
+LaTeX Warning: Citation `OkuiSuzuki2010' on page 47 undefined on input line 515.
 
 
 
-LaTeX Warning: Citation `Frisch2004' on page 47 undefined on input line 519.
+LaTeX Warning: Citation `Frisch2004' on page 47 undefined on input line 515.
 
 
-Underfull \hbox (badness 10000) in paragraph at lines 579--580
+Underfull \hbox (badness 10000) in paragraph at lines 575--576
 
  []
 
 
-LaTeX Warning: Citation `Sulzmann2014' on page 47 undefined on input line 590.
+LaTeX Warning: Citation `Sulzmann2014' on page 47 undefined on input line 586.
 
 
-LaTeX Warning: Citation `Sulzmann2014' on page 47 undefined on input line 590.
+LaTeX Warning: Citation `Sulzmann2014' on page 47 undefined on input line 586.
 
 [47]
 
-LaTeX Warning: Citation `Sulzmann2014' on page 48 undefined on input line 610.
+LaTeX Warning: Citation `Sulzmann2014' on page 48 undefined on input line 606.
 
 
 Underfull \vbox (badness 10000) has occurred while \output is active []
@@ -1728,61 +1728,61 @@
  [48]
 [49]
 
-LaTeX Warning: Citation `Sulzmann2014' on page 50 undefined on input line 718.
+LaTeX Warning: Citation `Sulzmann2014' on page 50 undefined on input line 714.
 
 
-LaTeX Warning: Citation `Vansummeren2006' on page 50 undefined on input line 725
+LaTeX Warning: Citation `Vansummeren2006' on page 50 undefined on input line 721
 .
 
 (load luc: /Users/cstan/Library/texlive/2018/texmf-var/luatex-cache/generic/font
 s/otl/lmroman5-regular.luc) [50] [51] [52]
 
-LaTeX Warning: Citation `Sulzmann2014' on page 53 undefined on input line 938.
+LaTeX Warning: Citation `Sulzmann2014' on page 53 undefined on input line 934.
 
 
-LaTeX Warning: Citation `Sulzmann2014' on page 53 undefined on input line 940.
+LaTeX Warning: Citation `Sulzmann2014' on page 53 undefined on input line 936.
 
 
-LaTeX Warning: Citation `OkuiSuzuki2010' on page 53 undefined on input line 947.
+LaTeX Warning: Citation `OkuiSuzuki2010' on page 53 undefined on input line 943.
 
 
 
-LaTeX Warning: Citation `OkuiSuzukiTech' on page 53 undefined on input line 947.
+LaTeX Warning: Citation `OkuiSuzukiTech' on page 53 undefined on input line 943.
 
 
 [53] [54]
 
-LaTeX Warning: Citation `OkuiSuzuki2010' on page 55 undefined on input line 1069
+LaTeX Warning: Citation `OkuiSuzuki2010' on page 55 undefined on input line 1065
 .
 
 
-LaTeX Warning: Citation `OkuiSuzuki2010' on page 55 undefined on input line 1090
+LaTeX Warning: Citation `OkuiSuzuki2010' on page 55 undefined on input line 1086
 .
 
 
-LaTeX Warning: Citation `OkuiSuzuki2010' on page 55 undefined on input line 1130
+LaTeX Warning: Citation `OkuiSuzuki2010' on page 55 undefined on input line 1126
 .
 
 [55]
-Overfull \hbox (47.18065pt too wide) in paragraph at lines 1154--1184
+Overfull \hbox (47.18065pt too wide) in paragraph at lines 1150--1180
 [] [] 
  []
 
 [56] [57]
 
-LaTeX Warning: Citation `Sulzmann2014' on page 58 undefined on input line 1351.
+LaTeX Warning: Citation `Sulzmann2014' on page 58 undefined on input line 1347.
 
 (load luc: /Users/cstan/Library/texlive/2018/texmf-var/luatex-cache/generic/font
 s/otl/lmroman8-bold.luc)(load luc: /Users/cstan/Library/texlive/2018/texmf-var/l
 uatex-cache/generic/fonts/otl/lmroman5-bold.luc)
 
-LaTeX Warning: Citation `Sulzmann2014' on page 58 undefined on input line 1370.
+LaTeX Warning: Citation `Sulzmann2014' on page 58 undefined on input line 1366.
 
 
 Underfull \vbox (badness 10000) has occurred while \output is active []
 
  [58]
-Overfull \hbox (4.61574pt too wide) in paragraph at lines 1434--1435
+Overfull \hbox (4.61574pt too wide) in paragraph at lines 1430--1431
 \OT1/zplm/m/n/10 $$$\OMS/zplm/m/n/10 n$\TU/lmr/m/it/10 dn$\OT1/zplm/m/n/10 $$ $
 \OT1/pplx/m/n/10 &$ $@$$\OMS/zplm/m/n/10 f$\TU/lmr/m/it/10 thm $\OT1/zplm/m/n/1
 0 ($\TU/lmr/m/it/10 rhs$\OT1/zplm/m/n/10 )$ \TU/lmr/m/it/10 in-tern$\OT1/pplx/m
@@ -1795,7 +1795,7 @@
  []
 
 
-Overfull \hbox (43.28516pt too wide) in paragraph at lines 1434--1435
+Overfull \hbox (43.28516pt too wide) in paragraph at lines 1430--1431
 \OT1/pplx/m/n/10 &$ $\OT1/zplm/m/n/10 $$$\OMS/zplm/m/n/10 n$\TU/lmr/m/it/10 dn$
 \OT1/zplm/m/n/10 $$ $\OT1/pplx/m/n/10 &$ $@$$\OMS/zplm/m/n/10 f$\TU/lmr/m/it/10
  thm $\OT1/zplm/m/n/10 ($\TU/lmr/m/it/10 rhs$\OT1/zplm/m/n/10 )$ \TU/lmr/m/it/1
@@ -1807,7 +1807,7 @@
  []
 
 
-Overfull \hbox (31.37523pt too wide) in paragraph at lines 1434--1435
+Overfull \hbox (31.37523pt too wide) in paragraph at lines 1430--1431
 \OMS/zplm/m/n/10 n$\TU/lmr/m/it/10 end$\OMS/zplm/m/n/10 f$\TU/lmr/m/it/10 tabul
 ar$\OMS/zplm/m/n/10 g$ $n$\TU/lmr/m/it/10 end$\OMS/zplm/m/n/10 f$\TU/lmr/m/it/1
 0 center$\OMS/zplm/m/n/10 g$  \TU/lmr/m/it/10 Some sim-ple facts about erase  $
@@ -1816,7 +1816,7 @@
  []
 
 
-Overfull \hbox (4.57928pt too wide) in paragraph at lines 1434--1435
+Overfull \hbox (4.57928pt too wide) in paragraph at lines 1430--1431
 \OT1/pplx/m/n/10 @$$\OMS/zplm/m/n/10 f$\TU/lmr/m/it/10 thm $\OT1/zplm/m/n/10 ($
 \TU/lmr/m/it/10 rhs$\OT1/zplm/m/n/10 )$ \TU/lmr/m/it/10 bnul-lable$\OT1/pplx/m/
 n/10 .$\TU/lmr/m/it/10 simps$\OT1/zplm/m/n/10 ($\TU/lmr/m/it/10 4$\OT1/zplm/m/n
@@ -1828,7 +1828,7 @@
  []
 
 
-Overfull \hbox (7.7924pt too wide) in paragraph at lines 1434--1435
+Overfull \hbox (7.7924pt too wide) in paragraph at lines 1430--1431
 \OT1/zplm/m/n/10 ($\TU/lmr/m/it/10 lhs$\OT1/zplm/m/n/10 )$ \TU/lmr/m/it/10 bnul
 -lable$\OT1/pplx/m/n/10 .$\TU/lmr/m/it/10 simps$\OT1/zplm/m/n/10 ($\TU/lmr/m/it
 /10 6$\OT1/zplm/m/n/10 )$$\OMS/zplm/m/n/10 g$ $\OT1/pplx/m/n/10 &$ $\OT1/zplm/m
@@ -1840,7 +1840,7 @@
  []
 
 
-Overfull \hbox (34.28575pt too wide) in paragraph at lines 1434--1435
+Overfull \hbox (34.28575pt too wide) in paragraph at lines 1430--1431
 \TU/lmr/m/it/10 bder$\OT1/pplx/m/n/10 .$\TU/lmr/m/it/10 simps$\OT1/zplm/m/n/10 
 ($\TU/lmr/m/it/10 3$\OT1/zplm/m/n/10 )$$\OMS/zplm/m/n/10 g$ $\OT1/pplx/m/n/10 &
 $ $\OT1/zplm/m/n/10 $$$\OMS/zplm/m/n/10 n$\TU/lmr/m/it/10 dn$\OT1/zplm/m/n/10 $
@@ -1854,7 +1854,7 @@
  []
 
 
-Overfull \hbox (3.47198pt too wide) in paragraph at lines 1434--1435
+Overfull \hbox (3.47198pt too wide) in paragraph at lines 1430--1431
 \OT1/pplx/m/n/10 @$$\OMS/zplm/m/n/10 f$\TU/lmr/m/it/10 thm $\OT1/zplm/m/n/10 ($
 \TU/lmr/m/it/10 rhs$\OT1/zplm/m/n/10 )$ \TU/lmr/m/it/10 bmkeps$\OT1/pplx/m/n/10
  .$\TU/lmr/m/it/10 simps$\OT1/zplm/m/n/10 ($\TU/lmr/m/it/10 4$\OT1/zplm/m/n/10 
@@ -1865,7 +1865,7 @@
  []
 
 
-Overfull \hbox (2.7528pt too wide) in paragraph at lines 1434--1435
+Overfull \hbox (2.7528pt too wide) in paragraph at lines 1430--1431
 \OMS/zplm/m/n/10 n$\TU/lmr/m/it/10 noindent Def-i-ni-tion of the bit-coded lexe
 r  $\OT1/pplx/m/n/10 @$$\OMS/zplm/m/n/10 f$\TU/lmr/m/it/10 thm blexer[]def$\OMS
 /zplm/m/n/10 g$   $n$\TU/lmr/m/it/10 begin$\OMS/zplm/m/n/10 f$\TU/lmr/m/it/10 t
@@ -1876,7 +1876,7 @@
 Underfull \vbox (badness 10000) has occurred while \output is active []
 
  [60]
-Overfull \hbox (2.67558pt too wide) in paragraph at lines 1438--1447
+Overfull \hbox (2.67558pt too wide) in paragraph at lines 1434--1443
 \TU/lmr/m/it/10 ac-cord-ing to rules like  $\OMS/zplm/m/n/10 n$\TU/lmr/m/it/10 
 begin$\OMS/zplm/m/n/10 f$\TU/lmr/m/it/10 equation$\OMS/zplm/m/n/10 g$$n$\TU/lmr
 /m/it/10 label$\OMS/zplm/m/n/10 f$\TU/lmr/m/it/10 Simpl$\OMS/zplm/m/n/10 g$ $n$
@@ -1885,7 +1885,7 @@
  []
 
 
-Overfull \hbox (35.68385pt too wide) in paragraph at lines 1438--1447
+Overfull \hbox (35.68385pt too wide) in paragraph at lines 1434--1443
 \TU/lmr/m/it/10 F[]SEQ1$\OT1/pplx/m/n/10 .$\TU/lmr/m/it/10 simps$\OT1/zplm/m/n/
 10 ($\TU/lmr/m/it/10 1$\OT1/zplm/m/n/10 )$$\OMS/zplm/m/n/10 g$ $\OT1/pplx/m/n/1
 0 &$ $\OT1/zplm/m/n/10 $$$\OMS/zplm/m/n/10 n$\TU/lmr/m/it/10 dn$\OT1/zplm/m/n/1
@@ -1898,7 +1898,7 @@
  []
 
 
-Overfull \hbox (18.66588pt too wide) in paragraph at lines 1438--1447
+Overfull \hbox (18.66588pt too wide) in paragraph at lines 1434--1443
 \OT1/pplx/m/n/10 &$ $@$$\OMS/zplm/m/n/10 f$\TU/lmr/m/it/10 thm L[]fst[]simp$\OT
 1/zplm/m/n/10 [$\TU/lmr/m/it/10 symmetric$\OT1/zplm/m/n/10 ]$$\OMS/zplm/m/n/10 
 g$$n$$n$ $\OT1/zplm/m/n/10 ($\TU/lmr/m/it/10 2$\OT1/zplm/m/n/10 )$ $\OT1/pplx/m
@@ -1922,15 +1922,9 @@
  (./root.aux)
 Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 96.
 Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 96.
-
+Package rerunfilecheck Info: File `root.out' has not changed.
+(rerunfilecheck)             Checksum: F68486A1B88421815EBCC3CB75200893;512.
 
-Package rerunfilecheck Warning: File `root.out' has changed.
-(rerunfilecheck)                Rerun to get outlines right
-(rerunfilecheck)                or use package `bookmark'.
-
-Package rerunfilecheck Info: Checksums for `root.out':
-(rerunfilecheck)             Before: 40AB4FCF7DFB133886AD9117C6B3D022;396
-(rerunfilecheck)             After:  F68486A1B88421815EBCC3CB75200893;512.
 
 LaTeX Font Warning: Size substitutions with differences
 (Font)              up to 2.26395pt have occurred.
@@ -1938,32 +1932,19 @@
 
 LaTeX Font Warning: Some font shapes were not available, defaults substituted.
 
-
-LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right.
-
 Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 96.
 )
 
 Here is how much of LuaTeX's memory you used:
- 29104 strings out of 494413
+ 29101 strings out of 494413
  156265,794899 words of node,token memory allocated
  1590 words of node memory still in use:
    9 hlist, 2 vlist, 2 rule, 11 disc, 21 glue, 7 kern, 98 glyph, 33 attribute, 5
 7 glue_spec, 33 attribute_list, 1 write nodes
-   avail lists: 2:6992,3:290,4:52,5:2358,6:47,7:12582,8:52,9:593,10:23,11:398
- 31952 multiletter control sequences out of 65536+600000
+   avail lists: 2:6992,3:291,4:52,5:2358,6:47,7:12582,8:52,9:593,10:23,11:398
+ 31954 multiletter control sequences out of 65536+600000
  282 fonts using 23215399 bytes
  55i,23n,68p,45885b,993s stack positions out of 5000i,500n,10000p,200000b,100000s
-
-warning  (pdf backend): unreferenced destination with name 'equation.1.6.2'
-
-warning  (pdf backend): unreferenced destination with name 'theorem.1.4.3'
-
-warning  (pdf backend): unreferenced destination with name 'theorem.1.3.2'
-
-warning  (pdf backend): unreferenced destination with name 'theorem.1.3.1'
-
-warning  (pdf backend): unreferenced destination with name 'equation.1.2.1'
 </usr/local/texlive/2018/texmf-dist/fonts/opentype/public/lm/lmroman7-regular.ot
 f></usr/local/texlive/2018/texmf-dist/fonts/opentype/public/lm/lmroman8-regular.
 otf></usr/local/texlive/2018/texmf-dist/fonts/opentype/public/lm/lmroman7-italic
@@ -1986,10 +1967,10 @@
 ocal/texlive/2018/texmf-dist/fonts/type1/public/stmaryrd/stmary10.pfb></usr/loca
 l/texlive/2018/texmf-dist/fonts/type1/urw/palatino/uplr8a.pfb></usr/local/texliv
 e/2018/texmf-dist/fonts/type1/urw/palatino/uplri8a.pfb>
-Output written on root.pdf (65 pages, 375818 bytes).
+Output written on root.pdf (65 pages, 375799 bytes).
 
-PDF statistics: 526 PDF objects out of 1000 (max. 8388607)
- 411 compressed objects within 5 object streams
- 112 named destinations out of 1000 (max. 131072)
- 72 words of extra memory for PDF output out of 10000 (max. 100000000)
+PDF statistics: 527 PDF objects out of 1000 (max. 8388607)
+ 412 compressed objects within 5 object streams
+ 107 named destinations out of 1000 (max. 131072)
+ 88 words of extra memory for PDF output out of 10000 (max. 100000000)
 
Binary file thys2/Journal/root.pdf has changed
Binary file thys2/Journal/session_graph.pdf has changed
Binary file thys2/journal.pdf has changed