A separation logic for sequences in pointer programs and its decidability