1domain: "[M] -> { S2[i0, i1, i2] : i0 >= 1 and i0 <= -1 + M and i1 >= 0 and i2 >= 1 + i1 and i2 <= -1 + M; S1[i0, i1, i2] : i0 >= 1 and i0 <= -1 + M and i1 >= 0 and i2 >= 0 and i2 <= -1 + M - i1 }"
2child:
3  context: "[M] -> { [] }"
4  child:
5    schedule: "[M] -> [{ S1[i0, i1, i2] -> [(i0 + i1 + i2)]; S2[i0, i1, i2] -> [(i0 + i2)] }]"
6    options: "[M] -> { separate[i0] }"
7    child:
8      schedule: "[M] -> [{ S1[i0, i1, i2] -> [(-i2)]; S2[i0, i1, i2] -> [(i1 - i2)] }]"
9      options: "[M] -> { separate[i0] }"
10      child:
11        sequence:
12        - filter: "[M] -> { S1[i0, i1, i2] }"
13          child:
14            schedule: "[M] -> [{ S1[i0, i1, i2] -> [(i2)] }]"
15            options: "[M] -> { separate[i0] }"
16        - filter: "[M] -> { S2[i0, i1, i2] }"
17          child:
18            schedule: "[M] -> [{ S2[i0, i1, i2] -> [(i2)] }]"
19            options: "[M] -> { separate[i0] }"
20