A trace of the executed singleton-cell loop. Each head is a proper nontrivial cell at entry, and the cell contract describes its actual body. The generation is fixed while the touched cells are processed.
- nil {n level stamp : Nat} {s : RefineSt n} : Pass level stamp [] s s
- cons {n level stamp first : Nat} {s t : RefineSt n} {rest : List Nat} {u : RefineSt n} (hc : IsCell s.ptn level first (s.cellend[first]! + 1 - first)) (hf : first < s.cellend[first]!) (hb : s.cellend[first]! < n) (hstep : Cell level first (s.cellend[first]! + 1) (fun (v : Nat) => s.vmarks[v]! == stamp) s t) (ht : Pass level stamp rest t u) : Pass level stamp (first :: rest) s u