Honeycomb

4. RTL as a Lean DSL🔗

The generated Honeycomb cell is not a raw SystemVerilog string. It is a Lean value in a small RTL DSL. The emitter renders that value, and CI checks that the checked-in rtl/honeycomb_cell.sv is exactly the renderer output.

The proof boundary is the DSL value. The trusted text renderer is intentionally small; if Honeycomb later needs a parser-level guarantee about external SystemVerilog tooling, that can be added without changing the processor contract.

namespace Honeycomb Honeycomb.honeycombCellDesign_refines_isa (c : CellState) (hbusy : c.busy = true) (hhalt : c.arch.halted = false) : step defaultConfig (programOf c.imem) c.arch = some (cellExecCycle c).arch#check honeycombCellDesign_refines_isa end Honeycomb

The current refinement theorem covers the execute path: when the cell is busy and not halted, one DSL cycle advances the architectural state exactly as the ISA step function does for the decoded instruction at pc.