The alphabet of I-13 was not designed — it was counted: rank the AST node kinds of 504 Python 3.12 stdlib files by frequency and the top twelve verbs cover 83.26%; add the declaration keyword I and you have thirteen symbols, four planes of exactly three.
source I-13 · THE TWELVE (rev 2 teaching brief; H1.0-FINAL freeze), David Lee Wise / ROOT0 / TriPod LLC. Census: 649,634 AST nodes across 504 stdlib files, Python 3.12; rank order reproduces on 3.11. Room: THE ALPHABET · World V, the I-13 world. Rendered, not asserted.
Walk the abstract syntax trees of 504 Python 3.12 stdlib files — 649,634 nodes — and rank the node kinds by how often they occur. The alphabet is whatever rises to the top. Nobody chose the twelve; frequency did.
The claim is falsifiable and it holds: the rank order reproduces independently on Python 3.11. reproduced
The twelve fall into four planes of exactly three — each verb a role in a forward pass of code:
I DESIGNATE — Name · Constant · Attribute (name a thing)
II BIND — Assign · Arg · Return (hand a value on)
III DECIDE — Expr · If · Compare (branch)
IV TRANSFORM — Call · FunctionDef · BinOp (make new value)
Three per plane, four planes — twelve. Plus I = thirteen. 4×3+1
Where the ideas behind the verbs first appear, per the brief — attribution is history, not measurement:
Lovelace 1843 — Name, Constant, Assign, If, Compare (the Note G engine).
Church 1932 — Call, FunctionDef (the λ-calculus).
Frege 1879 — Arg (the Begriffsschrift argument-place).
These are credited, not claimed, and some are disputed in the brief itself. history — some disputed
Pick a plane; read its three counted verbs and their live running sum against the published subtotal.
Every triad sums to its subtotal exactly (integer hundredths of a percent, no float). The four subtotals sum to 8326. Block is the container, not one of the twelve.
| plane | three verbs (count) | Σ | target | witness |
|---|
Rank 1 is Name at 2967 (29.67%). Sort desc and Name leads — asserted on load.
| plane | share |
|---|---|
| I DESIGNATE | 53.55% |
| II BIND | 11.13% |
| III DECIDE | 7.78% |
| IV TRANSFORM | 10.80% |
| 12 verbs | 83.26% |
| + I | = 13 symbols |
Coverage is over an unpublished exclusion set. Raw ast.walk = 57.66% (Load alone is 25%). The 83.26% is honest only with that caveat. excluded set unpublished
• The exclusion set is unpublished. The 83.26% is quoted over a set of node kinds the brief does not fully list; the raw walk is 57.66%. wall
• One language. The twelve were counted over Python only. The mechanism (count, rank, cover) is general — tested across 7 languages — but these twelve are Python-shaped. one language
• THE CONTAINER. Block is the most structural node yet is not one of the twelve — it holds verbs, it is not a verb. 12 + I = 13 is the whole name. by construction
“The alphabet was designed.” — DEAD. It was counted, frequency-ranked from 649,634 nodes. Design plays no part. disproven
“83.26% of all Python code.” — DEAD. It is 83.27% over some excluded set; the raw walk is 57.66%. The bigger number needs the caveat or it is a lie. retracted
I-13 keeps a MEASURED DEAD register. These stay on the page — a retracted claim is not erased. DEAD kept
The reference ast.rs today mis-files Call under DESIGNATE (a real bug in the brief's own tool). Reproduce it: move Call (750) from TRANSFORM into DESIGNATE.
DESIGNATE then sums to 6105 (61.05%) ≠ its header 5355. The witness (each triad must equal its subtotal) turns red. it must fail