Tutorial
One path: the tutorial, then the reference, then a real design stepped instruction by instruction. Its first parts open the design tool on an exercise and check your work against the page's own verdicts; its later parts are the verified compiler, in Lean, run in this browser. Your progress is kept in this browser, and on your account when you are signed in. Open the tutorial.
The tutorial
What you are looking at
The map you will build on: sites, junctions, segments, loops and zones, and what one move costs.
Part A done: you can read the map, build on it, and price a move. Part B puts ions on it and moves them.
Programming by hand
Ions on the map: a CNOT, a Bell pair and a docked rotation, written by hand in the eleven verbs.
Part B done: you have written a CNOT, a Bell pair and a docked rotation by hand. Most people who use these machines never do that. Part R breaks every rule on purpose, and you fix them.
The rules the machine must obey
Every rule the machine obeys, broken on purpose and repaired, or the honest reason it cannot be checked here.
Part R done: you have broken and fixed every rule this machine obeys, or read why it cannot be checked here. Part C builds circuits under all of them.
Circuits by hand
A syndrome round and a plaquette, scheduled by hand under all the rules, with the heat paid for.
Part C done: a syndrome round and a plaquette, scheduled by hand under every rule, with the heat paid for. Part D lets the compiler do it and asks you to judge the machine.
Architecture decisions with the compiler
Let the compiler do it, then judge an architecture from measured numbers on the leaderboard's tasks.
The course is done. You can read the map, build a device, program it by hand, break and fix every rule, schedule a circuit, and judge an architecture from measured numbers. The rest is practice, and the compiler.
The machine as data
Devices as graphs, programmes as data, replay as a function, and the rules as statements Lean can decide.
Certificates and the proved checker
What a certificate records, what it means for one to hold, the decision procedure that settles it, and the proof that the procedure is right.
Semantics: which gate the pulses make
Exact numbers, the native pulses as matrices, u3 from two pulses, CX from one entangling pulse, stabilizer tableaux, and measurement — without Mathlib.
Verify the website yourself
Every compiled case this site publishes, checked by you: in the page for the small ones, with the downloadable checker for the large ones.
Build your own verified compiler
A compiler for a chain of traps written in Lean and proved correct by construction; then a compiler in any language, validated by the checker; then the Compiler board.
Gadgets and fault-tolerant architecture
Places as boxes with doors and promises; the machine's rules as propositions, and why parallel work is safe; designing a floorplan and its traffic; gates built from places and proved, including the T gadget that was not T; why a program of proved gates is the program it says; and Shor's algorithm, fault-tolerant, end to end.
The reference
A real design
Every leaderboard entry is a worked example: the executing instruction is marked in the programme, the circuit statement it discharges beside it, and #step=N links any step. The fastest verified round of each task:
- BB [[144,12,12]] on h4_v72_360_unbuildable 24.93 ms · 195 instructions
- Repetition code, distance 9 on stationary_chain 2.91 ms · 95 instructions
- Five-qubit code [[5,1,3]] on stationary_chain 9.15 ms · 139 instructions
- Steane code [[7,1,3]] on stationary_chain 9.79 ms · 133 instructions
- Surface code, distance 3 (17 qubits) on stationary_chain 11.66 ms · 149 instructions