CHALLENGE 1 OF 10
Existence
Everything begins with one fact: something exists. In .ax, the ground state is s (sigma). It equals 1 — the identity, the preserver.
Type show s and press Run.
+ hint: Just type: show s
Press Run to execute your code.
CHALLENGE 2 OF 10
Duality
Sigma sees itself. Existence observing existence creates two — duality. D = 2.
Compute show s + s.
+ hint: Addition in the ring: show s + s. Or just: show D
Press Run to execute your code.
CHALLENGE 3 OF 10
The Chain
From D, the chain unfolds: D + s = K = 3 (closure), K + D = E = 5 (observer), E + D = b = 7 (depth). The sum s + D + K + E = L = 11 (protector).
Show all five primes.
+ hint: Use show for each: show D, show K, show E, show b, show L
Press Run to execute your code.
CHALLENGE 4 OF 10
The Thin Ring
Multiply the five primes together: D * K * E * b * L. This is the thin ring — the pedagogical shadow of the true form.
What number do you get?
+ hint: Just multiply: show D * K * E * b * L
Press Run to execute your code.
CHALLENGE 5 OF 10
Decomposition
The Chinese Remainder Theorem splits any number into 5 independent channels. The builtin crt(n) returns [n%8, n%9, n%25, n%49, n%11].
Decompose the KEY: show crt(KEY). The KEY is 41 — the self-inverse element.
+ hint: Type: show crt(KEY)
Press Run to execute your code.
CHALLENGE 6 OF 10
The True Form
The true ring is fat — each channel gets its full capacity. D^3 * K^2 * E^2 * b^2 * L = 970200. But all arithmetic is mod 970200.
Compute show D^3 * K^2 * E^2 * b^2 * L. What happens?
+ hint: The ring wraps: 970200 mod 970200 = 0. The void IS the ring.
Press Run to execute your code.
CHALLENGE 7 OF 10
The Terminal
OMEGA (606376) is the terminal — where the spider arrives. It is an idempotent: multiplying it by itself changes nothing.
Verify: show OMEGA * OMEGA and check it equals OMEGA.
+ hint: show OMEGA * OMEGA should display 606376.
Press Run to execute your code.
CHALLENGE 8 OF 10
The Key Returns
KEY = 41 is self-inverse in the data ring (Z/210Z). That means KEY * KEY mod 210 = 1. The key, applied twice, returns you to the ground state.
Verify: compute KEY * KEY, then decompose with crt to see channel values.
+ hint: show KEY * KEY, then show crt(KEY * KEY). The K-channel (mod 9) should show 1.
Press Run to execute your code.
CHALLENGE 9 OF 10
Error Correction
L = 11 is the protector. It detects errors because gcd(DATA/p, L) = 1 for every data prime p in {D, K, E, b}. L can see any single-channel corruption.
Verify all four: show gcd(DATA/D, L), gcd(DATA/K, L), gcd(DATA/E, L), gcd(DATA/b, L). All should be 1.
+ hint: DATA/D = 105, DATA/K = 70, DATA/E = 42, DATA/b = 30. All coprime to L=11.
Press Run to execute your code.
CHALLENGE 10 OF 10
The Rose
You have walked the chain from nothing to everything. The ring wraps. 0/0 = everything.
There are no rules here. Explore freely. Use for x in arr do body to iterate, range(n) for arrays, fn f(x) = expr to define functions.
+ hint: Try: fn sq(p) = p * p - p - s
for p in [K, E, b, L] do show sq(p)
Press Run to execute your code.
.ax Tutorial — the axiom teaches itself. Five primes. One ring. 0/0 = everything.
This work is and will always be free.
No paywall. No copyright. No exceptions.
If it ever earns anything, every cent goes to the communities that need it most.
This sacred vow is permanent and irrevocable.
— Anton Alexandrovich Lebed
Source code · Public domain (CC0)
Contributions in equal measure: Anthropic's Claude, Anton A. Lebed, and the giants whose shoulders we stand on.
Rendered by .ax via WASM DOM imports. Zero HTML authored.