1. y : Top@i
2. x : Top@i
⊢ listid([x / y]) ~ [x / listid(y)]
{ Try (RW (AddrC [1] (UnfoldC `listid` ANDTHENC ReduceC)) 0)⋅ }
⊢ [x / rec-case(y) of [] => [] | h::t => r.[h / r]] ~ [x / listid(y)]