Derive a 6th opcode
The 5 opcodes are forced by the math. But you can derive a 6th one in the browser. The prover checks if your derivation obeys the 5 laws. If it does, you have a new opcode. If it doesn't, the substrate rejects it.
01Pick a derivation
02The prover's verdict
03What the prover checks
The prover runs the new opcode on a sample journal and checks that the result still satisfies the 5 laws. The test is mechanical — the substrate doesn't know what your opcode does, but it knows the laws, and it knows how to check.
- idempotent — running it twice with the same args is the same as running it once
- transitive — a→b and b→c implies a→c
- associative — the order of composition doesn't matter
- pure — running it does not modify the journal
- monotone — running it does not decrease any cell value
04The boundary
Deriving a 6th opcode is the same as finding a new boundary. The substrate is the boat; the 5 opcodes are the 5 messages the boat can carry. A 6th message is a new reach of the boat. The prover is the chart — it tells you where the boat can still float.