substitution-2.in 134 Bytes
{ s0[i, 4 + i] -> [i, 4 + i] : i >= -3 and i <= 96 }
{  :  }
{ [i0, i1] -> atomic[o0] : o0 <= 0; [i0, i1] -> separate[o0] : o0 >= 1 }