symbolic n,m;
d11 := {[i,j] -> [i,2i+j] : 1 <= i <= n && 1 <= j,2i+j <= m};
d12 := {[i,j] -> [i,j+4] : 1 <= i <= n && 1 <= j,j+4 <= m};
d := d11 union d12;
d+;
d+ compose d;
d11 - (d+ compose d);
gist d11 - (d+ compose d) given d11;
d12 - (d+ compose d);
gist d12 - (d+ compose d) given d12;