PROOF.bend

bend-osdev-aria@0.1.0.0 · 6,717 lines · 0 definitions

1import Base
2import bend-osdev-bytes@0.1.1.0/bytes.bend as B
3import bend-osdev-mode-core@0.1.0.0/mode_core.bend as M
4import bend-osdev-cipher-core@0.1.0.0/cipher_core.bend as L
5import bend-osdev-cipher-core@0.1.0.0/LAWS.bend as CoreL
6import bend-osdev-cipher-core@0.1.0.0/PROOF.bend as CoreP
7import bend-osdev-aria@0.1.0.0/aria.bend as A
8import bend-osdev-aria@0.1.0.0/LAWS.bend as Laws
9
10# ARIA: each step of the cipher undone (the "aria" lemmas below), so the
11# list of steps is; and a block survives its bytes
12
13# BEGIN GENERATED by gen/proof.py: aria
14# each S-box and its inverse undo each other on every byte
15def aria_sb31(w0: Word(8n)) -> {w0 == A.aria.sb3(A.aria.sb1(w0)) : Word(8n)}:
16  match w0:
17    case WCon{False{}, w1}:
18      match w1:
19        case WCon{False{}, w2}:
20          match w2:
21            case WCon{False{}, w3}:
22              match w3:
23                case WCon{False{}, w4}:
24                  match w4:
25                    case WCon{False{}, w5}:
26                      match w5:
27                        case WCon{False{}, w6}:
28                          match w6:
29                            case WCon{False{}, w7}:
30                              match w7:
31                                case WCon{False{}, w8}:
32                                  match w8:
33                                    case WNil{}:
34                                      {==}
35                                case WCon{True{}, w8}:
36                                  match w8:
37                                    case WNil{}:
38                                      {==}
39                            case WCon{True{}, w7}:
40                              match w7:
41                                case WCon{False{}, w8}:
42                                  match w8:
43                                    case WNil{}:
44                                      {==}
45                                case WCon{True{}, w8}:
46                                  match w8:
47                                    case WNil{}:
48                                      {==}
49                        case WCon{True{}, w6}:
50                          match w6:
51                            case WCon{False{}, w7}:
52                              match w7:
53                                case WCon{False{}, w8}:
54                                  match w8:
55                                    case WNil{}:
56                                      {==}
57                                case WCon{True{}, w8}:
58                                  match w8:
59                                    case WNil{}:
60                                      {==}
61                            case WCon{True{}, w7}:
62                              match w7:
63                                case WCon{False{}, w8}:
64                                  match w8:
65                                    case WNil{}:
66                                      {==}
67                                case WCon{True{}, w8}:
68                                  match w8:
69                                    case WNil{}:
70                                      {==}
71                    case WCon{True{}, w5}:
72                      match w5:
73                        case WCon{False{}, w6}:
74                          match w6:
75                            case WCon{False{}, w7}:
76                              match w7:
77                                case WCon{False{}, w8}:
78                                  match w8:
79                                    case WNil{}:
80                                      {==}
81                                case WCon{True{}, w8}:
82                                  match w8:
83                                    case WNil{}:
84                                      {==}
85                            case WCon{True{}, w7}:
86                              match w7:
87                                case WCon{False{}, w8}:
88                                  match w8:
89                                    case WNil{}:
90                                      {==}
91                                case WCon{True{}, w8}:
92                                  match w8:
93                                    case WNil{}:
94                                      {==}
95                        case WCon{True{}, w6}:
96                          match w6:
97                            case WCon{False{}, w7}:
98                              match w7:
99                                case WCon{False{}, w8}:
100                                  match w8:
101                                    case WNil{}:
102                                      {==}
103                                case WCon{True{}, w8}:
104                                  match w8:
105                                    case WNil{}:
106                                      {==}
107                            case WCon{True{}, w7}:
108                              match w7:
109                                case WCon{False{}, w8}:
110                                  match w8:
111                                    case WNil{}:
112                                      {==}
113                                case WCon{True{}, w8}:
114                                  match w8:
115                                    case WNil{}:
116                                      {==}
117                case WCon{True{}, w4}:
118                  match w4:
119                    case WCon{False{}, w5}:
120                      match w5:
121                        case WCon{False{}, w6}:
122                          match w6:
123                            case WCon{False{}, w7}:
124                              match w7:
125                                case WCon{False{}, w8}:
126                                  match w8:
127                                    case WNil{}:
128                                      {==}
129                                case WCon{True{}, w8}:
130                                  match w8:
131                                    case WNil{}:
132                                      {==}
133                            case WCon{True{}, w7}:
134                              match w7:
135                                case WCon{False{}, w8}:
136                                  match w8:
137                                    case WNil{}:
138                                      {==}
139                                case WCon{True{}, w8}:
140                                  match w8:
141                                    case WNil{}:
142                                      {==}
143                        case WCon{True{}, w6}:
144                          match w6:
145                            case WCon{False{}, w7}:
146                              match w7:
147                                case WCon{False{}, w8}:
148                                  match w8:
149                                    case WNil{}:
150                                      {==}
151                                case WCon{True{}, w8}:
152                                  match w8:
153                                    case WNil{}:
154                                      {==}
155                            case WCon{True{}, w7}:
156                              match w7:
157                                case WCon{False{}, w8}:
158                                  match w8:
159                                    case WNil{}:
160                                      {==}
161                                case WCon{True{}, w8}:
162                                  match w8:
163                                    case WNil{}:
164                                      {==}
165                    case WCon{True{}, w5}:
166                      match w5:
167                        case WCon{False{}, w6}:
168                          match w6:
169                            case WCon{False{}, w7}:
170                              match w7:
171                                case WCon{False{}, w8}:
172                                  match w8:
173                                    case WNil{}:
174                                      {==}
175                                case WCon{True{}, w8}:
176                                  match w8:
177                                    case WNil{}:
178                                      {==}
179                            case WCon{True{}, w7}:
180                              match w7:
181                                case WCon{False{}, w8}:
182                                  match w8:
183                                    case WNil{}:
184                                      {==}
185                                case WCon{True{}, w8}:
186                                  match w8:
187                                    case WNil{}:
188                                      {==}
189                        case WCon{True{}, w6}:
190                          match w6:
191                            case WCon{False{}, w7}:
192                              match w7:
193                                case WCon{False{}, w8}:
194                                  match w8:
195                                    case WNil{}:
196                                      {==}
197                                case WCon{True{}, w8}:
198                                  match w8:
199                                    case WNil{}:
200                                      {==}
201                            case WCon{True{}, w7}:
202                              match w7:
203                                case WCon{False{}, w8}:
204                                  match w8:
205                                    case WNil{}:
206                                      {==}
207                                case WCon{True{}, w8}:
208                                  match w8:
209                                    case WNil{}:
210                                      {==}
211            case WCon{True{}, w3}:
212              match w3:
213                case WCon{False{}, w4}:
214                  match w4:
215                    case WCon{False{}, w5}:
216                      match w5:
217                        case WCon{False{}, w6}:
218                          match w6:
219                            case WCon{False{}, w7}:
220                              match w7:
221                                case WCon{False{}, w8}:
222                                  match w8:
223                                    case WNil{}:
224                                      {==}
225                                case WCon{True{}, w8}:
226                                  match w8:
227                                    case WNil{}:
228                                      {==}
229                            case WCon{True{}, w7}:
230                              match w7:
231                                case WCon{False{}, w8}:
232                                  match w8:
233                                    case WNil{}:
234                                      {==}
235                                case WCon{True{}, w8}:
236                                  match w8:
237                                    case WNil{}:
238                                      {==}
239                        case WCon{True{}, w6}:
240                          match w6:
241                            case WCon{False{}, w7}:
242                              match w7:
243                                case WCon{False{}, w8}:
244                                  match w8:
245                                    case WNil{}:
246                                      {==}
247                                case WCon{True{}, w8}:
248                                  match w8:
249                                    case WNil{}:
250                                      {==}
251                            case WCon{True{}, w7}:
252                              match w7:
253                                case WCon{False{}, w8}:
254                                  match w8:
255                                    case WNil{}:
256                                      {==}
257                                case WCon{True{}, w8}:
258                                  match w8:
259                                    case WNil{}:
260                                      {==}
261                    case WCon{True{}, w5}:
262                      match w5:
263                        case WCon{False{}, w6}:
264                          match w6:
265                            case WCon{False{}, w7}:
266                              match w7:
267                                case WCon{False{}, w8}:
268                                  match w8:
269                                    case WNil{}:
270                                      {==}
271                                case WCon{True{}, w8}:
272                                  match w8:
273                                    case WNil{}:
274                                      {==}
275                            case WCon{True{}, w7}:
276                              match w7:
277                                case WCon{False{}, w8}:
278                                  match w8:
279                                    case WNil{}:
280                                      {==}
281                                case WCon{True{}, w8}:
282                                  match w8:
283                                    case WNil{}:
284                                      {==}
285                        case WCon{True{}, w6}:
286                          match w6:
287                            case WCon{False{}, w7}:
288                              match w7:
289                                case WCon{False{}, w8}:
290                                  match w8:
291                                    case WNil{}:
292                                      {==}
293                                case WCon{True{}, w8}:
294                                  match w8:
295                                    case WNil{}:
296                                      {==}
297                            case WCon{True{}, w7}:
298                              match w7:
299                                case WCon{False{}, w8}:
300                                  match w8:
301                                    case WNil{}:
302                                      {==}
303                                case WCon{True{}, w8}:
304                                  match w8:
305                                    case WNil{}:
306                                      {==}
307                case WCon{True{}, w4}:
308                  match w4:
309                    case WCon{False{}, w5}:
310                      match w5:
311                        case WCon{False{}, w6}:
312                          match w6:
313                            case WCon{False{}, w7}:
314                              match w7:
315                                case WCon{False{}, w8}:
316                                  match w8:
317                                    case WNil{}:
318                                      {==}
319                                case WCon{True{}, w8}:
320                                  match w8:
321                                    case WNil{}:
322                                      {==}
323                            case WCon{True{}, w7}:
324                              match w7:
325                                case WCon{False{}, w8}:
326                                  match w8:
327                                    case WNil{}:
328                                      {==}
329                                case WCon{True{}, w8}:
330                                  match w8:
331                                    case WNil{}:
332                                      {==}
333                        case WCon{True{}, w6}:
334                          match w6:
335                            case WCon{False{}, w7}:
336                              match w7:
337                                case WCon{False{}, w8}:
338                                  match w8:
339                                    case WNil{}:
340                                      {==}
341                                case WCon{True{}, w8}:
342                                  match w8:
343                                    case WNil{}:
344                                      {==}
345                            case WCon{True{}, w7}:
346                              match w7:
347                                case WCon{False{}, w8}:
348                                  match w8:
349                                    case WNil{}:
350                                      {==}
351                                case WCon{True{}, w8}:
352                                  match w8:
353                                    case WNil{}:
354                                      {==}
355                    case WCon{True{}, w5}:
356                      match w5:
357                        case WCon{False{}, w6}:
358                          match w6:
359                            case WCon{False{}, w7}:
360                              match w7:
361                                case WCon{False{}, w8}:
362                                  match w8:
363                                    case WNil{}:
364                                      {==}
365                                case WCon{True{}, w8}:
366                                  match w8:
367                                    case WNil{}:
368                                      {==}
369                            case WCon{True{}, w7}:
370                              match w7:
371                                case WCon{False{}, w8}:
372                                  match w8:
373                                    case WNil{}:
374                                      {==}
375                                case WCon{True{}, w8}:
376                                  match w8:
377                                    case WNil{}:
378                                      {==}
379                        case WCon{True{}, w6}:
380                          match w6:
381                            case WCon{False{}, w7}:
382                              match w7:
383                                case WCon{False{}, w8}:
384                                  match w8:
385                                    case WNil{}:
386                                      {==}
387                                case WCon{True{}, w8}:
388                                  match w8:
389                                    case WNil{}:
390                                      {==}
391                            case WCon{True{}, w7}:
392                              match w7:
393                                case WCon{False{}, w8}:
394                                  match w8:
395                                    case WNil{}:
396                                      {==}
397                                case WCon{True{}, w8}:
398                                  match w8:
399                                    case WNil{}:
400                                      {==}
401        case WCon{True{}, w2}:
402          match w2:
403            case WCon{False{}, w3}:
404              match w3:
405                case WCon{False{}, w4}:
406                  match w4:
407                    case WCon{False{}, w5}:
408                      match w5:
409                        case WCon{False{}, w6}:
410                          match w6:
411                            case WCon{False{}, w7}:
412                              match w7:
413                                case WCon{False{}, w8}:
414                                  match w8:
415                                    case WNil{}:
416                                      {==}
417                                case WCon{True{}, w8}:
418                                  match w8:
419                                    case WNil{}:
420                                      {==}
421                            case WCon{True{}, w7}:
422                              match w7:
423                                case WCon{False{}, w8}:
424                                  match w8:
425                                    case WNil{}:
426                                      {==}
427                                case WCon{True{}, w8}:
428                                  match w8:
429                                    case WNil{}:
430                                      {==}
431                        case WCon{True{}, w6}:
432                          match w6:
433                            case WCon{False{}, w7}:
434                              match w7:
435                                case WCon{False{}, w8}:
436                                  match w8:
437                                    case WNil{}:
438                                      {==}
439                                case WCon{True{}, w8}:
440                                  match w8:
441                                    case WNil{}:
442                                      {==}
443                            case WCon{True{}, w7}:
444                              match w7:
445                                case WCon{False{}, w8}:
446                                  match w8:
447                                    case WNil{}:
448                                      {==}
449                                case WCon{True{}, w8}:
450                                  match w8:
451                                    case WNil{}:
452                                      {==}
453                    case WCon{True{}, w5}:
454                      match w5:
455                        case WCon{False{}, w6}:
456                          match w6:
457                            case WCon{False{}, w7}:
458                              match w7:
459                                case WCon{False{}, w8}:
460                                  match w8:
461                                    case WNil{}:
462                                      {==}
463                                case WCon{True{}, w8}:
464                                  match w8:
465                                    case WNil{}:
466                                      {==}
467                            case WCon{True{}, w7}:
468                              match w7:
469                                case WCon{False{}, w8}:
470                                  match w8:
471                                    case WNil{}:
472                                      {==}
473                                case WCon{True{}, w8}:
474                                  match w8:
475                                    case WNil{}:
476                                      {==}
477                        case WCon{True{}, w6}:
478                          match w6:
479                            case WCon{False{}, w7}:
480                              match w7:
481                                case WCon{False{}, w8}:
482                                  match w8:
483                                    case WNil{}:
484                                      {==}
485                                case WCon{True{}, w8}:
486                                  match w8:
487                                    case WNil{}:
488                                      {==}
489                            case WCon{True{}, w7}:
490                              match w7:
491                                case WCon{False{}, w8}:
492                                  match w8:
493                                    case WNil{}:
494                                      {==}
495                                case WCon{True{}, w8}:
496                                  match w8:
497                                    case WNil{}:
498                                      {==}
499                case WCon{True{}, w4}:
500                  match w4:
501                    case WCon{False{}, w5}:
502                      match w5:
503                        case WCon{False{}, w6}:
504                          match w6:
505                            case WCon{False{}, w7}:
506                              match w7:
507                                case WCon{False{}, w8}:
508                                  match w8:
509                                    case WNil{}:
510                                      {==}
511                                case WCon{True{}, w8}:
512                                  match w8:
513                                    case WNil{}:
514                                      {==}
515                            case WCon{True{}, w7}:
516                              match w7:
517                                case WCon{False{}, w8}:
518                                  match w8:
519                                    case WNil{}:
520                                      {==}
521                                case WCon{True{}, w8}:
522                                  match w8:
523                                    case WNil{}:
524                                      {==}
525                        case WCon{True{}, w6}:
526                          match w6:
527                            case WCon{False{}, w7}:
528                              match w7:
529                                case WCon{False{}, w8}:
530                                  match w8:
531                                    case WNil{}:
532                                      {==}
533                                case WCon{True{}, w8}:
534                                  match w8:
535                                    case WNil{}:
536                                      {==}
537                            case WCon{True{}, w7}:
538                              match w7:
539                                case WCon{False{}, w8}:
540                                  match w8:
541                                    case WNil{}:
542                                      {==}
543                                case WCon{True{}, w8}:
544                                  match w8:
545                                    case WNil{}:
546                                      {==}
547                    case WCon{True{}, w5}:
548                      match w5:
549                        case WCon{False{}, w6}:
550                          match w6:
551                            case WCon{False{}, w7}:
552                              match w7:
553                                case WCon{False{}, w8}:
554                                  match w8:
555                                    case WNil{}:
556                                      {==}
557                                case WCon{True{}, w8}:
558                                  match w8:
559                                    case WNil{}:
560                                      {==}
561                            case WCon{True{}, w7}:
562                              match w7:
563                                case WCon{False{}, w8}:
564                                  match w8:
565                                    case WNil{}:
566                                      {==}
567                                case WCon{True{}, w8}:
568                                  match w8:
569                                    case WNil{}:
570                                      {==}
571                        case WCon{True{}, w6}:
572                          match w6:
573                            case WCon{False{}, w7}:
574                              match w7:
575                                case WCon{False{}, w8}:
576                                  match w8:
577                                    case WNil{}:
578                                      {==}
579                                case WCon{True{}, w8}:
580                                  match w8:
581                                    case WNil{}:
582                                      {==}
583                            case WCon{True{}, w7}:
584                              match w7:
585                                case WCon{False{}, w8}:
586                                  match w8:
587                                    case WNil{}:
588                                      {==}
589                                case WCon{True{}, w8}:
590                                  match w8:
591                                    case WNil{}:
592                                      {==}
593            case WCon{True{}, w3}:
594              match w3:
595                case WCon{False{}, w4}:
596                  match w4:
597                    case WCon{False{}, w5}:
598                      match w5:
599                        case WCon{False{}, w6}:
600                          match w6:
601                            case WCon{False{}, w7}:
602                              match w7:
603                                case WCon{False{}, w8}:
604                                  match w8:
605                                    case WNil{}:
606                                      {==}
607                                case WCon{True{}, w8}:
608                                  match w8:
609                                    case WNil{}:
610                                      {==}
611                            case WCon{True{}, w7}:
612                              match w7:
613                                case WCon{False{}, w8}:
614                                  match w8:
615                                    case WNil{}:
616                                      {==}
617                                case WCon{True{}, w8}:
618                                  match w8:
619                                    case WNil{}:
620                                      {==}
621                        case WCon{True{}, w6}:
622                          match w6:
623                            case WCon{False{}, w7}:
624                              match w7:
625                                case WCon{False{}, w8}:
626                                  match w8:
627                                    case WNil{}:
628                                      {==}
629                                case WCon{True{}, w8}:
630                                  match w8:
631                                    case WNil{}:
632                                      {==}
633                            case WCon{True{}, w7}:
634                              match w7:
635                                case WCon{False{}, w8}:
636                                  match w8:
637                                    case WNil{}:
638                                      {==}
639                                case WCon{True{}, w8}:
640                                  match w8:
641                                    case WNil{}:
642                                      {==}
643                    case WCon{True{}, w5}:
644                      match w5:
645                        case WCon{False{}, w6}:
646                          match w6:
647                            case WCon{False{}, w7}:
648                              match w7:
649                                case WCon{False{}, w8}:
650                                  match w8:
651                                    case WNil{}:
652                                      {==}
653                                case WCon{True{}, w8}:
654                                  match w8:
655                                    case WNil{}:
656                                      {==}
657                            case WCon{True{}, w7}:
658                              match w7:
659                                case WCon{False{}, w8}:
660                                  match w8:
661                                    case WNil{}:
662                                      {==}
663                                case WCon{True{}, w8}:
664                                  match w8:
665                                    case WNil{}:
666                                      {==}
667                        case WCon{True{}, w6}:
668                          match w6:
669                            case WCon{False{}, w7}:
670                              match w7:
671                                case WCon{False{}, w8}:
672                                  match w8:
673                                    case WNil{}:
674                                      {==}
675                                case WCon{True{}, w8}:
676                                  match w8:
677                                    case WNil{}:
678                                      {==}
679                            case WCon{True{}, w7}:
680                              match w7:
681                                case WCon{False{}, w8}:
682                                  match w8:
683                                    case WNil{}:
684                                      {==}
685                                case WCon{True{}, w8}:
686                                  match w8:
687                                    case WNil{}:
688                                      {==}
689                case WCon{True{}, w4}:
690                  match w4:
691                    case WCon{False{}, w5}:
692                      match w5:
693                        case WCon{False{}, w6}:
694                          match w6:
695                            case WCon{False{}, w7}:
696                              match w7:
697                                case WCon{False{}, w8}:
698                                  match w8:
699                                    case WNil{}:
700                                      {==}
701                                case WCon{True{}, w8}:
702                                  match w8:
703                                    case WNil{}:
704                                      {==}
705                            case WCon{True{}, w7}:
706                              match w7:
707                                case WCon{False{}, w8}:
708                                  match w8:
709                                    case WNil{}:
710                                      {==}
711                                case WCon{True{}, w8}:
712                                  match w8:
713                                    case WNil{}:
714                                      {==}
715                        case WCon{True{}, w6}:
716                          match w6:
717                            case WCon{False{}, w7}:
718                              match w7:
719                                case WCon{False{}, w8}:
720                                  match w8:
721                                    case WNil{}:
722                                      {==}
723                                case WCon{True{}, w8}:
724                                  match w8:
725                                    case WNil{}:
726                                      {==}
727                            case WCon{True{}, w7}:
728                              match w7:
729                                case WCon{False{}, w8}:
730                                  match w8:
731                                    case WNil{}:
732                                      {==}
733                                case WCon{True{}, w8}:
734                                  match w8:
735                                    case WNil{}:
736                                      {==}
737                    case WCon{True{}, w5}:
738                      match w5:
739                        case WCon{False{}, w6}:
740                          match w6:
741                            case WCon{False{}, w7}:
742                              match w7:
743                                case WCon{False{}, w8}:
744                                  match w8:
745                                    case WNil{}:
746                                      {==}
747                                case WCon{True{}, w8}:
748                                  match w8:
749                                    case WNil{}:
750                                      {==}
751                            case WCon{True{}, w7}:
752                              match w7:
753                                case WCon{False{}, w8}:
754                                  match w8:
755                                    case WNil{}:
756                                      {==}
757                                case WCon{True{}, w8}:
758                                  match w8:
759                                    case WNil{}:
760                                      {==}
761                        case WCon{True{}, w6}:
762                          match w6:
763                            case WCon{False{}, w7}:
764                              match w7:
765                                case WCon{False{}, w8}:
766                                  match w8:
767                                    case WNil{}:
768                                      {==}
769                                case WCon{True{}, w8}:
770                                  match w8:
771                                    case WNil{}:
772                                      {==}
773                            case WCon{True{}, w7}:
774                              match w7:
775                                case WCon{False{}, w8}:
776                                  match w8:
777                                    case WNil{}:
778                                      {==}
779                                case WCon{True{}, w8}:
780                                  match w8:
781                                    case WNil{}:
782                                      {==}
783    case WCon{True{}, w1}:
784      match w1:
785        case WCon{False{}, w2}:
786          match w2:
787            case WCon{False{}, w3}:
788              match w3:
789                case WCon{False{}, w4}:
790                  match w4:
791                    case WCon{False{}, w5}:
792                      match w5:
793                        case WCon{False{}, w6}:
794                          match w6:
795                            case WCon{False{}, w7}:
796                              match w7:
797                                case WCon{False{}, w8}:
798                                  match w8:
799                                    case WNil{}:
800                                      {==}
801                                case WCon{True{}, w8}:
802                                  match w8:
803                                    case WNil{}:
804                                      {==}
805                            case WCon{True{}, w7}:
806                              match w7:
807                                case WCon{False{}, w8}:
808                                  match w8:
809                                    case WNil{}:
810                                      {==}
811                                case WCon{True{}, w8}:
812                                  match w8:
813                                    case WNil{}:
814                                      {==}
815                        case WCon{True{}, w6}:
816                          match w6:
817                            case WCon{False{}, w7}:
818                              match w7:
819                                case WCon{False{}, w8}:
820                                  match w8:
821                                    case WNil{}:
822                                      {==}
823                                case WCon{True{}, w8}:
824                                  match w8:
825                                    case WNil{}:
826                                      {==}
827                            case WCon{True{}, w7}:
828                              match w7:
829                                case WCon{False{}, w8}:
830                                  match w8:
831                                    case WNil{}:
832                                      {==}
833                                case WCon{True{}, w8}:
834                                  match w8:
835                                    case WNil{}:
836                                      {==}
837                    case WCon{True{}, w5}:
838                      match w5:
839                        case WCon{False{}, w6}:
840                          match w6:
841                            case WCon{False{}, w7}:
842                              match w7:
843                                case WCon{False{}, w8}:
844                                  match w8:
845                                    case WNil{}:
846                                      {==}
847                                case WCon{True{}, w8}:
848                                  match w8:
849                                    case WNil{}:
850                                      {==}
851                            case WCon{True{}, w7}:
852                              match w7:
853                                case WCon{False{}, w8}:
854                                  match w8:
855                                    case WNil{}:
856                                      {==}
857                                case WCon{True{}, w8}:
858                                  match w8:
859                                    case WNil{}:
860                                      {==}
861                        case WCon{True{}, w6}:
862                          match w6:
863                            case WCon{False{}, w7}:
864                              match w7:
865                                case WCon{False{}, w8}:
866                                  match w8:
867                                    case WNil{}:
868                                      {==}
869                                case WCon{True{}, w8}:
870                                  match w8:
871                                    case WNil{}:
872                                      {==}
873                            case WCon{True{}, w7}:
874                              match w7:
875                                case WCon{False{}, w8}:
876                                  match w8:
877                                    case WNil{}:
878                                      {==}
879                                case WCon{True{}, w8}:
880                                  match w8:
881                                    case WNil{}:
882                                      {==}
883                case WCon{True{}, w4}:
884                  match w4:
885                    case WCon{False{}, w5}:
886                      match w5:
887                        case WCon{False{}, w6}:
888                          match w6:
889                            case WCon{False{}, w7}:
890                              match w7:
891                                case WCon{False{}, w8}:
892                                  match w8:
893                                    case WNil{}:
894                                      {==}
895                                case WCon{True{}, w8}:
896                                  match w8:
897                                    case WNil{}:
898                                      {==}
899                            case WCon{True{}, w7}:
900                              match w7:
901                                case WCon{False{}, w8}:
902                                  match w8:
903                                    case WNil{}:
904                                      {==}
905                                case WCon{True{}, w8}:
906                                  match w8:
907                                    case WNil{}:
908                                      {==}
909                        case WCon{True{}, w6}:
910                          match w6:
911                            case WCon{False{}, w7}:
912                              match w7:
913                                case WCon{False{}, w8}:
914                                  match w8:
915                                    case WNil{}:
916                                      {==}
917                                case WCon{True{}, w8}:
918                                  match w8:
919                                    case WNil{}:
920                                      {==}
921                            case WCon{True{}, w7}:
922                              match w7:
923                                case WCon{False{}, w8}:
924                                  match w8:
925                                    case WNil{}:
926                                      {==}
927                                case WCon{True{}, w8}:
928                                  match w8:
929                                    case WNil{}:
930                                      {==}
931                    case WCon{True{}, w5}:
932                      match w5:
933                        case WCon{False{}, w6}:
934                          match w6:
935                            case WCon{False{}, w7}:
936                              match w7:
937                                case WCon{False{}, w8}:
938                                  match w8:
939                                    case WNil{}:
940                                      {==}
941                                case WCon{True{}, w8}:
942                                  match w8:
943                                    case WNil{}:
944                                      {==}
945                            case WCon{True{}, w7}:
946                              match w7:
947                                case WCon{False{}, w8}:
948                                  match w8:
949                                    case WNil{}:
950                                      {==}
951                                case WCon{True{}, w8}:
952                                  match w8:
953                                    case WNil{}:
954                                      {==}
955                        case WCon{True{}, w6}:
956                          match w6:
957                            case WCon{False{}, w7}:
958                              match w7:
959                                case WCon{False{}, w8}:
960                                  match w8:
961                                    case WNil{}:
962                                      {==}
963                                case WCon{True{}, w8}:
964                                  match w8:
965                                    case WNil{}:
966                                      {==}
967                            case WCon{True{}, w7}:
968                              match w7:
969                                case WCon{False{}, w8}:
970                                  match w8:
971                                    case WNil{}:
972                                      {==}
973                                case WCon{True{}, w8}:
974                                  match w8:
975                                    case WNil{}:
976                                      {==}
977            case WCon{True{}, w3}:
978              match w3:
979                case WCon{False{}, w4}:
980                  match w4:
981                    case WCon{False{}, w5}:
982                      match w5:
983                        case WCon{False{}, w6}:
984                          match w6:
985                            case WCon{False{}, w7}:
986                              match w7:
987                                case WCon{False{}, w8}:
988                                  match w8:
989                                    case WNil{}:
990                                      {==}
991                                case WCon{True{}, w8}:
992                                  match w8:
993                                    case WNil{}:
994                                      {==}
995                            case WCon{True{}, w7}:
996                              match w7:
997                                case WCon{False{}, w8}:
998                                  match w8:
999                                    case WNil{}:
1000                                      {==}
1001                                case WCon{True{}, w8}:
1002                                  match w8:
1003                                    case WNil{}:
1004                                      {==}
1005                        case WCon{True{}, w6}:
1006                          match w6:
1007                            case WCon{False{}, w7}:
1008                              match w7:
1009                                case WCon{False{}, w8}:
1010                                  match w8:
1011                                    case WNil{}:
1012                                      {==}
1013                                case WCon{True{}, w8}:
1014                                  match w8:
1015                                    case WNil{}:
1016                                      {==}
1017                            case WCon{True{}, w7}:
1018                              match w7:
1019                                case WCon{False{}, w8}:
1020                                  match w8:
1021                                    case WNil{}:
1022                                      {==}
1023                                case WCon{True{}, w8}:
1024                                  match w8:
1025                                    case WNil{}:
1026                                      {==}
1027                    case WCon{True{}, w5}:
1028                      match w5:
1029                        case WCon{False{}, w6}:
1030                          match w6:
1031                            case WCon{False{}, w7}:
1032                              match w7:
1033                                case WCon{False{}, w8}:
1034                                  match w8:
1035                                    case WNil{}:
1036                                      {==}
1037                                case WCon{True{}, w8}:
1038                                  match w8:
1039                                    case WNil{}:
1040                                      {==}
1041                            case WCon{True{}, w7}:
1042                              match w7:
1043                                case WCon{False{}, w8}:
1044                                  match w8:
1045                                    case WNil{}:
1046                                      {==}
1047                                case WCon{True{}, w8}:
1048                                  match w8:
1049                                    case WNil{}:
1050                                      {==}
1051                        case WCon{True{}, w6}:
1052                          match w6:
1053                            case WCon{False{}, w7}:
1054                              match w7:
1055                                case WCon{False{}, w8}:
1056                                  match w8:
1057                                    case WNil{}:
1058                                      {==}
1059                                case WCon{True{}, w8}:
1060                                  match w8:
1061                                    case WNil{}:
1062                                      {==}
1063                            case WCon{True{}, w7}:
1064                              match w7:
1065                                case WCon{False{}, w8}:
1066                                  match w8:
1067                                    case WNil{}:
1068                                      {==}
1069                                case WCon{True{}, w8}:
1070                                  match w8:
1071                                    case WNil{}:
1072                                      {==}
1073                case WCon{True{}, w4}:
1074                  match w4:
1075                    case WCon{False{}, w5}:
1076                      match w5:
1077                        case WCon{False{}, w6}:
1078                          match w6:
1079                            case WCon{False{}, w7}:
1080                              match w7:
1081                                case WCon{False{}, w8}:
1082                                  match w8:
1083                                    case WNil{}:
1084                                      {==}
1085                                case WCon{True{}, w8}:
1086                                  match w8:
1087                                    case WNil{}:
1088                                      {==}
1089                            case WCon{True{}, w7}:
1090                              match w7:
1091                                case WCon{False{}, w8}:
1092                                  match w8:
1093                                    case WNil{}:
1094                                      {==}
1095                                case WCon{True{}, w8}:
1096                                  match w8:
1097                                    case WNil{}:
1098                                      {==}
1099                        case WCon{True{}, w6}:
1100                          match w6:
1101                            case WCon{False{}, w7}:
1102                              match w7:
1103                                case WCon{False{}, w8}:
1104                                  match w8:
1105                                    case WNil{}:
1106                                      {==}
1107                                case WCon{True{}, w8}:
1108                                  match w8:
1109                                    case WNil{}:
1110                                      {==}
1111                            case WCon{True{}, w7}:
1112                              match w7:
1113                                case WCon{False{}, w8}:
1114                                  match w8:
1115                                    case WNil{}:
1116                                      {==}
1117                                case WCon{True{}, w8}:
1118                                  match w8:
1119                                    case WNil{}:
1120                                      {==}
1121                    case WCon{True{}, w5}:
1122                      match w5:
1123                        case WCon{False{}, w6}:
1124                          match w6:
1125                            case WCon{False{}, w7}:
1126                              match w7:
1127                                case WCon{False{}, w8}:
1128                                  match w8:
1129                                    case WNil{}:
1130                                      {==}
1131                                case WCon{True{}, w8}:
1132                                  match w8:
1133                                    case WNil{}:
1134                                      {==}
1135                            case WCon{True{}, w7}:
1136                              match w7:
1137                                case WCon{False{}, w8}:
1138                                  match w8:
1139                                    case WNil{}:
1140                                      {==}
1141                                case WCon{True{}, w8}:
1142                                  match w8:
1143                                    case WNil{}:
1144                                      {==}
1145                        case WCon{True{}, w6}:
1146                          match w6:
1147                            case WCon{False{}, w7}:
1148                              match w7:
1149                                case WCon{False{}, w8}:
1150                                  match w8:
1151                                    case WNil{}:
1152                                      {==}
1153                                case WCon{True{}, w8}:
1154                                  match w8:
1155                                    case WNil{}:
1156                                      {==}
1157                            case WCon{True{}, w7}:
1158                              match w7:
1159                                case WCon{False{}, w8}:
1160                                  match w8:
1161                                    case WNil{}:
1162                                      {==}
1163                                case WCon{True{}, w8}:
1164                                  match w8:
1165                                    case WNil{}:
1166                                      {==}
1167        case WCon{True{}, w2}:
1168          match w2:
1169            case WCon{False{}, w3}:
1170              match w3:
1171                case WCon{False{}, w4}:
1172                  match w4:
1173                    case WCon{False{}, w5}:
1174                      match w5:
1175                        case WCon{False{}, w6}:
1176                          match w6:
1177                            case WCon{False{}, w7}:
1178                              match w7:
1179                                case WCon{False{}, w8}:
1180                                  match w8:
1181                                    case WNil{}:
1182                                      {==}
1183                                case WCon{True{}, w8}:
1184                                  match w8:
1185                                    case WNil{}:
1186                                      {==}
1187                            case WCon{True{}, w7}:
1188                              match w7:
1189                                case WCon{False{}, w8}:
1190                                  match w8:
1191                                    case WNil{}:
1192                                      {==}
1193                                case WCon{True{}, w8}:
1194                                  match w8:
1195                                    case WNil{}:
1196                                      {==}
1197                        case WCon{True{}, w6}:
1198                          match w6:
1199                            case WCon{False{}, w7}:
1200                              match w7:
1201                                case WCon{False{}, w8}:
1202                                  match w8:
1203                                    case WNil{}:
1204                                      {==}
1205                                case WCon{True{}, w8}:
1206                                  match w8:
1207                                    case WNil{}:
1208                                      {==}
1209                            case WCon{True{}, w7}:
1210                              match w7:
1211                                case WCon{False{}, w8}:
1212                                  match w8:
1213                                    case WNil{}:
1214                                      {==}
1215                                case WCon{True{}, w8}:
1216                                  match w8:
1217                                    case WNil{}:
1218                                      {==}
1219                    case WCon{True{}, w5}:
1220                      match w5:
1221                        case WCon{False{}, w6}:
1222                          match w6:
1223                            case WCon{False{}, w7}:
1224                              match w7:
1225                                case WCon{False{}, w8}:
1226                                  match w8:
1227                                    case WNil{}:
1228                                      {==}
1229                                case WCon{True{}, w8}:
1230                                  match w8:
1231                                    case WNil{}:
1232                                      {==}
1233                            case WCon{True{}, w7}:
1234                              match w7:
1235                                case WCon{False{}, w8}:
1236                                  match w8:
1237                                    case WNil{}:
1238                                      {==}
1239                                case WCon{True{}, w8}:
1240                                  match w8:
1241                                    case WNil{}:
1242                                      {==}
1243                        case WCon{True{}, w6}:
1244                          match w6:
1245                            case WCon{False{}, w7}:
1246                              match w7:
1247                                case WCon{False{}, w8}:
1248                                  match w8:
1249                                    case WNil{}:
1250                                      {==}
1251                                case WCon{True{}, w8}:
1252                                  match w8:
1253                                    case WNil{}:
1254                                      {==}
1255                            case WCon{True{}, w7}:
1256                              match w7:
1257                                case WCon{False{}, w8}:
1258                                  match w8:
1259                                    case WNil{}:
1260                                      {==}
1261                                case WCon{True{}, w8}:
1262                                  match w8:
1263                                    case WNil{}:
1264                                      {==}
1265                case WCon{True{}, w4}:
1266                  match w4:
1267                    case WCon{False{}, w5}:
1268                      match w5:
1269                        case WCon{False{}, w6}:
1270                          match w6:
1271                            case WCon{False{}, w7}:
1272                              match w7:
1273                                case WCon{False{}, w8}:
1274                                  match w8:
1275                                    case WNil{}:
1276                                      {==}
1277                                case WCon{True{}, w8}:
1278                                  match w8:
1279                                    case WNil{}:
1280                                      {==}
1281                            case WCon{True{}, w7}:
1282                              match w7:
1283                                case WCon{False{}, w8}:
1284                                  match w8:
1285                                    case WNil{}:
1286                                      {==}
1287                                case WCon{True{}, w8}:
1288                                  match w8:
1289                                    case WNil{}:
1290                                      {==}
1291                        case WCon{True{}, w6}:
1292                          match w6:
1293                            case WCon{False{}, w7}:
1294                              match w7:
1295                                case WCon{False{}, w8}:
1296                                  match w8:
1297                                    case WNil{}:
1298                                      {==}
1299                                case WCon{True{}, w8}:
1300                                  match w8:
1301                                    case WNil{}:
1302                                      {==}
1303                            case WCon{True{}, w7}:
1304                              match w7:
1305                                case WCon{False{}, w8}:
1306                                  match w8:
1307                                    case WNil{}:
1308                                      {==}
1309                                case WCon{True{}, w8}:
1310                                  match w8:
1311                                    case WNil{}:
1312                                      {==}
1313                    case WCon{True{}, w5}:
1314                      match w5:
1315                        case WCon{False{}, w6}:
1316                          match w6:
1317                            case WCon{False{}, w7}:
1318                              match w7:
1319                                case WCon{False{}, w8}:
1320                                  match w8:
1321                                    case WNil{}:
1322                                      {==}
1323                                case WCon{True{}, w8}:
1324                                  match w8:
1325                                    case WNil{}:
1326                                      {==}
1327                            case WCon{True{}, w7}:
1328                              match w7:
1329                                case WCon{False{}, w8}:
1330                                  match w8:
1331                                    case WNil{}:
1332                                      {==}
1333                                case WCon{True{}, w8}:
1334                                  match w8:
1335                                    case WNil{}:
1336                                      {==}
1337                        case WCon{True{}, w6}:
1338                          match w6:
1339                            case WCon{False{}, w7}:
1340                              match w7:
1341                                case WCon{False{}, w8}:
1342                                  match w8:
1343                                    case WNil{}:
1344                                      {==}
1345                                case WCon{True{}, w8}:
1346                                  match w8:
1347                                    case WNil{}:
1348                                      {==}
1349                            case WCon{True{}, w7}:
1350                              match w7:
1351                                case WCon{False{}, w8}:
1352                                  match w8:
1353                                    case WNil{}:
1354                                      {==}
1355                                case WCon{True{}, w8}:
1356                                  match w8:
1357                                    case WNil{}:
1358                                      {==}
1359            case WCon{True{}, w3}:
1360              match w3:
1361                case WCon{False{}, w4}:
1362                  match w4:
1363                    case WCon{False{}, w5}:
1364                      match w5:
1365                        case WCon{False{}, w6}:
1366                          match w6:
1367                            case WCon{False{}, w7}:
1368                              match w7:
1369                                case WCon{False{}, w8}:
1370                                  match w8:
1371                                    case WNil{}:
1372                                      {==}
1373                                case WCon{True{}, w8}:
1374                                  match w8:
1375                                    case WNil{}:
1376                                      {==}
1377                            case WCon{True{}, w7}:
1378                              match w7:
1379                                case WCon{False{}, w8}:
1380                                  match w8:
1381                                    case WNil{}:
1382                                      {==}
1383                                case WCon{True{}, w8}:
1384                                  match w8:
1385                                    case WNil{}:
1386                                      {==}
1387                        case WCon{True{}, w6}:
1388                          match w6:
1389                            case WCon{False{}, w7}:
1390                              match w7:
1391                                case WCon{False{}, w8}:
1392                                  match w8:
1393                                    case WNil{}:
1394                                      {==}
1395                                case WCon{True{}, w8}:
1396                                  match w8:
1397                                    case WNil{}:
1398                                      {==}
1399                            case WCon{True{}, w7}:
1400                              match w7:
1401                                case WCon{False{}, w8}:
1402                                  match w8:
1403                                    case WNil{}:
1404                                      {==}
1405                                case WCon{True{}, w8}:
1406                                  match w8:
1407                                    case WNil{}:
1408                                      {==}
1409                    case WCon{True{}, w5}:
1410                      match w5:
1411                        case WCon{False{}, w6}:
1412                          match w6:
1413                            case WCon{False{}, w7}:
1414                              match w7:
1415                                case WCon{False{}, w8}:
1416                                  match w8:
1417                                    case WNil{}:
1418                                      {==}
1419                                case WCon{True{}, w8}:
1420                                  match w8:
1421                                    case WNil{}:
1422                                      {==}
1423                            case WCon{True{}, w7}:
1424                              match w7:
1425                                case WCon{False{}, w8}:
1426                                  match w8:
1427                                    case WNil{}:
1428                                      {==}
1429                                case WCon{True{}, w8}:
1430                                  match w8:
1431                                    case WNil{}:
1432                                      {==}
1433                        case WCon{True{}, w6}:
1434                          match w6:
1435                            case WCon{False{}, w7}:
1436                              match w7:
1437                                case WCon{False{}, w8}:
1438                                  match w8:
1439                                    case WNil{}:
1440                                      {==}
1441                                case WCon{True{}, w8}:
1442                                  match w8:
1443                                    case WNil{}:
1444                                      {==}
1445                            case WCon{True{}, w7}:
1446                              match w7:
1447                                case WCon{False{}, w8}:
1448                                  match w8:
1449                                    case WNil{}:
1450                                      {==}
1451                                case WCon{True{}, w8}:
1452                                  match w8:
1453                                    case WNil{}:
1454                                      {==}
1455                case WCon{True{}, w4}:
1456                  match w4:
1457                    case WCon{False{}, w5}:
1458                      match w5:
1459                        case WCon{False{}, w6}:
1460                          match w6:
1461                            case WCon{False{}, w7}:
1462                              match w7:
1463                                case WCon{False{}, w8}:
1464                                  match w8:
1465                                    case WNil{}:
1466                                      {==}
1467                                case WCon{True{}, w8}:
1468                                  match w8:
1469                                    case WNil{}:
1470                                      {==}
1471                            case WCon{True{}, w7}:
1472                              match w7:
1473                                case WCon{False{}, w8}:
1474                                  match w8:
1475                                    case WNil{}:
1476                                      {==}
1477                                case WCon{True{}, w8}:
1478                                  match w8:
1479                                    case WNil{}:
1480                                      {==}
1481                        case WCon{True{}, w6}:
1482                          match w6:
1483                            case WCon{False{}, w7}:
1484                              match w7:
1485                                case WCon{False{}, w8}:
1486                                  match w8:
1487                                    case WNil{}:
1488                                      {==}
1489                                case WCon{True{}, w8}:
1490                                  match w8:
1491                                    case WNil{}:
1492                                      {==}
1493                            case WCon{True{}, w7}:
1494                              match w7:
1495                                case WCon{False{}, w8}:
1496                                  match w8:
1497                                    case WNil{}:
1498                                      {==}
1499                                case WCon{True{}, w8}:
1500                                  match w8:
1501                                    case WNil{}:
1502                                      {==}
1503                    case WCon{True{}, w5}:
1504                      match w5:
1505                        case WCon{False{}, w6}:
1506                          match w6:
1507                            case WCon{False{}, w7}:
1508                              match w7:
1509                                case WCon{False{}, w8}:
1510                                  match w8:
1511                                    case WNil{}:
1512                                      {==}
1513                                case WCon{True{}, w8}:
1514                                  match w8:
1515                                    case WNil{}:
1516                                      {==}
1517                            case WCon{True{}, w7}:
1518                              match w7:
1519                                case WCon{False{}, w8}:
1520                                  match w8:
1521                                    case WNil{}:
1522                                      {==}
1523                                case WCon{True{}, w8}:
1524                                  match w8:
1525                                    case WNil{}:
1526                                      {==}
1527                        case WCon{True{}, w6}:
1528                          match w6:
1529                            case WCon{False{}, w7}:
1530                              match w7:
1531                                case WCon{False{}, w8}:
1532                                  match w8:
1533                                    case WNil{}:
1534                                      {==}
1535                                case WCon{True{}, w8}:
1536                                  match w8:
1537                                    case WNil{}:
1538                                      {==}
1539                            case WCon{True{}, w7}:
1540                              match w7:
1541                                case WCon{False{}, w8}:
1542                                  match w8:
1543                                    case WNil{}:
1544                                      {==}
1545                                case WCon{True{}, w8}:
1546                                  match w8:
1547                                    case WNil{}:
1548                                      {==}
1549
1550def aria_sb13(w0: Word(8n)) -> {w0 == A.aria.sb1(A.aria.sb3(w0)) : Word(8n)}:
1551  match w0:
1552    case WCon{False{}, w1}:
1553      match w1:
1554        case WCon{False{}, w2}:
1555          match w2:
1556            case WCon{False{}, w3}:
1557              match w3:
1558                case WCon{False{}, w4}:
1559                  match w4:
1560                    case WCon{False{}, w5}:
1561                      match w5:
1562                        case WCon{False{}, w6}:
1563                          match w6:
1564                            case WCon{False{}, w7}:
1565                              match w7:
1566                                case WCon{False{}, w8}:
1567                                  match w8:
1568                                    case WNil{}:
1569                                      {==}
1570                                case WCon{True{}, w8}:
1571                                  match w8:
1572                                    case WNil{}:
1573                                      {==}
1574                            case WCon{True{}, w7}:
1575                              match w7:
1576                                case WCon{False{}, w8}:
1577                                  match w8:
1578                                    case WNil{}:
1579                                      {==}
1580                                case WCon{True{}, w8}:
1581                                  match w8:
1582                                    case WNil{}:
1583                                      {==}
1584                        case WCon{True{}, w6}:
1585                          match w6:
1586                            case WCon{False{}, w7}:
1587                              match w7:
1588                                case WCon{False{}, w8}:
1589                                  match w8:
1590                                    case WNil{}:
1591                                      {==}
1592                                case WCon{True{}, w8}:
1593                                  match w8:
1594                                    case WNil{}:
1595                                      {==}
1596                            case WCon{True{}, w7}:
1597                              match w7:
1598                                case WCon{False{}, w8}:
1599                                  match w8:
1600                                    case WNil{}:
1601                                      {==}
1602                                case WCon{True{}, w8}:
1603                                  match w8:
1604                                    case WNil{}:
1605                                      {==}
1606                    case WCon{True{}, w5}:
1607                      match w5:
1608                        case WCon{False{}, w6}:
1609                          match w6:
1610                            case WCon{False{}, w7}:
1611                              match w7:
1612                                case WCon{False{}, w8}:
1613                                  match w8:
1614                                    case WNil{}:
1615                                      {==}
1616                                case WCon{True{}, w8}:
1617                                  match w8:
1618                                    case WNil{}:
1619                                      {==}
1620                            case WCon{True{}, w7}:
1621                              match w7:
1622                                case WCon{False{}, w8}:
1623                                  match w8:
1624                                    case WNil{}:
1625                                      {==}
1626                                case WCon{True{}, w8}:
1627                                  match w8:
1628                                    case WNil{}:
1629                                      {==}
1630                        case WCon{True{}, w6}:
1631                          match w6:
1632                            case WCon{False{}, w7}:
1633                              match w7:
1634                                case WCon{False{}, w8}:
1635                                  match w8:
1636                                    case WNil{}:
1637                                      {==}
1638                                case WCon{True{}, w8}:
1639                                  match w8:
1640                                    case WNil{}:
1641                                      {==}
1642                            case WCon{True{}, w7}:
1643                              match w7:
1644                                case WCon{False{}, w8}:
1645                                  match w8:
1646                                    case WNil{}:
1647                                      {==}
1648                                case WCon{True{}, w8}:
1649                                  match w8:
1650                                    case WNil{}:
1651                                      {==}
1652                case WCon{True{}, w4}:
1653                  match w4:
1654                    case WCon{False{}, w5}:
1655                      match w5:
1656                        case WCon{False{}, w6}:
1657                          match w6:
1658                            case WCon{False{}, w7}:
1659                              match w7:
1660                                case WCon{False{}, w8}:
1661                                  match w8:
1662                                    case WNil{}:
1663                                      {==}
1664                                case WCon{True{}, w8}:
1665                                  match w8:
1666                                    case WNil{}:
1667                                      {==}
1668                            case WCon{True{}, w7}:
1669                              match w7:
1670                                case WCon{False{}, w8}:
1671                                  match w8:
1672                                    case WNil{}:
1673                                      {==}
1674                                case WCon{True{}, w8}:
1675                                  match w8:
1676                                    case WNil{}:
1677                                      {==}
1678                        case WCon{True{}, w6}:
1679                          match w6:
1680                            case WCon{False{}, w7}:
1681                              match w7:
1682                                case WCon{False{}, w8}:
1683                                  match w8:
1684                                    case WNil{}:
1685                                      {==}
1686                                case WCon{True{}, w8}:
1687                                  match w8:
1688                                    case WNil{}:
1689                                      {==}
1690                            case WCon{True{}, w7}:
1691                              match w7:
1692                                case WCon{False{}, w8}:
1693                                  match w8:
1694                                    case WNil{}:
1695                                      {==}
1696                                case WCon{True{}, w8}:
1697                                  match w8:
1698                                    case WNil{}:
1699                                      {==}
1700                    case WCon{True{}, w5}:
1701                      match w5:
1702                        case WCon{False{}, w6}:
1703                          match w6:
1704                            case WCon{False{}, w7}:
1705                              match w7:
1706                                case WCon{False{}, w8}:
1707                                  match w8:
1708                                    case WNil{}:
1709                                      {==}
1710                                case WCon{True{}, w8}:
1711                                  match w8:
1712                                    case WNil{}:
1713                                      {==}
1714                            case WCon{True{}, w7}:
1715                              match w7:
1716                                case WCon{False{}, w8}:
1717                                  match w8:
1718                                    case WNil{}:
1719                                      {==}
1720                                case WCon{True{}, w8}:
1721                                  match w8:
1722                                    case WNil{}:
1723                                      {==}
1724                        case WCon{True{}, w6}:
1725                          match w6:
1726                            case WCon{False{}, w7}:
1727                              match w7:
1728                                case WCon{False{}, w8}:
1729                                  match w8:
1730                                    case WNil{}:
1731                                      {==}
1732                                case WCon{True{}, w8}:
1733                                  match w8:
1734                                    case WNil{}:
1735                                      {==}
1736                            case WCon{True{}, w7}:
1737                              match w7:
1738                                case WCon{False{}, w8}:
1739                                  match w8:
1740                                    case WNil{}:
1741                                      {==}
1742                                case WCon{True{}, w8}:
1743                                  match w8:
1744                                    case WNil{}:
1745                                      {==}
1746            case WCon{True{}, w3}:
1747              match w3:
1748                case WCon{False{}, w4}:
1749                  match w4:
1750                    case WCon{False{}, w5}:
1751                      match w5:
1752                        case WCon{False{}, w6}:
1753                          match w6:
1754                            case WCon{False{}, w7}:
1755                              match w7:
1756                                case WCon{False{}, w8}:
1757                                  match w8:
1758                                    case WNil{}:
1759                                      {==}
1760                                case WCon{True{}, w8}:
1761                                  match w8:
1762                                    case WNil{}:
1763                                      {==}
1764                            case WCon{True{}, w7}:
1765                              match w7:
1766                                case WCon{False{}, w8}:
1767                                  match w8:
1768                                    case WNil{}:
1769                                      {==}
1770                                case WCon{True{}, w8}:
1771                                  match w8:
1772                                    case WNil{}:
1773                                      {==}
1774                        case WCon{True{}, w6}:
1775                          match w6:
1776                            case WCon{False{}, w7}:
1777                              match w7:
1778                                case WCon{False{}, w8}:
1779                                  match w8:
1780                                    case WNil{}:
1781                                      {==}
1782                                case WCon{True{}, w8}:
1783                                  match w8:
1784                                    case WNil{}:
1785                                      {==}
1786                            case WCon{True{}, w7}:
1787                              match w7:
1788                                case WCon{False{}, w8}:
1789                                  match w8:
1790                                    case WNil{}:
1791                                      {==}
1792                                case WCon{True{}, w8}:
1793                                  match w8:
1794                                    case WNil{}:
1795                                      {==}
1796                    case WCon{True{}, w5}:
1797                      match w5:
1798                        case WCon{False{}, w6}:
1799                          match w6:
1800                            case WCon{False{}, w7}:
1801                              match w7:
1802                                case WCon{False{}, w8}:
1803                                  match w8:
1804                                    case WNil{}:
1805                                      {==}
1806                                case WCon{True{}, w8}:
1807                                  match w8:
1808                                    case WNil{}:
1809                                      {==}
1810                            case WCon{True{}, w7}:
1811                              match w7:
1812                                case WCon{False{}, w8}:
1813                                  match w8:
1814                                    case WNil{}:
1815                                      {==}
1816                                case WCon{True{}, w8}:
1817                                  match w8:
1818                                    case WNil{}:
1819                                      {==}
1820                        case WCon{True{}, w6}:
1821                          match w6:
1822                            case WCon{False{}, w7}:
1823                              match w7:
1824                                case WCon{False{}, w8}:
1825                                  match w8:
1826                                    case WNil{}:
1827                                      {==}
1828                                case WCon{True{}, w8}:
1829                                  match w8:
1830                                    case WNil{}:
1831                                      {==}
1832                            case WCon{True{}, w7}:
1833                              match w7:
1834                                case WCon{False{}, w8}:
1835                                  match w8:
1836                                    case WNil{}:
1837                                      {==}
1838                                case WCon{True{}, w8}:
1839                                  match w8:
1840                                    case WNil{}:
1841                                      {==}
1842                case WCon{True{}, w4}:
1843                  match w4:
1844                    case WCon{False{}, w5}:
1845                      match w5:
1846                        case WCon{False{}, w6}:
1847                          match w6:
1848                            case WCon{False{}, w7}:
1849                              match w7:
1850                                case WCon{False{}, w8}:
1851                                  match w8:
1852                                    case WNil{}:
1853                                      {==}
1854                                case WCon{True{}, w8}:
1855                                  match w8:
1856                                    case WNil{}:
1857                                      {==}
1858                            case WCon{True{}, w7}:
1859                              match w7:
1860                                case WCon{False{}, w8}:
1861                                  match w8:
1862                                    case WNil{}:
1863                                      {==}
1864                                case WCon{True{}, w8}:
1865                                  match w8:
1866                                    case WNil{}:
1867                                      {==}
1868                        case WCon{True{}, w6}:
1869                          match w6:
1870                            case WCon{False{}, w7}:
1871                              match w7:
1872                                case WCon{False{}, w8}:
1873                                  match w8:
1874                                    case WNil{}:
1875                                      {==}
1876                                case WCon{True{}, w8}:
1877                                  match w8:
1878                                    case WNil{}:
1879                                      {==}
1880                            case WCon{True{}, w7}:
1881                              match w7:
1882                                case WCon{False{}, w8}:
1883                                  match w8:
1884                                    case WNil{}:
1885                                      {==}
1886                                case WCon{True{}, w8}:
1887                                  match w8:
1888                                    case WNil{}:
1889                                      {==}
1890                    case WCon{True{}, w5}:
1891                      match w5:
1892                        case WCon{False{}, w6}:
1893                          match w6:
1894                            case WCon{False{}, w7}:
1895                              match w7:
1896                                case WCon{False{}, w8}:
1897                                  match w8:
1898                                    case WNil{}:
1899                                      {==}
1900                                case WCon{True{}, w8}:
1901                                  match w8:
1902                                    case WNil{}:
1903                                      {==}
1904                            case WCon{True{}, w7}:
1905                              match w7:
1906                                case WCon{False{}, w8}:
1907                                  match w8:
1908                                    case WNil{}:
1909                                      {==}
1910                                case WCon{True{}, w8}:
1911                                  match w8:
1912                                    case WNil{}:
1913                                      {==}
1914                        case WCon{True{}, w6}:
1915                          match w6:
1916                            case WCon{False{}, w7}:
1917                              match w7:
1918                                case WCon{False{}, w8}:
1919                                  match w8:
1920                                    case WNil{}:
1921                                      {==}
1922                                case WCon{True{}, w8}:
1923                                  match w8:
1924                                    case WNil{}:
1925                                      {==}
1926                            case WCon{True{}, w7}:
1927                              match w7:
1928                                case WCon{False{}, w8}:
1929                                  match w8:
1930                                    case WNil{}:
1931                                      {==}
1932                                case WCon{True{}, w8}:
1933                                  match w8:
1934                                    case WNil{}:
1935                                      {==}
1936        case WCon{True{}, w2}:
1937          match w2:
1938            case WCon{False{}, w3}:
1939              match w3:
1940                case WCon{False{}, w4}:
1941                  match w4:
1942                    case WCon{False{}, w5}:
1943                      match w5:
1944                        case WCon{False{}, w6}:
1945                          match w6:
1946                            case WCon{False{}, w7}:
1947                              match w7:
1948                                case WCon{False{}, w8}:
1949                                  match w8:
1950                                    case WNil{}:
1951                                      {==}
1952                                case WCon{True{}, w8}:
1953                                  match w8:
1954                                    case WNil{}:
1955                                      {==}
1956                            case WCon{True{}, w7}:
1957                              match w7:
1958                                case WCon{False{}, w8}:
1959                                  match w8:
1960                                    case WNil{}:
1961                                      {==}
1962                                case WCon{True{}, w8}:
1963                                  match w8:
1964                                    case WNil{}:
1965                                      {==}
1966                        case WCon{True{}, w6}:
1967                          match w6:
1968                            case WCon{False{}, w7}:
1969                              match w7:
1970                                case WCon{False{}, w8}:
1971                                  match w8:
1972                                    case WNil{}:
1973                                      {==}
1974                                case WCon{True{}, w8}:
1975                                  match w8:
1976                                    case WNil{}:
1977                                      {==}
1978                            case WCon{True{}, w7}:
1979                              match w7:
1980                                case WCon{False{}, w8}:
1981                                  match w8:
1982                                    case WNil{}:
1983                                      {==}
1984                                case WCon{True{}, w8}:
1985                                  match w8:
1986                                    case WNil{}:
1987                                      {==}
1988                    case WCon{True{}, w5}:
1989                      match w5:
1990                        case WCon{False{}, w6}:
1991                          match w6:
1992                            case WCon{False{}, w7}:
1993                              match w7:
1994                                case WCon{False{}, w8}:
1995                                  match w8:
1996                                    case WNil{}:
1997                                      {==}
1998                                case WCon{True{}, w8}:
1999                                  match w8:
2000                                    case WNil{}:
2001                                      {==}
2002                            case WCon{True{}, w7}:
2003                              match w7:
2004                                case WCon{False{}, w8}:
2005                                  match w8:
2006                                    case WNil{}:
2007                                      {==}
2008                                case WCon{True{}, w8}:
2009                                  match w8:
2010                                    case WNil{}:
2011                                      {==}
2012                        case WCon{True{}, w6}:
2013                          match w6:
2014                            case WCon{False{}, w7}:
2015                              match w7:
2016                                case WCon{False{}, w8}:
2017                                  match w8:
2018                                    case WNil{}:
2019                                      {==}
2020                                case WCon{True{}, w8}:
2021                                  match w8:
2022                                    case WNil{}:
2023                                      {==}
2024                            case WCon{True{}, w7}:
2025                              match w7:
2026                                case WCon{False{}, w8}:
2027                                  match w8:
2028                                    case WNil{}:
2029                                      {==}
2030                                case WCon{True{}, w8}:
2031                                  match w8:
2032                                    case WNil{}:
2033                                      {==}
2034                case WCon{True{}, w4}:
2035                  match w4:
2036                    case WCon{False{}, w5}:
2037                      match w5:
2038                        case WCon{False{}, w6}:
2039                          match w6:
2040                            case WCon{False{}, w7}:
2041                              match w7:
2042                                case WCon{False{}, w8}:
2043                                  match w8:
2044                                    case WNil{}:
2045                                      {==}
2046                                case WCon{True{}, w8}:
2047                                  match w8:
2048                                    case WNil{}:
2049                                      {==}
2050                            case WCon{True{}, w7}:
2051                              match w7:
2052                                case WCon{False{}, w8}:
2053                                  match w8:
2054                                    case WNil{}:
2055                                      {==}
2056                                case WCon{True{}, w8}:
2057                                  match w8:
2058                                    case WNil{}:
2059                                      {==}
2060                        case WCon{True{}, w6}:
2061                          match w6:
2062                            case WCon{False{}, w7}:
2063                              match w7:
2064                                case WCon{False{}, w8}:
2065                                  match w8:
2066                                    case WNil{}:
2067                                      {==}
2068                                case WCon{True{}, w8}:
2069                                  match w8:
2070                                    case WNil{}:
2071                                      {==}
2072                            case WCon{True{}, w7}:
2073                              match w7:
2074                                case WCon{False{}, w8}:
2075                                  match w8:
2076                                    case WNil{}:
2077                                      {==}
2078                                case WCon{True{}, w8}:
2079                                  match w8:
2080                                    case WNil{}:
2081                                      {==}
2082                    case WCon{True{}, w5}:
2083                      match w5:
2084                        case WCon{False{}, w6}:
2085                          match w6:
2086                            case WCon{False{}, w7}:
2087                              match w7:
2088                                case WCon{False{}, w8}:
2089                                  match w8:
2090                                    case WNil{}:
2091                                      {==}
2092                                case WCon{True{}, w8}:
2093                                  match w8:
2094                                    case WNil{}:
2095                                      {==}
2096                            case WCon{True{}, w7}:
2097                              match w7:
2098                                case WCon{False{}, w8}:
2099                                  match w8:
2100                                    case WNil{}:
2101                                      {==}
2102                                case WCon{True{}, w8}:
2103                                  match w8:
2104                                    case WNil{}:
2105                                      {==}
2106                        case WCon{True{}, w6}:
2107                          match w6:
2108                            case WCon{False{}, w7}:
2109                              match w7:
2110                                case WCon{False{}, w8}:
2111                                  match w8:
2112                                    case WNil{}:
2113                                      {==}
2114                                case WCon{True{}, w8}:
2115                                  match w8:
2116                                    case WNil{}:
2117                                      {==}
2118                            case WCon{True{}, w7}:
2119                              match w7:
2120                                case WCon{False{}, w8}:
2121                                  match w8:
2122                                    case WNil{}:
2123                                      {==}
2124                                case WCon{True{}, w8}:
2125                                  match w8:
2126                                    case WNil{}:
2127                                      {==}
2128            case WCon{True{}, w3}:
2129              match w3:
2130                case WCon{False{}, w4}:
2131                  match w4:
2132                    case WCon{False{}, w5}:
2133                      match w5:
2134                        case WCon{False{}, w6}:
2135                          match w6:
2136                            case WCon{False{}, w7}:
2137                              match w7:
2138                                case WCon{False{}, w8}:
2139                                  match w8:
2140                                    case WNil{}:
2141                                      {==}
2142                                case WCon{True{}, w8}:
2143                                  match w8:
2144                                    case WNil{}:
2145                                      {==}
2146                            case WCon{True{}, w7}:
2147                              match w7:
2148                                case WCon{False{}, w8}:
2149                                  match w8:
2150                                    case WNil{}:
2151                                      {==}
2152                                case WCon{True{}, w8}:
2153                                  match w8:
2154                                    case WNil{}:
2155                                      {==}
2156                        case WCon{True{}, w6}:
2157                          match w6:
2158                            case WCon{False{}, w7}:
2159                              match w7:
2160                                case WCon{False{}, w8}:
2161                                  match w8:
2162                                    case WNil{}:
2163                                      {==}
2164                                case WCon{True{}, w8}:
2165                                  match w8:
2166                                    case WNil{}:
2167                                      {==}
2168                            case WCon{True{}, w7}:
2169                              match w7:
2170                                case WCon{False{}, w8}:
2171                                  match w8:
2172                                    case WNil{}:
2173                                      {==}
2174                                case WCon{True{}, w8}:
2175                                  match w8:
2176                                    case WNil{}:
2177                                      {==}
2178                    case WCon{True{}, w5}:
2179                      match w5:
2180                        case WCon{False{}, w6}:
2181                          match w6:
2182                            case WCon{False{}, w7}:
2183                              match w7:
2184                                case WCon{False{}, w8}:
2185                                  match w8:
2186                                    case WNil{}:
2187                                      {==}
2188                                case WCon{True{}, w8}:
2189                                  match w8:
2190                                    case WNil{}:
2191                                      {==}
2192                            case WCon{True{}, w7}:
2193                              match w7:
2194                                case WCon{False{}, w8}:
2195                                  match w8:
2196                                    case WNil{}:
2197                                      {==}
2198                                case WCon{True{}, w8}:
2199                                  match w8:
2200                                    case WNil{}:
2201                                      {==}
2202                        case WCon{True{}, w6}:
2203                          match w6:
2204                            case WCon{False{}, w7}:
2205                              match w7:
2206                                case WCon{False{}, w8}:
2207                                  match w8:
2208                                    case WNil{}:
2209                                      {==}
2210                                case WCon{True{}, w8}:
2211                                  match w8:
2212                                    case WNil{}:
2213                                      {==}
2214                            case WCon{True{}, w7}:
2215                              match w7:
2216                                case WCon{False{}, w8}:
2217                                  match w8:
2218                                    case WNil{}:
2219                                      {==}
2220                                case WCon{True{}, w8}:
2221                                  match w8:
2222                                    case WNil{}:
2223                                      {==}
2224                case WCon{True{}, w4}:
2225                  match w4:
2226                    case WCon{False{}, w5}:
2227                      match w5:
2228                        case WCon{False{}, w6}:
2229                          match w6:
2230                            case WCon{False{}, w7}:
2231                              match w7:
2232                                case WCon{False{}, w8}:
2233                                  match w8:
2234                                    case WNil{}:
2235                                      {==}
2236                                case WCon{True{}, w8}:
2237                                  match w8:
2238                                    case WNil{}:
2239                                      {==}
2240                            case WCon{True{}, w7}:
2241                              match w7:
2242                                case WCon{False{}, w8}:
2243                                  match w8:
2244                                    case WNil{}:
2245                                      {==}
2246                                case WCon{True{}, w8}:
2247                                  match w8:
2248                                    case WNil{}:
2249                                      {==}
2250                        case WCon{True{}, w6}:
2251                          match w6:
2252                            case WCon{False{}, w7}:
2253                              match w7:
2254                                case WCon{False{}, w8}:
2255                                  match w8:
2256                                    case WNil{}:
2257                                      {==}
2258                                case WCon{True{}, w8}:
2259                                  match w8:
2260                                    case WNil{}:
2261                                      {==}
2262                            case WCon{True{}, w7}:
2263                              match w7:
2264                                case WCon{False{}, w8}:
2265                                  match w8:
2266                                    case WNil{}:
2267                                      {==}
2268                                case WCon{True{}, w8}:
2269                                  match w8:
2270                                    case WNil{}:
2271                                      {==}
2272                    case WCon{True{}, w5}:
2273                      match w5:
2274                        case WCon{False{}, w6}:
2275                          match w6:
2276                            case WCon{False{}, w7}:
2277                              match w7:
2278                                case WCon{False{}, w8}:
2279                                  match w8:
2280                                    case WNil{}:
2281                                      {==}
2282                                case WCon{True{}, w8}:
2283                                  match w8:
2284                                    case WNil{}:
2285                                      {==}
2286                            case WCon{True{}, w7}:
2287                              match w7:
2288                                case WCon{False{}, w8}:
2289                                  match w8:
2290                                    case WNil{}:
2291                                      {==}
2292                                case WCon{True{}, w8}:
2293                                  match w8:
2294                                    case WNil{}:
2295                                      {==}
2296                        case WCon{True{}, w6}:
2297                          match w6:
2298                            case WCon{False{}, w7}:
2299                              match w7:
2300                                case WCon{False{}, w8}:
2301                                  match w8:
2302                                    case WNil{}:
2303                                      {==}
2304                                case WCon{True{}, w8}:
2305                                  match w8:
2306                                    case WNil{}:
2307                                      {==}
2308                            case WCon{True{}, w7}:
2309                              match w7:
2310                                case WCon{False{}, w8}:
2311                                  match w8:
2312                                    case WNil{}:
2313                                      {==}
2314                                case WCon{True{}, w8}:
2315                                  match w8:
2316                                    case WNil{}:
2317                                      {==}
2318    case WCon{True{}, w1}:
2319      match w1:
2320        case WCon{False{}, w2}:
2321          match w2:
2322            case WCon{False{}, w3}:
2323              match w3:
2324                case WCon{False{}, w4}:
2325                  match w4:
2326                    case WCon{False{}, w5}:
2327                      match w5:
2328                        case WCon{False{}, w6}:
2329                          match w6:
2330                            case WCon{False{}, w7}:
2331                              match w7:
2332                                case WCon{False{}, w8}:
2333                                  match w8:
2334                                    case WNil{}:
2335                                      {==}
2336                                case WCon{True{}, w8}:
2337                                  match w8:
2338                                    case WNil{}:
2339                                      {==}
2340                            case WCon{True{}, w7}:
2341                              match w7:
2342                                case WCon{False{}, w8}:
2343                                  match w8:
2344                                    case WNil{}:
2345                                      {==}
2346                                case WCon{True{}, w8}:
2347                                  match w8:
2348                                    case WNil{}:
2349                                      {==}
2350                        case WCon{True{}, w6}:
2351                          match w6:
2352                            case WCon{False{}, w7}:
2353                              match w7:
2354                                case WCon{False{}, w8}:
2355                                  match w8:
2356                                    case WNil{}:
2357                                      {==}
2358                                case WCon{True{}, w8}:
2359                                  match w8:
2360                                    case WNil{}:
2361                                      {==}
2362                            case WCon{True{}, w7}:
2363                              match w7:
2364                                case WCon{False{}, w8}:
2365                                  match w8:
2366                                    case WNil{}:
2367                                      {==}
2368                                case WCon{True{}, w8}:
2369                                  match w8:
2370                                    case WNil{}:
2371                                      {==}
2372                    case WCon{True{}, w5}:
2373                      match w5:
2374                        case WCon{False{}, w6}:
2375                          match w6:
2376                            case WCon{False{}, w7}:
2377                              match w7:
2378                                case WCon{False{}, w8}:
2379                                  match w8:
2380                                    case WNil{}:
2381                                      {==}
2382                                case WCon{True{}, w8}:
2383                                  match w8:
2384                                    case WNil{}:
2385                                      {==}
2386                            case WCon{True{}, w7}:
2387                              match w7:
2388                                case WCon{False{}, w8}:
2389                                  match w8:
2390                                    case WNil{}:
2391                                      {==}
2392                                case WCon{True{}, w8}:
2393                                  match w8:
2394                                    case WNil{}:
2395                                      {==}
2396                        case WCon{True{}, w6}:
2397                          match w6:
2398                            case WCon{False{}, w7}:
2399                              match w7:
2400                                case WCon{False{}, w8}:
2401                                  match w8:
2402                                    case WNil{}:
2403                                      {==}
2404                                case WCon{True{}, w8}:
2405                                  match w8:
2406                                    case WNil{}:
2407                                      {==}
2408                            case WCon{True{}, w7}:
2409                              match w7:
2410                                case WCon{False{}, w8}:
2411                                  match w8:
2412                                    case WNil{}:
2413                                      {==}
2414                                case WCon{True{}, w8}:
2415                                  match w8:
2416                                    case WNil{}:
2417                                      {==}
2418                case WCon{True{}, w4}:
2419                  match w4:
2420                    case WCon{False{}, w5}:
2421                      match w5:
2422                        case WCon{False{}, w6}:
2423                          match w6:
2424                            case WCon{False{}, w7}:
2425                              match w7:
2426                                case WCon{False{}, w8}:
2427                                  match w8:
2428                                    case WNil{}:
2429                                      {==}
2430                                case WCon{True{}, w8}:
2431                                  match w8:
2432                                    case WNil{}:
2433                                      {==}
2434                            case WCon{True{}, w7}:
2435                              match w7:
2436                                case WCon{False{}, w8}:
2437                                  match w8:
2438                                    case WNil{}:
2439                                      {==}
2440                                case WCon{True{}, w8}:
2441                                  match w8:
2442                                    case WNil{}:
2443                                      {==}
2444                        case WCon{True{}, w6}:
2445                          match w6:
2446                            case WCon{False{}, w7}:
2447                              match w7:
2448                                case WCon{False{}, w8}:
2449                                  match w8:
2450                                    case WNil{}:
2451                                      {==}
2452                                case WCon{True{}, w8}:
2453                                  match w8:
2454                                    case WNil{}:
2455                                      {==}
2456                            case WCon{True{}, w7}:
2457                              match w7:
2458                                case WCon{False{}, w8}:
2459                                  match w8:
2460                                    case WNil{}:
2461                                      {==}
2462                                case WCon{True{}, w8}:
2463                                  match w8:
2464                                    case WNil{}:
2465                                      {==}
2466                    case WCon{True{}, w5}:
2467                      match w5:
2468                        case WCon{False{}, w6}:
2469                          match w6:
2470                            case WCon{False{}, w7}:
2471                              match w7:
2472                                case WCon{False{}, w8}:
2473                                  match w8:
2474                                    case WNil{}:
2475                                      {==}
2476                                case WCon{True{}, w8}:
2477                                  match w8:
2478                                    case WNil{}:
2479                                      {==}
2480                            case WCon{True{}, w7}:
2481                              match w7:
2482                                case WCon{False{}, w8}:
2483                                  match w8:
2484                                    case WNil{}:
2485                                      {==}
2486                                case WCon{True{}, w8}:
2487                                  match w8:
2488                                    case WNil{}:
2489                                      {==}
2490                        case WCon{True{}, w6}:
2491                          match w6:
2492                            case WCon{False{}, w7}:
2493                              match w7:
2494                                case WCon{False{}, w8}:
2495                                  match w8:
2496                                    case WNil{}:
2497                                      {==}
2498                                case WCon{True{}, w8}:
2499                                  match w8:
2500                                    case WNil{}:
2501                                      {==}
2502                            case WCon{True{}, w7}:
2503                              match w7:
2504                                case WCon{False{}, w8}:
2505                                  match w8:
2506                                    case WNil{}:
2507                                      {==}
2508                                case WCon{True{}, w8}:
2509                                  match w8:
2510                                    case WNil{}:
2511                                      {==}
2512            case WCon{True{}, w3}:
2513              match w3:
2514                case WCon{False{}, w4}:
2515                  match w4:
2516                    case WCon{False{}, w5}:
2517                      match w5:
2518                        case WCon{False{}, w6}:
2519                          match w6:
2520                            case WCon{False{}, w7}:
2521                              match w7:
2522                                case WCon{False{}, w8}:
2523                                  match w8:
2524                                    case WNil{}:
2525                                      {==}
2526                                case WCon{True{}, w8}:
2527                                  match w8:
2528                                    case WNil{}:
2529                                      {==}
2530                            case WCon{True{}, w7}:
2531                              match w7:
2532                                case WCon{False{}, w8}:
2533                                  match w8:
2534                                    case WNil{}:
2535                                      {==}
2536                                case WCon{True{}, w8}:
2537                                  match w8:
2538                                    case WNil{}:
2539                                      {==}
2540                        case WCon{True{}, w6}:
2541                          match w6:
2542                            case WCon{False{}, w7}:
2543                              match w7:
2544                                case WCon{False{}, w8}:
2545                                  match w8:
2546                                    case WNil{}:
2547                                      {==}
2548                                case WCon{True{}, w8}:
2549                                  match w8:
2550                                    case WNil{}:
2551                                      {==}
2552                            case WCon{True{}, w7}:
2553                              match w7:
2554                                case WCon{False{}, w8}:
2555                                  match w8:
2556                                    case WNil{}:
2557                                      {==}
2558                                case WCon{True{}, w8}:
2559                                  match w8:
2560                                    case WNil{}:
2561                                      {==}
2562                    case WCon{True{}, w5}:
2563                      match w5:
2564                        case WCon{False{}, w6}:
2565                          match w6:
2566                            case WCon{False{}, w7}:
2567                              match w7:
2568                                case WCon{False{}, w8}:
2569                                  match w8:
2570                                    case WNil{}:
2571                                      {==}
2572                                case WCon{True{}, w8}:
2573                                  match w8:
2574                                    case WNil{}:
2575                                      {==}
2576                            case WCon{True{}, w7}:
2577                              match w7:
2578                                case WCon{False{}, w8}:
2579                                  match w8:
2580                                    case WNil{}:
2581                                      {==}
2582                                case WCon{True{}, w8}:
2583                                  match w8:
2584                                    case WNil{}:
2585                                      {==}
2586                        case WCon{True{}, w6}:
2587                          match w6:
2588                            case WCon{False{}, w7}:
2589                              match w7:
2590                                case WCon{False{}, w8}:
2591                                  match w8:
2592                                    case WNil{}:
2593                                      {==}
2594                                case WCon{True{}, w8}:
2595                                  match w8:
2596                                    case WNil{}:
2597                                      {==}
2598                            case WCon{True{}, w7}:
2599                              match w7:
2600                                case WCon{False{}, w8}:
2601                                  match w8:
2602                                    case WNil{}:
2603                                      {==}
2604                                case WCon{True{}, w8}:
2605                                  match w8:
2606                                    case WNil{}:
2607                                      {==}
2608                case WCon{True{}, w4}:
2609                  match w4:
2610                    case WCon{False{}, w5}:
2611                      match w5:
2612                        case WCon{False{}, w6}:
2613                          match w6:
2614                            case WCon{False{}, w7}:
2615                              match w7:
2616                                case WCon{False{}, w8}:
2617                                  match w8:
2618                                    case WNil{}:
2619                                      {==}
2620                                case WCon{True{}, w8}:
2621                                  match w8:
2622                                    case WNil{}:
2623                                      {==}
2624                            case WCon{True{}, w7}:
2625                              match w7:
2626                                case WCon{False{}, w8}:
2627                                  match w8:
2628                                    case WNil{}:
2629                                      {==}
2630                                case WCon{True{}, w8}:
2631                                  match w8:
2632                                    case WNil{}:
2633                                      {==}
2634                        case WCon{True{}, w6}:
2635                          match w6:
2636                            case WCon{False{}, w7}:
2637                              match w7:
2638                                case WCon{False{}, w8}:
2639                                  match w8:
2640                                    case WNil{}:
2641                                      {==}
2642                                case WCon{True{}, w8}:
2643                                  match w8:
2644                                    case WNil{}:
2645                                      {==}
2646                            case WCon{True{}, w7}:
2647                              match w7:
2648                                case WCon{False{}, w8}:
2649                                  match w8:
2650                                    case WNil{}:
2651                                      {==}
2652                                case WCon{True{}, w8}:
2653                                  match w8:
2654                                    case WNil{}:
2655                                      {==}
2656                    case WCon{True{}, w5}:
2657                      match w5:
2658                        case WCon{False{}, w6}:
2659                          match w6:
2660                            case WCon{False{}, w7}:
2661                              match w7:
2662                                case WCon{False{}, w8}:
2663                                  match w8:
2664                                    case WNil{}:
2665                                      {==}
2666                                case WCon{True{}, w8}:
2667                                  match w8:
2668                                    case WNil{}:
2669                                      {==}
2670                            case WCon{True{}, w7}:
2671                              match w7:
2672                                case WCon{False{}, w8}:
2673                                  match w8:
2674                                    case WNil{}:
2675                                      {==}
2676                                case WCon{True{}, w8}:
2677                                  match w8:
2678                                    case WNil{}:
2679                                      {==}
2680                        case WCon{True{}, w6}:
2681                          match w6:
2682                            case WCon{False{}, w7}:
2683                              match w7:
2684                                case WCon{False{}, w8}:
2685                                  match w8:
2686                                    case WNil{}:
2687                                      {==}
2688                                case WCon{True{}, w8}:
2689                                  match w8:
2690                                    case WNil{}:
2691                                      {==}
2692                            case WCon{True{}, w7}:
2693                              match w7:
2694                                case WCon{False{}, w8}:
2695                                  match w8:
2696                                    case WNil{}:
2697                                      {==}
2698                                case WCon{True{}, w8}:
2699                                  match w8:
2700                                    case WNil{}:
2701                                      {==}
2702        case WCon{True{}, w2}:
2703          match w2:
2704            case WCon{False{}, w3}:
2705              match w3:
2706                case WCon{False{}, w4}:
2707                  match w4:
2708                    case WCon{False{}, w5}:
2709                      match w5:
2710                        case WCon{False{}, w6}:
2711                          match w6:
2712                            case WCon{False{}, w7}:
2713                              match w7:
2714                                case WCon{False{}, w8}:
2715                                  match w8:
2716                                    case WNil{}:
2717                                      {==}
2718                                case WCon{True{}, w8}:
2719                                  match w8:
2720                                    case WNil{}:
2721                                      {==}
2722                            case WCon{True{}, w7}:
2723                              match w7:
2724                                case WCon{False{}, w8}:
2725                                  match w8:
2726                                    case WNil{}:
2727                                      {==}
2728                                case WCon{True{}, w8}:
2729                                  match w8:
2730                                    case WNil{}:
2731                                      {==}
2732                        case WCon{True{}, w6}:
2733                          match w6:
2734                            case WCon{False{}, w7}:
2735                              match w7:
2736                                case WCon{False{}, w8}:
2737                                  match w8:
2738                                    case WNil{}:
2739                                      {==}
2740                                case WCon{True{}, w8}:
2741                                  match w8:
2742                                    case WNil{}:
2743                                      {==}
2744                            case WCon{True{}, w7}:
2745                              match w7:
2746                                case WCon{False{}, w8}:
2747                                  match w8:
2748                                    case WNil{}:
2749                                      {==}
2750                                case WCon{True{}, w8}:
2751                                  match w8:
2752                                    case WNil{}:
2753                                      {==}
2754                    case WCon{True{}, w5}:
2755                      match w5:
2756                        case WCon{False{}, w6}:
2757                          match w6:
2758                            case WCon{False{}, w7}:
2759                              match w7:
2760                                case WCon{False{}, w8}:
2761                                  match w8:
2762                                    case WNil{}:
2763                                      {==}
2764                                case WCon{True{}, w8}:
2765                                  match w8:
2766                                    case WNil{}:
2767                                      {==}
2768                            case WCon{True{}, w7}:
2769                              match w7:
2770                                case WCon{False{}, w8}:
2771                                  match w8:
2772                                    case WNil{}:
2773                                      {==}
2774                                case WCon{True{}, w8}:
2775                                  match w8:
2776                                    case WNil{}:
2777                                      {==}
2778                        case WCon{True{}, w6}:
2779                          match w6:
2780                            case WCon{False{}, w7}:
2781                              match w7:
2782                                case WCon{False{}, w8}:
2783                                  match w8:
2784                                    case WNil{}:
2785                                      {==}
2786                                case WCon{True{}, w8}:
2787                                  match w8:
2788                                    case WNil{}:
2789                                      {==}
2790                            case WCon{True{}, w7}:
2791                              match w7:
2792                                case WCon{False{}, w8}:
2793                                  match w8:
2794                                    case WNil{}:
2795                                      {==}
2796                                case WCon{True{}, w8}:
2797                                  match w8:
2798                                    case WNil{}:
2799                                      {==}
2800                case WCon{True{}, w4}:
2801                  match w4:
2802                    case WCon{False{}, w5}:
2803                      match w5:
2804                        case WCon{False{}, w6}:
2805                          match w6:
2806                            case WCon{False{}, w7}:
2807                              match w7:
2808                                case WCon{False{}, w8}:
2809                                  match w8:
2810                                    case WNil{}:
2811                                      {==}
2812                                case WCon{True{}, w8}:
2813                                  match w8:
2814                                    case WNil{}:
2815                                      {==}
2816                            case WCon{True{}, w7}:
2817                              match w7:
2818                                case WCon{False{}, w8}:
2819                                  match w8:
2820                                    case WNil{}:
2821                                      {==}
2822                                case WCon{True{}, w8}:
2823                                  match w8:
2824                                    case WNil{}:
2825                                      {==}
2826                        case WCon{True{}, w6}:
2827                          match w6:
2828                            case WCon{False{}, w7}:
2829                              match w7:
2830                                case WCon{False{}, w8}:
2831                                  match w8:
2832                                    case WNil{}:
2833                                      {==}
2834                                case WCon{True{}, w8}:
2835                                  match w8:
2836                                    case WNil{}:
2837                                      {==}
2838                            case WCon{True{}, w7}:
2839                              match w7:
2840                                case WCon{False{}, w8}:
2841                                  match w8:
2842                                    case WNil{}:
2843                                      {==}
2844                                case WCon{True{}, w8}:
2845                                  match w8:
2846                                    case WNil{}:
2847                                      {==}
2848                    case WCon{True{}, w5}:
2849                      match w5:
2850                        case WCon{False{}, w6}:
2851                          match w6:
2852                            case WCon{False{}, w7}:
2853                              match w7:
2854                                case WCon{False{}, w8}:
2855                                  match w8:
2856                                    case WNil{}:
2857                                      {==}
2858                                case WCon{True{}, w8}:
2859                                  match w8:
2860                                    case WNil{}:
2861                                      {==}
2862                            case WCon{True{}, w7}:
2863                              match w7:
2864                                case WCon{False{}, w8}:
2865                                  match w8:
2866                                    case WNil{}:
2867                                      {==}
2868                                case WCon{True{}, w8}:
2869                                  match w8:
2870                                    case WNil{}:
2871                                      {==}
2872                        case WCon{True{}, w6}:
2873                          match w6:
2874                            case WCon{False{}, w7}:
2875                              match w7:
2876                                case WCon{False{}, w8}:
2877                                  match w8:
2878                                    case WNil{}:
2879                                      {==}
2880                                case WCon{True{}, w8}:
2881                                  match w8:
2882                                    case WNil{}:
2883                                      {==}
2884                            case WCon{True{}, w7}:
2885                              match w7:
2886                                case WCon{False{}, w8}:
2887                                  match w8:
2888                                    case WNil{}:
2889                                      {==}
2890                                case WCon{True{}, w8}:
2891                                  match w8:
2892                                    case WNil{}:
2893                                      {==}
2894            case WCon{True{}, w3}:
2895              match w3:
2896                case WCon{False{}, w4}:
2897                  match w4:
2898                    case WCon{False{}, w5}:
2899                      match w5:
2900                        case WCon{False{}, w6}:
2901                          match w6:
2902                            case WCon{False{}, w7}:
2903                              match w7:
2904                                case WCon{False{}, w8}:
2905                                  match w8:
2906                                    case WNil{}:
2907                                      {==}
2908                                case WCon{True{}, w8}:
2909                                  match w8:
2910                                    case WNil{}:
2911                                      {==}
2912                            case WCon{True{}, w7}:
2913                              match w7:
2914                                case WCon{False{}, w8}:
2915                                  match w8:
2916                                    case WNil{}:
2917                                      {==}
2918                                case WCon{True{}, w8}:
2919                                  match w8:
2920                                    case WNil{}:
2921                                      {==}
2922                        case WCon{True{}, w6}:
2923                          match w6:
2924                            case WCon{False{}, w7}:
2925                              match w7:
2926                                case WCon{False{}, w8}:
2927                                  match w8:
2928                                    case WNil{}:
2929                                      {==}
2930                                case WCon{True{}, w8}:
2931                                  match w8:
2932                                    case WNil{}:
2933                                      {==}
2934                            case WCon{True{}, w7}:
2935                              match w7:
2936                                case WCon{False{}, w8}:
2937                                  match w8:
2938                                    case WNil{}:
2939                                      {==}
2940                                case WCon{True{}, w8}:
2941                                  match w8:
2942                                    case WNil{}:
2943                                      {==}
2944                    case WCon{True{}, w5}:
2945                      match w5:
2946                        case WCon{False{}, w6}:
2947                          match w6:
2948                            case WCon{False{}, w7}:
2949                              match w7:
2950                                case WCon{False{}, w8}:
2951                                  match w8:
2952                                    case WNil{}:
2953                                      {==}
2954                                case WCon{True{}, w8}:
2955                                  match w8:
2956                                    case WNil{}:
2957                                      {==}
2958                            case WCon{True{}, w7}:
2959                              match w7:
2960                                case WCon{False{}, w8}:
2961                                  match w8:
2962                                    case WNil{}:
2963                                      {==}
2964                                case WCon{True{}, w8}:
2965                                  match w8:
2966                                    case WNil{}:
2967                                      {==}
2968                        case WCon{True{}, w6}:
2969                          match w6:
2970                            case WCon{False{}, w7}:
2971                              match w7:
2972                                case WCon{False{}, w8}:
2973                                  match w8:
2974                                    case WNil{}:
2975                                      {==}
2976                                case WCon{True{}, w8}:
2977                                  match w8:
2978                                    case WNil{}:
2979                                      {==}
2980                            case WCon{True{}, w7}:
2981                              match w7:
2982                                case WCon{False{}, w8}:
2983                                  match w8:
2984                                    case WNil{}:
2985                                      {==}
2986                                case WCon{True{}, w8}:
2987                                  match w8:
2988                                    case WNil{}:
2989                                      {==}
2990                case WCon{True{}, w4}:
2991                  match w4:
2992                    case WCon{False{}, w5}:
2993                      match w5:
2994                        case WCon{False{}, w6}:
2995                          match w6:
2996                            case WCon{False{}, w7}:
2997                              match w7:
2998                                case WCon{False{}, w8}:
2999                                  match w8:
3000                                    case WNil{}:
3001                                      {==}
3002                                case WCon{True{}, w8}:
3003                                  match w8:
3004                                    case WNil{}:
3005                                      {==}
3006                            case WCon{True{}, w7}:
3007                              match w7:
3008                                case WCon{False{}, w8}:
3009                                  match w8:
3010                                    case WNil{}:
3011                                      {==}
3012                                case WCon{True{}, w8}:
3013                                  match w8:
3014                                    case WNil{}:
3015                                      {==}
3016                        case WCon{True{}, w6}:
3017                          match w6:
3018                            case WCon{False{}, w7}:
3019                              match w7:
3020                                case WCon{False{}, w8}:
3021                                  match w8:
3022                                    case WNil{}:
3023                                      {==}
3024                                case WCon{True{}, w8}:
3025                                  match w8:
3026                                    case WNil{}:
3027                                      {==}
3028                            case WCon{True{}, w7}:
3029                              match w7:
3030                                case WCon{False{}, w8}:
3031                                  match w8:
3032                                    case WNil{}:
3033                                      {==}
3034                                case WCon{True{}, w8}:
3035                                  match w8:
3036                                    case WNil{}:
3037                                      {==}
3038                    case WCon{True{}, w5}:
3039                      match w5:
3040                        case WCon{False{}, w6}:
3041                          match w6:
3042                            case WCon{False{}, w7}:
3043                              match w7:
3044                                case WCon{False{}, w8}:
3045                                  match w8:
3046                                    case WNil{}:
3047                                      {==}
3048                                case WCon{True{}, w8}:
3049                                  match w8:
3050                                    case WNil{}:
3051                                      {==}
3052                            case WCon{True{}, w7}:
3053                              match w7:
3054                                case WCon{False{}, w8}:
3055                                  match w8:
3056                                    case WNil{}:
3057                                      {==}
3058                                case WCon{True{}, w8}:
3059                                  match w8:
3060                                    case WNil{}:
3061                                      {==}
3062                        case WCon{True{}, w6}:
3063                          match w6:
3064                            case WCon{False{}, w7}:
3065                              match w7:
3066                                case WCon{False{}, w8}:
3067                                  match w8:
3068                                    case WNil{}:
3069                                      {==}
3070                                case WCon{True{}, w8}:
3071                                  match w8:
3072                                    case WNil{}:
3073                                      {==}
3074                            case WCon{True{}, w7}:
3075                              match w7:
3076                                case WCon{False{}, w8}:
3077                                  match w8:
3078                                    case WNil{}:
3079                                      {==}
3080                                case WCon{True{}, w8}:
3081                                  match w8:
3082                                    case WNil{}:
3083                                      {==}
3084
3085def aria_sb42(w0: Word(8n)) -> {w0 == A.aria.sb4(A.aria.sb2(w0)) : Word(8n)}:
3086  match w0:
3087    case WCon{False{}, w1}:
3088      match w1:
3089        case WCon{False{}, w2}:
3090          match w2:
3091            case WCon{False{}, w3}:
3092              match w3:
3093                case WCon{False{}, w4}:
3094                  match w4:
3095                    case WCon{False{}, w5}:
3096                      match w5:
3097                        case WCon{False{}, w6}:
3098                          match w6:
3099                            case WCon{False{}, w7}:
3100                              match w7:
3101                                case WCon{False{}, w8}:
3102                                  match w8:
3103                                    case WNil{}:
3104                                      {==}
3105                                case WCon{True{}, w8}:
3106                                  match w8:
3107                                    case WNil{}:
3108                                      {==}
3109                            case WCon{True{}, w7}:
3110                              match w7:
3111                                case WCon{False{}, w8}:
3112                                  match w8:
3113                                    case WNil{}:
3114                                      {==}
3115                                case WCon{True{}, w8}:
3116                                  match w8:
3117                                    case WNil{}:
3118                                      {==}
3119                        case WCon{True{}, w6}:
3120                          match w6:
3121                            case WCon{False{}, w7}:
3122                              match w7:
3123                                case WCon{False{}, w8}:
3124                                  match w8:
3125                                    case WNil{}:
3126                                      {==}
3127                                case WCon{True{}, w8}:
3128                                  match w8:
3129                                    case WNil{}:
3130                                      {==}
3131                            case WCon{True{}, w7}:
3132                              match w7:
3133                                case WCon{False{}, w8}:
3134                                  match w8:
3135                                    case WNil{}:
3136                                      {==}
3137                                case WCon{True{}, w8}:
3138                                  match w8:
3139                                    case WNil{}:
3140                                      {==}
3141                    case WCon{True{}, w5}:
3142                      match w5:
3143                        case WCon{False{}, w6}:
3144                          match w6:
3145                            case WCon{False{}, w7}:
3146                              match w7:
3147                                case WCon{False{}, w8}:
3148                                  match w8:
3149                                    case WNil{}:
3150                                      {==}
3151                                case WCon{True{}, w8}:
3152                                  match w8:
3153                                    case WNil{}:
3154                                      {==}
3155                            case WCon{True{}, w7}:
3156                              match w7:
3157                                case WCon{False{}, w8}:
3158                                  match w8:
3159                                    case WNil{}:
3160                                      {==}
3161                                case WCon{True{}, w8}:
3162                                  match w8:
3163                                    case WNil{}:
3164                                      {==}
3165                        case WCon{True{}, w6}:
3166                          match w6:
3167                            case WCon{False{}, w7}:
3168                              match w7:
3169                                case WCon{False{}, w8}:
3170                                  match w8:
3171                                    case WNil{}:
3172                                      {==}
3173                                case WCon{True{}, w8}:
3174                                  match w8:
3175                                    case WNil{}:
3176                                      {==}
3177                            case WCon{True{}, w7}:
3178                              match w7:
3179                                case WCon{False{}, w8}:
3180                                  match w8:
3181                                    case WNil{}:
3182                                      {==}
3183                                case WCon{True{}, w8}:
3184                                  match w8:
3185                                    case WNil{}:
3186                                      {==}
3187                case WCon{True{}, w4}:
3188                  match w4:
3189                    case WCon{False{}, w5}:
3190                      match w5:
3191                        case WCon{False{}, w6}:
3192                          match w6:
3193                            case WCon{False{}, w7}:
3194                              match w7:
3195                                case WCon{False{}, w8}:
3196                                  match w8:
3197                                    case WNil{}:
3198                                      {==}
3199                                case WCon{True{}, w8}:
3200                                  match w8:
3201                                    case WNil{}:
3202                                      {==}
3203                            case WCon{True{}, w7}:
3204                              match w7:
3205                                case WCon{False{}, w8}:
3206                                  match w8:
3207                                    case WNil{}:
3208                                      {==}
3209                                case WCon{True{}, w8}:
3210                                  match w8:
3211                                    case WNil{}:
3212                                      {==}
3213                        case WCon{True{}, w6}:
3214                          match w6:
3215                            case WCon{False{}, w7}:
3216                              match w7:
3217                                case WCon{False{}, w8}:
3218                                  match w8:
3219                                    case WNil{}:
3220                                      {==}
3221                                case WCon{True{}, w8}:
3222                                  match w8:
3223                                    case WNil{}:
3224                                      {==}
3225                            case WCon{True{}, w7}:
3226                              match w7:
3227                                case WCon{False{}, w8}:
3228                                  match w8:
3229                                    case WNil{}:
3230                                      {==}
3231                                case WCon{True{}, w8}:
3232                                  match w8:
3233                                    case WNil{}:
3234                                      {==}
3235                    case WCon{True{}, w5}:
3236                      match w5:
3237                        case WCon{False{}, w6}:
3238                          match w6:
3239                            case WCon{False{}, w7}:
3240                              match w7:
3241                                case WCon{False{}, w8}:
3242                                  match w8:
3243                                    case WNil{}:
3244                                      {==}
3245                                case WCon{True{}, w8}:
3246                                  match w8:
3247                                    case WNil{}:
3248                                      {==}
3249                            case WCon{True{}, w7}:
3250                              match w7:
3251                                case WCon{False{}, w8}:
3252                                  match w8:
3253                                    case WNil{}:
3254                                      {==}
3255                                case WCon{True{}, w8}:
3256                                  match w8:
3257                                    case WNil{}:
3258                                      {==}
3259                        case WCon{True{}, w6}:
3260                          match w6:
3261                            case WCon{False{}, w7}:
3262                              match w7:
3263                                case WCon{False{}, w8}:
3264                                  match w8:
3265                                    case WNil{}:
3266                                      {==}
3267                                case WCon{True{}, w8}:
3268                                  match w8:
3269                                    case WNil{}:
3270                                      {==}
3271                            case WCon{True{}, w7}:
3272                              match w7:
3273                                case WCon{False{}, w8}:
3274                                  match w8:
3275                                    case WNil{}:
3276                                      {==}
3277                                case WCon{True{}, w8}:
3278                                  match w8:
3279                                    case WNil{}:
3280                                      {==}
3281            case WCon{True{}, w3}:
3282              match w3:
3283                case WCon{False{}, w4}:
3284                  match w4:
3285                    case WCon{False{}, w5}:
3286                      match w5:
3287                        case WCon{False{}, w6}:
3288                          match w6:
3289                            case WCon{False{}, w7}:
3290                              match w7:
3291                                case WCon{False{}, w8}:
3292                                  match w8:
3293                                    case WNil{}:
3294                                      {==}
3295                                case WCon{True{}, w8}:
3296                                  match w8:
3297                                    case WNil{}:
3298                                      {==}
3299                            case WCon{True{}, w7}:
3300                              match w7:
3301                                case WCon{False{}, w8}:
3302                                  match w8:
3303                                    case WNil{}:
3304                                      {==}
3305                                case WCon{True{}, w8}:
3306                                  match w8:
3307                                    case WNil{}:
3308                                      {==}
3309                        case WCon{True{}, w6}:
3310                          match w6:
3311                            case WCon{False{}, w7}:
3312                              match w7:
3313                                case WCon{False{}, w8}:
3314                                  match w8:
3315                                    case WNil{}:
3316                                      {==}
3317                                case WCon{True{}, w8}:
3318                                  match w8:
3319                                    case WNil{}:
3320                                      {==}
3321                            case WCon{True{}, w7}:
3322                              match w7:
3323                                case WCon{False{}, w8}:
3324                                  match w8:
3325                                    case WNil{}:
3326                                      {==}
3327                                case WCon{True{}, w8}:
3328                                  match w8:
3329                                    case WNil{}:
3330                                      {==}
3331                    case WCon{True{}, w5}:
3332                      match w5:
3333                        case WCon{False{}, w6}:
3334                          match w6:
3335                            case WCon{False{}, w7}:
3336                              match w7:
3337                                case WCon{False{}, w8}:
3338                                  match w8:
3339                                    case WNil{}:
3340                                      {==}
3341                                case WCon{True{}, w8}:
3342                                  match w8:
3343                                    case WNil{}:
3344                                      {==}
3345                            case WCon{True{}, w7}:
3346                              match w7:
3347                                case WCon{False{}, w8}:
3348                                  match w8:
3349                                    case WNil{}:
3350                                      {==}
3351                                case WCon{True{}, w8}:
3352                                  match w8:
3353                                    case WNil{}:
3354                                      {==}
3355                        case WCon{True{}, w6}:
3356                          match w6:
3357                            case WCon{False{}, w7}:
3358                              match w7:
3359                                case WCon{False{}, w8}:
3360                                  match w8:
3361                                    case WNil{}:
3362                                      {==}
3363                                case WCon{True{}, w8}:
3364                                  match w8:
3365                                    case WNil{}:
3366                                      {==}
3367                            case WCon{True{}, w7}:
3368                              match w7:
3369                                case WCon{False{}, w8}:
3370                                  match w8:
3371                                    case WNil{}:
3372                                      {==}
3373                                case WCon{True{}, w8}:
3374                                  match w8:
3375                                    case WNil{}:
3376                                      {==}
3377                case WCon{True{}, w4}:
3378                  match w4:
3379                    case WCon{False{}, w5}:
3380                      match w5:
3381                        case WCon{False{}, w6}:
3382                          match w6:
3383                            case WCon{False{}, w7}:
3384                              match w7:
3385                                case WCon{False{}, w8}:
3386                                  match w8:
3387                                    case WNil{}:
3388                                      {==}
3389                                case WCon{True{}, w8}:
3390                                  match w8:
3391                                    case WNil{}:
3392                                      {==}
3393                            case WCon{True{}, w7}:
3394                              match w7:
3395                                case WCon{False{}, w8}:
3396                                  match w8:
3397                                    case WNil{}:
3398                                      {==}
3399                                case WCon{True{}, w8}:
3400                                  match w8:
3401                                    case WNil{}:
3402                                      {==}
3403                        case WCon{True{}, w6}:
3404                          match w6:
3405                            case WCon{False{}, w7}:
3406                              match w7:
3407                                case WCon{False{}, w8}:
3408                                  match w8:
3409                                    case WNil{}:
3410                                      {==}
3411                                case WCon{True{}, w8}:
3412                                  match w8:
3413                                    case WNil{}:
3414                                      {==}
3415                            case WCon{True{}, w7}:
3416                              match w7:
3417                                case WCon{False{}, w8}:
3418                                  match w8:
3419                                    case WNil{}:
3420                                      {==}
3421                                case WCon{True{}, w8}:
3422                                  match w8:
3423                                    case WNil{}:
3424                                      {==}
3425                    case WCon{True{}, w5}:
3426                      match w5:
3427                        case WCon{False{}, w6}:
3428                          match w6:
3429                            case WCon{False{}, w7}:
3430                              match w7:
3431                                case WCon{False{}, w8}:
3432                                  match w8:
3433                                    case WNil{}:
3434                                      {==}
3435                                case WCon{True{}, w8}:
3436                                  match w8:
3437                                    case WNil{}:
3438                                      {==}
3439                            case WCon{True{}, w7}:
3440                              match w7:
3441                                case WCon{False{}, w8}:
3442                                  match w8:
3443                                    case WNil{}:
3444                                      {==}
3445                                case WCon{True{}, w8}:
3446                                  match w8:
3447                                    case WNil{}:
3448                                      {==}
3449                        case WCon{True{}, w6}:
3450                          match w6:
3451                            case WCon{False{}, w7}:
3452                              match w7:
3453                                case WCon{False{}, w8}:
3454                                  match w8:
3455                                    case WNil{}:
3456                                      {==}
3457                                case WCon{True{}, w8}:
3458                                  match w8:
3459                                    case WNil{}:
3460                                      {==}
3461                            case WCon{True{}, w7}:
3462                              match w7:
3463                                case WCon{False{}, w8}:
3464                                  match w8:
3465                                    case WNil{}:
3466                                      {==}
3467                                case WCon{True{}, w8}:
3468                                  match w8:
3469                                    case WNil{}:
3470                                      {==}
3471        case WCon{True{}, w2}:
3472          match w2:
3473            case WCon{False{}, w3}:
3474              match w3:
3475                case WCon{False{}, w4}:
3476                  match w4:
3477                    case WCon{False{}, w5}:
3478                      match w5:
3479                        case WCon{False{}, w6}:
3480                          match w6:
3481                            case WCon{False{}, w7}:
3482                              match w7:
3483                                case WCon{False{}, w8}:
3484                                  match w8:
3485                                    case WNil{}:
3486                                      {==}
3487                                case WCon{True{}, w8}:
3488                                  match w8:
3489                                    case WNil{}:
3490                                      {==}
3491                            case WCon{True{}, w7}:
3492                              match w7:
3493                                case WCon{False{}, w8}:
3494                                  match w8:
3495                                    case WNil{}:
3496                                      {==}
3497                                case WCon{True{}, w8}:
3498                                  match w8:
3499                                    case WNil{}:
3500                                      {==}
3501                        case WCon{True{}, w6}:
3502                          match w6:
3503                            case WCon{False{}, w7}:
3504                              match w7:
3505                                case WCon{False{}, w8}:
3506                                  match w8:
3507                                    case WNil{}:
3508                                      {==}
3509                                case WCon{True{}, w8}:
3510                                  match w8:
3511                                    case WNil{}:
3512                                      {==}
3513                            case WCon{True{}, w7}:
3514                              match w7:
3515                                case WCon{False{}, w8}:
3516                                  match w8:
3517                                    case WNil{}:
3518                                      {==}
3519                                case WCon{True{}, w8}:
3520                                  match w8:
3521                                    case WNil{}:
3522                                      {==}
3523                    case WCon{True{}, w5}:
3524                      match w5:
3525                        case WCon{False{}, w6}:
3526                          match w6:
3527                            case WCon{False{}, w7}:
3528                              match w7:
3529                                case WCon{False{}, w8}:
3530                                  match w8:
3531                                    case WNil{}:
3532                                      {==}
3533                                case WCon{True{}, w8}:
3534                                  match w8:
3535                                    case WNil{}:
3536                                      {==}
3537                            case WCon{True{}, w7}:
3538                              match w7:
3539                                case WCon{False{}, w8}:
3540                                  match w8:
3541                                    case WNil{}:
3542                                      {==}
3543                                case WCon{True{}, w8}:
3544                                  match w8:
3545                                    case WNil{}:
3546                                      {==}
3547                        case WCon{True{}, w6}:
3548                          match w6:
3549                            case WCon{False{}, w7}:
3550                              match w7:
3551                                case WCon{False{}, w8}:
3552                                  match w8:
3553                                    case WNil{}:
3554                                      {==}
3555                                case WCon{True{}, w8}:
3556                                  match w8:
3557                                    case WNil{}:
3558                                      {==}
3559                            case WCon{True{}, w7}:
3560                              match w7:
3561                                case WCon{False{}, w8}:
3562                                  match w8:
3563                                    case WNil{}:
3564                                      {==}
3565                                case WCon{True{}, w8}:
3566                                  match w8:
3567                                    case WNil{}:
3568                                      {==}
3569                case WCon{True{}, w4}:
3570                  match w4:
3571                    case WCon{False{}, w5}:
3572                      match w5:
3573                        case WCon{False{}, w6}:
3574                          match w6:
3575                            case WCon{False{}, w7}:
3576                              match w7:
3577                                case WCon{False{}, w8}:
3578                                  match w8:
3579                                    case WNil{}:
3580                                      {==}
3581                                case WCon{True{}, w8}:
3582                                  match w8:
3583                                    case WNil{}:
3584                                      {==}
3585                            case WCon{True{}, w7}:
3586                              match w7:
3587                                case WCon{False{}, w8}:
3588                                  match w8:
3589                                    case WNil{}:
3590                                      {==}
3591                                case WCon{True{}, w8}:
3592                                  match w8:
3593                                    case WNil{}:
3594                                      {==}
3595                        case WCon{True{}, w6}:
3596                          match w6:
3597                            case WCon{False{}, w7}:
3598                              match w7:
3599                                case WCon{False{}, w8}:
3600                                  match w8:
3601                                    case WNil{}:
3602                                      {==}
3603                                case WCon{True{}, w8}:
3604                                  match w8:
3605                                    case WNil{}:
3606                                      {==}
3607                            case WCon{True{}, w7}:
3608                              match w7:
3609                                case WCon{False{}, w8}:
3610                                  match w8:
3611                                    case WNil{}:
3612                                      {==}
3613                                case WCon{True{}, w8}:
3614                                  match w8:
3615                                    case WNil{}:
3616                                      {==}
3617                    case WCon{True{}, w5}:
3618                      match w5:
3619                        case WCon{False{}, w6}:
3620                          match w6:
3621                            case WCon{False{}, w7}:
3622                              match w7:
3623                                case WCon{False{}, w8}:
3624                                  match w8:
3625                                    case WNil{}:
3626                                      {==}
3627                                case WCon{True{}, w8}:
3628                                  match w8:
3629                                    case WNil{}:
3630                                      {==}
3631                            case WCon{True{}, w7}:
3632                              match w7:
3633                                case WCon{False{}, w8}:
3634                                  match w8:
3635                                    case WNil{}:
3636                                      {==}
3637                                case WCon{True{}, w8}:
3638                                  match w8:
3639                                    case WNil{}:
3640                                      {==}
3641                        case WCon{True{}, w6}:
3642                          match w6:
3643                            case WCon{False{}, w7}:
3644                              match w7:
3645                                case WCon{False{}, w8}:
3646                                  match w8:
3647                                    case WNil{}:
3648                                      {==}
3649                                case WCon{True{}, w8}:
3650                                  match w8:
3651                                    case WNil{}:
3652                                      {==}
3653                            case WCon{True{}, w7}:
3654                              match w7:
3655                                case WCon{False{}, w8}:
3656                                  match w8:
3657                                    case WNil{}:
3658                                      {==}
3659                                case WCon{True{}, w8}:
3660                                  match w8:
3661                                    case WNil{}:
3662                                      {==}
3663            case WCon{True{}, w3}:
3664              match w3:
3665                case WCon{False{}, w4}:
3666                  match w4:
3667                    case WCon{False{}, w5}:
3668                      match w5:
3669                        case WCon{False{}, w6}:
3670                          match w6:
3671                            case WCon{False{}, w7}:
3672                              match w7:
3673                                case WCon{False{}, w8}:
3674                                  match w8:
3675                                    case WNil{}:
3676                                      {==}
3677                                case WCon{True{}, w8}:
3678                                  match w8:
3679                                    case WNil{}:
3680                                      {==}
3681                            case WCon{True{}, w7}:
3682                              match w7:
3683                                case WCon{False{}, w8}:
3684                                  match w8:
3685                                    case WNil{}:
3686                                      {==}
3687                                case WCon{True{}, w8}:
3688                                  match w8:
3689                                    case WNil{}:
3690                                      {==}
3691                        case WCon{True{}, w6}:
3692                          match w6:
3693                            case WCon{False{}, w7}:
3694                              match w7:
3695                                case WCon{False{}, w8}:
3696                                  match w8:
3697                                    case WNil{}:
3698                                      {==}
3699                                case WCon{True{}, w8}:
3700                                  match w8:
3701                                    case WNil{}:
3702                                      {==}
3703                            case WCon{True{}, w7}:
3704                              match w7:
3705                                case WCon{False{}, w8}:
3706                                  match w8:
3707                                    case WNil{}:
3708                                      {==}
3709                                case WCon{True{}, w8}:
3710                                  match w8:
3711                                    case WNil{}:
3712                                      {==}
3713                    case WCon{True{}, w5}:
3714                      match w5:
3715                        case WCon{False{}, w6}:
3716                          match w6:
3717                            case WCon{False{}, w7}:
3718                              match w7:
3719                                case WCon{False{}, w8}:
3720                                  match w8:
3721                                    case WNil{}:
3722                                      {==}
3723                                case WCon{True{}, w8}:
3724                                  match w8:
3725                                    case WNil{}:
3726                                      {==}
3727                            case WCon{True{}, w7}:
3728                              match w7:
3729                                case WCon{False{}, w8}:
3730                                  match w8:
3731                                    case WNil{}:
3732                                      {==}
3733                                case WCon{True{}, w8}:
3734                                  match w8:
3735                                    case WNil{}:
3736                                      {==}
3737                        case WCon{True{}, w6}:
3738                          match w6:
3739                            case WCon{False{}, w7}:
3740                              match w7:
3741                                case WCon{False{}, w8}:
3742                                  match w8:
3743                                    case WNil{}:
3744                                      {==}
3745                                case WCon{True{}, w8}:
3746                                  match w8:
3747                                    case WNil{}:
3748                                      {==}
3749                            case WCon{True{}, w7}:
3750                              match w7:
3751                                case WCon{False{}, w8}:
3752                                  match w8:
3753                                    case WNil{}:
3754                                      {==}
3755                                case WCon{True{}, w8}:
3756                                  match w8:
3757                                    case WNil{}:
3758                                      {==}
3759                case WCon{True{}, w4}:
3760                  match w4:
3761                    case WCon{False{}, w5}:
3762                      match w5:
3763                        case WCon{False{}, w6}:
3764                          match w6:
3765                            case WCon{False{}, w7}:
3766                              match w7:
3767                                case WCon{False{}, w8}:
3768                                  match w8:
3769                                    case WNil{}:
3770                                      {==}
3771                                case WCon{True{}, w8}:
3772                                  match w8:
3773                                    case WNil{}:
3774                                      {==}
3775                            case WCon{True{}, w7}:
3776                              match w7:
3777                                case WCon{False{}, w8}:
3778                                  match w8:
3779                                    case WNil{}:
3780                                      {==}
3781                                case WCon{True{}, w8}:
3782                                  match w8:
3783                                    case WNil{}:
3784                                      {==}
3785                        case WCon{True{}, w6}:
3786                          match w6:
3787                            case WCon{False{}, w7}:
3788                              match w7:
3789                                case WCon{False{}, w8}:
3790                                  match w8:
3791                                    case WNil{}:
3792                                      {==}
3793                                case WCon{True{}, w8}:
3794                                  match w8:
3795                                    case WNil{}:
3796                                      {==}
3797                            case WCon{True{}, w7}:
3798                              match w7:
3799                                case WCon{False{}, w8}:
3800                                  match w8:
3801                                    case WNil{}:
3802                                      {==}
3803                                case WCon{True{}, w8}:
3804                                  match w8:
3805                                    case WNil{}:
3806                                      {==}
3807                    case WCon{True{}, w5}:
3808                      match w5:
3809                        case WCon{False{}, w6}:
3810                          match w6:
3811                            case WCon{False{}, w7}:
3812                              match w7:
3813                                case WCon{False{}, w8}:
3814                                  match w8:
3815                                    case WNil{}:
3816                                      {==}
3817                                case WCon{True{}, w8}:
3818                                  match w8:
3819                                    case WNil{}:
3820                                      {==}
3821                            case WCon{True{}, w7}:
3822                              match w7:
3823                                case WCon{False{}, w8}:
3824                                  match w8:
3825                                    case WNil{}:
3826                                      {==}
3827                                case WCon{True{}, w8}:
3828                                  match w8:
3829                                    case WNil{}:
3830                                      {==}
3831                        case WCon{True{}, w6}:
3832                          match w6:
3833                            case WCon{False{}, w7}:
3834                              match w7:
3835                                case WCon{False{}, w8}:
3836                                  match w8:
3837                                    case WNil{}:
3838                                      {==}
3839                                case WCon{True{}, w8}:
3840                                  match w8:
3841                                    case WNil{}:
3842                                      {==}
3843                            case WCon{True{}, w7}:
3844                              match w7:
3845                                case WCon{False{}, w8}:
3846                                  match w8:
3847                                    case WNil{}:
3848                                      {==}
3849                                case WCon{True{}, w8}:
3850                                  match w8:
3851                                    case WNil{}:
3852                                      {==}
3853    case WCon{True{}, w1}:
3854      match w1:
3855        case WCon{False{}, w2}:
3856          match w2:
3857            case WCon{False{}, w3}:
3858              match w3:
3859                case WCon{False{}, w4}:
3860                  match w4:
3861                    case WCon{False{}, w5}:
3862                      match w5:
3863                        case WCon{False{}, w6}:
3864                          match w6:
3865                            case WCon{False{}, w7}:
3866                              match w7:
3867                                case WCon{False{}, w8}:
3868                                  match w8:
3869                                    case WNil{}:
3870                                      {==}
3871                                case WCon{True{}, w8}:
3872                                  match w8:
3873                                    case WNil{}:
3874                                      {==}
3875                            case WCon{True{}, w7}:
3876                              match w7:
3877                                case WCon{False{}, w8}:
3878                                  match w8:
3879                                    case WNil{}:
3880                                      {==}
3881                                case WCon{True{}, w8}:
3882                                  match w8:
3883                                    case WNil{}:
3884                                      {==}
3885                        case WCon{True{}, w6}:
3886                          match w6:
3887                            case WCon{False{}, w7}:
3888                              match w7:
3889                                case WCon{False{}, w8}:
3890                                  match w8:
3891                                    case WNil{}:
3892                                      {==}
3893                                case WCon{True{}, w8}:
3894                                  match w8:
3895                                    case WNil{}:
3896                                      {==}
3897                            case WCon{True{}, w7}:
3898                              match w7:
3899                                case WCon{False{}, w8}:
3900                                  match w8:
3901                                    case WNil{}:
3902                                      {==}
3903                                case WCon{True{}, w8}:
3904                                  match w8:
3905                                    case WNil{}:
3906                                      {==}
3907                    case WCon{True{}, w5}:
3908                      match w5:
3909                        case WCon{False{}, w6}:
3910                          match w6:
3911                            case WCon{False{}, w7}:
3912                              match w7:
3913                                case WCon{False{}, w8}:
3914                                  match w8:
3915                                    case WNil{}:
3916                                      {==}
3917                                case WCon{True{}, w8}:
3918                                  match w8:
3919                                    case WNil{}:
3920                                      {==}
3921                            case WCon{True{}, w7}:
3922                              match w7:
3923                                case WCon{False{}, w8}:
3924                                  match w8:
3925                                    case WNil{}:
3926                                      {==}
3927                                case WCon{True{}, w8}:
3928                                  match w8:
3929                                    case WNil{}:
3930                                      {==}
3931                        case WCon{True{}, w6}:
3932                          match w6:
3933                            case WCon{False{}, w7}:
3934                              match w7:
3935                                case WCon{False{}, w8}:
3936                                  match w8:
3937                                    case WNil{}:
3938                                      {==}
3939                                case WCon{True{}, w8}:
3940                                  match w8:
3941                                    case WNil{}:
3942                                      {==}
3943                            case WCon{True{}, w7}:
3944                              match w7:
3945                                case WCon{False{}, w8}:
3946                                  match w8:
3947                                    case WNil{}:
3948                                      {==}
3949                                case WCon{True{}, w8}:
3950                                  match w8:
3951                                    case WNil{}:
3952                                      {==}
3953                case WCon{True{}, w4}:
3954                  match w4:
3955                    case WCon{False{}, w5}:
3956                      match w5:
3957                        case WCon{False{}, w6}:
3958                          match w6:
3959                            case WCon{False{}, w7}:
3960                              match w7:
3961                                case WCon{False{}, w8}:
3962                                  match w8:
3963                                    case WNil{}:
3964                                      {==}
3965                                case WCon{True{}, w8}:
3966                                  match w8:
3967                                    case WNil{}:
3968                                      {==}
3969                            case WCon{True{}, w7}:
3970                              match w7:
3971                                case WCon{False{}, w8}:
3972                                  match w8:
3973                                    case WNil{}:
3974                                      {==}
3975                                case WCon{True{}, w8}:
3976                                  match w8:
3977                                    case WNil{}:
3978                                      {==}
3979                        case WCon{True{}, w6}:
3980                          match w6:
3981                            case WCon{False{}, w7}:
3982                              match w7:
3983                                case WCon{False{}, w8}:
3984                                  match w8:
3985                                    case WNil{}:
3986                                      {==}
3987                                case WCon{True{}, w8}:
3988                                  match w8:
3989                                    case WNil{}:
3990                                      {==}
3991                            case WCon{True{}, w7}:
3992                              match w7:
3993                                case WCon{False{}, w8}:
3994                                  match w8:
3995                                    case WNil{}:
3996                                      {==}
3997                                case WCon{True{}, w8}:
3998                                  match w8:
3999                                    case WNil{}:
4000                                      {==}
4001                    case WCon{True{}, w5}:
4002                      match w5:
4003                        case WCon{False{}, w6}:
4004                          match w6:
4005                            case WCon{False{}, w7}:
4006                              match w7:
4007                                case WCon{False{}, w8}:
4008                                  match w8:
4009                                    case WNil{}:
4010                                      {==}
4011                                case WCon{True{}, w8}:
4012                                  match w8:
4013                                    case WNil{}:
4014                                      {==}
4015                            case WCon{True{}, w7}:
4016                              match w7:
4017                                case WCon{False{}, w8}:
4018                                  match w8:
4019                                    case WNil{}:
4020                                      {==}
4021                                case WCon{True{}, w8}:
4022                                  match w8:
4023                                    case WNil{}:
4024                                      {==}
4025                        case WCon{True{}, w6}:
4026                          match w6:
4027                            case WCon{False{}, w7}:
4028                              match w7:
4029                                case WCon{False{}, w8}:
4030                                  match w8:
4031                                    case WNil{}:
4032                                      {==}
4033                                case WCon{True{}, w8}:
4034                                  match w8:
4035                                    case WNil{}:
4036                                      {==}
4037                            case WCon{True{}, w7}:
4038                              match w7:
4039                                case WCon{False{}, w8}:
4040                                  match w8:
4041                                    case WNil{}:
4042                                      {==}
4043                                case WCon{True{}, w8}:
4044                                  match w8:
4045                                    case WNil{}:
4046                                      {==}
4047            case WCon{True{}, w3}:
4048              match w3:
4049                case WCon{False{}, w4}:
4050                  match w4:
4051                    case WCon{False{}, w5}:
4052                      match w5:
4053                        case WCon{False{}, w6}:
4054                          match w6:
4055                            case WCon{False{}, w7}:
4056                              match w7:
4057                                case WCon{False{}, w8}:
4058                                  match w8:
4059                                    case WNil{}:
4060                                      {==}
4061                                case WCon{True{}, w8}:
4062                                  match w8:
4063                                    case WNil{}:
4064                                      {==}
4065                            case WCon{True{}, w7}:
4066                              match w7:
4067                                case WCon{False{}, w8}:
4068                                  match w8:
4069                                    case WNil{}:
4070                                      {==}
4071                                case WCon{True{}, w8}:
4072                                  match w8:
4073                                    case WNil{}:
4074                                      {==}
4075                        case WCon{True{}, w6}:
4076                          match w6:
4077                            case WCon{False{}, w7}:
4078                              match w7:
4079                                case WCon{False{}, w8}:
4080                                  match w8:
4081                                    case WNil{}:
4082                                      {==}
4083                                case WCon{True{}, w8}:
4084                                  match w8:
4085                                    case WNil{}:
4086                                      {==}
4087                            case WCon{True{}, w7}:
4088                              match w7:
4089                                case WCon{False{}, w8}:
4090                                  match w8:
4091                                    case WNil{}:
4092                                      {==}
4093                                case WCon{True{}, w8}:
4094                                  match w8:
4095                                    case WNil{}:
4096                                      {==}
4097                    case WCon{True{}, w5}:
4098                      match w5:
4099                        case WCon{False{}, w6}:
4100                          match w6:
4101                            case WCon{False{}, w7}:
4102                              match w7:
4103                                case WCon{False{}, w8}:
4104                                  match w8:
4105                                    case WNil{}:
4106                                      {==}
4107                                case WCon{True{}, w8}:
4108                                  match w8:
4109                                    case WNil{}:
4110                                      {==}
4111                            case WCon{True{}, w7}:
4112                              match w7:
4113                                case WCon{False{}, w8}:
4114                                  match w8:
4115                                    case WNil{}:
4116                                      {==}
4117                                case WCon{True{}, w8}:
4118                                  match w8:
4119                                    case WNil{}:
4120                                      {==}
4121                        case WCon{True{}, w6}:
4122                          match w6:
4123                            case WCon{False{}, w7}:
4124                              match w7:
4125                                case WCon{False{}, w8}:
4126                                  match w8:
4127                                    case WNil{}:
4128                                      {==}
4129                                case WCon{True{}, w8}:
4130                                  match w8:
4131                                    case WNil{}:
4132                                      {==}
4133                            case WCon{True{}, w7}:
4134                              match w7:
4135                                case WCon{False{}, w8}:
4136                                  match w8:
4137                                    case WNil{}:
4138                                      {==}
4139                                case WCon{True{}, w8}:
4140                                  match w8:
4141                                    case WNil{}:
4142                                      {==}
4143                case WCon{True{}, w4}:
4144                  match w4:
4145                    case WCon{False{}, w5}:
4146                      match w5:
4147                        case WCon{False{}, w6}:
4148                          match w6:
4149                            case WCon{False{}, w7}:
4150                              match w7:
4151                                case WCon{False{}, w8}:
4152                                  match w8:
4153                                    case WNil{}:
4154                                      {==}
4155                                case WCon{True{}, w8}:
4156                                  match w8:
4157                                    case WNil{}:
4158                                      {==}
4159                            case WCon{True{}, w7}:
4160                              match w7:
4161                                case WCon{False{}, w8}:
4162                                  match w8:
4163                                    case WNil{}:
4164                                      {==}
4165                                case WCon{True{}, w8}:
4166                                  match w8:
4167                                    case WNil{}:
4168                                      {==}
4169                        case WCon{True{}, w6}:
4170                          match w6:
4171                            case WCon{False{}, w7}:
4172                              match w7:
4173                                case WCon{False{}, w8}:
4174                                  match w8:
4175                                    case WNil{}:
4176                                      {==}
4177                                case WCon{True{}, w8}:
4178                                  match w8:
4179                                    case WNil{}:
4180                                      {==}
4181                            case WCon{True{}, w7}:
4182                              match w7:
4183                                case WCon{False{}, w8}:
4184                                  match w8:
4185                                    case WNil{}:
4186                                      {==}
4187                                case WCon{True{}, w8}:
4188                                  match w8:
4189                                    case WNil{}:
4190                                      {==}
4191                    case WCon{True{}, w5}:
4192                      match w5:
4193                        case WCon{False{}, w6}:
4194                          match w6:
4195                            case WCon{False{}, w7}:
4196                              match w7:
4197                                case WCon{False{}, w8}:
4198                                  match w8:
4199                                    case WNil{}:
4200                                      {==}
4201                                case WCon{True{}, w8}:
4202                                  match w8:
4203                                    case WNil{}:
4204                                      {==}
4205                            case WCon{True{}, w7}:
4206                              match w7:
4207                                case WCon{False{}, w8}:
4208                                  match w8:
4209                                    case WNil{}:
4210                                      {==}
4211                                case WCon{True{}, w8}:
4212                                  match w8:
4213                                    case WNil{}:
4214                                      {==}
4215                        case WCon{True{}, w6}:
4216                          match w6:
4217                            case WCon{False{}, w7}:
4218                              match w7:
4219                                case WCon{False{}, w8}:
4220                                  match w8:
4221                                    case WNil{}:
4222                                      {==}
4223                                case WCon{True{}, w8}:
4224                                  match w8:
4225                                    case WNil{}:
4226                                      {==}
4227                            case WCon{True{}, w7}:
4228                              match w7:
4229                                case WCon{False{}, w8}:
4230                                  match w8:
4231                                    case WNil{}:
4232                                      {==}
4233                                case WCon{True{}, w8}:
4234                                  match w8:
4235                                    case WNil{}:
4236                                      {==}
4237        case WCon{True{}, w2}:
4238          match w2:
4239            case WCon{False{}, w3}:
4240              match w3:
4241                case WCon{False{}, w4}:
4242                  match w4:
4243                    case WCon{False{}, w5}:
4244                      match w5:
4245                        case WCon{False{}, w6}:
4246                          match w6:
4247                            case WCon{False{}, w7}:
4248                              match w7:
4249                                case WCon{False{}, w8}:
4250                                  match w8:
4251                                    case WNil{}:
4252                                      {==}
4253                                case WCon{True{}, w8}:
4254                                  match w8:
4255                                    case WNil{}:
4256                                      {==}
4257                            case WCon{True{}, w7}:
4258                              match w7:
4259                                case WCon{False{}, w8}:
4260                                  match w8:
4261                                    case WNil{}:
4262                                      {==}
4263                                case WCon{True{}, w8}:
4264                                  match w8:
4265                                    case WNil{}:
4266                                      {==}
4267                        case WCon{True{}, w6}:
4268                          match w6:
4269                            case WCon{False{}, w7}:
4270                              match w7:
4271                                case WCon{False{}, w8}:
4272                                  match w8:
4273                                    case WNil{}:
4274                                      {==}
4275                                case WCon{True{}, w8}:
4276                                  match w8:
4277                                    case WNil{}:
4278                                      {==}
4279                            case WCon{True{}, w7}:
4280                              match w7:
4281                                case WCon{False{}, w8}:
4282                                  match w8:
4283                                    case WNil{}:
4284                                      {==}
4285                                case WCon{True{}, w8}:
4286                                  match w8:
4287                                    case WNil{}:
4288                                      {==}
4289                    case WCon{True{}, w5}:
4290                      match w5:
4291                        case WCon{False{}, w6}:
4292                          match w6:
4293                            case WCon{False{}, w7}:
4294                              match w7:
4295                                case WCon{False{}, w8}:
4296                                  match w8:
4297                                    case WNil{}:
4298                                      {==}
4299                                case WCon{True{}, w8}:
4300                                  match w8:
4301                                    case WNil{}:
4302                                      {==}
4303                            case WCon{True{}, w7}:
4304                              match w7:
4305                                case WCon{False{}, w8}:
4306                                  match w8:
4307                                    case WNil{}:
4308                                      {==}
4309                                case WCon{True{}, w8}:
4310                                  match w8:
4311                                    case WNil{}:
4312                                      {==}
4313                        case WCon{True{}, w6}:
4314                          match w6:
4315                            case WCon{False{}, w7}:
4316                              match w7:
4317                                case WCon{False{}, w8}:
4318                                  match w8:
4319                                    case WNil{}:
4320                                      {==}
4321                                case WCon{True{}, w8}:
4322                                  match w8:
4323                                    case WNil{}:
4324                                      {==}
4325                            case WCon{True{}, w7}:
4326                              match w7:
4327                                case WCon{False{}, w8}:
4328                                  match w8:
4329                                    case WNil{}:
4330                                      {==}
4331                                case WCon{True{}, w8}:
4332                                  match w8:
4333                                    case WNil{}:
4334                                      {==}
4335                case WCon{True{}, w4}:
4336                  match w4:
4337                    case WCon{False{}, w5}:
4338                      match w5:
4339                        case WCon{False{}, w6}:
4340                          match w6:
4341                            case WCon{False{}, w7}:
4342                              match w7:
4343                                case WCon{False{}, w8}:
4344                                  match w8:
4345                                    case WNil{}:
4346                                      {==}
4347                                case WCon{True{}, w8}:
4348                                  match w8:
4349                                    case WNil{}:
4350                                      {==}
4351                            case WCon{True{}, w7}:
4352                              match w7:
4353                                case WCon{False{}, w8}:
4354                                  match w8:
4355                                    case WNil{}:
4356                                      {==}
4357                                case WCon{True{}, w8}:
4358                                  match w8:
4359                                    case WNil{}:
4360                                      {==}
4361                        case WCon{True{}, w6}:
4362                          match w6:
4363                            case WCon{False{}, w7}:
4364                              match w7:
4365                                case WCon{False{}, w8}:
4366                                  match w8:
4367                                    case WNil{}:
4368                                      {==}
4369                                case WCon{True{}, w8}:
4370                                  match w8:
4371                                    case WNil{}:
4372                                      {==}
4373                            case WCon{True{}, w7}:
4374                              match w7:
4375                                case WCon{False{}, w8}:
4376                                  match w8:
4377                                    case WNil{}:
4378                                      {==}
4379                                case WCon{True{}, w8}:
4380                                  match w8:
4381                                    case WNil{}:
4382                                      {==}
4383                    case WCon{True{}, w5}:
4384                      match w5:
4385                        case WCon{False{}, w6}:
4386                          match w6:
4387                            case WCon{False{}, w7}:
4388                              match w7:
4389                                case WCon{False{}, w8}:
4390                                  match w8:
4391                                    case WNil{}:
4392                                      {==}
4393                                case WCon{True{}, w8}:
4394                                  match w8:
4395                                    case WNil{}:
4396                                      {==}
4397                            case WCon{True{}, w7}:
4398                              match w7:
4399                                case WCon{False{}, w8}:
4400                                  match w8:
4401                                    case WNil{}:
4402                                      {==}
4403                                case WCon{True{}, w8}:
4404                                  match w8:
4405                                    case WNil{}:
4406                                      {==}
4407                        case WCon{True{}, w6}:
4408                          match w6:
4409                            case WCon{False{}, w7}:
4410                              match w7:
4411                                case WCon{False{}, w8}:
4412                                  match w8:
4413                                    case WNil{}:
4414                                      {==}
4415                                case WCon{True{}, w8}:
4416                                  match w8:
4417                                    case WNil{}:
4418                                      {==}
4419                            case WCon{True{}, w7}:
4420                              match w7:
4421                                case WCon{False{}, w8}:
4422                                  match w8:
4423                                    case WNil{}:
4424                                      {==}
4425                                case WCon{True{}, w8}:
4426                                  match w8:
4427                                    case WNil{}:
4428                                      {==}
4429            case WCon{True{}, w3}:
4430              match w3:
4431                case WCon{False{}, w4}:
4432                  match w4:
4433                    case WCon{False{}, w5}:
4434                      match w5:
4435                        case WCon{False{}, w6}:
4436                          match w6:
4437                            case WCon{False{}, w7}:
4438                              match w7:
4439                                case WCon{False{}, w8}:
4440                                  match w8:
4441                                    case WNil{}:
4442                                      {==}
4443                                case WCon{True{}, w8}:
4444                                  match w8:
4445                                    case WNil{}:
4446                                      {==}
4447                            case WCon{True{}, w7}:
4448                              match w7:
4449                                case WCon{False{}, w8}:
4450                                  match w8:
4451                                    case WNil{}:
4452                                      {==}
4453                                case WCon{True{}, w8}:
4454                                  match w8:
4455                                    case WNil{}:
4456                                      {==}
4457                        case WCon{True{}, w6}:
4458                          match w6:
4459                            case WCon{False{}, w7}:
4460                              match w7:
4461                                case WCon{False{}, w8}:
4462                                  match w8:
4463                                    case WNil{}:
4464                                      {==}
4465                                case WCon{True{}, w8}:
4466                                  match w8:
4467                                    case WNil{}:
4468                                      {==}
4469                            case WCon{True{}, w7}:
4470                              match w7:
4471                                case WCon{False{}, w8}:
4472                                  match w8:
4473                                    case WNil{}:
4474                                      {==}
4475                                case WCon{True{}, w8}:
4476                                  match w8:
4477                                    case WNil{}:
4478                                      {==}
4479                    case WCon{True{}, w5}:
4480                      match w5:
4481                        case WCon{False{}, w6}:
4482                          match w6:
4483                            case WCon{False{}, w7}:
4484                              match w7:
4485                                case WCon{False{}, w8}:
4486                                  match w8:
4487                                    case WNil{}:
4488                                      {==}
4489                                case WCon{True{}, w8}:
4490                                  match w8:
4491                                    case WNil{}:
4492                                      {==}
4493                            case WCon{True{}, w7}:
4494                              match w7:
4495                                case WCon{False{}, w8}:
4496                                  match w8:
4497                                    case WNil{}:
4498                                      {==}
4499                                case WCon{True{}, w8}:
4500                                  match w8:
4501                                    case WNil{}:
4502                                      {==}
4503                        case WCon{True{}, w6}:
4504                          match w6:
4505                            case WCon{False{}, w7}:
4506                              match w7:
4507                                case WCon{False{}, w8}:
4508                                  match w8:
4509                                    case WNil{}:
4510                                      {==}
4511                                case WCon{True{}, w8}:
4512                                  match w8:
4513                                    case WNil{}:
4514                                      {==}
4515                            case WCon{True{}, w7}:
4516                              match w7:
4517                                case WCon{False{}, w8}:
4518                                  match w8:
4519                                    case WNil{}:
4520                                      {==}
4521                                case WCon{True{}, w8}:
4522                                  match w8:
4523                                    case WNil{}:
4524                                      {==}
4525                case WCon{True{}, w4}:
4526                  match w4:
4527                    case WCon{False{}, w5}:
4528                      match w5:
4529                        case WCon{False{}, w6}:
4530                          match w6:
4531                            case WCon{False{}, w7}:
4532                              match w7:
4533                                case WCon{False{}, w8}:
4534                                  match w8:
4535                                    case WNil{}:
4536                                      {==}
4537                                case WCon{True{}, w8}:
4538                                  match w8:
4539                                    case WNil{}:
4540                                      {==}
4541                            case WCon{True{}, w7}:
4542                              match w7:
4543                                case WCon{False{}, w8}:
4544                                  match w8:
4545                                    case WNil{}:
4546                                      {==}
4547                                case WCon{True{}, w8}:
4548                                  match w8:
4549                                    case WNil{}:
4550                                      {==}
4551                        case WCon{True{}, w6}:
4552                          match w6:
4553                            case WCon{False{}, w7}:
4554                              match w7:
4555                                case WCon{False{}, w8}:
4556                                  match w8:
4557                                    case WNil{}:
4558                                      {==}
4559                                case WCon{True{}, w8}:
4560                                  match w8:
4561                                    case WNil{}:
4562                                      {==}
4563                            case WCon{True{}, w7}:
4564                              match w7:
4565                                case WCon{False{}, w8}:
4566                                  match w8:
4567                                    case WNil{}:
4568                                      {==}
4569                                case WCon{True{}, w8}:
4570                                  match w8:
4571                                    case WNil{}:
4572                                      {==}
4573                    case WCon{True{}, w5}:
4574                      match w5:
4575                        case WCon{False{}, w6}:
4576                          match w6:
4577                            case WCon{False{}, w7}:
4578                              match w7:
4579                                case WCon{False{}, w8}:
4580                                  match w8:
4581                                    case WNil{}:
4582                                      {==}
4583                                case WCon{True{}, w8}:
4584                                  match w8:
4585                                    case WNil{}:
4586                                      {==}
4587                            case WCon{True{}, w7}:
4588                              match w7:
4589                                case WCon{False{}, w8}:
4590                                  match w8:
4591                                    case WNil{}:
4592                                      {==}
4593                                case WCon{True{}, w8}:
4594                                  match w8:
4595                                    case WNil{}:
4596                                      {==}
4597                        case WCon{True{}, w6}:
4598                          match w6:
4599                            case WCon{False{}, w7}:
4600                              match w7:
4601                                case WCon{False{}, w8}:
4602                                  match w8:
4603                                    case WNil{}:
4604                                      {==}
4605                                case WCon{True{}, w8}:
4606                                  match w8:
4607                                    case WNil{}:
4608                                      {==}
4609                            case WCon{True{}, w7}:
4610                              match w7:
4611                                case WCon{False{}, w8}:
4612                                  match w8:
4613                                    case WNil{}:
4614                                      {==}
4615                                case WCon{True{}, w8}:
4616                                  match w8:
4617                                    case WNil{}:
4618                                      {==}
4619
4620def aria_sb24(w0: Word(8n)) -> {w0 == A.aria.sb2(A.aria.sb4(w0)) : Word(8n)}:
4621  match w0:
4622    case WCon{False{}, w1}:
4623      match w1:
4624        case WCon{False{}, w2}:
4625          match w2:
4626            case WCon{False{}, w3}:
4627              match w3:
4628                case WCon{False{}, w4}:
4629                  match w4:
4630                    case WCon{False{}, w5}:
4631                      match w5:
4632                        case WCon{False{}, w6}:
4633                          match w6:
4634                            case WCon{False{}, w7}:
4635                              match w7:
4636                                case WCon{False{}, w8}:
4637                                  match w8:
4638                                    case WNil{}:
4639                                      {==}
4640                                case WCon{True{}, w8}:
4641                                  match w8:
4642                                    case WNil{}:
4643                                      {==}
4644                            case WCon{True{}, w7}:
4645                              match w7:
4646                                case WCon{False{}, w8}:
4647                                  match w8:
4648                                    case WNil{}:
4649                                      {==}
4650                                case WCon{True{}, w8}:
4651                                  match w8:
4652                                    case WNil{}:
4653                                      {==}
4654                        case WCon{True{}, w6}:
4655                          match w6:
4656                            case WCon{False{}, w7}:
4657                              match w7:
4658                                case WCon{False{}, w8}:
4659                                  match w8:
4660                                    case WNil{}:
4661                                      {==}
4662                                case WCon{True{}, w8}:
4663                                  match w8:
4664                                    case WNil{}:
4665                                      {==}
4666                            case WCon{True{}, w7}:
4667                              match w7:
4668                                case WCon{False{}, w8}:
4669                                  match w8:
4670                                    case WNil{}:
4671                                      {==}
4672                                case WCon{True{}, w8}:
4673                                  match w8:
4674                                    case WNil{}:
4675                                      {==}
4676                    case WCon{True{}, w5}:
4677                      match w5:
4678                        case WCon{False{}, w6}:
4679                          match w6:
4680                            case WCon{False{}, w7}:
4681                              match w7:
4682                                case WCon{False{}, w8}:
4683                                  match w8:
4684                                    case WNil{}:
4685                                      {==}
4686                                case WCon{True{}, w8}:
4687                                  match w8:
4688                                    case WNil{}:
4689                                      {==}
4690                            case WCon{True{}, w7}:
4691                              match w7:
4692                                case WCon{False{}, w8}:
4693                                  match w8:
4694                                    case WNil{}:
4695                                      {==}
4696                                case WCon{True{}, w8}:
4697                                  match w8:
4698                                    case WNil{}:
4699                                      {==}
4700                        case WCon{True{}, w6}:
4701                          match w6:
4702                            case WCon{False{}, w7}:
4703                              match w7:
4704                                case WCon{False{}, w8}:
4705                                  match w8:
4706                                    case WNil{}:
4707                                      {==}
4708                                case WCon{True{}, w8}:
4709                                  match w8:
4710                                    case WNil{}:
4711                                      {==}
4712                            case WCon{True{}, w7}:
4713                              match w7:
4714                                case WCon{False{}, w8}:
4715                                  match w8:
4716                                    case WNil{}:
4717                                      {==}
4718                                case WCon{True{}, w8}:
4719                                  match w8:
4720                                    case WNil{}:
4721                                      {==}
4722                case WCon{True{}, w4}:
4723                  match w4:
4724                    case WCon{False{}, w5}:
4725                      match w5:
4726                        case WCon{False{}, w6}:
4727                          match w6:
4728                            case WCon{False{}, w7}:
4729                              match w7:
4730                                case WCon{False{}, w8}:
4731                                  match w8:
4732                                    case WNil{}:
4733                                      {==}
4734                                case WCon{True{}, w8}:
4735                                  match w8:
4736                                    case WNil{}:
4737                                      {==}
4738                            case WCon{True{}, w7}:
4739                              match w7:
4740                                case WCon{False{}, w8}:
4741                                  match w8:
4742                                    case WNil{}:
4743                                      {==}
4744                                case WCon{True{}, w8}:
4745                                  match w8:
4746                                    case WNil{}:
4747                                      {==}
4748                        case WCon{True{}, w6}:
4749                          match w6:
4750                            case WCon{False{}, w7}:
4751                              match w7:
4752                                case WCon{False{}, w8}:
4753                                  match w8:
4754                                    case WNil{}:
4755                                      {==}
4756                                case WCon{True{}, w8}:
4757                                  match w8:
4758                                    case WNil{}:
4759                                      {==}
4760                            case WCon{True{}, w7}:
4761                              match w7:
4762                                case WCon{False{}, w8}:
4763                                  match w8:
4764                                    case WNil{}:
4765                                      {==}
4766                                case WCon{True{}, w8}:
4767                                  match w8:
4768                                    case WNil{}:
4769                                      {==}
4770                    case WCon{True{}, w5}:
4771                      match w5:
4772                        case WCon{False{}, w6}:
4773                          match w6:
4774                            case WCon{False{}, w7}:
4775                              match w7:
4776                                case WCon{False{}, w8}:
4777                                  match w8:
4778                                    case WNil{}:
4779                                      {==}
4780                                case WCon{True{}, w8}:
4781                                  match w8:
4782                                    case WNil{}:
4783                                      {==}
4784                            case WCon{True{}, w7}:
4785                              match w7:
4786                                case WCon{False{}, w8}:
4787                                  match w8:
4788                                    case WNil{}:
4789                                      {==}
4790                                case WCon{True{}, w8}:
4791                                  match w8:
4792                                    case WNil{}:
4793                                      {==}
4794                        case WCon{True{}, w6}:
4795                          match w6:
4796                            case WCon{False{}, w7}:
4797                              match w7:
4798                                case WCon{False{}, w8}:
4799                                  match w8:
4800                                    case WNil{}:
4801                                      {==}
4802                                case WCon{True{}, w8}:
4803                                  match w8:
4804                                    case WNil{}:
4805                                      {==}
4806                            case WCon{True{}, w7}:
4807                              match w7:
4808                                case WCon{False{}, w8}:
4809                                  match w8:
4810                                    case WNil{}:
4811                                      {==}
4812                                case WCon{True{}, w8}:
4813                                  match w8:
4814                                    case WNil{}:
4815                                      {==}
4816            case WCon{True{}, w3}:
4817              match w3:
4818                case WCon{False{}, w4}:
4819                  match w4:
4820                    case WCon{False{}, w5}:
4821                      match w5:
4822                        case WCon{False{}, w6}:
4823                          match w6:
4824                            case WCon{False{}, w7}:
4825                              match w7:
4826                                case WCon{False{}, w8}:
4827                                  match w8:
4828                                    case WNil{}:
4829                                      {==}
4830                                case WCon{True{}, w8}:
4831                                  match w8:
4832                                    case WNil{}:
4833                                      {==}
4834                            case WCon{True{}, w7}:
4835                              match w7:
4836                                case WCon{False{}, w8}:
4837                                  match w8:
4838                                    case WNil{}:
4839                                      {==}
4840                                case WCon{True{}, w8}:
4841                                  match w8:
4842                                    case WNil{}:
4843                                      {==}
4844                        case WCon{True{}, w6}:
4845                          match w6:
4846                            case WCon{False{}, w7}:
4847                              match w7:
4848                                case WCon{False{}, w8}:
4849                                  match w8:
4850                                    case WNil{}:
4851                                      {==}
4852                                case WCon{True{}, w8}:
4853                                  match w8:
4854                                    case WNil{}:
4855                                      {==}
4856                            case WCon{True{}, w7}:
4857                              match w7:
4858                                case WCon{False{}, w8}:
4859                                  match w8:
4860                                    case WNil{}:
4861                                      {==}
4862                                case WCon{True{}, w8}:
4863                                  match w8:
4864                                    case WNil{}:
4865                                      {==}
4866                    case WCon{True{}, w5}:
4867                      match w5:
4868                        case WCon{False{}, w6}:
4869                          match w6:
4870                            case WCon{False{}, w7}:
4871                              match w7:
4872                                case WCon{False{}, w8}:
4873                                  match w8:
4874                                    case WNil{}:
4875                                      {==}
4876                                case WCon{True{}, w8}:
4877                                  match w8:
4878                                    case WNil{}:
4879                                      {==}
4880                            case WCon{True{}, w7}:
4881                              match w7:
4882                                case WCon{False{}, w8}:
4883                                  match w8:
4884                                    case WNil{}:
4885                                      {==}
4886                                case WCon{True{}, w8}:
4887                                  match w8:
4888                                    case WNil{}:
4889                                      {==}
4890                        case WCon{True{}, w6}:
4891                          match w6:
4892                            case WCon{False{}, w7}:
4893                              match w7:
4894                                case WCon{False{}, w8}:
4895                                  match w8:
4896                                    case WNil{}:
4897                                      {==}
4898                                case WCon{True{}, w8}:
4899                                  match w8:
4900                                    case WNil{}:
4901                                      {==}
4902                            case WCon{True{}, w7}:
4903                              match w7:
4904                                case WCon{False{}, w8}:
4905                                  match w8:
4906                                    case WNil{}:
4907                                      {==}
4908                                case WCon{True{}, w8}:
4909                                  match w8:
4910                                    case WNil{}:
4911                                      {==}
4912                case WCon{True{}, w4}:
4913                  match w4:
4914                    case WCon{False{}, w5}:
4915                      match w5:
4916                        case WCon{False{}, w6}:
4917                          match w6:
4918                            case WCon{False{}, w7}:
4919                              match w7:
4920                                case WCon{False{}, w8}:
4921                                  match w8:
4922                                    case WNil{}:
4923                                      {==}
4924                                case WCon{True{}, w8}:
4925                                  match w8:
4926                                    case WNil{}:
4927                                      {==}
4928                            case WCon{True{}, w7}:
4929                              match w7:
4930                                case WCon{False{}, w8}:
4931                                  match w8:
4932                                    case WNil{}:
4933                                      {==}
4934                                case WCon{True{}, w8}:
4935                                  match w8:
4936                                    case WNil{}:
4937                                      {==}
4938                        case WCon{True{}, w6}:
4939                          match w6:
4940                            case WCon{False{}, w7}:
4941                              match w7:
4942                                case WCon{False{}, w8}:
4943                                  match w8:
4944                                    case WNil{}:
4945                                      {==}
4946                                case WCon{True{}, w8}:
4947                                  match w8:
4948                                    case WNil{}:
4949                                      {==}
4950                            case WCon{True{}, w7}:
4951                              match w7:
4952                                case WCon{False{}, w8}:
4953                                  match w8:
4954                                    case WNil{}:
4955                                      {==}
4956                                case WCon{True{}, w8}:
4957                                  match w8:
4958                                    case WNil{}:
4959                                      {==}
4960                    case WCon{True{}, w5}:
4961                      match w5:
4962                        case WCon{False{}, w6}:
4963                          match w6:
4964                            case WCon{False{}, w7}:
4965                              match w7:
4966                                case WCon{False{}, w8}:
4967                                  match w8:
4968                                    case WNil{}:
4969                                      {==}
4970                                case WCon{True{}, w8}:
4971                                  match w8:
4972                                    case WNil{}:
4973                                      {==}
4974                            case WCon{True{}, w7}:
4975                              match w7:
4976                                case WCon{False{}, w8}:
4977                                  match w8:
4978                                    case WNil{}:
4979                                      {==}
4980                                case WCon{True{}, w8}:
4981                                  match w8:
4982                                    case WNil{}:
4983                                      {==}
4984                        case WCon{True{}, w6}:
4985                          match w6:
4986                            case WCon{False{}, w7}:
4987                              match w7:
4988                                case WCon{False{}, w8}:
4989                                  match w8:
4990                                    case WNil{}:
4991                                      {==}
4992                                case WCon{True{}, w8}:
4993                                  match w8:
4994                                    case WNil{}:
4995                                      {==}
4996                            case WCon{True{}, w7}:
4997                              match w7:
4998                                case WCon{False{}, w8}:
4999                                  match w8:
5000                                    case WNil{}:
5001                                      {==}
5002                                case WCon{True{}, w8}:
5003                                  match w8:
5004                                    case WNil{}:
5005                                      {==}
5006        case WCon{True{}, w2}:
5007          match w2:
5008            case WCon{False{}, w3}:
5009              match w3:
5010                case WCon{False{}, w4}:
5011                  match w4:
5012                    case WCon{False{}, w5}:
5013                      match w5:
5014                        case WCon{False{}, w6}:
5015                          match w6:
5016                            case WCon{False{}, w7}:
5017                              match w7:
5018                                case WCon{False{}, w8}:
5019                                  match w8:
5020                                    case WNil{}:
5021                                      {==}
5022                                case WCon{True{}, w8}:
5023                                  match w8:
5024                                    case WNil{}:
5025                                      {==}
5026                            case WCon{True{}, w7}:
5027                              match w7:
5028                                case WCon{False{}, w8}:
5029                                  match w8:
5030                                    case WNil{}:
5031                                      {==}
5032                                case WCon{True{}, w8}:
5033                                  match w8:
5034                                    case WNil{}:
5035                                      {==}
5036                        case WCon{True{}, w6}:
5037                          match w6:
5038                            case WCon{False{}, w7}:
5039                              match w7:
5040                                case WCon{False{}, w8}:
5041                                  match w8:
5042                                    case WNil{}:
5043                                      {==}
5044                                case WCon{True{}, w8}:
5045                                  match w8:
5046                                    case WNil{}:
5047                                      {==}
5048                            case WCon{True{}, w7}:
5049                              match w7:
5050                                case WCon{False{}, w8}:
5051                                  match w8:
5052                                    case WNil{}:
5053                                      {==}
5054                                case WCon{True{}, w8}:
5055                                  match w8:
5056                                    case WNil{}:
5057                                      {==}
5058                    case WCon{True{}, w5}:
5059                      match w5:
5060                        case WCon{False{}, w6}:
5061                          match w6:
5062                            case WCon{False{}, w7}:
5063                              match w7:
5064                                case WCon{False{}, w8}:
5065                                  match w8:
5066                                    case WNil{}:
5067                                      {==}
5068                                case WCon{True{}, w8}:
5069                                  match w8:
5070                                    case WNil{}:
5071                                      {==}
5072                            case WCon{True{}, w7}:
5073                              match w7:
5074                                case WCon{False{}, w8}:
5075                                  match w8:
5076                                    case WNil{}:
5077                                      {==}
5078                                case WCon{True{}, w8}:
5079                                  match w8:
5080                                    case WNil{}:
5081                                      {==}
5082                        case WCon{True{}, w6}:
5083                          match w6:
5084                            case WCon{False{}, w7}:
5085                              match w7:
5086                                case WCon{False{}, w8}:
5087                                  match w8:
5088                                    case WNil{}:
5089                                      {==}
5090                                case WCon{True{}, w8}:
5091                                  match w8:
5092                                    case WNil{}:
5093                                      {==}
5094                            case WCon{True{}, w7}:
5095                              match w7:
5096                                case WCon{False{}, w8}:
5097                                  match w8:
5098                                    case WNil{}:
5099                                      {==}
5100                                case WCon{True{}, w8}:
5101                                  match w8:
5102                                    case WNil{}:
5103                                      {==}
5104                case WCon{True{}, w4}:
5105                  match w4:
5106                    case WCon{False{}, w5}:
5107                      match w5:
5108                        case WCon{False{}, w6}:
5109                          match w6:
5110                            case WCon{False{}, w7}:
5111                              match w7:
5112                                case WCon{False{}, w8}:
5113                                  match w8:
5114                                    case WNil{}:
5115                                      {==}
5116                                case WCon{True{}, w8}:
5117                                  match w8:
5118                                    case WNil{}:
5119                                      {==}
5120                            case WCon{True{}, w7}:
5121                              match w7:
5122                                case WCon{False{}, w8}:
5123                                  match w8:
5124                                    case WNil{}:
5125                                      {==}
5126                                case WCon{True{}, w8}:
5127                                  match w8:
5128                                    case WNil{}:
5129                                      {==}
5130                        case WCon{True{}, w6}:
5131                          match w6:
5132                            case WCon{False{}, w7}:
5133                              match w7:
5134                                case WCon{False{}, w8}:
5135                                  match w8:
5136                                    case WNil{}:
5137                                      {==}
5138                                case WCon{True{}, w8}:
5139                                  match w8:
5140                                    case WNil{}:
5141                                      {==}
5142                            case WCon{True{}, w7}:
5143                              match w7:
5144                                case WCon{False{}, w8}:
5145                                  match w8:
5146                                    case WNil{}:
5147                                      {==}
5148                                case WCon{True{}, w8}:
5149                                  match w8:
5150                                    case WNil{}:
5151                                      {==}
5152                    case WCon{True{}, w5}:
5153                      match w5:
5154                        case WCon{False{}, w6}:
5155                          match w6:
5156                            case WCon{False{}, w7}:
5157                              match w7:
5158                                case WCon{False{}, w8}:
5159                                  match w8:
5160                                    case WNil{}:
5161                                      {==}
5162                                case WCon{True{}, w8}:
5163                                  match w8:
5164                                    case WNil{}:
5165                                      {==}
5166                            case WCon{True{}, w7}:
5167                              match w7:
5168                                case WCon{False{}, w8}:
5169                                  match w8:
5170                                    case WNil{}:
5171                                      {==}
5172                                case WCon{True{}, w8}:
5173                                  match w8:
5174                                    case WNil{}:
5175                                      {==}
5176                        case WCon{True{}, w6}:
5177                          match w6:
5178                            case WCon{False{}, w7}:
5179                              match w7:
5180                                case WCon{False{}, w8}:
5181                                  match w8:
5182                                    case WNil{}:
5183                                      {==}
5184                                case WCon{True{}, w8}:
5185                                  match w8:
5186                                    case WNil{}:
5187                                      {==}
5188                            case WCon{True{}, w7}:
5189                              match w7:
5190                                case WCon{False{}, w8}:
5191                                  match w8:
5192                                    case WNil{}:
5193                                      {==}
5194                                case WCon{True{}, w8}:
5195                                  match w8:
5196                                    case WNil{}:
5197                                      {==}
5198            case WCon{True{}, w3}:
5199              match w3:
5200                case WCon{False{}, w4}:
5201                  match w4:
5202                    case WCon{False{}, w5}:
5203                      match w5:
5204                        case WCon{False{}, w6}:
5205                          match w6:
5206                            case WCon{False{}, w7}:
5207                              match w7:
5208                                case WCon{False{}, w8}:
5209                                  match w8:
5210                                    case WNil{}:
5211                                      {==}
5212                                case WCon{True{}, w8}:
5213                                  match w8:
5214                                    case WNil{}:
5215                                      {==}
5216                            case WCon{True{}, w7}:
5217                              match w7:
5218                                case WCon{False{}, w8}:
5219                                  match w8:
5220                                    case WNil{}:
5221                                      {==}
5222                                case WCon{True{}, w8}:
5223                                  match w8:
5224                                    case WNil{}:
5225                                      {==}
5226                        case WCon{True{}, w6}:
5227                          match w6:
5228                            case WCon{False{}, w7}:
5229                              match w7:
5230                                case WCon{False{}, w8}:
5231                                  match w8:
5232                                    case WNil{}:
5233                                      {==}
5234                                case WCon{True{}, w8}:
5235                                  match w8:
5236                                    case WNil{}:
5237                                      {==}
5238                            case WCon{True{}, w7}:
5239                              match w7:
5240                                case WCon{False{}, w8}:
5241                                  match w8:
5242                                    case WNil{}:
5243                                      {==}
5244                                case WCon{True{}, w8}:
5245                                  match w8:
5246                                    case WNil{}:
5247                                      {==}
5248                    case WCon{True{}, w5}:
5249                      match w5:
5250                        case WCon{False{}, w6}:
5251                          match w6:
5252                            case WCon{False{}, w7}:
5253                              match w7:
5254                                case WCon{False{}, w8}:
5255                                  match w8:
5256                                    case WNil{}:
5257                                      {==}
5258                                case WCon{True{}, w8}:
5259                                  match w8:
5260                                    case WNil{}:
5261                                      {==}
5262                            case WCon{True{}, w7}:
5263                              match w7:
5264                                case WCon{False{}, w8}:
5265                                  match w8:
5266                                    case WNil{}:
5267                                      {==}
5268                                case WCon{True{}, w8}:
5269                                  match w8:
5270                                    case WNil{}:
5271                                      {==}
5272                        case WCon{True{}, w6}:
5273                          match w6:
5274                            case WCon{False{}, w7}:
5275                              match w7:
5276                                case WCon{False{}, w8}:
5277                                  match w8:
5278                                    case WNil{}:
5279                                      {==}
5280                                case WCon{True{}, w8}:
5281                                  match w8:
5282                                    case WNil{}:
5283                                      {==}
5284                            case WCon{True{}, w7}:
5285                              match w7:
5286                                case WCon{False{}, w8}:
5287                                  match w8:
5288                                    case WNil{}:
5289                                      {==}
5290                                case WCon{True{}, w8}:
5291                                  match w8:
5292                                    case WNil{}:
5293                                      {==}
5294                case WCon{True{}, w4}:
5295                  match w4:
5296                    case WCon{False{}, w5}:
5297                      match w5:
5298                        case WCon{False{}, w6}:
5299                          match w6:
5300                            case WCon{False{}, w7}:
5301                              match w7:
5302                                case WCon{False{}, w8}:
5303                                  match w8:
5304                                    case WNil{}:
5305                                      {==}
5306                                case WCon{True{}, w8}:
5307                                  match w8:
5308                                    case WNil{}:
5309                                      {==}
5310                            case WCon{True{}, w7}:
5311                              match w7:
5312                                case WCon{False{}, w8}:
5313                                  match w8:
5314                                    case WNil{}:
5315                                      {==}
5316                                case WCon{True{}, w8}:
5317                                  match w8:
5318                                    case WNil{}:
5319                                      {==}
5320                        case WCon{True{}, w6}:
5321                          match w6:
5322                            case WCon{False{}, w7}:
5323                              match w7:
5324                                case WCon{False{}, w8}:
5325                                  match w8:
5326                                    case WNil{}:
5327                                      {==}
5328                                case WCon{True{}, w8}:
5329                                  match w8:
5330                                    case WNil{}:
5331                                      {==}
5332                            case WCon{True{}, w7}:
5333                              match w7:
5334                                case WCon{False{}, w8}:
5335                                  match w8:
5336                                    case WNil{}:
5337                                      {==}
5338                                case WCon{True{}, w8}:
5339                                  match w8:
5340                                    case WNil{}:
5341                                      {==}
5342                    case WCon{True{}, w5}:
5343                      match w5:
5344                        case WCon{False{}, w6}:
5345                          match w6:
5346                            case WCon{False{}, w7}:
5347                              match w7:
5348                                case WCon{False{}, w8}:
5349                                  match w8:
5350                                    case WNil{}:
5351                                      {==}
5352                                case WCon{True{}, w8}:
5353                                  match w8:
5354                                    case WNil{}:
5355                                      {==}
5356                            case WCon{True{}, w7}:
5357                              match w7:
5358                                case WCon{False{}, w8}:
5359                                  match w8:
5360                                    case WNil{}:
5361                                      {==}
5362                                case WCon{True{}, w8}:
5363                                  match w8:
5364                                    case WNil{}:
5365                                      {==}
5366                        case WCon{True{}, w6}:
5367                          match w6:
5368                            case WCon{False{}, w7}:
5369                              match w7:
5370                                case WCon{False{}, w8}:
5371                                  match w8:
5372                                    case WNil{}:
5373                                      {==}
5374                                case WCon{True{}, w8}:
5375                                  match w8:
5376                                    case WNil{}:
5377                                      {==}
5378                            case WCon{True{}, w7}:
5379                              match w7:
5380                                case WCon{False{}, w8}:
5381                                  match w8:
5382                                    case WNil{}:
5383                                      {==}
5384                                case WCon{True{}, w8}:
5385                                  match w8:
5386                                    case WNil{}:
5387                                      {==}
5388    case WCon{True{}, w1}:
5389      match w1:
5390        case WCon{False{}, w2}:
5391          match w2:
5392            case WCon{False{}, w3}:
5393              match w3:
5394                case WCon{False{}, w4}:
5395                  match w4:
5396                    case WCon{False{}, w5}:
5397                      match w5:
5398                        case WCon{False{}, w6}:
5399                          match w6:
5400                            case WCon{False{}, w7}:
5401                              match w7:
5402                                case WCon{False{}, w8}:
5403                                  match w8:
5404                                    case WNil{}:
5405                                      {==}
5406                                case WCon{True{}, w8}:
5407                                  match w8:
5408                                    case WNil{}:
5409                                      {==}
5410                            case WCon{True{}, w7}:
5411                              match w7:
5412                                case WCon{False{}, w8}:
5413                                  match w8:
5414                                    case WNil{}:
5415                                      {==}
5416                                case WCon{True{}, w8}:
5417                                  match w8:
5418                                    case WNil{}:
5419                                      {==}
5420                        case WCon{True{}, w6}:
5421                          match w6:
5422                            case WCon{False{}, w7}:
5423                              match w7:
5424                                case WCon{False{}, w8}:
5425                                  match w8:
5426                                    case WNil{}:
5427                                      {==}
5428                                case WCon{True{}, w8}:
5429                                  match w8:
5430                                    case WNil{}:
5431                                      {==}
5432                            case WCon{True{}, w7}:
5433                              match w7:
5434                                case WCon{False{}, w8}:
5435                                  match w8:
5436                                    case WNil{}:
5437                                      {==}
5438                                case WCon{True{}, w8}:
5439                                  match w8:
5440                                    case WNil{}:
5441                                      {==}
5442                    case WCon{True{}, w5}:
5443                      match w5:
5444                        case WCon{False{}, w6}:
5445                          match w6:
5446                            case WCon{False{}, w7}:
5447                              match w7:
5448                                case WCon{False{}, w8}:
5449                                  match w8:
5450                                    case WNil{}:
5451                                      {==}
5452                                case WCon{True{}, w8}:
5453                                  match w8:
5454                                    case WNil{}:
5455                                      {==}
5456                            case WCon{True{}, w7}:
5457                              match w7:
5458                                case WCon{False{}, w8}:
5459                                  match w8:
5460                                    case WNil{}:
5461                                      {==}
5462                                case WCon{True{}, w8}:
5463                                  match w8:
5464                                    case WNil{}:
5465                                      {==}
5466                        case WCon{True{}, w6}:
5467                          match w6:
5468                            case WCon{False{}, w7}:
5469                              match w7:
5470                                case WCon{False{}, w8}:
5471                                  match w8:
5472                                    case WNil{}:
5473                                      {==}
5474                                case WCon{True{}, w8}:
5475                                  match w8:
5476                                    case WNil{}:
5477                                      {==}
5478                            case WCon{True{}, w7}:
5479                              match w7:
5480                                case WCon{False{}, w8}:
5481                                  match w8:
5482                                    case WNil{}:
5483                                      {==}
5484                                case WCon{True{}, w8}:
5485                                  match w8:
5486                                    case WNil{}:
5487                                      {==}
5488                case WCon{True{}, w4}:
5489                  match w4:
5490                    case WCon{False{}, w5}:
5491                      match w5:
5492                        case WCon{False{}, w6}:
5493                          match w6:
5494                            case WCon{False{}, w7}:
5495                              match w7:
5496                                case WCon{False{}, w8}:
5497                                  match w8:
5498                                    case WNil{}:
5499                                      {==}
5500                                case WCon{True{}, w8}:
5501                                  match w8:
5502                                    case WNil{}:
5503                                      {==}
5504                            case WCon{True{}, w7}:
5505                              match w7:
5506                                case WCon{False{}, w8}:
5507                                  match w8:
5508                                    case WNil{}:
5509                                      {==}
5510                                case WCon{True{}, w8}:
5511                                  match w8:
5512                                    case WNil{}:
5513                                      {==}
5514                        case WCon{True{}, w6}:
5515                          match w6:
5516                            case WCon{False{}, w7}:
5517                              match w7:
5518                                case WCon{False{}, w8}:
5519                                  match w8:
5520                                    case WNil{}:
5521                                      {==}
5522                                case WCon{True{}, w8}:
5523                                  match w8:
5524                                    case WNil{}:
5525                                      {==}
5526                            case WCon{True{}, w7}:
5527                              match w7:
5528                                case WCon{False{}, w8}:
5529                                  match w8:
5530                                    case WNil{}:
5531                                      {==}
5532                                case WCon{True{}, w8}:
5533                                  match w8:
5534                                    case WNil{}:
5535                                      {==}
5536                    case WCon{True{}, w5}:
5537                      match w5:
5538                        case WCon{False{}, w6}:
5539                          match w6:
5540                            case WCon{False{}, w7}:
5541                              match w7:
5542                                case WCon{False{}, w8}:
5543                                  match w8:
5544                                    case WNil{}:
5545                                      {==}
5546                                case WCon{True{}, w8}:
5547                                  match w8:
5548                                    case WNil{}:
5549                                      {==}
5550                            case WCon{True{}, w7}:
5551                              match w7:
5552                                case WCon{False{}, w8}:
5553                                  match w8:
5554                                    case WNil{}:
5555                                      {==}
5556                                case WCon{True{}, w8}:
5557                                  match w8:
5558                                    case WNil{}:
5559                                      {==}
5560                        case WCon{True{}, w6}:
5561                          match w6:
5562                            case WCon{False{}, w7}:
5563                              match w7:
5564                                case WCon{False{}, w8}:
5565                                  match w8:
5566                                    case WNil{}:
5567                                      {==}
5568                                case WCon{True{}, w8}:
5569                                  match w8:
5570                                    case WNil{}:
5571                                      {==}
5572                            case WCon{True{}, w7}:
5573                              match w7:
5574                                case WCon{False{}, w8}:
5575                                  match w8:
5576                                    case WNil{}:
5577                                      {==}
5578                                case WCon{True{}, w8}:
5579                                  match w8:
5580                                    case WNil{}:
5581                                      {==}
5582            case WCon{True{}, w3}:
5583              match w3:
5584                case WCon{False{}, w4}:
5585                  match w4:
5586                    case WCon{False{}, w5}:
5587                      match w5:
5588                        case WCon{False{}, w6}:
5589                          match w6:
5590                            case WCon{False{}, w7}:
5591                              match w7:
5592                                case WCon{False{}, w8}:
5593                                  match w8:
5594                                    case WNil{}:
5595                                      {==}
5596                                case WCon{True{}, w8}:
5597                                  match w8:
5598                                    case WNil{}:
5599                                      {==}
5600                            case WCon{True{}, w7}:
5601                              match w7:
5602                                case WCon{False{}, w8}:
5603                                  match w8:
5604                                    case WNil{}:
5605                                      {==}
5606                                case WCon{True{}, w8}:
5607                                  match w8:
5608                                    case WNil{}:
5609                                      {==}
5610                        case WCon{True{}, w6}:
5611                          match w6:
5612                            case WCon{False{}, w7}:
5613                              match w7:
5614                                case WCon{False{}, w8}:
5615                                  match w8:
5616                                    case WNil{}:
5617                                      {==}
5618                                case WCon{True{}, w8}:
5619                                  match w8:
5620                                    case WNil{}:
5621                                      {==}
5622                            case WCon{True{}, w7}:
5623                              match w7:
5624                                case WCon{False{}, w8}:
5625                                  match w8:
5626                                    case WNil{}:
5627                                      {==}
5628                                case WCon{True{}, w8}:
5629                                  match w8:
5630                                    case WNil{}:
5631                                      {==}
5632                    case WCon{True{}, w5}:
5633                      match w5:
5634                        case WCon{False{}, w6}:
5635                          match w6:
5636                            case WCon{False{}, w7}:
5637                              match w7:
5638                                case WCon{False{}, w8}:
5639                                  match w8:
5640                                    case WNil{}:
5641                                      {==}
5642                                case WCon{True{}, w8}:
5643                                  match w8:
5644                                    case WNil{}:
5645                                      {==}
5646                            case WCon{True{}, w7}:
5647                              match w7:
5648                                case WCon{False{}, w8}:
5649                                  match w8:
5650                                    case WNil{}:
5651                                      {==}
5652                                case WCon{True{}, w8}:
5653                                  match w8:
5654                                    case WNil{}:
5655                                      {==}
5656                        case WCon{True{}, w6}:
5657                          match w6:
5658                            case WCon{False{}, w7}:
5659                              match w7:
5660                                case WCon{False{}, w8}:
5661                                  match w8:
5662                                    case WNil{}:
5663                                      {==}
5664                                case WCon{True{}, w8}:
5665                                  match w8:
5666                                    case WNil{}:
5667                                      {==}
5668                            case WCon{True{}, w7}:
5669                              match w7:
5670                                case WCon{False{}, w8}:
5671                                  match w8:
5672                                    case WNil{}:
5673                                      {==}
5674                                case WCon{True{}, w8}:
5675                                  match w8:
5676                                    case WNil{}:
5677                                      {==}
5678                case WCon{True{}, w4}:
5679                  match w4:
5680                    case WCon{False{}, w5}:
5681                      match w5:
5682                        case WCon{False{}, w6}:
5683                          match w6:
5684                            case WCon{False{}, w7}:
5685                              match w7:
5686                                case WCon{False{}, w8}:
5687                                  match w8:
5688                                    case WNil{}:
5689                                      {==}
5690                                case WCon{True{}, w8}:
5691                                  match w8:
5692                                    case WNil{}:
5693                                      {==}
5694                            case WCon{True{}, w7}:
5695                              match w7:
5696                                case WCon{False{}, w8}:
5697                                  match w8:
5698                                    case WNil{}:
5699                                      {==}
5700                                case WCon{True{}, w8}:
5701                                  match w8:
5702                                    case WNil{}:
5703                                      {==}
5704                        case WCon{True{}, w6}:
5705                          match w6:
5706                            case WCon{False{}, w7}:
5707                              match w7:
5708                                case WCon{False{}, w8}:
5709                                  match w8:
5710                                    case WNil{}:
5711                                      {==}
5712                                case WCon{True{}, w8}:
5713                                  match w8:
5714                                    case WNil{}:
5715                                      {==}
5716                            case WCon{True{}, w7}:
5717                              match w7:
5718                                case WCon{False{}, w8}:
5719                                  match w8:
5720                                    case WNil{}:
5721                                      {==}
5722                                case WCon{True{}, w8}:
5723                                  match w8:
5724                                    case WNil{}:
5725                                      {==}
5726                    case WCon{True{}, w5}:
5727                      match w5:
5728                        case WCon{False{}, w6}:
5729                          match w6:
5730                            case WCon{False{}, w7}:
5731                              match w7:
5732                                case WCon{False{}, w8}:
5733                                  match w8:
5734                                    case WNil{}:
5735                                      {==}
5736                                case WCon{True{}, w8}:
5737                                  match w8:
5738                                    case WNil{}:
5739                                      {==}
5740                            case WCon{True{}, w7}:
5741                              match w7:
5742                                case WCon{False{}, w8}:
5743                                  match w8:
5744                                    case WNil{}:
5745                                      {==}
5746                                case WCon{True{}, w8}:
5747                                  match w8:
5748                                    case WNil{}:
5749                                      {==}
5750                        case WCon{True{}, w6}:
5751                          match w6:
5752                            case WCon{False{}, w7}:
5753                              match w7:
5754                                case WCon{False{}, w8}:
5755                                  match w8:
5756                                    case WNil{}:
5757                                      {==}
5758                                case WCon{True{}, w8}:
5759                                  match w8:
5760                                    case WNil{}:
5761                                      {==}
5762                            case WCon{True{}, w7}:
5763                              match w7:
5764                                case WCon{False{}, w8}:
5765                                  match w8:
5766                                    case WNil{}:
5767                                      {==}
5768                                case WCon{True{}, w8}:
5769                                  match w8:
5770                                    case WNil{}:
5771                                      {==}
5772        case WCon{True{}, w2}:
5773          match w2:
5774            case WCon{False{}, w3}:
5775              match w3:
5776                case WCon{False{}, w4}:
5777                  match w4:
5778                    case WCon{False{}, w5}:
5779                      match w5:
5780                        case WCon{False{}, w6}:
5781                          match w6:
5782                            case WCon{False{}, w7}:
5783                              match w7:
5784                                case WCon{False{}, w8}:
5785                                  match w8:
5786                                    case WNil{}:
5787                                      {==}
5788                                case WCon{True{}, w8}:
5789                                  match w8:
5790                                    case WNil{}:
5791                                      {==}
5792                            case WCon{True{}, w7}:
5793                              match w7:
5794                                case WCon{False{}, w8}:
5795                                  match w8:
5796                                    case WNil{}:
5797                                      {==}
5798                                case WCon{True{}, w8}:
5799                                  match w8:
5800                                    case WNil{}:
5801                                      {==}
5802                        case WCon{True{}, w6}:
5803                          match w6:
5804                            case WCon{False{}, w7}:
5805                              match w7:
5806                                case WCon{False{}, w8}:
5807                                  match w8:
5808                                    case WNil{}:
5809                                      {==}
5810                                case WCon{True{}, w8}:
5811                                  match w8:
5812                                    case WNil{}:
5813                                      {==}
5814                            case WCon{True{}, w7}:
5815                              match w7:
5816                                case WCon{False{}, w8}:
5817                                  match w8:
5818                                    case WNil{}:
5819                                      {==}
5820                                case WCon{True{}, w8}:
5821                                  match w8:
5822                                    case WNil{}:
5823                                      {==}
5824                    case WCon{True{}, w5}:
5825                      match w5:
5826                        case WCon{False{}, w6}:
5827                          match w6:
5828                            case WCon{False{}, w7}:
5829                              match w7:
5830                                case WCon{False{}, w8}:
5831                                  match w8:
5832                                    case WNil{}:
5833                                      {==}
5834                                case WCon{True{}, w8}:
5835                                  match w8:
5836                                    case WNil{}:
5837                                      {==}
5838                            case WCon{True{}, w7}:
5839                              match w7:
5840                                case WCon{False{}, w8}:
5841                                  match w8:
5842                                    case WNil{}:
5843                                      {==}
5844                                case WCon{True{}, w8}:
5845                                  match w8:
5846                                    case WNil{}:
5847                                      {==}
5848                        case WCon{True{}, w6}:
5849                          match w6:
5850                            case WCon{False{}, w7}:
5851                              match w7:
5852                                case WCon{False{}, w8}:
5853                                  match w8:
5854                                    case WNil{}:
5855                                      {==}
5856                                case WCon{True{}, w8}:
5857                                  match w8:
5858                                    case WNil{}:
5859                                      {==}
5860                            case WCon{True{}, w7}:
5861                              match w7:
5862                                case WCon{False{}, w8}:
5863                                  match w8:
5864                                    case WNil{}:
5865                                      {==}
5866                                case WCon{True{}, w8}:
5867                                  match w8:
5868                                    case WNil{}:
5869                                      {==}
5870                case WCon{True{}, w4}:
5871                  match w4:
5872                    case WCon{False{}, w5}:
5873                      match w5:
5874                        case WCon{False{}, w6}:
5875                          match w6:
5876                            case WCon{False{}, w7}:
5877                              match w7:
5878                                case WCon{False{}, w8}:
5879                                  match w8:
5880                                    case WNil{}:
5881                                      {==}
5882                                case WCon{True{}, w8}:
5883                                  match w8:
5884                                    case WNil{}:
5885                                      {==}
5886                            case WCon{True{}, w7}:
5887                              match w7:
5888                                case WCon{False{}, w8}:
5889                                  match w8:
5890                                    case WNil{}:
5891                                      {==}
5892                                case WCon{True{}, w8}:
5893                                  match w8:
5894                                    case WNil{}:
5895                                      {==}
5896                        case WCon{True{}, w6}:
5897                          match w6:
5898                            case WCon{False{}, w7}:
5899                              match w7:
5900                                case WCon{False{}, w8}:
5901                                  match w8:
5902                                    case WNil{}:
5903                                      {==}
5904                                case WCon{True{}, w8}:
5905                                  match w8:
5906                                    case WNil{}:
5907                                      {==}
5908                            case WCon{True{}, w7}:
5909                              match w7:
5910                                case WCon{False{}, w8}:
5911                                  match w8:
5912                                    case WNil{}:
5913                                      {==}
5914                                case WCon{True{}, w8}:
5915                                  match w8:
5916                                    case WNil{}:
5917                                      {==}
5918                    case WCon{True{}, w5}:
5919                      match w5:
5920                        case WCon{False{}, w6}:
5921                          match w6:
5922                            case WCon{False{}, w7}:
5923                              match w7:
5924                                case WCon{False{}, w8}:
5925                                  match w8:
5926                                    case WNil{}:
5927                                      {==}
5928                                case WCon{True{}, w8}:
5929                                  match w8:
5930                                    case WNil{}:
5931                                      {==}
5932                            case WCon{True{}, w7}:
5933                              match w7:
5934                                case WCon{False{}, w8}:
5935                                  match w8:
5936                                    case WNil{}:
5937                                      {==}
5938                                case WCon{True{}, w8}:
5939                                  match w8:
5940                                    case WNil{}:
5941                                      {==}
5942                        case WCon{True{}, w6}:
5943                          match w6:
5944                            case WCon{False{}, w7}:
5945                              match w7:
5946                                case WCon{False{}, w8}:
5947                                  match w8:
5948                                    case WNil{}:
5949                                      {==}
5950                                case WCon{True{}, w8}:
5951                                  match w8:
5952                                    case WNil{}:
5953                                      {==}
5954                            case WCon{True{}, w7}:
5955                              match w7:
5956                                case WCon{False{}, w8}:
5957                                  match w8:
5958                                    case WNil{}:
5959                                      {==}
5960                                case WCon{True{}, w8}:
5961                                  match w8:
5962                                    case WNil{}:
5963                                      {==}
5964            case WCon{True{}, w3}:
5965              match w3:
5966                case WCon{False{}, w4}:
5967                  match w4:
5968                    case WCon{False{}, w5}:
5969                      match w5:
5970                        case WCon{False{}, w6}:
5971                          match w6:
5972                            case WCon{False{}, w7}:
5973                              match w7:
5974                                case WCon{False{}, w8}:
5975                                  match w8:
5976                                    case WNil{}:
5977                                      {==}
5978                                case WCon{True{}, w8}:
5979                                  match w8:
5980                                    case WNil{}:
5981                                      {==}
5982                            case WCon{True{}, w7}:
5983                              match w7:
5984                                case WCon{False{}, w8}:
5985                                  match w8:
5986                                    case WNil{}:
5987                                      {==}
5988                                case WCon{True{}, w8}:
5989                                  match w8:
5990                                    case WNil{}:
5991                                      {==}
5992                        case WCon{True{}, w6}:
5993                          match w6:
5994                            case WCon{False{}, w7}:
5995                              match w7:
5996                                case WCon{False{}, w8}:
5997                                  match w8:
5998                                    case WNil{}:
5999                                      {==}
6000                                case WCon{True{}, w8}:
6001                                  match w8:
6002                                    case WNil{}:
6003                                      {==}
6004                            case WCon{True{}, w7}:
6005                              match w7:
6006                                case WCon{False{}, w8}:
6007                                  match w8:
6008                                    case WNil{}:
6009                                      {==}
6010                                case WCon{True{}, w8}:
6011                                  match w8:
6012                                    case WNil{}:
6013                                      {==}
6014                    case WCon{True{}, w5}:
6015                      match w5:
6016                        case WCon{False{}, w6}:
6017                          match w6:
6018                            case WCon{False{}, w7}:
6019                              match w7:
6020                                case WCon{False{}, w8}:
6021                                  match w8:
6022                                    case WNil{}:
6023                                      {==}
6024                                case WCon{True{}, w8}:
6025                                  match w8:
6026                                    case WNil{}:
6027                                      {==}
6028                            case WCon{True{}, w7}:
6029                              match w7:
6030                                case WCon{False{}, w8}:
6031                                  match w8:
6032                                    case WNil{}:
6033                                      {==}
6034                                case WCon{True{}, w8}:
6035                                  match w8:
6036                                    case WNil{}:
6037                                      {==}
6038                        case WCon{True{}, w6}:
6039                          match w6:
6040                            case WCon{False{}, w7}:
6041                              match w7:
6042                                case WCon{False{}, w8}:
6043                                  match w8:
6044                                    case WNil{}:
6045                                      {==}
6046                                case WCon{True{}, w8}:
6047                                  match w8:
6048                                    case WNil{}:
6049                                      {==}
6050                            case WCon{True{}, w7}:
6051                              match w7:
6052                                case WCon{False{}, w8}:
6053                                  match w8:
6054                                    case WNil{}:
6055                                      {==}
6056                                case WCon{True{}, w8}:
6057                                  match w8:
6058                                    case WNil{}:
6059                                      {==}
6060                case WCon{True{}, w4}:
6061                  match w4:
6062                    case WCon{False{}, w5}:
6063                      match w5:
6064                        case WCon{False{}, w6}:
6065                          match w6:
6066                            case WCon{False{}, w7}:
6067                              match w7:
6068                                case WCon{False{}, w8}:
6069                                  match w8:
6070                                    case WNil{}:
6071                                      {==}
6072                                case WCon{True{}, w8}:
6073                                  match w8:
6074                                    case WNil{}:
6075                                      {==}
6076                            case WCon{True{}, w7}:
6077                              match w7:
6078                                case WCon{False{}, w8}:
6079                                  match w8:
6080                                    case WNil{}:
6081                                      {==}
6082                                case WCon{True{}, w8}:
6083                                  match w8:
6084                                    case WNil{}:
6085                                      {==}
6086                        case WCon{True{}, w6}:
6087                          match w6:
6088                            case WCon{False{}, w7}:
6089                              match w7:
6090                                case WCon{False{}, w8}:
6091                                  match w8:
6092                                    case WNil{}:
6093                                      {==}
6094                                case WCon{True{}, w8}:
6095                                  match w8:
6096                                    case WNil{}:
6097                                      {==}
6098                            case WCon{True{}, w7}:
6099                              match w7:
6100                                case WCon{False{}, w8}:
6101                                  match w8:
6102                                    case WNil{}:
6103                                      {==}
6104                                case WCon{True{}, w8}:
6105                                  match w8:
6106                                    case WNil{}:
6107                                      {==}
6108                    case WCon{True{}, w5}:
6109                      match w5:
6110                        case WCon{False{}, w6}:
6111                          match w6:
6112                            case WCon{False{}, w7}:
6113                              match w7:
6114                                case WCon{False{}, w8}:
6115                                  match w8:
6116                                    case WNil{}:
6117                                      {==}
6118                                case WCon{True{}, w8}:
6119                                  match w8:
6120                                    case WNil{}:
6121                                      {==}
6122                            case WCon{True{}, w7}:
6123                              match w7:
6124                                case WCon{False{}, w8}:
6125                                  match w8:
6126                                    case WNil{}:
6127                                      {==}
6128                                case WCon{True{}, w8}:
6129                                  match w8:
6130                                    case WNil{}:
6131                                      {==}
6132                        case WCon{True{}, w6}:
6133                          match w6:
6134                            case WCon{False{}, w7}:
6135                              match w7:
6136                                case WCon{False{}, w8}:
6137                                  match w8:
6138                                    case WNil{}:
6139                                      {==}
6140                                case WCon{True{}, w8}:
6141                                  match w8:
6142                                    case WNil{}:
6143                                      {==}
6144                            case WCon{True{}, w7}:
6145                              match w7:
6146                                case WCon{False{}, w8}:
6147                                  match w8:
6148                                    case WNil{}:
6149                                      {==}
6150                                case WCon{True{}, w8}:
6151                                  match w8:
6152                                    case WNil{}:
6153                                      {==}
6154
6155# SL2 undoes SL1, and SL1 undoes SL2, a byte at a time
6156def aria_sl21(s: A.LcAriaSt) -> {s == A.aria.sl2(A.aria.sl1(s)) : A.LcAriaSt}:
6157  match s:
6158    case A.LcAriaSt{+x0, +x1, +x2, +x3, +x4, +x5, +x6, +x7, +x8, +x9, +x10, +x11, +x12, +x13, +x14, +x15}:
6159      %aria_sb31(x0) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{_, A.aria.sb4(A.aria.sb2(x1)), A.aria.sb1(A.aria.sb3(x2)), A.aria.sb2(A.aria.sb4(x3)), A.aria.sb3(A.aria.sb1(x4)), A.aria.sb4(A.aria.sb2(x5)), A.aria.sb1(A.aria.sb3(x6)), A.aria.sb2(A.aria.sb4(x7)), A.aria.sb3(A.aria.sb1(x8)), A.aria.sb4(A.aria.sb2(x9)), A.aria.sb1(A.aria.sb3(x10)), A.aria.sb2(A.aria.sb4(x11)), A.aria.sb3(A.aria.sb1(x12)), A.aria.sb4(A.aria.sb2(x13)), A.aria.sb1(A.aria.sb3(x14)), A.aria.sb2(A.aria.sb4(x15))} : A.LcAriaSt}
6160      %aria_sb42(x1) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, _, A.aria.sb1(A.aria.sb3(x2)), A.aria.sb2(A.aria.sb4(x3)), A.aria.sb3(A.aria.sb1(x4)), A.aria.sb4(A.aria.sb2(x5)), A.aria.sb1(A.aria.sb3(x6)), A.aria.sb2(A.aria.sb4(x7)), A.aria.sb3(A.aria.sb1(x8)), A.aria.sb4(A.aria.sb2(x9)), A.aria.sb1(A.aria.sb3(x10)), A.aria.sb2(A.aria.sb4(x11)), A.aria.sb3(A.aria.sb1(x12)), A.aria.sb4(A.aria.sb2(x13)), A.aria.sb1(A.aria.sb3(x14)), A.aria.sb2(A.aria.sb4(x15))} : A.LcAriaSt}
6161      %aria_sb13(x2) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, _, A.aria.sb2(A.aria.sb4(x3)), A.aria.sb3(A.aria.sb1(x4)), A.aria.sb4(A.aria.sb2(x5)), A.aria.sb1(A.aria.sb3(x6)), A.aria.sb2(A.aria.sb4(x7)), A.aria.sb3(A.aria.sb1(x8)), A.aria.sb4(A.aria.sb2(x9)), A.aria.sb1(A.aria.sb3(x10)), A.aria.sb2(A.aria.sb4(x11)), A.aria.sb3(A.aria.sb1(x12)), A.aria.sb4(A.aria.sb2(x13)), A.aria.sb1(A.aria.sb3(x14)), A.aria.sb2(A.aria.sb4(x15))} : A.LcAriaSt}
6162      %aria_sb24(x3) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, _, A.aria.sb3(A.aria.sb1(x4)), A.aria.sb4(A.aria.sb2(x5)), A.aria.sb1(A.aria.sb3(x6)), A.aria.sb2(A.aria.sb4(x7)), A.aria.sb3(A.aria.sb1(x8)), A.aria.sb4(A.aria.sb2(x9)), A.aria.sb1(A.aria.sb3(x10)), A.aria.sb2(A.aria.sb4(x11)), A.aria.sb3(A.aria.sb1(x12)), A.aria.sb4(A.aria.sb2(x13)), A.aria.sb1(A.aria.sb3(x14)), A.aria.sb2(A.aria.sb4(x15))} : A.LcAriaSt}
6163      %aria_sb31(x4) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, _, A.aria.sb4(A.aria.sb2(x5)), A.aria.sb1(A.aria.sb3(x6)), A.aria.sb2(A.aria.sb4(x7)), A.aria.sb3(A.aria.sb1(x8)), A.aria.sb4(A.aria.sb2(x9)), A.aria.sb1(A.aria.sb3(x10)), A.aria.sb2(A.aria.sb4(x11)), A.aria.sb3(A.aria.sb1(x12)), A.aria.sb4(A.aria.sb2(x13)), A.aria.sb1(A.aria.sb3(x14)), A.aria.sb2(A.aria.sb4(x15))} : A.LcAriaSt}
6164      %aria_sb42(x5) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, x4, _, A.aria.sb1(A.aria.sb3(x6)), A.aria.sb2(A.aria.sb4(x7)), A.aria.sb3(A.aria.sb1(x8)), A.aria.sb4(A.aria.sb2(x9)), A.aria.sb1(A.aria.sb3(x10)), A.aria.sb2(A.aria.sb4(x11)), A.aria.sb3(A.aria.sb1(x12)), A.aria.sb4(A.aria.sb2(x13)), A.aria.sb1(A.aria.sb3(x14)), A.aria.sb2(A.aria.sb4(x15))} : A.LcAriaSt}
6165      %aria_sb13(x6) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, x4, x5, _, A.aria.sb2(A.aria.sb4(x7)), A.aria.sb3(A.aria.sb1(x8)), A.aria.sb4(A.aria.sb2(x9)), A.aria.sb1(A.aria.sb3(x10)), A.aria.sb2(A.aria.sb4(x11)), A.aria.sb3(A.aria.sb1(x12)), A.aria.sb4(A.aria.sb2(x13)), A.aria.sb1(A.aria.sb3(x14)), A.aria.sb2(A.aria.sb4(x15))} : A.LcAriaSt}
6166      %aria_sb24(x7) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, _, A.aria.sb3(A.aria.sb1(x8)), A.aria.sb4(A.aria.sb2(x9)), A.aria.sb1(A.aria.sb3(x10)), A.aria.sb2(A.aria.sb4(x11)), A.aria.sb3(A.aria.sb1(x12)), A.aria.sb4(A.aria.sb2(x13)), A.aria.sb1(A.aria.sb3(x14)), A.aria.sb2(A.aria.sb4(x15))} : A.LcAriaSt}
6167      %aria_sb31(x8) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, _, A.aria.sb4(A.aria.sb2(x9)), A.aria.sb1(A.aria.sb3(x10)), A.aria.sb2(A.aria.sb4(x11)), A.aria.sb3(A.aria.sb1(x12)), A.aria.sb4(A.aria.sb2(x13)), A.aria.sb1(A.aria.sb3(x14)), A.aria.sb2(A.aria.sb4(x15))} : A.LcAriaSt}
6168      %aria_sb42(x9) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, _, A.aria.sb1(A.aria.sb3(x10)), A.aria.sb2(A.aria.sb4(x11)), A.aria.sb3(A.aria.sb1(x12)), A.aria.sb4(A.aria.sb2(x13)), A.aria.sb1(A.aria.sb3(x14)), A.aria.sb2(A.aria.sb4(x15))} : A.LcAriaSt}
6169      %aria_sb13(x10) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, _, A.aria.sb2(A.aria.sb4(x11)), A.aria.sb3(A.aria.sb1(x12)), A.aria.sb4(A.aria.sb2(x13)), A.aria.sb1(A.aria.sb3(x14)), A.aria.sb2(A.aria.sb4(x15))} : A.LcAriaSt}
6170      %aria_sb24(x11) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, _, A.aria.sb3(A.aria.sb1(x12)), A.aria.sb4(A.aria.sb2(x13)), A.aria.sb1(A.aria.sb3(x14)), A.aria.sb2(A.aria.sb4(x15))} : A.LcAriaSt}
6171      %aria_sb31(x12) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, _, A.aria.sb4(A.aria.sb2(x13)), A.aria.sb1(A.aria.sb3(x14)), A.aria.sb2(A.aria.sb4(x15))} : A.LcAriaSt}
6172      %aria_sb42(x13) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, _, A.aria.sb1(A.aria.sb3(x14)), A.aria.sb2(A.aria.sb4(x15))} : A.LcAriaSt}
6173      %aria_sb13(x14) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, _, A.aria.sb2(A.aria.sb4(x15))} : A.LcAriaSt}
6174      %aria_sb24(x15) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, _} : A.LcAriaSt}
6175      {==}
6176
6177def aria_sl12(s: A.LcAriaSt) -> {s == A.aria.sl1(A.aria.sl2(s)) : A.LcAriaSt}:
6178  match s:
6179    case A.LcAriaSt{+x0, +x1, +x2, +x3, +x4, +x5, +x6, +x7, +x8, +x9, +x10, +x11, +x12, +x13, +x14, +x15}:
6180      %aria_sb13(x0) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{_, A.aria.sb2(A.aria.sb4(x1)), A.aria.sb3(A.aria.sb1(x2)), A.aria.sb4(A.aria.sb2(x3)), A.aria.sb1(A.aria.sb3(x4)), A.aria.sb2(A.aria.sb4(x5)), A.aria.sb3(A.aria.sb1(x6)), A.aria.sb4(A.aria.sb2(x7)), A.aria.sb1(A.aria.sb3(x8)), A.aria.sb2(A.aria.sb4(x9)), A.aria.sb3(A.aria.sb1(x10)), A.aria.sb4(A.aria.sb2(x11)), A.aria.sb1(A.aria.sb3(x12)), A.aria.sb2(A.aria.sb4(x13)), A.aria.sb3(A.aria.sb1(x14)), A.aria.sb4(A.aria.sb2(x15))} : A.LcAriaSt}
6181      %aria_sb24(x1) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, _, A.aria.sb3(A.aria.sb1(x2)), A.aria.sb4(A.aria.sb2(x3)), A.aria.sb1(A.aria.sb3(x4)), A.aria.sb2(A.aria.sb4(x5)), A.aria.sb3(A.aria.sb1(x6)), A.aria.sb4(A.aria.sb2(x7)), A.aria.sb1(A.aria.sb3(x8)), A.aria.sb2(A.aria.sb4(x9)), A.aria.sb3(A.aria.sb1(x10)), A.aria.sb4(A.aria.sb2(x11)), A.aria.sb1(A.aria.sb3(x12)), A.aria.sb2(A.aria.sb4(x13)), A.aria.sb3(A.aria.sb1(x14)), A.aria.sb4(A.aria.sb2(x15))} : A.LcAriaSt}
6182      %aria_sb31(x2) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, _, A.aria.sb4(A.aria.sb2(x3)), A.aria.sb1(A.aria.sb3(x4)), A.aria.sb2(A.aria.sb4(x5)), A.aria.sb3(A.aria.sb1(x6)), A.aria.sb4(A.aria.sb2(x7)), A.aria.sb1(A.aria.sb3(x8)), A.aria.sb2(A.aria.sb4(x9)), A.aria.sb3(A.aria.sb1(x10)), A.aria.sb4(A.aria.sb2(x11)), A.aria.sb1(A.aria.sb3(x12)), A.aria.sb2(A.aria.sb4(x13)), A.aria.sb3(A.aria.sb1(x14)), A.aria.sb4(A.aria.sb2(x15))} : A.LcAriaSt}
6183      %aria_sb42(x3) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, _, A.aria.sb1(A.aria.sb3(x4)), A.aria.sb2(A.aria.sb4(x5)), A.aria.sb3(A.aria.sb1(x6)), A.aria.sb4(A.aria.sb2(x7)), A.aria.sb1(A.aria.sb3(x8)), A.aria.sb2(A.aria.sb4(x9)), A.aria.sb3(A.aria.sb1(x10)), A.aria.sb4(A.aria.sb2(x11)), A.aria.sb1(A.aria.sb3(x12)), A.aria.sb2(A.aria.sb4(x13)), A.aria.sb3(A.aria.sb1(x14)), A.aria.sb4(A.aria.sb2(x15))} : A.LcAriaSt}
6184      %aria_sb13(x4) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, _, A.aria.sb2(A.aria.sb4(x5)), A.aria.sb3(A.aria.sb1(x6)), A.aria.sb4(A.aria.sb2(x7)), A.aria.sb1(A.aria.sb3(x8)), A.aria.sb2(A.aria.sb4(x9)), A.aria.sb3(A.aria.sb1(x10)), A.aria.sb4(A.aria.sb2(x11)), A.aria.sb1(A.aria.sb3(x12)), A.aria.sb2(A.aria.sb4(x13)), A.aria.sb3(A.aria.sb1(x14)), A.aria.sb4(A.aria.sb2(x15))} : A.LcAriaSt}
6185      %aria_sb24(x5) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, x4, _, A.aria.sb3(A.aria.sb1(x6)), A.aria.sb4(A.aria.sb2(x7)), A.aria.sb1(A.aria.sb3(x8)), A.aria.sb2(A.aria.sb4(x9)), A.aria.sb3(A.aria.sb1(x10)), A.aria.sb4(A.aria.sb2(x11)), A.aria.sb1(A.aria.sb3(x12)), A.aria.sb2(A.aria.sb4(x13)), A.aria.sb3(A.aria.sb1(x14)), A.aria.sb4(A.aria.sb2(x15))} : A.LcAriaSt}
6186      %aria_sb31(x6) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, x4, x5, _, A.aria.sb4(A.aria.sb2(x7)), A.aria.sb1(A.aria.sb3(x8)), A.aria.sb2(A.aria.sb4(x9)), A.aria.sb3(A.aria.sb1(x10)), A.aria.sb4(A.aria.sb2(x11)), A.aria.sb1(A.aria.sb3(x12)), A.aria.sb2(A.aria.sb4(x13)), A.aria.sb3(A.aria.sb1(x14)), A.aria.sb4(A.aria.sb2(x15))} : A.LcAriaSt}
6187      %aria_sb42(x7) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, _, A.aria.sb1(A.aria.sb3(x8)), A.aria.sb2(A.aria.sb4(x9)), A.aria.sb3(A.aria.sb1(x10)), A.aria.sb4(A.aria.sb2(x11)), A.aria.sb1(A.aria.sb3(x12)), A.aria.sb2(A.aria.sb4(x13)), A.aria.sb3(A.aria.sb1(x14)), A.aria.sb4(A.aria.sb2(x15))} : A.LcAriaSt}
6188      %aria_sb13(x8) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, _, A.aria.sb2(A.aria.sb4(x9)), A.aria.sb3(A.aria.sb1(x10)), A.aria.sb4(A.aria.sb2(x11)), A.aria.sb1(A.aria.sb3(x12)), A.aria.sb2(A.aria.sb4(x13)), A.aria.sb3(A.aria.sb1(x14)), A.aria.sb4(A.aria.sb2(x15))} : A.LcAriaSt}
6189      %aria_sb24(x9) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, _, A.aria.sb3(A.aria.sb1(x10)), A.aria.sb4(A.aria.sb2(x11)), A.aria.sb1(A.aria.sb3(x12)), A.aria.sb2(A.aria.sb4(x13)), A.aria.sb3(A.aria.sb1(x14)), A.aria.sb4(A.aria.sb2(x15))} : A.LcAriaSt}
6190      %aria_sb31(x10) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, _, A.aria.sb4(A.aria.sb2(x11)), A.aria.sb1(A.aria.sb3(x12)), A.aria.sb2(A.aria.sb4(x13)), A.aria.sb3(A.aria.sb1(x14)), A.aria.sb4(A.aria.sb2(x15))} : A.LcAriaSt}
6191      %aria_sb42(x11) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, _, A.aria.sb1(A.aria.sb3(x12)), A.aria.sb2(A.aria.sb4(x13)), A.aria.sb3(A.aria.sb1(x14)), A.aria.sb4(A.aria.sb2(x15))} : A.LcAriaSt}
6192      %aria_sb13(x12) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, _, A.aria.sb2(A.aria.sb4(x13)), A.aria.sb3(A.aria.sb1(x14)), A.aria.sb4(A.aria.sb2(x15))} : A.LcAriaSt}
6193      %aria_sb24(x13) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, _, A.aria.sb3(A.aria.sb1(x14)), A.aria.sb4(A.aria.sb2(x15))} : A.LcAriaSt}
6194      %aria_sb31(x14) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, _, A.aria.sb4(A.aria.sb2(x15))} : A.LcAriaSt}
6195      %aria_sb42(x15) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, _} : A.LcAriaSt}
6196      {==}
6197
6198# a round key XORed twice
6199def aria_xor2(s: A.LcAriaSt, k: M.CmBlock) -> {s == A.aria.xor(A.aria.xor(s, k), k) : A.LcAriaSt}:
6200  match s k:
6201    case A.LcAriaSt{+x0, +x1, +x2, +x3, +x4, +x5, +x6, +x7, +x8, +x9, +x10, +x11, +x12, +x13, +x14, +x15} M.CmBlock{U32{+k0}, U32{+k1}, U32{+k2}, U32{+k3}}:
6202      %CoreL.word_xor_cancel(8n, x0, A.aria.byte0(k0)) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{_, Word.xor(8n, Word.xor(8n, x1, A.aria.byte1(k0)), A.aria.byte1(k0)), Word.xor(8n, Word.xor(8n, x2, A.aria.byte2(k0)), A.aria.byte2(k0)), Word.xor(8n, Word.xor(8n, x3, A.aria.byte3(k0)), A.aria.byte3(k0)), Word.xor(8n, Word.xor(8n, x4, A.aria.byte0(k1)), A.aria.byte0(k1)), Word.xor(8n, Word.xor(8n, x5, A.aria.byte1(k1)), A.aria.byte1(k1)), Word.xor(8n, Word.xor(8n, x6, A.aria.byte2(k1)), A.aria.byte2(k1)), Word.xor(8n, Word.xor(8n, x7, A.aria.byte3(k1)), A.aria.byte3(k1)), Word.xor(8n, Word.xor(8n, x8, A.aria.byte0(k2)), A.aria.byte0(k2)), Word.xor(8n, Word.xor(8n, x9, A.aria.byte1(k2)), A.aria.byte1(k2)), Word.xor(8n, Word.xor(8n, x10, A.aria.byte2(k2)), A.aria.byte2(k2)), Word.xor(8n, Word.xor(8n, x11, A.aria.byte3(k2)), A.aria.byte3(k2)), Word.xor(8n, Word.xor(8n, x12, A.aria.byte0(k3)), A.aria.byte0(k3)), Word.xor(8n, Word.xor(8n, x13, A.aria.byte1(k3)), A.aria.byte1(k3)), Word.xor(8n, Word.xor(8n, x14, A.aria.byte2(k3)), A.aria.byte2(k3)), Word.xor(8n, Word.xor(8n, x15, A.aria.byte3(k3)), A.aria.byte3(k3))} : A.LcAriaSt}
6203      %CoreL.word_xor_cancel(8n, x1, A.aria.byte1(k0)) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, _, Word.xor(8n, Word.xor(8n, x2, A.aria.byte2(k0)), A.aria.byte2(k0)), Word.xor(8n, Word.xor(8n, x3, A.aria.byte3(k0)), A.aria.byte3(k0)), Word.xor(8n, Word.xor(8n, x4, A.aria.byte0(k1)), A.aria.byte0(k1)), Word.xor(8n, Word.xor(8n, x5, A.aria.byte1(k1)), A.aria.byte1(k1)), Word.xor(8n, Word.xor(8n, x6, A.aria.byte2(k1)), A.aria.byte2(k1)), Word.xor(8n, Word.xor(8n, x7, A.aria.byte3(k1)), A.aria.byte3(k1)), Word.xor(8n, Word.xor(8n, x8, A.aria.byte0(k2)), A.aria.byte0(k2)), Word.xor(8n, Word.xor(8n, x9, A.aria.byte1(k2)), A.aria.byte1(k2)), Word.xor(8n, Word.xor(8n, x10, A.aria.byte2(k2)), A.aria.byte2(k2)), Word.xor(8n, Word.xor(8n, x11, A.aria.byte3(k2)), A.aria.byte3(k2)), Word.xor(8n, Word.xor(8n, x12, A.aria.byte0(k3)), A.aria.byte0(k3)), Word.xor(8n, Word.xor(8n, x13, A.aria.byte1(k3)), A.aria.byte1(k3)), Word.xor(8n, Word.xor(8n, x14, A.aria.byte2(k3)), A.aria.byte2(k3)), Word.xor(8n, Word.xor(8n, x15, A.aria.byte3(k3)), A.aria.byte3(k3))} : A.LcAriaSt}
6204      %CoreL.word_xor_cancel(8n, x2, A.aria.byte2(k0)) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, _, Word.xor(8n, Word.xor(8n, x3, A.aria.byte3(k0)), A.aria.byte3(k0)), Word.xor(8n, Word.xor(8n, x4, A.aria.byte0(k1)), A.aria.byte0(k1)), Word.xor(8n, Word.xor(8n, x5, A.aria.byte1(k1)), A.aria.byte1(k1)), Word.xor(8n, Word.xor(8n, x6, A.aria.byte2(k1)), A.aria.byte2(k1)), Word.xor(8n, Word.xor(8n, x7, A.aria.byte3(k1)), A.aria.byte3(k1)), Word.xor(8n, Word.xor(8n, x8, A.aria.byte0(k2)), A.aria.byte0(k2)), Word.xor(8n, Word.xor(8n, x9, A.aria.byte1(k2)), A.aria.byte1(k2)), Word.xor(8n, Word.xor(8n, x10, A.aria.byte2(k2)), A.aria.byte2(k2)), Word.xor(8n, Word.xor(8n, x11, A.aria.byte3(k2)), A.aria.byte3(k2)), Word.xor(8n, Word.xor(8n, x12, A.aria.byte0(k3)), A.aria.byte0(k3)), Word.xor(8n, Word.xor(8n, x13, A.aria.byte1(k3)), A.aria.byte1(k3)), Word.xor(8n, Word.xor(8n, x14, A.aria.byte2(k3)), A.aria.byte2(k3)), Word.xor(8n, Word.xor(8n, x15, A.aria.byte3(k3)), A.aria.byte3(k3))} : A.LcAriaSt}
6205      %CoreL.word_xor_cancel(8n, x3, A.aria.byte3(k0)) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, _, Word.xor(8n, Word.xor(8n, x4, A.aria.byte0(k1)), A.aria.byte0(k1)), Word.xor(8n, Word.xor(8n, x5, A.aria.byte1(k1)), A.aria.byte1(k1)), Word.xor(8n, Word.xor(8n, x6, A.aria.byte2(k1)), A.aria.byte2(k1)), Word.xor(8n, Word.xor(8n, x7, A.aria.byte3(k1)), A.aria.byte3(k1)), Word.xor(8n, Word.xor(8n, x8, A.aria.byte0(k2)), A.aria.byte0(k2)), Word.xor(8n, Word.xor(8n, x9, A.aria.byte1(k2)), A.aria.byte1(k2)), Word.xor(8n, Word.xor(8n, x10, A.aria.byte2(k2)), A.aria.byte2(k2)), Word.xor(8n, Word.xor(8n, x11, A.aria.byte3(k2)), A.aria.byte3(k2)), Word.xor(8n, Word.xor(8n, x12, A.aria.byte0(k3)), A.aria.byte0(k3)), Word.xor(8n, Word.xor(8n, x13, A.aria.byte1(k3)), A.aria.byte1(k3)), Word.xor(8n, Word.xor(8n, x14, A.aria.byte2(k3)), A.aria.byte2(k3)), Word.xor(8n, Word.xor(8n, x15, A.aria.byte3(k3)), A.aria.byte3(k3))} : A.LcAriaSt}
6206      %CoreL.word_xor_cancel(8n, x4, A.aria.byte0(k1)) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, _, Word.xor(8n, Word.xor(8n, x5, A.aria.byte1(k1)), A.aria.byte1(k1)), Word.xor(8n, Word.xor(8n, x6, A.aria.byte2(k1)), A.aria.byte2(k1)), Word.xor(8n, Word.xor(8n, x7, A.aria.byte3(k1)), A.aria.byte3(k1)), Word.xor(8n, Word.xor(8n, x8, A.aria.byte0(k2)), A.aria.byte0(k2)), Word.xor(8n, Word.xor(8n, x9, A.aria.byte1(k2)), A.aria.byte1(k2)), Word.xor(8n, Word.xor(8n, x10, A.aria.byte2(k2)), A.aria.byte2(k2)), Word.xor(8n, Word.xor(8n, x11, A.aria.byte3(k2)), A.aria.byte3(k2)), Word.xor(8n, Word.xor(8n, x12, A.aria.byte0(k3)), A.aria.byte0(k3)), Word.xor(8n, Word.xor(8n, x13, A.aria.byte1(k3)), A.aria.byte1(k3)), Word.xor(8n, Word.xor(8n, x14, A.aria.byte2(k3)), A.aria.byte2(k3)), Word.xor(8n, Word.xor(8n, x15, A.aria.byte3(k3)), A.aria.byte3(k3))} : A.LcAriaSt}
6207      %CoreL.word_xor_cancel(8n, x5, A.aria.byte1(k1)) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, x4, _, Word.xor(8n, Word.xor(8n, x6, A.aria.byte2(k1)), A.aria.byte2(k1)), Word.xor(8n, Word.xor(8n, x7, A.aria.byte3(k1)), A.aria.byte3(k1)), Word.xor(8n, Word.xor(8n, x8, A.aria.byte0(k2)), A.aria.byte0(k2)), Word.xor(8n, Word.xor(8n, x9, A.aria.byte1(k2)), A.aria.byte1(k2)), Word.xor(8n, Word.xor(8n, x10, A.aria.byte2(k2)), A.aria.byte2(k2)), Word.xor(8n, Word.xor(8n, x11, A.aria.byte3(k2)), A.aria.byte3(k2)), Word.xor(8n, Word.xor(8n, x12, A.aria.byte0(k3)), A.aria.byte0(k3)), Word.xor(8n, Word.xor(8n, x13, A.aria.byte1(k3)), A.aria.byte1(k3)), Word.xor(8n, Word.xor(8n, x14, A.aria.byte2(k3)), A.aria.byte2(k3)), Word.xor(8n, Word.xor(8n, x15, A.aria.byte3(k3)), A.aria.byte3(k3))} : A.LcAriaSt}
6208      %CoreL.word_xor_cancel(8n, x6, A.aria.byte2(k1)) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, x4, x5, _, Word.xor(8n, Word.xor(8n, x7, A.aria.byte3(k1)), A.aria.byte3(k1)), Word.xor(8n, Word.xor(8n, x8, A.aria.byte0(k2)), A.aria.byte0(k2)), Word.xor(8n, Word.xor(8n, x9, A.aria.byte1(k2)), A.aria.byte1(k2)), Word.xor(8n, Word.xor(8n, x10, A.aria.byte2(k2)), A.aria.byte2(k2)), Word.xor(8n, Word.xor(8n, x11, A.aria.byte3(k2)), A.aria.byte3(k2)), Word.xor(8n, Word.xor(8n, x12, A.aria.byte0(k3)), A.aria.byte0(k3)), Word.xor(8n, Word.xor(8n, x13, A.aria.byte1(k3)), A.aria.byte1(k3)), Word.xor(8n, Word.xor(8n, x14, A.aria.byte2(k3)), A.aria.byte2(k3)), Word.xor(8n, Word.xor(8n, x15, A.aria.byte3(k3)), A.aria.byte3(k3))} : A.LcAriaSt}
6209      %CoreL.word_xor_cancel(8n, x7, A.aria.byte3(k1)) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, _, Word.xor(8n, Word.xor(8n, x8, A.aria.byte0(k2)), A.aria.byte0(k2)), Word.xor(8n, Word.xor(8n, x9, A.aria.byte1(k2)), A.aria.byte1(k2)), Word.xor(8n, Word.xor(8n, x10, A.aria.byte2(k2)), A.aria.byte2(k2)), Word.xor(8n, Word.xor(8n, x11, A.aria.byte3(k2)), A.aria.byte3(k2)), Word.xor(8n, Word.xor(8n, x12, A.aria.byte0(k3)), A.aria.byte0(k3)), Word.xor(8n, Word.xor(8n, x13, A.aria.byte1(k3)), A.aria.byte1(k3)), Word.xor(8n, Word.xor(8n, x14, A.aria.byte2(k3)), A.aria.byte2(k3)), Word.xor(8n, Word.xor(8n, x15, A.aria.byte3(k3)), A.aria.byte3(k3))} : A.LcAriaSt}
6210      %CoreL.word_xor_cancel(8n, x8, A.aria.byte0(k2)) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, _, Word.xor(8n, Word.xor(8n, x9, A.aria.byte1(k2)), A.aria.byte1(k2)), Word.xor(8n, Word.xor(8n, x10, A.aria.byte2(k2)), A.aria.byte2(k2)), Word.xor(8n, Word.xor(8n, x11, A.aria.byte3(k2)), A.aria.byte3(k2)), Word.xor(8n, Word.xor(8n, x12, A.aria.byte0(k3)), A.aria.byte0(k3)), Word.xor(8n, Word.xor(8n, x13, A.aria.byte1(k3)), A.aria.byte1(k3)), Word.xor(8n, Word.xor(8n, x14, A.aria.byte2(k3)), A.aria.byte2(k3)), Word.xor(8n, Word.xor(8n, x15, A.aria.byte3(k3)), A.aria.byte3(k3))} : A.LcAriaSt}
6211      %CoreL.word_xor_cancel(8n, x9, A.aria.byte1(k2)) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, _, Word.xor(8n, Word.xor(8n, x10, A.aria.byte2(k2)), A.aria.byte2(k2)), Word.xor(8n, Word.xor(8n, x11, A.aria.byte3(k2)), A.aria.byte3(k2)), Word.xor(8n, Word.xor(8n, x12, A.aria.byte0(k3)), A.aria.byte0(k3)), Word.xor(8n, Word.xor(8n, x13, A.aria.byte1(k3)), A.aria.byte1(k3)), Word.xor(8n, Word.xor(8n, x14, A.aria.byte2(k3)), A.aria.byte2(k3)), Word.xor(8n, Word.xor(8n, x15, A.aria.byte3(k3)), A.aria.byte3(k3))} : A.LcAriaSt}
6212      %CoreL.word_xor_cancel(8n, x10, A.aria.byte2(k2)) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, _, Word.xor(8n, Word.xor(8n, x11, A.aria.byte3(k2)), A.aria.byte3(k2)), Word.xor(8n, Word.xor(8n, x12, A.aria.byte0(k3)), A.aria.byte0(k3)), Word.xor(8n, Word.xor(8n, x13, A.aria.byte1(k3)), A.aria.byte1(k3)), Word.xor(8n, Word.xor(8n, x14, A.aria.byte2(k3)), A.aria.byte2(k3)), Word.xor(8n, Word.xor(8n, x15, A.aria.byte3(k3)), A.aria.byte3(k3))} : A.LcAriaSt}
6213      %CoreL.word_xor_cancel(8n, x11, A.aria.byte3(k2)) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, _, Word.xor(8n, Word.xor(8n, x12, A.aria.byte0(k3)), A.aria.byte0(k3)), Word.xor(8n, Word.xor(8n, x13, A.aria.byte1(k3)), A.aria.byte1(k3)), Word.xor(8n, Word.xor(8n, x14, A.aria.byte2(k3)), A.aria.byte2(k3)), Word.xor(8n, Word.xor(8n, x15, A.aria.byte3(k3)), A.aria.byte3(k3))} : A.LcAriaSt}
6214      %CoreL.word_xor_cancel(8n, x12, A.aria.byte0(k3)) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, _, Word.xor(8n, Word.xor(8n, x13, A.aria.byte1(k3)), A.aria.byte1(k3)), Word.xor(8n, Word.xor(8n, x14, A.aria.byte2(k3)), A.aria.byte2(k3)), Word.xor(8n, Word.xor(8n, x15, A.aria.byte3(k3)), A.aria.byte3(k3))} : A.LcAriaSt}
6215      %CoreL.word_xor_cancel(8n, x13, A.aria.byte1(k3)) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, _, Word.xor(8n, Word.xor(8n, x14, A.aria.byte2(k3)), A.aria.byte2(k3)), Word.xor(8n, Word.xor(8n, x15, A.aria.byte3(k3)), A.aria.byte3(k3))} : A.LcAriaSt}
6216      %CoreL.word_xor_cancel(8n, x14, A.aria.byte2(k3)) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, _, Word.xor(8n, Word.xor(8n, x15, A.aria.byte3(k3)), A.aria.byte3(k3))} : A.LcAriaSt}
6217      %CoreL.word_xor_cancel(8n, x15, A.aria.byte3(k3)) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, _} : A.LcAriaSt}
6218      {==}
6219
6220# each elementary step of the diffusion layer is undone by itself
6221def aria_e0(s: A.LcAriaSt) -> {s == A.aria.e0(A.aria.e0(s)) : A.LcAriaSt}:
6222  match s:
6223    case A.LcAriaSt{+x0, +x1, +x2, +x3, +x4, +x5, +x6, +x7, +x8, +x9, +x10, +x11, +x12, +x13, +x14, +x15}:
6224      %CoreL.word_xor_cancel(8n, x10, x15) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, Word.xor(8n, Word.xor(8n, x1, x15), x15), Word.xor(8n, Word.xor(8n, x2, x15), x15), x3, Word.xor(8n, Word.xor(8n, x4, x15), x15), Word.xor(8n, Word.xor(8n, x5, x15), x15), x6, x7, Word.xor(8n, Word.xor(8n, x8, x15), x15), x9, _, x11, x12, x13, x14, x15} : A.LcAriaSt}
6225      %CoreL.word_xor_cancel(8n, x8, x15) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, Word.xor(8n, Word.xor(8n, x1, x15), x15), Word.xor(8n, Word.xor(8n, x2, x15), x15), x3, Word.xor(8n, Word.xor(8n, x4, x15), x15), Word.xor(8n, Word.xor(8n, x5, x15), x15), x6, x7, _, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6226      %CoreL.word_xor_cancel(8n, x5, x15) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, Word.xor(8n, Word.xor(8n, x1, x15), x15), Word.xor(8n, Word.xor(8n, x2, x15), x15), x3, Word.xor(8n, Word.xor(8n, x4, x15), x15), _, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6227      %CoreL.word_xor_cancel(8n, x4, x15) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, Word.xor(8n, Word.xor(8n, x1, x15), x15), Word.xor(8n, Word.xor(8n, x2, x15), x15), x3, _, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6228      %CoreL.word_xor_cancel(8n, x2, x15) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, Word.xor(8n, Word.xor(8n, x1, x15), x15), _, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6229      %CoreL.word_xor_cancel(8n, x1, x15) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, _, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6230      {==}
6231
6232def aria_e1(s: A.LcAriaSt) -> {s == A.aria.e1(A.aria.e1(s)) : A.LcAriaSt}:
6233  match s:
6234    case A.LcAriaSt{+x0, +x1, +x2, +x3, +x4, +x5, +x6, +x7, +x8, +x9, +x10, +x11, +x12, +x13, +x14, +x15}:
6235      %CoreL.word_xor_cancel(8n, x11, x14) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x14), x14), x1, x2, Word.xor(8n, Word.xor(8n, x3, x14), x14), Word.xor(8n, Word.xor(8n, x4, x14), x14), Word.xor(8n, Word.xor(8n, x5, x14), x14), x6, x7, x8, Word.xor(8n, Word.xor(8n, x9, x14), x14), x10, _, x12, x13, x14, x15} : A.LcAriaSt}
6236      %CoreL.word_xor_cancel(8n, x9, x14) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x14), x14), x1, x2, Word.xor(8n, Word.xor(8n, x3, x14), x14), Word.xor(8n, Word.xor(8n, x4, x14), x14), Word.xor(8n, Word.xor(8n, x5, x14), x14), x6, x7, x8, _, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6237      %CoreL.word_xor_cancel(8n, x5, x14) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x14), x14), x1, x2, Word.xor(8n, Word.xor(8n, x3, x14), x14), Word.xor(8n, Word.xor(8n, x4, x14), x14), _, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6238      %CoreL.word_xor_cancel(8n, x4, x14) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x14), x14), x1, x2, Word.xor(8n, Word.xor(8n, x3, x14), x14), _, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6239      %CoreL.word_xor_cancel(8n, x3, x14) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x14), x14), x1, x2, _, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6240      %CoreL.word_xor_cancel(8n, x0, x14) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{_, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6241      {==}
6242
6243def aria_e2(s: A.LcAriaSt) -> {s == A.aria.e2(A.aria.e2(s)) : A.LcAriaSt}:
6244  match s:
6245    case A.LcAriaSt{+x0, +x1, +x2, +x3, +x4, +x5, +x6, +x7, +x8, +x9, +x10, +x11, +x12, +x13, +x14, +x15}:
6246      %CoreL.word_xor_cancel(8n, x10, x13) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x13), x13), x1, x2, Word.xor(8n, Word.xor(8n, x3, x13), x13), x4, x5, Word.xor(8n, Word.xor(8n, x6, x13), x13), Word.xor(8n, Word.xor(8n, x7, x13), x13), Word.xor(8n, Word.xor(8n, x8, x13), x13), x9, _, x11, x12, x13, x14, x15} : A.LcAriaSt}
6247      %CoreL.word_xor_cancel(8n, x8, x13) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x13), x13), x1, x2, Word.xor(8n, Word.xor(8n, x3, x13), x13), x4, x5, Word.xor(8n, Word.xor(8n, x6, x13), x13), Word.xor(8n, Word.xor(8n, x7, x13), x13), _, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6248      %CoreL.word_xor_cancel(8n, x7, x13) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x13), x13), x1, x2, Word.xor(8n, Word.xor(8n, x3, x13), x13), x4, x5, Word.xor(8n, Word.xor(8n, x6, x13), x13), _, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6249      %CoreL.word_xor_cancel(8n, x6, x13) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x13), x13), x1, x2, Word.xor(8n, Word.xor(8n, x3, x13), x13), x4, x5, _, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6250      %CoreL.word_xor_cancel(8n, x3, x13) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x13), x13), x1, x2, _, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6251      %CoreL.word_xor_cancel(8n, x0, x13) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{_, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6252      {==}
6253
6254def aria_e3(s: A.LcAriaSt) -> {s == A.aria.e3(A.aria.e3(s)) : A.LcAriaSt}:
6255  match s:
6256    case A.LcAriaSt{+x0, +x1, +x2, +x3, +x4, +x5, +x6, +x7, +x8, +x9, +x10, +x11, +x12, +x13, +x14, +x15}:
6257      %CoreL.word_xor_cancel(8n, x11, x12) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, Word.xor(8n, Word.xor(8n, x1, x12), x12), Word.xor(8n, Word.xor(8n, x2, x12), x12), x3, x4, x5, Word.xor(8n, Word.xor(8n, x6, x12), x12), Word.xor(8n, Word.xor(8n, x7, x12), x12), x8, Word.xor(8n, Word.xor(8n, x9, x12), x12), x10, _, x12, x13, x14, x15} : A.LcAriaSt}
6258      %CoreL.word_xor_cancel(8n, x9, x12) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, Word.xor(8n, Word.xor(8n, x1, x12), x12), Word.xor(8n, Word.xor(8n, x2, x12), x12), x3, x4, x5, Word.xor(8n, Word.xor(8n, x6, x12), x12), Word.xor(8n, Word.xor(8n, x7, x12), x12), x8, _, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6259      %CoreL.word_xor_cancel(8n, x7, x12) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, Word.xor(8n, Word.xor(8n, x1, x12), x12), Word.xor(8n, Word.xor(8n, x2, x12), x12), x3, x4, x5, Word.xor(8n, Word.xor(8n, x6, x12), x12), _, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6260      %CoreL.word_xor_cancel(8n, x6, x12) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, Word.xor(8n, Word.xor(8n, x1, x12), x12), Word.xor(8n, Word.xor(8n, x2, x12), x12), x3, x4, x5, _, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6261      %CoreL.word_xor_cancel(8n, x2, x12) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, Word.xor(8n, Word.xor(8n, x1, x12), x12), _, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6262      %CoreL.word_xor_cancel(8n, x1, x12) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, _, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6263      {==}
6264
6265def aria_e4(s: A.LcAriaSt) -> {s == A.aria.e4(A.aria.e4(s)) : A.LcAriaSt}:
6266  match s:
6267    case A.LcAriaSt{+x0, +x1, +x2, +x3, +x4, +x5, +x6, +x7, +x8, +x9, +x10, +x11, +x12, +x13, +x14, +x15}:
6268      %CoreL.word_xor_cancel(8n, x9, x11) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x11), x11), Word.xor(8n, Word.xor(8n, x1, x11), x11), Word.xor(8n, Word.xor(8n, x2, x11), x11), Word.xor(8n, Word.xor(8n, x3, x11), x11), Word.xor(8n, Word.xor(8n, x4, x11), x11), Word.xor(8n, Word.xor(8n, x5, x11), x11), Word.xor(8n, Word.xor(8n, x6, x11), x11), Word.xor(8n, Word.xor(8n, x7, x11), x11), x8, _, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6269      %CoreL.word_xor_cancel(8n, x7, x11) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x11), x11), Word.xor(8n, Word.xor(8n, x1, x11), x11), Word.xor(8n, Word.xor(8n, x2, x11), x11), Word.xor(8n, Word.xor(8n, x3, x11), x11), Word.xor(8n, Word.xor(8n, x4, x11), x11), Word.xor(8n, Word.xor(8n, x5, x11), x11), Word.xor(8n, Word.xor(8n, x6, x11), x11), _, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6270      %CoreL.word_xor_cancel(8n, x6, x11) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x11), x11), Word.xor(8n, Word.xor(8n, x1, x11), x11), Word.xor(8n, Word.xor(8n, x2, x11), x11), Word.xor(8n, Word.xor(8n, x3, x11), x11), Word.xor(8n, Word.xor(8n, x4, x11), x11), Word.xor(8n, Word.xor(8n, x5, x11), x11), _, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6271      %CoreL.word_xor_cancel(8n, x5, x11) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x11), x11), Word.xor(8n, Word.xor(8n, x1, x11), x11), Word.xor(8n, Word.xor(8n, x2, x11), x11), Word.xor(8n, Word.xor(8n, x3, x11), x11), Word.xor(8n, Word.xor(8n, x4, x11), x11), _, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6272      %CoreL.word_xor_cancel(8n, x4, x11) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x11), x11), Word.xor(8n, Word.xor(8n, x1, x11), x11), Word.xor(8n, Word.xor(8n, x2, x11), x11), Word.xor(8n, Word.xor(8n, x3, x11), x11), _, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6273      %CoreL.word_xor_cancel(8n, x3, x11) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x11), x11), Word.xor(8n, Word.xor(8n, x1, x11), x11), Word.xor(8n, Word.xor(8n, x2, x11), x11), _, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6274      %CoreL.word_xor_cancel(8n, x2, x11) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x11), x11), Word.xor(8n, Word.xor(8n, x1, x11), x11), _, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6275      %CoreL.word_xor_cancel(8n, x1, x11) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x11), x11), _, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6276      %CoreL.word_xor_cancel(8n, x0, x11) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{_, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6277      {==}
6278
6279def aria_e5(s: A.LcAriaSt) -> {s == A.aria.e5(A.aria.e5(s)) : A.LcAriaSt}:
6280  match s:
6281    case A.LcAriaSt{+x0, +x1, +x2, +x3, +x4, +x5, +x6, +x7, +x8, +x9, +x10, +x11, +x12, +x13, +x14, +x15}:
6282      %CoreL.word_xor_cancel(8n, x8, x10) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x10), x10), Word.xor(8n, Word.xor(8n, x1, x10), x10), Word.xor(8n, Word.xor(8n, x2, x10), x10), Word.xor(8n, Word.xor(8n, x3, x10), x10), Word.xor(8n, Word.xor(8n, x4, x10), x10), Word.xor(8n, Word.xor(8n, x5, x10), x10), Word.xor(8n, Word.xor(8n, x6, x10), x10), Word.xor(8n, Word.xor(8n, x7, x10), x10), _, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6283      %CoreL.word_xor_cancel(8n, x7, x10) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x10), x10), Word.xor(8n, Word.xor(8n, x1, x10), x10), Word.xor(8n, Word.xor(8n, x2, x10), x10), Word.xor(8n, Word.xor(8n, x3, x10), x10), Word.xor(8n, Word.xor(8n, x4, x10), x10), Word.xor(8n, Word.xor(8n, x5, x10), x10), Word.xor(8n, Word.xor(8n, x6, x10), x10), _, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6284      %CoreL.word_xor_cancel(8n, x6, x10) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x10), x10), Word.xor(8n, Word.xor(8n, x1, x10), x10), Word.xor(8n, Word.xor(8n, x2, x10), x10), Word.xor(8n, Word.xor(8n, x3, x10), x10), Word.xor(8n, Word.xor(8n, x4, x10), x10), Word.xor(8n, Word.xor(8n, x5, x10), x10), _, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6285      %CoreL.word_xor_cancel(8n, x5, x10) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x10), x10), Word.xor(8n, Word.xor(8n, x1, x10), x10), Word.xor(8n, Word.xor(8n, x2, x10), x10), Word.xor(8n, Word.xor(8n, x3, x10), x10), Word.xor(8n, Word.xor(8n, x4, x10), x10), _, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6286      %CoreL.word_xor_cancel(8n, x4, x10) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x10), x10), Word.xor(8n, Word.xor(8n, x1, x10), x10), Word.xor(8n, Word.xor(8n, x2, x10), x10), Word.xor(8n, Word.xor(8n, x3, x10), x10), _, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6287      %CoreL.word_xor_cancel(8n, x3, x10) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x10), x10), Word.xor(8n, Word.xor(8n, x1, x10), x10), Word.xor(8n, Word.xor(8n, x2, x10), x10), _, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6288      %CoreL.word_xor_cancel(8n, x2, x10) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x10), x10), Word.xor(8n, Word.xor(8n, x1, x10), x10), _, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6289      %CoreL.word_xor_cancel(8n, x1, x10) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x10), x10), _, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6290      %CoreL.word_xor_cancel(8n, x0, x10) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{_, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6291      {==}
6292
6293def aria_e6(s: A.LcAriaSt) -> {s == A.aria.e6(A.aria.e6(s)) : A.LcAriaSt}:
6294  match s:
6295    case A.LcAriaSt{+x0, +x1, +x2, +x3, +x4, +x5, +x6, +x7, +x8, +x9, +x10, +x11, +x12, +x13, +x14, +x15}:
6296      %CoreL.word_xor_cancel(8n, x14, x9) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x9), x9), Word.xor(8n, Word.xor(8n, x1, x9), x9), x2, x3, x4, Word.xor(8n, Word.xor(8n, x5, x9), x9), Word.xor(8n, Word.xor(8n, x6, x9), x9), x7, x8, x9, x10, Word.xor(8n, Word.xor(8n, x11, x9), x9), Word.xor(8n, Word.xor(8n, x12, x9), x9), x13, _, x15} : A.LcAriaSt}
6297      %CoreL.word_xor_cancel(8n, x12, x9) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x9), x9), Word.xor(8n, Word.xor(8n, x1, x9), x9), x2, x3, x4, Word.xor(8n, Word.xor(8n, x5, x9), x9), Word.xor(8n, Word.xor(8n, x6, x9), x9), x7, x8, x9, x10, Word.xor(8n, Word.xor(8n, x11, x9), x9), _, x13, x14, x15} : A.LcAriaSt}
6298      %CoreL.word_xor_cancel(8n, x11, x9) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x9), x9), Word.xor(8n, Word.xor(8n, x1, x9), x9), x2, x3, x4, Word.xor(8n, Word.xor(8n, x5, x9), x9), Word.xor(8n, Word.xor(8n, x6, x9), x9), x7, x8, x9, x10, _, x12, x13, x14, x15} : A.LcAriaSt}
6299      %CoreL.word_xor_cancel(8n, x6, x9) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x9), x9), Word.xor(8n, Word.xor(8n, x1, x9), x9), x2, x3, x4, Word.xor(8n, Word.xor(8n, x5, x9), x9), _, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6300      %CoreL.word_xor_cancel(8n, x5, x9) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x9), x9), Word.xor(8n, Word.xor(8n, x1, x9), x9), x2, x3, x4, _, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6301      %CoreL.word_xor_cancel(8n, x1, x9) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x9), x9), _, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6302      %CoreL.word_xor_cancel(8n, x0, x9) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{_, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6303      {==}
6304
6305def aria_e7(s: A.LcAriaSt) -> {s == A.aria.e7(A.aria.e7(s)) : A.LcAriaSt}:
6306  match s:
6307    case A.LcAriaSt{+x0, +x1, +x2, +x3, +x4, +x5, +x6, +x7, +x8, +x9, +x10, +x11, +x12, +x13, +x14, +x15}:
6308      %CoreL.word_xor_cancel(8n, x9, x11) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, _, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6309      {==}
6310
6311def aria_e8(s: A.LcAriaSt) -> {s == A.aria.e8(A.aria.e8(s)) : A.LcAriaSt}:
6312  match s:
6313    case A.LcAriaSt{+x0, +x1, +x2, +x3, +x4, +x5, +x6, +x7, +x8, +x9, +x10, +x11, +x12, +x13, +x14, +x15}:
6314      %CoreL.word_xor_cancel(8n, x15, x8) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x8), x8), Word.xor(8n, Word.xor(8n, x1, x8), x8), x2, x3, Word.xor(8n, Word.xor(8n, x4, x8), x8), x5, x6, Word.xor(8n, Word.xor(8n, x7, x8), x8), x8, x9, Word.xor(8n, Word.xor(8n, x10, x8), x8), x11, x12, Word.xor(8n, Word.xor(8n, x13, x8), x8), x14, _} : A.LcAriaSt}
6315      %CoreL.word_xor_cancel(8n, x13, x8) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x8), x8), Word.xor(8n, Word.xor(8n, x1, x8), x8), x2, x3, Word.xor(8n, Word.xor(8n, x4, x8), x8), x5, x6, Word.xor(8n, Word.xor(8n, x7, x8), x8), x8, x9, Word.xor(8n, Word.xor(8n, x10, x8), x8), x11, x12, _, x14, x15} : A.LcAriaSt}
6316      %CoreL.word_xor_cancel(8n, x10, x8) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x8), x8), Word.xor(8n, Word.xor(8n, x1, x8), x8), x2, x3, Word.xor(8n, Word.xor(8n, x4, x8), x8), x5, x6, Word.xor(8n, Word.xor(8n, x7, x8), x8), x8, x9, _, x11, x12, x13, x14, x15} : A.LcAriaSt}
6317      %CoreL.word_xor_cancel(8n, x7, x8) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x8), x8), Word.xor(8n, Word.xor(8n, x1, x8), x8), x2, x3, Word.xor(8n, Word.xor(8n, x4, x8), x8), x5, x6, _, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6318      %CoreL.word_xor_cancel(8n, x4, x8) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x8), x8), Word.xor(8n, Word.xor(8n, x1, x8), x8), x2, x3, _, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6319      %CoreL.word_xor_cancel(8n, x1, x8) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x8), x8), _, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6320      %CoreL.word_xor_cancel(8n, x0, x8) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{_, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6321      {==}
6322
6323def aria_e9(s: A.LcAriaSt) -> {s == A.aria.e9(A.aria.e9(s)) : A.LcAriaSt}:
6324  match s:
6325    case A.LcAriaSt{+x0, +x1, +x2, +x3, +x4, +x5, +x6, +x7, +x8, +x9, +x10, +x11, +x12, +x13, +x14, +x15}:
6326      %CoreL.word_xor_cancel(8n, x8, x10) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, _, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6327      {==}
6328
6329def aria_e10(s: A.LcAriaSt) -> {s == A.aria.e10(A.aria.e10(s)) : A.LcAriaSt}:
6330  match s:
6331    case A.LcAriaSt{+x0, +x1, +x2, +x3, +x4, +x5, +x6, +x7, +x8, +x9, +x10, +x11, +x12, +x13, +x14, +x15}:
6332      %CoreL.word_xor_cancel(8n, x11, x7) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x7), x7), Word.xor(8n, Word.xor(8n, x1, x7), x7), Word.xor(8n, Word.xor(8n, x2, x7), x7), Word.xor(8n, Word.xor(8n, x3, x7), x7), x4, x5, Word.xor(8n, Word.xor(8n, x6, x7), x7), x7, Word.xor(8n, Word.xor(8n, x8, x7), x7), Word.xor(8n, Word.xor(8n, x9, x7), x7), Word.xor(8n, Word.xor(8n, x10, x7), x7), _, x12, x13, x14, x15} : A.LcAriaSt}
6333      %CoreL.word_xor_cancel(8n, x10, x7) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x7), x7), Word.xor(8n, Word.xor(8n, x1, x7), x7), Word.xor(8n, Word.xor(8n, x2, x7), x7), Word.xor(8n, Word.xor(8n, x3, x7), x7), x4, x5, Word.xor(8n, Word.xor(8n, x6, x7), x7), x7, Word.xor(8n, Word.xor(8n, x8, x7), x7), Word.xor(8n, Word.xor(8n, x9, x7), x7), _, x11, x12, x13, x14, x15} : A.LcAriaSt}
6334      %CoreL.word_xor_cancel(8n, x9, x7) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x7), x7), Word.xor(8n, Word.xor(8n, x1, x7), x7), Word.xor(8n, Word.xor(8n, x2, x7), x7), Word.xor(8n, Word.xor(8n, x3, x7), x7), x4, x5, Word.xor(8n, Word.xor(8n, x6, x7), x7), x7, Word.xor(8n, Word.xor(8n, x8, x7), x7), _, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6335      %CoreL.word_xor_cancel(8n, x8, x7) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x7), x7), Word.xor(8n, Word.xor(8n, x1, x7), x7), Word.xor(8n, Word.xor(8n, x2, x7), x7), Word.xor(8n, Word.xor(8n, x3, x7), x7), x4, x5, Word.xor(8n, Word.xor(8n, x6, x7), x7), x7, _, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6336      %CoreL.word_xor_cancel(8n, x6, x7) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x7), x7), Word.xor(8n, Word.xor(8n, x1, x7), x7), Word.xor(8n, Word.xor(8n, x2, x7), x7), Word.xor(8n, Word.xor(8n, x3, x7), x7), x4, x5, _, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6337      %CoreL.word_xor_cancel(8n, x3, x7) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x7), x7), Word.xor(8n, Word.xor(8n, x1, x7), x7), Word.xor(8n, Word.xor(8n, x2, x7), x7), _, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6338      %CoreL.word_xor_cancel(8n, x2, x7) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x7), x7), Word.xor(8n, Word.xor(8n, x1, x7), x7), _, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6339      %CoreL.word_xor_cancel(8n, x1, x7) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x7), x7), _, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6340      %CoreL.word_xor_cancel(8n, x0, x7) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{_, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6341      {==}
6342
6343def aria_e11(s: A.LcAriaSt) -> {s == A.aria.e11(A.aria.e11(s)) : A.LcAriaSt}:
6344  match s:
6345    case A.LcAriaSt{+x0, +x1, +x2, +x3, +x4, +x5, +x6, +x7, +x8, +x9, +x10, +x11, +x12, +x13, +x14, +x15}:
6346      %CoreL.word_xor_cancel(8n, x15, x6) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, Word.xor(8n, Word.xor(8n, x1, x6), x6), x2, Word.xor(8n, Word.xor(8n, x3, x6), x6), x4, x5, x6, Word.xor(8n, Word.xor(8n, x7, x6), x6), Word.xor(8n, Word.xor(8n, x8, x6), x6), x9, x10, Word.xor(8n, Word.xor(8n, x11, x6), x6), x12, x13, Word.xor(8n, Word.xor(8n, x14, x6), x6), _} : A.LcAriaSt}
6347      %CoreL.word_xor_cancel(8n, x14, x6) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, Word.xor(8n, Word.xor(8n, x1, x6), x6), x2, Word.xor(8n, Word.xor(8n, x3, x6), x6), x4, x5, x6, Word.xor(8n, Word.xor(8n, x7, x6), x6), Word.xor(8n, Word.xor(8n, x8, x6), x6), x9, x10, Word.xor(8n, Word.xor(8n, x11, x6), x6), x12, x13, _, x15} : A.LcAriaSt}
6348      %CoreL.word_xor_cancel(8n, x11, x6) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, Word.xor(8n, Word.xor(8n, x1, x6), x6), x2, Word.xor(8n, Word.xor(8n, x3, x6), x6), x4, x5, x6, Word.xor(8n, Word.xor(8n, x7, x6), x6), Word.xor(8n, Word.xor(8n, x8, x6), x6), x9, x10, _, x12, x13, x14, x15} : A.LcAriaSt}
6349      %CoreL.word_xor_cancel(8n, x8, x6) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, Word.xor(8n, Word.xor(8n, x1, x6), x6), x2, Word.xor(8n, Word.xor(8n, x3, x6), x6), x4, x5, x6, Word.xor(8n, Word.xor(8n, x7, x6), x6), _, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6350      %CoreL.word_xor_cancel(8n, x7, x6) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, Word.xor(8n, Word.xor(8n, x1, x6), x6), x2, Word.xor(8n, Word.xor(8n, x3, x6), x6), x4, x5, x6, _, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6351      %CoreL.word_xor_cancel(8n, x3, x6) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, Word.xor(8n, Word.xor(8n, x1, x6), x6), x2, _, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6352      %CoreL.word_xor_cancel(8n, x1, x6) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, _, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6353      {==}
6354
6355def aria_e12(s: A.LcAriaSt) -> {s == A.aria.e12(A.aria.e12(s)) : A.LcAriaSt}:
6356  match s:
6357    case A.LcAriaSt{+x0, +x1, +x2, +x3, +x4, +x5, +x6, +x7, +x8, +x9, +x10, +x11, +x12, +x13, +x14, +x15}:
6358      %CoreL.word_xor_cancel(8n, x6, x7) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, x4, x5, _, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6359      {==}
6360
6361def aria_e13(s: A.LcAriaSt) -> {s == A.aria.e13(A.aria.e13(s)) : A.LcAriaSt}:
6362  match s:
6363    case A.LcAriaSt{+x0, +x1, +x2, +x3, +x4, +x5, +x6, +x7, +x8, +x9, +x10, +x11, +x12, +x13, +x14, +x15}:
6364      %CoreL.word_xor_cancel(8n, x11, x5) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x5), x5), Word.xor(8n, Word.xor(8n, x1, x5), x5), Word.xor(8n, Word.xor(8n, x2, x5), x5), Word.xor(8n, Word.xor(8n, x3, x5), x5), Word.xor(8n, Word.xor(8n, x4, x5), x5), x5, x6, x7, Word.xor(8n, Word.xor(8n, x8, x5), x5), Word.xor(8n, Word.xor(8n, x9, x5), x5), Word.xor(8n, Word.xor(8n, x10, x5), x5), _, x12, x13, x14, x15} : A.LcAriaSt}
6365      %CoreL.word_xor_cancel(8n, x10, x5) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x5), x5), Word.xor(8n, Word.xor(8n, x1, x5), x5), Word.xor(8n, Word.xor(8n, x2, x5), x5), Word.xor(8n, Word.xor(8n, x3, x5), x5), Word.xor(8n, Word.xor(8n, x4, x5), x5), x5, x6, x7, Word.xor(8n, Word.xor(8n, x8, x5), x5), Word.xor(8n, Word.xor(8n, x9, x5), x5), _, x11, x12, x13, x14, x15} : A.LcAriaSt}
6366      %CoreL.word_xor_cancel(8n, x9, x5) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x5), x5), Word.xor(8n, Word.xor(8n, x1, x5), x5), Word.xor(8n, Word.xor(8n, x2, x5), x5), Word.xor(8n, Word.xor(8n, x3, x5), x5), Word.xor(8n, Word.xor(8n, x4, x5), x5), x5, x6, x7, Word.xor(8n, Word.xor(8n, x8, x5), x5), _, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6367      %CoreL.word_xor_cancel(8n, x8, x5) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x5), x5), Word.xor(8n, Word.xor(8n, x1, x5), x5), Word.xor(8n, Word.xor(8n, x2, x5), x5), Word.xor(8n, Word.xor(8n, x3, x5), x5), Word.xor(8n, Word.xor(8n, x4, x5), x5), x5, x6, x7, _, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6368      %CoreL.word_xor_cancel(8n, x4, x5) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x5), x5), Word.xor(8n, Word.xor(8n, x1, x5), x5), Word.xor(8n, Word.xor(8n, x2, x5), x5), Word.xor(8n, Word.xor(8n, x3, x5), x5), _, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6369      %CoreL.word_xor_cancel(8n, x3, x5) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x5), x5), Word.xor(8n, Word.xor(8n, x1, x5), x5), Word.xor(8n, Word.xor(8n, x2, x5), x5), _, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6370      %CoreL.word_xor_cancel(8n, x2, x5) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x5), x5), Word.xor(8n, Word.xor(8n, x1, x5), x5), _, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6371      %CoreL.word_xor_cancel(8n, x1, x5) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x5), x5), _, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6372      %CoreL.word_xor_cancel(8n, x0, x5) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{_, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6373      {==}
6374
6375def aria_e14(s: A.LcAriaSt) -> {s == A.aria.e14(A.aria.e14(s)) : A.LcAriaSt}:
6376  match s:
6377    case A.LcAriaSt{+x0, +x1, +x2, +x3, +x4, +x5, +x6, +x7, +x8, +x9, +x10, +x11, +x12, +x13, +x14, +x15}:
6378      %CoreL.word_xor_cancel(8n, x13, x4) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, Word.xor(8n, Word.xor(8n, x1, x4), x4), x2, Word.xor(8n, Word.xor(8n, x3, x4), x4), x4, Word.xor(8n, Word.xor(8n, x5, x4), x4), x6, x7, x8, Word.xor(8n, Word.xor(8n, x9, x4), x4), Word.xor(8n, Word.xor(8n, x10, x4), x4), x11, Word.xor(8n, Word.xor(8n, x12, x4), x4), _, x14, x15} : A.LcAriaSt}
6379      %CoreL.word_xor_cancel(8n, x12, x4) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, Word.xor(8n, Word.xor(8n, x1, x4), x4), x2, Word.xor(8n, Word.xor(8n, x3, x4), x4), x4, Word.xor(8n, Word.xor(8n, x5, x4), x4), x6, x7, x8, Word.xor(8n, Word.xor(8n, x9, x4), x4), Word.xor(8n, Word.xor(8n, x10, x4), x4), x11, _, x13, x14, x15} : A.LcAriaSt}
6380      %CoreL.word_xor_cancel(8n, x10, x4) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, Word.xor(8n, Word.xor(8n, x1, x4), x4), x2, Word.xor(8n, Word.xor(8n, x3, x4), x4), x4, Word.xor(8n, Word.xor(8n, x5, x4), x4), x6, x7, x8, Word.xor(8n, Word.xor(8n, x9, x4), x4), _, x11, x12, x13, x14, x15} : A.LcAriaSt}
6381      %CoreL.word_xor_cancel(8n, x9, x4) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, Word.xor(8n, Word.xor(8n, x1, x4), x4), x2, Word.xor(8n, Word.xor(8n, x3, x4), x4), x4, Word.xor(8n, Word.xor(8n, x5, x4), x4), x6, x7, x8, _, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6382      %CoreL.word_xor_cancel(8n, x5, x4) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, Word.xor(8n, Word.xor(8n, x1, x4), x4), x2, Word.xor(8n, Word.xor(8n, x3, x4), x4), x4, _, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6383      %CoreL.word_xor_cancel(8n, x3, x4) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, Word.xor(8n, Word.xor(8n, x1, x4), x4), x2, _, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6384      %CoreL.word_xor_cancel(8n, x1, x4) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, _, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6385      {==}
6386
6387def aria_e15(s: A.LcAriaSt) -> {s == A.aria.e15(A.aria.e15(s)) : A.LcAriaSt}:
6388  match s:
6389    case A.LcAriaSt{+x0, +x1, +x2, +x3, +x4, +x5, +x6, +x7, +x8, +x9, +x10, +x11, +x12, +x13, +x14, +x15}:
6390      %CoreL.word_xor_cancel(8n, x4, x5) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, x3, _, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6391      {==}
6392
6393def aria_e16(s: A.LcAriaSt) -> {s == A.aria.e16(A.aria.e16(s)) : A.LcAriaSt}:
6394  match s:
6395    case A.LcAriaSt{+x0, +x1, +x2, +x3, +x4, +x5, +x6, +x7, +x8, +x9, +x10, +x11, +x12, +x13, +x14, +x15}:
6396      %CoreL.word_xor_cancel(8n, x11, x3) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x3), x3), x1, x2, x3, Word.xor(8n, Word.xor(8n, x4, x3), x3), Word.xor(8n, Word.xor(8n, x5, x3), x3), Word.xor(8n, Word.xor(8n, x6, x3), x3), Word.xor(8n, Word.xor(8n, x7, x3), x3), Word.xor(8n, Word.xor(8n, x8, x3), x3), Word.xor(8n, Word.xor(8n, x9, x3), x3), Word.xor(8n, Word.xor(8n, x10, x3), x3), _, x12, x13, x14, x15} : A.LcAriaSt}
6397      %CoreL.word_xor_cancel(8n, x10, x3) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x3), x3), x1, x2, x3, Word.xor(8n, Word.xor(8n, x4, x3), x3), Word.xor(8n, Word.xor(8n, x5, x3), x3), Word.xor(8n, Word.xor(8n, x6, x3), x3), Word.xor(8n, Word.xor(8n, x7, x3), x3), Word.xor(8n, Word.xor(8n, x8, x3), x3), Word.xor(8n, Word.xor(8n, x9, x3), x3), _, x11, x12, x13, x14, x15} : A.LcAriaSt}
6398      %CoreL.word_xor_cancel(8n, x9, x3) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x3), x3), x1, x2, x3, Word.xor(8n, Word.xor(8n, x4, x3), x3), Word.xor(8n, Word.xor(8n, x5, x3), x3), Word.xor(8n, Word.xor(8n, x6, x3), x3), Word.xor(8n, Word.xor(8n, x7, x3), x3), Word.xor(8n, Word.xor(8n, x8, x3), x3), _, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6399      %CoreL.word_xor_cancel(8n, x8, x3) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x3), x3), x1, x2, x3, Word.xor(8n, Word.xor(8n, x4, x3), x3), Word.xor(8n, Word.xor(8n, x5, x3), x3), Word.xor(8n, Word.xor(8n, x6, x3), x3), Word.xor(8n, Word.xor(8n, x7, x3), x3), _, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6400      %CoreL.word_xor_cancel(8n, x7, x3) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x3), x3), x1, x2, x3, Word.xor(8n, Word.xor(8n, x4, x3), x3), Word.xor(8n, Word.xor(8n, x5, x3), x3), Word.xor(8n, Word.xor(8n, x6, x3), x3), _, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6401      %CoreL.word_xor_cancel(8n, x6, x3) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x3), x3), x1, x2, x3, Word.xor(8n, Word.xor(8n, x4, x3), x3), Word.xor(8n, Word.xor(8n, x5, x3), x3), _, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6402      %CoreL.word_xor_cancel(8n, x5, x3) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x3), x3), x1, x2, x3, Word.xor(8n, Word.xor(8n, x4, x3), x3), _, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6403      %CoreL.word_xor_cancel(8n, x4, x3) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{Word.xor(8n, Word.xor(8n, x0, x3), x3), x1, x2, x3, _, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6404      %CoreL.word_xor_cancel(8n, x0, x3) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{_, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6405      {==}
6406
6407def aria_e17(s: A.LcAriaSt) -> {s == A.aria.e17(A.aria.e17(s)) : A.LcAriaSt}:
6408  match s:
6409    case A.LcAriaSt{+x0, +x1, +x2, +x3, +x4, +x5, +x6, +x7, +x8, +x9, +x10, +x11, +x12, +x13, +x14, +x15}:
6410      %CoreL.word_xor_cancel(8n, x11, x2) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, Word.xor(8n, Word.xor(8n, x1, x2), x2), x2, x3, Word.xor(8n, Word.xor(8n, x4, x2), x2), Word.xor(8n, Word.xor(8n, x5, x2), x2), Word.xor(8n, Word.xor(8n, x6, x2), x2), Word.xor(8n, Word.xor(8n, x7, x2), x2), Word.xor(8n, Word.xor(8n, x8, x2), x2), Word.xor(8n, Word.xor(8n, x9, x2), x2), Word.xor(8n, Word.xor(8n, x10, x2), x2), _, x12, x13, x14, x15} : A.LcAriaSt}
6411      %CoreL.word_xor_cancel(8n, x10, x2) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, Word.xor(8n, Word.xor(8n, x1, x2), x2), x2, x3, Word.xor(8n, Word.xor(8n, x4, x2), x2), Word.xor(8n, Word.xor(8n, x5, x2), x2), Word.xor(8n, Word.xor(8n, x6, x2), x2), Word.xor(8n, Word.xor(8n, x7, x2), x2), Word.xor(8n, Word.xor(8n, x8, x2), x2), Word.xor(8n, Word.xor(8n, x9, x2), x2), _, x11, x12, x13, x14, x15} : A.LcAriaSt}
6412      %CoreL.word_xor_cancel(8n, x9, x2) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, Word.xor(8n, Word.xor(8n, x1, x2), x2), x2, x3, Word.xor(8n, Word.xor(8n, x4, x2), x2), Word.xor(8n, Word.xor(8n, x5, x2), x2), Word.xor(8n, Word.xor(8n, x6, x2), x2), Word.xor(8n, Word.xor(8n, x7, x2), x2), Word.xor(8n, Word.xor(8n, x8, x2), x2), _, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6413      %CoreL.word_xor_cancel(8n, x8, x2) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, Word.xor(8n, Word.xor(8n, x1, x2), x2), x2, x3, Word.xor(8n, Word.xor(8n, x4, x2), x2), Word.xor(8n, Word.xor(8n, x5, x2), x2), Word.xor(8n, Word.xor(8n, x6, x2), x2), Word.xor(8n, Word.xor(8n, x7, x2), x2), _, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6414      %CoreL.word_xor_cancel(8n, x7, x2) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, Word.xor(8n, Word.xor(8n, x1, x2), x2), x2, x3, Word.xor(8n, Word.xor(8n, x4, x2), x2), Word.xor(8n, Word.xor(8n, x5, x2), x2), Word.xor(8n, Word.xor(8n, x6, x2), x2), _, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6415      %CoreL.word_xor_cancel(8n, x6, x2) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, Word.xor(8n, Word.xor(8n, x1, x2), x2), x2, x3, Word.xor(8n, Word.xor(8n, x4, x2), x2), Word.xor(8n, Word.xor(8n, x5, x2), x2), _, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6416      %CoreL.word_xor_cancel(8n, x5, x2) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, Word.xor(8n, Word.xor(8n, x1, x2), x2), x2, x3, Word.xor(8n, Word.xor(8n, x4, x2), x2), _, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6417      %CoreL.word_xor_cancel(8n, x4, x2) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, Word.xor(8n, Word.xor(8n, x1, x2), x2), x2, x3, _, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6418      %CoreL.word_xor_cancel(8n, x1, x2) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, _, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6419      {==}
6420
6421def aria_e18(s: A.LcAriaSt) -> {s == A.aria.e18(A.aria.e18(s)) : A.LcAriaSt}:
6422  match s:
6423    case A.LcAriaSt{+x0, +x1, +x2, +x3, +x4, +x5, +x6, +x7, +x8, +x9, +x10, +x11, +x12, +x13, +x14, +x15}:
6424      %CoreL.word_xor_cancel(8n, x15, x1) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, Word.xor(8n, Word.xor(8n, x2, x1), x1), x3, x4, Word.xor(8n, Word.xor(8n, x5, x1), x1), x6, Word.xor(8n, Word.xor(8n, x7, x1), x1), Word.xor(8n, Word.xor(8n, x8, x1), x1), Word.xor(8n, Word.xor(8n, x9, x1), x1), x10, x11, Word.xor(8n, Word.xor(8n, x12, x1), x1), x13, x14, _} : A.LcAriaSt}
6425      %CoreL.word_xor_cancel(8n, x12, x1) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, Word.xor(8n, Word.xor(8n, x2, x1), x1), x3, x4, Word.xor(8n, Word.xor(8n, x5, x1), x1), x6, Word.xor(8n, Word.xor(8n, x7, x1), x1), Word.xor(8n, Word.xor(8n, x8, x1), x1), Word.xor(8n, Word.xor(8n, x9, x1), x1), x10, x11, _, x13, x14, x15} : A.LcAriaSt}
6426      %CoreL.word_xor_cancel(8n, x9, x1) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, Word.xor(8n, Word.xor(8n, x2, x1), x1), x3, x4, Word.xor(8n, Word.xor(8n, x5, x1), x1), x6, Word.xor(8n, Word.xor(8n, x7, x1), x1), Word.xor(8n, Word.xor(8n, x8, x1), x1), _, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6427      %CoreL.word_xor_cancel(8n, x8, x1) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, Word.xor(8n, Word.xor(8n, x2, x1), x1), x3, x4, Word.xor(8n, Word.xor(8n, x5, x1), x1), x6, Word.xor(8n, Word.xor(8n, x7, x1), x1), _, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6428      %CoreL.word_xor_cancel(8n, x7, x1) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, Word.xor(8n, Word.xor(8n, x2, x1), x1), x3, x4, Word.xor(8n, Word.xor(8n, x5, x1), x1), x6, _, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6429      %CoreL.word_xor_cancel(8n, x5, x1) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, Word.xor(8n, Word.xor(8n, x2, x1), x1), x3, x4, _, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6430      %CoreL.word_xor_cancel(8n, x2, x1) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, _, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6431      {==}
6432
6433def aria_e19(s: A.LcAriaSt) -> {s == A.aria.e19(A.aria.e19(s)) : A.LcAriaSt}:
6434  match s:
6435    case A.LcAriaSt{+x0, +x1, +x2, +x3, +x4, +x5, +x6, +x7, +x8, +x9, +x10, +x11, +x12, +x13, +x14, +x15}:
6436      %CoreL.word_xor_cancel(8n, x1, x2) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, _, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6437      {==}
6438
6439def aria_e20(s: A.LcAriaSt) -> {s == A.aria.e20(A.aria.e20(s)) : A.LcAriaSt}:
6440  match s:
6441    case A.LcAriaSt{+x0, +x1, +x2, +x3, +x4, +x5, +x6, +x7, +x8, +x9, +x10, +x11, +x12, +x13, +x14, +x15}:
6442      %CoreL.word_xor_cancel(8n, x14, x0) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, Word.xor(8n, Word.xor(8n, x3, x0), x0), Word.xor(8n, Word.xor(8n, x4, x0), x0), x5, Word.xor(8n, Word.xor(8n, x6, x0), x0), x7, Word.xor(8n, Word.xor(8n, x8, x0), x0), Word.xor(8n, Word.xor(8n, x9, x0), x0), x10, x11, x12, Word.xor(8n, Word.xor(8n, x13, x0), x0), _, x15} : A.LcAriaSt}
6443      %CoreL.word_xor_cancel(8n, x13, x0) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, Word.xor(8n, Word.xor(8n, x3, x0), x0), Word.xor(8n, Word.xor(8n, x4, x0), x0), x5, Word.xor(8n, Word.xor(8n, x6, x0), x0), x7, Word.xor(8n, Word.xor(8n, x8, x0), x0), Word.xor(8n, Word.xor(8n, x9, x0), x0), x10, x11, x12, _, x14, x15} : A.LcAriaSt}
6444      %CoreL.word_xor_cancel(8n, x9, x0) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, Word.xor(8n, Word.xor(8n, x3, x0), x0), Word.xor(8n, Word.xor(8n, x4, x0), x0), x5, Word.xor(8n, Word.xor(8n, x6, x0), x0), x7, Word.xor(8n, Word.xor(8n, x8, x0), x0), _, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6445      %CoreL.word_xor_cancel(8n, x8, x0) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, Word.xor(8n, Word.xor(8n, x3, x0), x0), Word.xor(8n, Word.xor(8n, x4, x0), x0), x5, Word.xor(8n, Word.xor(8n, x6, x0), x0), x7, _, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6446      %CoreL.word_xor_cancel(8n, x6, x0) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, Word.xor(8n, Word.xor(8n, x3, x0), x0), Word.xor(8n, Word.xor(8n, x4, x0), x0), x5, _, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6447      %CoreL.word_xor_cancel(8n, x4, x0) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, Word.xor(8n, Word.xor(8n, x3, x0), x0), _, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6448      %CoreL.word_xor_cancel(8n, x3, x0) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{x0, x1, x2, _, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6449      {==}
6450
6451def aria_e21(s: A.LcAriaSt) -> {s == A.aria.e21(A.aria.e21(s)) : A.LcAriaSt}:
6452  match s:
6453    case A.LcAriaSt{+x0, +x1, +x2, +x3, +x4, +x5, +x6, +x7, +x8, +x9, +x10, +x11, +x12, +x13, +x14, +x15}:
6454      %CoreL.word_xor_cancel(8n, x0, x3) : {A.LcAriaSt{x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} == A.LcAriaSt{_, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15} : A.LcAriaSt}
6455      {==}
6456
6457# the first j steps undone, last first, and the reverse
6458def aria_d0(s: A.LcAriaSt) -> {s == A.aria.u0(A.aria.d0(s)) : A.LcAriaSt}:
6459  {==}
6460
6461def aria_dd0(s: A.LcAriaSt) -> {s == A.aria.d0(A.aria.u0(s)) : A.LcAriaSt}:
6462  {==}
6463
6464def aria_d1(+s: A.LcAriaSt) -> {s == A.aria.u1(A.aria.d1(s)) : A.LcAriaSt}:
6465  %aria_e0(A.aria.d0(s)) : {s == A.aria.u0(_) : A.LcAriaSt}
6466  aria_d0(s)
6467
6468def aria_dd1(+s: A.LcAriaSt) -> {s == A.aria.d1(A.aria.u1(s)) : A.LcAriaSt}:
6469  %aria_dd0(A.aria.e0(s)) : {s == A.aria.e0(_) : A.LcAriaSt}
6470  aria_e0(s)
6471
6472def aria_d2(+s: A.LcAriaSt) -> {s == A.aria.u2(A.aria.d2(s)) : A.LcAriaSt}:
6473  %aria_e1(A.aria.d1(s)) : {s == A.aria.u1(_) : A.LcAriaSt}
6474  aria_d1(s)
6475
6476def aria_dd2(+s: A.LcAriaSt) -> {s == A.aria.d2(A.aria.u2(s)) : A.LcAriaSt}:
6477  %aria_dd1(A.aria.e1(s)) : {s == A.aria.e1(_) : A.LcAriaSt}
6478  aria_e1(s)
6479
6480def aria_d3(+s: A.LcAriaSt) -> {s == A.aria.u3(A.aria.d3(s)) : A.LcAriaSt}:
6481  %aria_e2(A.aria.d2(s)) : {s == A.aria.u2(_) : A.LcAriaSt}
6482  aria_d2(s)
6483
6484def aria_dd3(+s: A.LcAriaSt) -> {s == A.aria.d3(A.aria.u3(s)) : A.LcAriaSt}:
6485  %aria_dd2(A.aria.e2(s)) : {s == A.aria.e2(_) : A.LcAriaSt}
6486  aria_e2(s)
6487
6488def aria_d4(+s: A.LcAriaSt) -> {s == A.aria.u4(A.aria.d4(s)) : A.LcAriaSt}:
6489  %aria_e3(A.aria.d3(s)) : {s == A.aria.u3(_) : A.LcAriaSt}
6490  aria_d3(s)
6491
6492def aria_dd4(+s: A.LcAriaSt) -> {s == A.aria.d4(A.aria.u4(s)) : A.LcAriaSt}:
6493  %aria_dd3(A.aria.e3(s)) : {s == A.aria.e3(_) : A.LcAriaSt}
6494  aria_e3(s)
6495
6496def aria_d5(+s: A.LcAriaSt) -> {s == A.aria.u5(A.aria.d5(s)) : A.LcAriaSt}:
6497  %aria_e4(A.aria.d4(s)) : {s == A.aria.u4(_) : A.LcAriaSt}
6498  aria_d4(s)
6499
6500def aria_dd5(+s: A.LcAriaSt) -> {s == A.aria.d5(A.aria.u5(s)) : A.LcAriaSt}:
6501  %aria_dd4(A.aria.e4(s)) : {s == A.aria.e4(_) : A.LcAriaSt}
6502  aria_e4(s)
6503
6504def aria_d6(+s: A.LcAriaSt) -> {s == A.aria.u6(A.aria.d6(s)) : A.LcAriaSt}:
6505  %aria_e5(A.aria.d5(s)) : {s == A.aria.u5(_) : A.LcAriaSt}
6506  aria_d5(s)
6507
6508def aria_dd6(+s: A.LcAriaSt) -> {s == A.aria.d6(A.aria.u6(s)) : A.LcAriaSt}:
6509  %aria_dd5(A.aria.e5(s)) : {s == A.aria.e5(_) : A.LcAriaSt}
6510  aria_e5(s)
6511
6512def aria_d7(+s: A.LcAriaSt) -> {s == A.aria.u7(A.aria.d7(s)) : A.LcAriaSt}:
6513  %aria_e6(A.aria.d6(s)) : {s == A.aria.u6(_) : A.LcAriaSt}
6514  aria_d6(s)
6515
6516def aria_dd7(+s: A.LcAriaSt) -> {s == A.aria.d7(A.aria.u7(s)) : A.LcAriaSt}:
6517  %aria_dd6(A.aria.e6(s)) : {s == A.aria.e6(_) : A.LcAriaSt}
6518  aria_e6(s)
6519
6520def aria_d8(+s: A.LcAriaSt) -> {s == A.aria.u8(A.aria.d8(s)) : A.LcAriaSt}:
6521  %aria_e7(A.aria.d7(s)) : {s == A.aria.u7(_) : A.LcAriaSt}
6522  aria_d7(s)
6523
6524def aria_dd8(+s: A.LcAriaSt) -> {s == A.aria.d8(A.aria.u8(s)) : A.LcAriaSt}:
6525  %aria_dd7(A.aria.e7(s)) : {s == A.aria.e7(_) : A.LcAriaSt}
6526  aria_e7(s)
6527
6528def aria_d9(+s: A.LcAriaSt) -> {s == A.aria.u9(A.aria.d9(s)) : A.LcAriaSt}:
6529  %aria_e8(A.aria.d8(s)) : {s == A.aria.u8(_) : A.LcAriaSt}
6530  aria_d8(s)
6531
6532def aria_dd9(+s: A.LcAriaSt) -> {s == A.aria.d9(A.aria.u9(s)) : A.LcAriaSt}:
6533  %aria_dd8(A.aria.e8(s)) : {s == A.aria.e8(_) : A.LcAriaSt}
6534  aria_e8(s)
6535
6536def aria_d10(+s: A.LcAriaSt) -> {s == A.aria.u10(A.aria.d10(s)) : A.LcAriaSt}:
6537  %aria_e9(A.aria.d9(s)) : {s == A.aria.u9(_) : A.LcAriaSt}
6538  aria_d9(s)
6539
6540def aria_dd10(+s: A.LcAriaSt) -> {s == A.aria.d10(A.aria.u10(s)) : A.LcAriaSt}:
6541  %aria_dd9(A.aria.e9(s)) : {s == A.aria.e9(_) : A.LcAriaSt}
6542  aria_e9(s)
6543
6544def aria_d11(+s: A.LcAriaSt) -> {s == A.aria.u11(A.aria.d11(s)) : A.LcAriaSt}:
6545  %aria_e10(A.aria.d10(s)) : {s == A.aria.u10(_) : A.LcAriaSt}
6546  aria_d10(s)
6547
6548def aria_dd11(+s: A.LcAriaSt) -> {s == A.aria.d11(A.aria.u11(s)) : A.LcAriaSt}:
6549  %aria_dd10(A.aria.e10(s)) : {s == A.aria.e10(_) : A.LcAriaSt}
6550  aria_e10(s)
6551
6552def aria_d12(+s: A.LcAriaSt) -> {s == A.aria.u12(A.aria.d12(s)) : A.LcAriaSt}:
6553  %aria_e11(A.aria.d11(s)) : {s == A.aria.u11(_) : A.LcAriaSt}
6554  aria_d11(s)
6555
6556def aria_dd12(+s: A.LcAriaSt) -> {s == A.aria.d12(A.aria.u12(s)) : A.LcAriaSt}:
6557  %aria_dd11(A.aria.e11(s)) : {s == A.aria.e11(_) : A.LcAriaSt}
6558  aria_e11(s)
6559
6560def aria_d13(+s: A.LcAriaSt) -> {s == A.aria.u13(A.aria.d13(s)) : A.LcAriaSt}:
6561  %aria_e12(A.aria.d12(s)) : {s == A.aria.u12(_) : A.LcAriaSt}
6562  aria_d12(s)
6563
6564def aria_dd13(+s: A.LcAriaSt) -> {s == A.aria.d13(A.aria.u13(s)) : A.LcAriaSt}:
6565  %aria_dd12(A.aria.e12(s)) : {s == A.aria.e12(_) : A.LcAriaSt}
6566  aria_e12(s)
6567
6568def aria_d14(+s: A.LcAriaSt) -> {s == A.aria.u14(A.aria.d14(s)) : A.LcAriaSt}:
6569  %aria_e13(A.aria.d13(s)) : {s == A.aria.u13(_) : A.LcAriaSt}
6570  aria_d13(s)
6571
6572def aria_dd14(+s: A.LcAriaSt) -> {s == A.aria.d14(A.aria.u14(s)) : A.LcAriaSt}:
6573  %aria_dd13(A.aria.e13(s)) : {s == A.aria.e13(_) : A.LcAriaSt}
6574  aria_e13(s)
6575
6576def aria_d15(+s: A.LcAriaSt) -> {s == A.aria.u15(A.aria.d15(s)) : A.LcAriaSt}:
6577  %aria_e14(A.aria.d14(s)) : {s == A.aria.u14(_) : A.LcAriaSt}
6578  aria_d14(s)
6579
6580def aria_dd15(+s: A.LcAriaSt) -> {s == A.aria.d15(A.aria.u15(s)) : A.LcAriaSt}:
6581  %aria_dd14(A.aria.e14(s)) : {s == A.aria.e14(_) : A.LcAriaSt}
6582  aria_e14(s)
6583
6584def aria_d16(+s: A.LcAriaSt) -> {s == A.aria.u16(A.aria.d16(s)) : A.LcAriaSt}:
6585  %aria_e15(A.aria.d15(s)) : {s == A.aria.u15(_) : A.LcAriaSt}
6586  aria_d15(s)
6587
6588def aria_dd16(+s: A.LcAriaSt) -> {s == A.aria.d16(A.aria.u16(s)) : A.LcAriaSt}:
6589  %aria_dd15(A.aria.e15(s)) : {s == A.aria.e15(_) : A.LcAriaSt}
6590  aria_e15(s)
6591
6592def aria_d17(+s: A.LcAriaSt) -> {s == A.aria.u17(A.aria.d17(s)) : A.LcAriaSt}:
6593  %aria_e16(A.aria.d16(s)) : {s == A.aria.u16(_) : A.LcAriaSt}
6594  aria_d16(s)
6595
6596def aria_dd17(+s: A.LcAriaSt) -> {s == A.aria.d17(A.aria.u17(s)) : A.LcAriaSt}:
6597  %aria_dd16(A.aria.e16(s)) : {s == A.aria.e16(_) : A.LcAriaSt}
6598  aria_e16(s)
6599
6600def aria_d18(+s: A.LcAriaSt) -> {s == A.aria.u18(A.aria.d18(s)) : A.LcAriaSt}:
6601  %aria_e17(A.aria.d17(s)) : {s == A.aria.u17(_) : A.LcAriaSt}
6602  aria_d17(s)
6603
6604def aria_dd18(+s: A.LcAriaSt) -> {s == A.aria.d18(A.aria.u18(s)) : A.LcAriaSt}:
6605  %aria_dd17(A.aria.e17(s)) : {s == A.aria.e17(_) : A.LcAriaSt}
6606  aria_e17(s)
6607
6608def aria_d19(+s: A.LcAriaSt) -> {s == A.aria.u19(A.aria.d19(s)) : A.LcAriaSt}:
6609  %aria_e18(A.aria.d18(s)) : {s == A.aria.u18(_) : A.LcAriaSt}
6610  aria_d18(s)
6611
6612def aria_dd19(+s: A.LcAriaSt) -> {s == A.aria.d19(A.aria.u19(s)) : A.LcAriaSt}:
6613  %aria_dd18(A.aria.e18(s)) : {s == A.aria.e18(_) : A.LcAriaSt}
6614  aria_e18(s)
6615
6616def aria_d20(+s: A.LcAriaSt) -> {s == A.aria.u20(A.aria.d20(s)) : A.LcAriaSt}:
6617  %aria_e19(A.aria.d19(s)) : {s == A.aria.u19(_) : A.LcAriaSt}
6618  aria_d19(s)
6619
6620def aria_dd20(+s: A.LcAriaSt) -> {s == A.aria.d20(A.aria.u20(s)) : A.LcAriaSt}:
6621  %aria_dd19(A.aria.e19(s)) : {s == A.aria.e19(_) : A.LcAriaSt}
6622  aria_e19(s)
6623
6624def aria_d21(+s: A.LcAriaSt) -> {s == A.aria.u21(A.aria.d21(s)) : A.LcAriaSt}:
6625  %aria_e20(A.aria.d20(s)) : {s == A.aria.u20(_) : A.LcAriaSt}
6626  aria_d20(s)
6627
6628def aria_dd21(+s: A.LcAriaSt) -> {s == A.aria.d21(A.aria.u21(s)) : A.LcAriaSt}:
6629  %aria_dd20(A.aria.e20(s)) : {s == A.aria.e20(_) : A.LcAriaSt}
6630  aria_e20(s)
6631
6632def aria_d22(+s: A.LcAriaSt) -> {s == A.aria.u22(A.aria.d22(s)) : A.LcAriaSt}:
6633  %aria_e21(A.aria.d21(s)) : {s == A.aria.u21(_) : A.LcAriaSt}
6634  aria_d21(s)
6635
6636def aria_dd22(+s: A.LcAriaSt) -> {s == A.aria.d22(A.aria.u22(s)) : A.LcAriaSt}:
6637  %aria_dd21(A.aria.e21(s)) : {s == A.aria.e21(_) : A.LcAriaSt}
6638  aria_e21(s)
6639
6640def aria_diff(s: A.LcAriaSt) -> {s == A.aria.undiffuse(A.aria.diffuse(s)) : A.LcAriaSt}:
6641  aria_d22(s)
6642
6643def aria_diffd(s: A.LcAriaSt) -> {s == A.aria.diffuse(A.aria.undiffuse(s)) : A.LcAriaSt}:
6644  aria_dd22(s)
6645
6646# a block read back from its bytes, and the bytes from their block, on the bits
6647def aria_blk(b: M.CmBlock) -> {b == A.aria.to_block(A.aria.of_block(b)) : M.CmBlock}:
6648  match b:
6649    case M.CmBlock{U32{WCon{a0_0, WCon{a0_1, WCon{a0_2, WCon{a0_3, WCon{a0_4, WCon{a0_5, WCon{a0_6, WCon{a0_7, WCon{a0_8, WCon{a0_9, WCon{a0_10, WCon{a0_11, WCon{a0_12, WCon{a0_13, WCon{a0_14, WCon{a0_15, WCon{a0_16, WCon{a0_17, WCon{a0_18, WCon{a0_19, WCon{a0_20, WCon{a0_21, WCon{a0_22, WCon{a0_23, WCon{a0_24, WCon{a0_25, WCon{a0_26, WCon{a0_27, WCon{a0_28, WCon{a0_29, WCon{a0_30, WCon{a0_31, WNil{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}, U32{WCon{a1_0, WCon{a1_1, WCon{a1_2, WCon{a1_3, WCon{a1_4, WCon{a1_5, WCon{a1_6, WCon{a1_7, WCon{a1_8, WCon{a1_9, WCon{a1_10, WCon{a1_11, WCon{a1_12, WCon{a1_13, WCon{a1_14, WCon{a1_15, WCon{a1_16, WCon{a1_17, WCon{a1_18, WCon{a1_19, WCon{a1_20, WCon{a1_21, WCon{a1_22, WCon{a1_23, WCon{a1_24, WCon{a1_25, WCon{a1_26, WCon{a1_27, WCon{a1_28, WCon{a1_29, WCon{a1_30, WCon{a1_31, WNil{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}, U32{WCon{a2_0, WCon{a2_1, WCon{a2_2, WCon{a2_3, WCon{a2_4, WCon{a2_5, WCon{a2_6, WCon{a2_7, WCon{a2_8, WCon{a2_9, WCon{a2_10, WCon{a2_11, WCon{a2_12, WCon{a2_13, WCon{a2_14, WCon{a2_15, WCon{a2_16, WCon{a2_17, WCon{a2_18, WCon{a2_19, WCon{a2_20, WCon{a2_21, WCon{a2_22, WCon{a2_23, WCon{a2_24, WCon{a2_25, WCon{a2_26, WCon{a2_27, WCon{a2_28, WCon{a2_29, WCon{a2_30, WCon{a2_31, WNil{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}, U32{WCon{a3_0, WCon{a3_1, WCon{a3_2, WCon{a3_3, WCon{a3_4, WCon{a3_5, WCon{a3_6, WCon{a3_7, WCon{a3_8, WCon{a3_9, WCon{a3_10, WCon{a3_11, WCon{a3_12, WCon{a3_13, WCon{a3_14, WCon{a3_15, WCon{a3_16, WCon{a3_17, WCon{a3_18, WCon{a3_19, WCon{a3_20, WCon{a3_21, WCon{a3_22, WCon{a3_23, WCon{a3_24, WCon{a3_25, WCon{a3_26, WCon{a3_27, WCon{a3_28, WCon{a3_29, WCon{a3_30, WCon{a3_31, WNil{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}:
6650      {==}
6651
6652def aria_st(s: A.LcAriaSt) -> {s == A.aria.of_block(A.aria.to_block(s)) : A.LcAriaSt}:
6653  match s:
6654    case A.LcAriaSt{WCon{b0_0, WCon{b0_1, WCon{b0_2, WCon{b0_3, WCon{b0_4, WCon{b0_5, WCon{b0_6, WCon{b0_7, WNil{}}}}}}}}}, WCon{b1_0, WCon{b1_1, WCon{b1_2, WCon{b1_3, WCon{b1_4, WCon{b1_5, WCon{b1_6, WCon{b1_7, WNil{}}}}}}}}}, WCon{b2_0, WCon{b2_1, WCon{b2_2, WCon{b2_3, WCon{b2_4, WCon{b2_5, WCon{b2_6, WCon{b2_7, WNil{}}}}}}}}}, WCon{b3_0, WCon{b3_1, WCon{b3_2, WCon{b3_3, WCon{b3_4, WCon{b3_5, WCon{b3_6, WCon{b3_7, WNil{}}}}}}}}}, WCon{b4_0, WCon{b4_1, WCon{b4_2, WCon{b4_3, WCon{b4_4, WCon{b4_5, WCon{b4_6, WCon{b4_7, WNil{}}}}}}}}}, WCon{b5_0, WCon{b5_1, WCon{b5_2, WCon{b5_3, WCon{b5_4, WCon{b5_5, WCon{b5_6, WCon{b5_7, WNil{}}}}}}}}}, WCon{b6_0, WCon{b6_1, WCon{b6_2, WCon{b6_3, WCon{b6_4, WCon{b6_5, WCon{b6_6, WCon{b6_7, WNil{}}}}}}}}}, WCon{b7_0, WCon{b7_1, WCon{b7_2, WCon{b7_3, WCon{b7_4, WCon{b7_5, WCon{b7_6, WCon{b7_7, WNil{}}}}}}}}}, WCon{b8_0, WCon{b8_1, WCon{b8_2, WCon{b8_3, WCon{b8_4, WCon{b8_5, WCon{b8_6, WCon{b8_7, WNil{}}}}}}}}}, WCon{b9_0, WCon{b9_1, WCon{b9_2, WCon{b9_3, WCon{b9_4, WCon{b9_5, WCon{b9_6, WCon{b9_7, WNil{}}}}}}}}}, WCon{b10_0, WCon{b10_1, WCon{b10_2, WCon{b10_3, WCon{b10_4, WCon{b10_5, WCon{b10_6, WCon{b10_7, WNil{}}}}}}}}}, WCon{b11_0, WCon{b11_1, WCon{b11_2, WCon{b11_3, WCon{b11_4, WCon{b11_5, WCon{b11_6, WCon{b11_7, WNil{}}}}}}}}}, WCon{b12_0, WCon{b12_1, WCon{b12_2, WCon{b12_3, WCon{b12_4, WCon{b12_5, WCon{b12_6, WCon{b12_7, WNil{}}}}}}}}}, WCon{b13_0, WCon{b13_1, WCon{b13_2, WCon{b13_3, WCon{b13_4, WCon{b13_5, WCon{b13_6, WCon{b13_7, WNil{}}}}}}}}}, WCon{b14_0, WCon{b14_1, WCon{b14_2, WCon{b14_3, WCon{b14_4, WCon{b14_5, WCon{b14_6, WCon{b14_7, WNil{}}}}}}}}}, WCon{b15_0, WCon{b15_1, WCon{b15_2, WCon{b15_3, WCon{b15_4, WCon{b15_5, WCon{b15_6, WCon{b15_7, WNil{}}}}}}}}}}:
6655      {==}
6656# END GENERATED: aria
6657
6658def aria_unop_op(o: A.LcAriaOp, +s: A.LcAriaSt) -> {s == A.aria.unop(o, A.aria.op(o, s)) : A.LcAriaSt}:
6659  match o:
6660    case A.LcAriaRk{+k}:
6661      aria_xor2(s, k)
6662    case A.LcAriaSl1{}:
6663      aria_sl21(s)
6664    case A.LcAriaSl2{}:
6665      aria_sl12(s)
6666    case A.LcAriaDiff{}:
6667      aria_diff(s)
6668
6669def aria_op_unop(o: A.LcAriaOp, +s: A.LcAriaSt) -> {s == A.aria.op(o, A.aria.unop(o, s)) : A.LcAriaSt}:
6670  match o:
6671    case A.LcAriaRk{+k}:
6672      aria_xor2(s, k)
6673    case A.LcAriaSl1{}:
6674      aria_sl12(s)
6675    case A.LcAriaSl2{}:
6676      aria_sl21(s)
6677    case A.LcAriaDiff{}:
6678      aria_diffd(s)
6679
6680def aria_unrun_run(os: List<&2, A.LcAriaOp>, +s: A.LcAriaSt) -> {s == A.aria.unrun(os, A.aria.run(os, s)) : A.LcAriaSt}:
6681  match os:
6682    case Nil{}:
6683      {==}
6684    case Con{+o, +t}:
6685      %aria_unrun_run(t, A.aria.op(o, s)) : {s == A.aria.unop(o, _) : A.LcAriaSt}
6686      aria_unop_op(o, s)
6687
6688def aria_run_unrun(os: List<&2, A.LcAriaOp>, +s: A.LcAriaSt) -> {s == A.aria.run(os, A.aria.unrun(os, s)) : A.LcAriaSt}:
6689  match os:
6690    case Nil{}:
6691      {==}
6692    case Con{+o, +t}:
6693      %aria_op_unop(o, A.aria.unrun(t, s)) : {s == A.aria.run(t, _) : A.LcAriaSt}
6694      aria_run_unrun(t, s)
6695
6696def Laws.aria_round_trip(k, b):
6697  match k:
6698    case A.LcAriaKey{+ops}:
6699      %aria_st(A.aria.run(ops, A.aria.of_block(b))) : {A.aria.to_block(A.aria.unrun(ops, _)) == b : M.CmBlock}
6700      %aria_unrun_run(ops, A.aria.of_block(b)) : {A.aria.to_block(_) == b : M.CmBlock}
6701      Equal.sym(M.CmBlock, b, A.aria.to_block(A.aria.of_block(b)), aria_blk(b))
6702
6703def Laws.aria_round_trip_dual(k, b):
6704  match k:
6705    case A.LcAriaKey{+ops}:
6706      %aria_st(A.aria.unrun(ops, A.aria.of_block(b))) : {A.aria.to_block(A.aria.run(ops, _)) == b : M.CmBlock}
6707      %aria_run_unrun(ops, A.aria.of_block(b)) : {A.aria.to_block(_) == b : M.CmBlock}
6708      Equal.sym(M.CmBlock, b, A.aria.to_block(A.aria.of_block(b)), aria_blk(b))
6709
6710# BEGIN GENERATED by gen/vectors.py: vectors
6711
6712def Laws.aria_rfc5794():
6713  {==}
6714
6715def Laws.aria_bad_key_length():
6716  {==}
6717# END GENERATED: vectors