diff -r 273c176d9027 -r 2e05f04ed6b3 ChengsongTanPhdThesis/Chapters/Bitcoded2.tex --- a/ChengsongTanPhdThesis/Chapters/Bitcoded2.tex Sun Jul 09 02:08:12 2023 +0100 +++ b/ChengsongTanPhdThesis/Chapters/Bitcoded2.tex Mon Jul 10 00:44:45 2023 +0100 @@ -360,6 +360,8 @@ will definitely not contribute to a POSIX value, even if they are attached with different bitcodes. These duplicates therefore need to be removed. + + To achieve this, we call $\rerases$ as the function $f$ during the distinction operation. The function $\rerases$ is very similar to $\erase$, except that it preserves the structure @@ -375,7 +377,7 @@ the new datatype used by $\rerases$ (as our plain regular expression datatype does not allow non-binary alternatives). For now we can think of -$\rerases$ as the function $(\_)_\downarrow$ defined in chapter \ref{Bitcoded1} +$\rerases$ as the function erase ($(\_)_\downarrow$) defined in chapter \ref{Bitcoded1} and $\rrexp$ as plain regular expressions, but having a general list constructor for alternatives: \begin{figure}[H] @@ -400,6 +402,10 @@ $\rerase{_{bs} a ^*}$ & $\dn$ & $\rerase{a}^*$ \end{tabular} \end{center} +We will provide more details in \ref{whyRerase} for why a new +erase function and new datatype is needed. But briefly speaking +it is for backward-compatibility with $\blexer$'s correctness proof and +the path we (naturally) took during our proof engineering of the finiteness property. \subsection{Putting Things Together} We can now give the definition of our simplification function: