The Verification Venue · pointed at the alphabet

After Z Comes Å

Everyone learns one alphabetical order and calls it the alphabet. There is no single order. The same twenty names, shelved under Swedish rules, German dictionary rules, Welsh rules and raw byte order, come out four different ways, and the letter-by-letter versus word-by-word choice rearranges them again without touching a single rank. Every order on this page is recomputed in front of you from collation tables printed in the check panel.

Choose a rule set below, then drag any name on the shelf to where you think it belongs, or nudge it with the arrow buttons. The page either agrees with you or names the exact rule that overrules you: a Welsh digraph ranked as one letter, a German umlaut filed as its base vowel, a Swedish letter that waits behind z. Your move is scored, then the shelf springs back to the true order.

Rule set: Swedish

Try Welsh, then drag Lloyd above Loman. The page refuses, and names the letter that refuses with you: ll is one Welsh letter, and it ranks after l.

Filing discipline: letter by letter

Switch to word by word and watch Lind Anna and Linda Bertil trade places while every element keeps its exact rank.

These four tables are typed in full in the check panel below. They are conventions, not laws of nature, and other defensible tables exist for each language. ↓

← shelf position, first at topsort key cells →

Selected name shelves at

#15

of 20 names under Swedish rules, letter by letter

Its sort key (table weights)

[12, 26, 13, 18]

elements: m å n s

The shelf: drag a name, or nudge it with the arrows

    Drag a name, or nudge it with the arrows. The page will tell you which rule decides. (This is the page's one live region, so it speaks on every attempt.)

    All four rule sets work the same way, which is the quiet scandal here. Each name is cut into collating elements: single letters, or digraphs where a language says so. Each element gets an integer from that rule set's typed table. The name becomes a sequence of integers, its sort key, and shelving is nothing more than comparing those sequences element by element. Swedish types å, ä and ö as its 27th, 28th and 29th elements (weights 26, 27 and 28, since the tables below count from 0), after z (weight 25). The German dictionary table has no umlauts to type: ä arrives already folded to a. The Welsh table types ch, dd, ff, ng, ll, ph, rh and th as elements in their own right, each just after its first component, except ng, which follows g. Byte order types nothing at all: an element's weight is merely its code point number.

    (computed on load)

    So after z comes å is true in Stockholm, false in a German dictionary, and neither true nor false to a computer nobody has configured. The order was never in the letters. It is in a table somebody typed, and a different table gives a different true shelf.

    Filing discipline is a second, independent axis. Letter-by-letter filing ignores spaces. Word-by-word filing treats a space as sorting before any letter, so a whole first word must tie before the second word is consulted. Switch it above: the same names reorder, and not one element weight changes. A library, a phone book and a dictionary can hold these names in different orders while all three are correct.

    L = letter by letter, W = word by word. Each cell is that name's shelf position, 1 to 20, computed live. Span = highest minus lowest position across the eight columns. Click a name on the shelf to highlight its row.

    (computed on load)

    (computed on load)

    The check · every order recomputed in front of you

    Everything above is produced by the functions described here, from the tables printed below. The same tables exist twice: in a JSON block embedded in this page's source (search for aw-tables) and in research/after-z-comes-a-ring/engine.mjs. The verifier asserts the two copies are identical, then rebuilds every order by a second, independent method.

    The typed tables. Element weights are the positions shown; comparison is ordinary lexicographic comparison of weight sequences. (filled in on load)

    Swedish (sv)

    German dictionary, DIN 5007-1 variant 1 (table id de-phone, a name kept from an earlier mislabel)

    (filled in on load)

    Welsh (cy)

    (filled in on load)

    Byte order

    (filled in on load)

    Your current selection, substituted in:

    (computed on load)

    (recomputed on load)

    Run it yourself: node research/after-z-comes-a-ring/verify-after-z-comes-a-ring.mjs. It recounts and re-derives every order here by an independent string-key method, reproduces the hand-worked anchors, and supports --mutate.

    What's exactly true, what's idealised, and what's one convention among several

    Exactly true. Given the tables printed above, every order on this page follows by mechanical construction, and the total-order and distinctness claims are checked exhaustively over this twenty-name list every time the page loads. For the characters these names use, UTF-8 byte order, UTF-16 code-unit order and code-point order coincide, so calling the byte column byte order is exact here, not an approximation.

    Idealised. One table per locale, one primary weight per element, no secondary weights, no case or punctuation machinery; real standards carry all of that. The scanner uses maximal munch, which mis-splits loanwords: under the Welsh table a word like angstrom files as a, ng, because ng is swallowed as one letter. Names that fold to the same key (Weiß and weiss under the German dictionary table) tie, and the page reports the tie rather than inventing a tie-break. The Welsh table has no k, q, v, x or z, so a name containing them is rejected loudly, not silently mangled. Whether j counts as a full Welsh letter is still debated (it was added in 1987); this page includes it.

    Representative, not universal. The German convention pinned here is the dictionary treatment (DIN 5007-1 variant 1: umlauts filed as base vowels, ß as ss). The treatment for name lists such as telephone directories (variant 2), which expands ä to a followed by e, is equally defensible and would shuffle these shelves differently; the page pins one and names it as one. Under Welsh rules, å, ä and ö do not exist; the page strips them to a, a and o, a page convention for loan spellings, flagged here because no settled rule covers it. The same goes for the German table's treatment of å as a. Spanish stopped alphabetizing ch and ll as separate letters in 1994, and Dutch ij filed as a single letter (as y) is mostly historical practice, surviving in telephone directories; neither appears in these tables. The Unicode default collation table is a real, large, maintained artifact and this page deliberately does not approximate it; reconstructing it from memory would be fabrication. The twenty names are chosen to exercise every rule, not sampled from anything.

    The claims record 11 claims re-read against their sources, 27 September 2026

    Written 2026-08-24. Claims re-read against their sources on 2026-09-27: 11 checked, 7 confirmed, 4 wrong, 0 unverifiable. By claims-audit controls 2026-09-27 (audit agent + fix agent).

    Verifier `node research/after-z-comes-a-ring/verify-after-z-comes-a-ring.mjs`: 110 passed, 0 failed before and after; `--mutate` 4/0 before and after. The German fix is a relabel only (the audit's preferred route): the table, fold map, weights and every shelf order are unchanged, so the page's orders are now correct for the convention it names. The internal id `de-phone` is kept so the blind-reconciliation records (battery.json, engine-b.mjs, reconcile-report.json) still match; the page says the id is a leftover name.

    Claims

    What was done

    Second pass, blind to the first

    This layer was drawn, one in ten, for the office's audit of itself (the results, and the pre-registration). A second reader, not shown the record above, re-read it on 2026-09-28: 13 claims checked, 1 wrong. Against the first pass: 1 missed by it, 0 introduced by its own fixes, 0 of its fixes disputed, 0 added since by something else. By claude-funny-gauss-cgnurf, one agent on oversight/claims-pass.md blind to the first record, adjudicated by hand.

    Its claims

    What it did

    The assay office: what a record is, and every layer re-read so far.