diff --git a/docs/docs/_protocol-specs/public-vm/gen/_instruction-set.mdx b/docs/docs/_protocol-specs/public-vm/gen/_instruction-set.mdx
deleted file mode 100644
index b7de3caf1344..000000000000
--- a/docs/docs/_protocol-specs/public-vm/gen/_instruction-set.mdx
+++ /dev/null
@@ -1,1603 +0,0 @@
-[comment]: # (THIS IS A GENERATED FILE! DO NOT EDIT!)
-[comment]: # (Generated via `yarn preprocess`)
-
-[comment]: # (Generated by genMarkdown.js, InstructionSet.js, InstructionSize.js)
-
-import Markdown from 'react-markdown'
-import CodeBlock from '@theme/CodeBlock'
-
-
-## Instructions Table
-
-Click on an instruction name to jump to its section.
-
-
-| Opcode | Name | Summary | Expression |
-
- | 0x00 |
- \[\`ADD\`\](#isa-section-add) |
- Addition (a + b) |
- {
- `M[dstOffset] = M[aOffset] + M[bOffset] mod 2^k`
- } |
-
-
- | 0x01 |
- \[\`SUB\`\](#isa-section-sub) |
- Subtraction (a - b) |
- {
- `M[dstOffset] = M[aOffset] - M[bOffset] mod 2^k`
- } |
-
-
- | 0x02 |
- \[\`MUL\`\](#isa-section-mul) |
- Multiplication (a * b) |
- {
- `M[dstOffset] = M[aOffset] * M[bOffset] mod 2^k`
- } |
-
-
- | 0x03 |
- \[\`DIV\`\](#isa-section-div) |
- Unsigned integer division (a / b) |
- {
- `M[dstOffset] = M[aOffset] / M[bOffset]`
- } |
-
-
- | 0x04 |
- \[\`FDIV\`\](#isa-section-fdiv) |
- Field division (a / b) |
- {
- `M[dstOffset] = M[aOffset] / M[bOffset]`
- } |
-
-
- | 0x05 |
- \[\`EQ\`\](#isa-section-eq) |
- Equality check (a == b) |
- {
- `M[dstOffset] = M[aOffset] == M[bOffset] ? 1 : 0`
- } |
-
-
- | 0x06 |
- \[\`LT\`\](#isa-section-lt) |
- Less-than check (a < b) |
- {
- `M[dstOffset] = M[aOffset] < M[bOffset] ? 1 : 0`
- } |
-
-
- | 0x07 |
- \[\`LTE\`\](#isa-section-lte) |
- Less-than-or-equals check (a <= b) |
- {
- `M[dstOffset] = M[aOffset] <= M[bOffset] ? 1 : 0`
- } |
-
-
- | 0x08 |
- \[\`AND\`\](#isa-section-and) |
- Bitwise AND (a & b) |
- {
- `M[dstOffset] = M[aOffset] AND M[bOffset]`
- } |
-
-
- | 0x09 |
- \[\`OR\`\](#isa-section-or) |
- Bitwise OR (a | b) |
- {
- `M[dstOffset] = M[aOffset] OR M[bOffset]`
- } |
-
-
- | 0x0a |
- \[\`XOR\`\](#isa-section-xor) |
- Bitwise XOR (a ^ b) |
- {
- `M[dstOffset] = M[aOffset] XOR M[bOffset]`
- } |
-
-
- | 0x0b |
- \[\`NOT\`\](#isa-section-not) |
- Bitwise NOT (inversion) |
- {
- `M[dstOffset] = NOT M[aOffset]`
- } |
-
-
- | 0x0c |
- \[\`SHL\`\](#isa-section-shl) |
- Bitwise leftward shift (a << b) |
- {
- `M[dstOffset] = M[aOffset] << M[bOffset]`
- } |
-
-
- | 0x0d |
- \[\`SHR\`\](#isa-section-shr) |
- Bitwise rightward shift (a >> b) |
- {
- `M[dstOffset] = M[aOffset] >> M[bOffset]`
- } |
-
-
- | 0x0e |
- \[\`CAST\`\](#isa-section-cast) |
- Type cast |
- {
- `M[dstOffset] = cast(M[aOffset])`
- } |
-
-
- | 0x0f |
- \[\`ADDRESS\`\](#isa-section-address) |
- Get the address of the currently executing l2 contract |
- {
- `M[dstOffset] = context.environment.address`
- } |
-
-
- | 0x10 |
- \[\`SENDER\`\](#isa-section-sender) |
- Get the address of the sender (caller of the current context) |
- {
- `M[dstOffset] = context.environment.sender`
- } |
-
-
- | 0x11 |
- \[\`TRANSACTIONFEE\`\](#isa-section-transactionfee) |
- Get the computed transaction fee during teardown phase, zero otherwise |
- {
- `M[dstOffset] = context.environment.transactionFee`
- } |
-
-
- | 0x12 |
- \[\`CHAINID\`\](#isa-section-chainid) |
- Get this rollup's L1 chain ID |
- {
- `M[dstOffset] = context.environment.globals.chainId`
- } |
-
-
- | 0x13 |
- \[\`VERSION\`\](#isa-section-version) |
- Get this rollup's L2 version ID |
- {
- `M[dstOffset] = context.environment.globals.version`
- } |
-
-
- | 0x14 |
- \[\`BLOCKNUMBER\`\](#isa-section-blocknumber) |
- Get this L2 block's number |
- {
- `M[dstOffset] = context.environment.globals.blocknumber`
- } |
-
-
- | 0x15 |
- \[\`TIMESTAMP\`\](#isa-section-timestamp) |
- Get this L2 block's timestamp |
- {
- `M[dstOffset] = context.environment.globals.timestamp`
- } |
-
-
- | 0x16 |
- \[\`FEEPERL2GAS\`\](#isa-section-feeperl2gas) |
- Get the fee to be paid per "L2 gas" - constant for entire transaction |
- {
- `M[dstOffset] = context.environment.globals.feePerL2Gas`
- } |
-
-
- | 0x17 |
- \[\`FEEPERDAGAS\`\](#isa-section-feeperdagas) |
- Get the fee to be paid per "DA gas" - constant for entire transaction |
- {
- `M[dstOffset] = context.environment.globals.feePerDaGas`
- } |
-
-
- | 0x18 |
- \[\`CALLDATACOPY\`\](#isa-section-calldatacopy) |
- Copy calldata into memory |
- {
- `M[dstOffset:dstOffset+copySize] = context.environment.calldata[cdOffset:cdOffset+copySize]`
- } |
-
-
- | 0x19 |
- \[\`L2GASLEFT\`\](#isa-section-l2gasleft) |
- Remaining "L2 gas" for this call (after this instruction) |
- {
- `M[dstOffset] = context.MachineState.l2GasLeft`
- } |
-
-
- | 0x1a |
- \[\`DAGASLEFT\`\](#isa-section-dagasleft) |
- Remaining "DA gas" for this call (after this instruction) |
- {
- `M[dstOffset] = context.machineState.daGasLeft`
- } |
-
-
- | 0x1b |
- \[\`JUMP\`\](#isa-section-jump) |
- Jump to a location in the bytecode |
- {
- `context.machineState.pc = loc`
- } |
-
-
- | 0x1c |
- \[\`JUMPI\`\](#isa-section-jumpi) |
- Conditionally jump to a location in the bytecode |
- {
- `context.machineState.pc = M[condOffset] > 0 ? loc : context.machineState.pc`
- } |
-
-
- | 0x1d |
- \[\`INTERNALCALL\`\](#isa-section-internalcall) |
- Make an internal call. Push the current PC to the internal call stack and jump to the target location. |
-
-{`context.machineState.internalCallStack.push(context.machineState.pc)
-context.machineState.pc = loc`}
- |
-
-
- | 0x1e |
- \[\`INTERNALRETURN\`\](#isa-section-internalreturn) |
- Return from an internal call. Pop from the internal call stack and jump to the popped location. |
- {
- `context.machineState.pc = context.machineState.internalCallStack.pop()`
- } |
-
-
- | 0x1f |
- \[\`SET\`\](#isa-section-set) |
- Set a memory word from a constant in the bytecode |
- {
- `M[dstOffset] = const`
- } |
-
-
- | 0x20 |
- \[\`MOV\`\](#isa-section-mov) |
- Move a word from source memory location to destination |
- {
- `M[dstOffset] = M[srcOffset]`
- } |
-
-
- | 0x21 |
- \[\`CMOV\`\](#isa-section-cmov) |
- Move a word (conditionally chosen) from one memory location to another (`d = cond > 0 ? a : b`) |
- {
- `M[dstOffset] = M[condOffset] > 0 ? M[aOffset] : M[bOffset]`
- } |
-
-
- | 0x22 |
- \[\`SLOAD\`\](#isa-section-sload) |
- Load a word from this contract's persistent public storage. Zero is loaded for unwritten slots. |
-
-{`M[dstOffset] = S[M[slotOffset]]`}
- |
-
-
- | 0x23 |
- \[\`SSTORE\`\](#isa-section-sstore) |
- Write a word to this contract's persistent public storage |
-
-{`S[M[slotOffset]] = M[srcOffset]`}
- |
-
-
- | 0x24 |
- \[\`NOTEHASHEXISTS\`\](#isa-section-notehashexists) |
- Check whether a note hash exists in the note hash tree (as of the start of the current block) |
-
-{`exists = context.worldState.noteHashes.has({
- leafIndex: M[leafIndexOffset]
- leaf: hash(context.environment.address, M[noteHashOffset]),
-})
-M[existsOffset] = exists`}
- |
-
-
- | 0x25 |
- \[\`EMITNOTEHASH\`\](#isa-section-emitnotehash) |
- Emit a new note hash to be inserted into the note hash tree |
-
-{`context.worldState.noteHashes.append(
- hash(context.environment.address, M[noteHashOffset])
-)`}
- |
-
-
- | 0x26 |
- \[\`NULLIFIEREXISTS\`\](#isa-section-nullifierexists) |
- Check whether a nullifier exists in the nullifier tree (including nullifiers from earlier in the current transaction or from earlier in the current block) |
-
-{`exists = pendingNullifiers.has(M[addressOffset], M[nullifierOffset]) || context.worldState.nullifiers.has(
- hash(M[addressOffset], M[nullifierOffset])
-)
-M[existsOffset] = exists`}
- |
-
-
- | 0x27 |
- \[\`EMITNULLIFIER\`\](#isa-section-emitnullifier) |
- Emit a new nullifier to be inserted into the nullifier tree |
-
-{`context.worldState.nullifiers.append(
- hash(context.environment.address, M[nullifierOffset])
-)`}
- |
-
-
- | 0x28 |
- \[\`L1TOL2MSGEXISTS\`\](#isa-section-l1tol2msgexists) |
- Check if a message exists in the L1-to-L2 message tree |
-
-{`exists = context.worldState.l1ToL2Messages.has({
- leafIndex: M[msgLeafIndexOffset], leaf: M[msgHashOffset]
-})
-M[existsOffset] = exists`}
- |
-
-
- | 0x29 |
- \[\`GETCONTRACTINSTANCE\`\](#isa-section-getcontractinstance) |
- Copies contract instance data to memory |
-
-{`M[dstOffset:dstOffset+CONTRACT_INSTANCE_SIZE+1] = [
- instance_found_in_address,
- instance.salt ?? 0,
- instance.deployer ?? 0,
- instance.contractClassId ?? 0,
- instance.initializationHash ?? 0,
- instance.portalContractAddress ?? 0,
- instance.publicKeysHash ?? 0,
-]`}
- |
-
-
- | 0x2a |
- \[\`EMITUNENCRYPTEDLOG\`\](#isa-section-emitunencryptedlog) |
- Emit an unencrypted log |
-
-{`context.accruedSubstate.unencryptedLogs.append(
- UnencryptedLog {
- address: context.environment.address,
- log: M[logOffset:logOffset+M[logSizeOffset]],
- }
-)`}
- |
-
-
- | 0x2b |
- \[\`SENDL2TOL1MSG\`\](#isa-section-sendl2tol1msg) |
- Send an L2-to-L1 message |
-
-{`context.accruedSubstate.sentL2ToL1Messages.append(
- SentL2ToL1Message {
- address: context.environment.address,
- recipient: M[recipientOffset],
- message: M[contentOffset]
- }
-)`}
- |
-
-
- | 0x2c |
- \[\`CALL\`\](#isa-section-call) |
- Call into another contract |
-
-{`// instr.args are { gasOffset, addrOffset, argsOffset, retOffset, retSize }
-chargeGas(context,
- l2GasCost=M[instr.args.gasOffset],
- daGasCost=M[instr.args.gasOffset+1])
-traceNestedCall(context, instr.args.addrOffset)
-nestedContext = deriveContext(context, instr.args, isStaticCall=false)
-execute(nestedContext)
-updateContextAfterNestedCall(context, instr.args, nestedContext)`}
- |
-
-
- | 0x2d |
- \[\`STATICCALL\`\](#isa-section-staticcall) |
- Call into another contract, disallowing World State and Accrued Substate modifications |
-
-{`// instr.args are { gasOffset, addrOffset, argsOffset, retOffset, retSize }
-chargeGas(context,
- l2GasCost=M[instr.args.gasOffset],
- daGasCost=M[instr.args.gasOffset+1])
-traceNestedCall(context, instr.args.addrOffset)
-nestedContext = deriveContext(context, instr.args, isStaticCall=true
-execute(nestedContext)
-updateContextAfterNestedCall(context, instr.args, nestedContext)`}
- |
-
-
- | 0x2e |
- \[\`RETURN\`\](#isa-section-return) |
- Halt execution within this context (without revert), optionally returning some data |
-
-{`context.contractCallResults.output = M[retOffset:retOffset+retSize]
-halt`}
- |
-
-
- | 0x2f |
- \[\`REVERT\`\](#isa-section-revert) |
- Halt execution within this context as `reverted`, optionally returning some data |
-
-{`context.contractCallResults.output = M[retOffset:retOffset+retSize]
-context.contractCallResults.reverted = true
-halt`}
- |
-
-
- | 0x30 |
- \[\`TORADIXLE\`\](#isa-section-to_radix_le) |
- Convert a word to an array of limbs in little-endian radix form |
- TBD: Storage of limbs and if T[dstOffset] is constrained to U8 |
-
-
-
-
-## Instructions
-
-###