a2b:={[1]->[2]};

b2c1:={[i]->[i]};
b2c2:={[i]->[j]};

a2a:={[i]->[i]};
b2b:={[i]->[i]};
c2c:={[i]->[i]};



reachable (a,b,c){ a->b:a2b, b->c:b2c1, a->a:a2a, b->b:b2b, c->c:c2c,
          a:{[1]}};

reachable (a,b,c) { a->b:a2b, b->c:b2c2, a->a:a2a, b->b:b2b, c->c:c2c,
          a:{[1]}};

b2c3:={[i]->[i+1]};
b2b2:={[i]->[i+1]};

reachable (a,b,c){ a->b:a2b, b->c:b2c3, a->a:a2a, b->b:b2b2, c->c:c2c,
                   a:{[1]}};

b2c3:={[i]->[i]};

reachable (a,b,c){ a->b:a2b, b->c:b2c3, a->a:a2a, b->b:b2b2, c->c:c2c,
          a:{[1]}};