by T2Cert
| 0 | 0 | 1: | 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 1 − x_0 ≤ 0 ∧ − x_0 + x_post + y_0 ≤ 0 ∧ x_0 − x_post − y_0 ≤ 0 ∧ −1 − y_0 + y_post ≤ 0 ∧ 1 + y_0 − y_post ≤ 0 ∧ x_0 − x_post ≤ 0 ∧ − x_0 + x_post ≤ 0 ∧ y_0 − y_post ≤ 0 ∧ − y_0 + y_post ≤ 0 | |
| 1 | 1 | 0: | − y_post + y_post ≤ 0 ∧ y_post − y_post ≤ 0 ∧ − y_0 + y_0 ≤ 0 ∧ y_0 − y_0 ≤ 0 ∧ − x_post + x_post ≤ 0 ∧ x_post − x_post ≤ 0 ∧ − x_0 + x_0 ≤ 0 ∧ x_0 − x_0 ≤ 0 | |
| 2 | 2 | 0: | 1 − y_0 ≤ 0 ∧ − y_post + y_post ≤ 0 ∧ y_post − y_post ≤ 0 ∧ − y_0 + y_0 ≤ 0 ∧ y_0 − y_0 ≤ 0 ∧ − x_post + x_post ≤ 0 ∧ x_post − x_post ≤ 0 ∧ − x_0 + x_0 ≤ 0 ∧ x_0 − x_0 ≤ 0 | |
| 3 | 3 | 2: | − y_post + y_post ≤ 0 ∧ y_post − y_post ≤ 0 ∧ − y_0 + y_0 ≤ 0 ∧ y_0 − y_0 ≤ 0 ∧ − x_post + x_post ≤ 0 ∧ x_post − x_post ≤ 0 ∧ − x_0 + x_0 ≤ 0 ∧ x_0 − x_0 ≤ 0 | 
| 0 | 4 | : | − y_post + y_post ≤ 0 ∧ y_post − y_post ≤ 0 ∧ − y_0 + y_0 ≤ 0 ∧ y_0 − y_0 ≤ 0 ∧ − x_post + x_post ≤ 0 ∧ x_post − x_post ≤ 0 ∧ − x_0 + x_0 ≤ 0 ∧ x_0 − x_0 ≤ 0 | 
We remove transitions , using the following ranking functions, which are bounded by −11.
| 3: | 0 | 
| 2: | 0 | 
| 0: | 0 | 
| 1: | 0 | 
| : | −4 | 
| : | −5 | 
| : | −6 | 
| : | −6 | 
| : | −6 | 
| : | −6 | 
| 5 | lexWeak[ [0, 0, 0, 0, 0, 0, 0, 0] ] | 
| lexWeak[ [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] ] | |
| lexWeak[ [0, 0, 0, 0, 0, 0, 0, 0] ] | |
| lexStrict[ [0, 0, 0, 0, 0, 0, 0, 0, 0] , [0, 0, 0, 0, 0, 0, 0, 0, 0] ] | |
| lexStrict[ [0, 0, 0, 0, 0, 0, 0, 0] , [0, 0, 0, 0, 0, 0, 0, 0] ] | 
The following skip-transition is inserted and corresponding redirections w.r.t. the old location are performed.
7 : − y_post + y_post ≤ 0 ∧ y_post − y_post ≤ 0 ∧ − y_0 + y_0 ≤ 0 ∧ y_0 − y_0 ≤ 0 ∧ − x_post + x_post ≤ 0 ∧ x_post − x_post ≤ 0 ∧ − x_0 + x_0 ≤ 0 ∧ x_0 − x_0 ≤ 0
The following skip-transition is inserted and corresponding redirections w.r.t. the old location are performed.
5 : − y_post + y_post ≤ 0 ∧ y_post − y_post ≤ 0 ∧ − y_0 + y_0 ≤ 0 ∧ y_0 − y_0 ≤ 0 ∧ − x_post + x_post ≤ 0 ∧ x_post − x_post ≤ 0 ∧ − x_0 + x_0 ≤ 0 ∧ x_0 − x_0 ≤ 0
We consider subproblems for each of the 1 SCC(s) of the program graph.
Here we consider the SCC { , , , }.
We consider 1 subproblems corresponding to sets of cut-point transitions as follows.
The new variable __snapshot_0_y_post is introduced. The transition formulas are extended as follows:
| 5: | __snapshot_0_y_post ≤ y_post ∧ y_post ≤ __snapshot_0_y_post | 
| 7: | __snapshot_0_y_post ≤ __snapshot_0_y_post ∧ __snapshot_0_y_post ≤ __snapshot_0_y_post | 
| : | __snapshot_0_y_post ≤ __snapshot_0_y_post ∧ __snapshot_0_y_post ≤ __snapshot_0_y_post | 
| : | __snapshot_0_y_post ≤ __snapshot_0_y_post ∧ __snapshot_0_y_post ≤ __snapshot_0_y_post | 
The new variable __snapshot_0_y_0 is introduced. The transition formulas are extended as follows:
| 5: | __snapshot_0_y_0 ≤ y_0 ∧ y_0 ≤ __snapshot_0_y_0 | 
| 7: | __snapshot_0_y_0 ≤ __snapshot_0_y_0 ∧ __snapshot_0_y_0 ≤ __snapshot_0_y_0 | 
| : | __snapshot_0_y_0 ≤ __snapshot_0_y_0 ∧ __snapshot_0_y_0 ≤ __snapshot_0_y_0 | 
| : | __snapshot_0_y_0 ≤ __snapshot_0_y_0 ∧ __snapshot_0_y_0 ≤ __snapshot_0_y_0 | 
The new variable __snapshot_0_x_post is introduced. The transition formulas are extended as follows:
| 5: | __snapshot_0_x_post ≤ x_post ∧ x_post ≤ __snapshot_0_x_post | 
| 7: | __snapshot_0_x_post ≤ __snapshot_0_x_post ∧ __snapshot_0_x_post ≤ __snapshot_0_x_post | 
| : | __snapshot_0_x_post ≤ __snapshot_0_x_post ∧ __snapshot_0_x_post ≤ __snapshot_0_x_post | 
| : | __snapshot_0_x_post ≤ __snapshot_0_x_post ∧ __snapshot_0_x_post ≤ __snapshot_0_x_post | 
The new variable __snapshot_0_x_0 is introduced. The transition formulas are extended as follows:
| 5: | __snapshot_0_x_0 ≤ x_0 ∧ x_0 ≤ __snapshot_0_x_0 | 
| 7: | __snapshot_0_x_0 ≤ __snapshot_0_x_0 ∧ __snapshot_0_x_0 ≤ __snapshot_0_x_0 | 
| : | __snapshot_0_x_0 ≤ __snapshot_0_x_0 ∧ __snapshot_0_x_0 ≤ __snapshot_0_x_0 | 
| : | __snapshot_0_x_0 ≤ __snapshot_0_x_0 ∧ __snapshot_0_x_0 ≤ __snapshot_0_x_0 | 
The following invariants are asserted.
| 0: | 1 − y_0 ≤ 0 | 
| 1: | 1 − y_0 ≤ 0 | 
| 2: | TRUE | 
| 3: | TRUE | 
| : | 1 − y_0 ≤ 0 ∨ 1 − __snapshot_0_x_0 + x_0 ≤ 0 ∧ 1 − __snapshot_0_x_0 ≤ 0 ∧ 1 − y_0 ≤ 0 | 
| : | 1 − __snapshot_0_x_0 + x_0 ≤ 0 ∧ 1 − __snapshot_0_x_0 ≤ 0 ∧ 1 − y_0 ≤ 0 | 
| : | − __snapshot_0_x_0 + x_0 ≤ 0 ∧ 1 − __snapshot_0_x_0 + x_0 − y_0 ≤ 0 ∧ − y_0 ≤ 0 | 
| : | 1 − __snapshot_0_x_0 + x_0 ≤ 0 ∧ 1 − __snapshot_0_x_0 ≤ 0 ∧ 1 − y_0 ≤ 0 | 
The invariants are proved as follows.
| 0 | (3) | TRUE | ||
| 1 | (2) | TRUE | ||
| 2 | (0) | 1 − y_0 ≤ 0 | ||
| 3 | (1) | 1 − y_0 ≤ 0 | ||
| 4 | () | 1 − y_0 ≤ 0 | ||
| 5 | () | − __snapshot_0_x_0 + x_0 ≤ 0 ∧ 1 − __snapshot_0_x_0 + x_0 − y_0 ≤ 0 ∧ − y_0 ≤ 0 | ||
| 10 | (0) | 1 − y_0 ≤ 0 | ||
| 14 | () | 1 − __snapshot_0_x_0 + x_0 ≤ 0 ∧ 1 − __snapshot_0_x_0 ≤ 0 ∧ 1 − y_0 ≤ 0 | ||
| 15 | () | 1 − __snapshot_0_x_0 + x_0 ≤ 0 ∧ 1 − __snapshot_0_x_0 ≤ 0 ∧ 1 − y_0 ≤ 0 | ||
| 16 | () | 1 − __snapshot_0_x_0 + x_0 ≤ 0 ∧ 1 − __snapshot_0_x_0 ≤ 0 ∧ 1 − y_0 ≤ 0 | ||
| 17 | () | − __snapshot_0_x_0 + x_0 ≤ 0 ∧ 1 − __snapshot_0_x_0 + x_0 − y_0 ≤ 0 ∧ − y_0 ≤ 0 | 
| 10 | → 2 | Hint: [1] | ||||||
| 17 | → 5 | 
                  Hint:
                  
        distribute conclusion
  | 
| 0 | 3 1 | Hint: auto | ||||||
| 1 | 2 2 | Hint: [1, 0, 0, 0, 1, 0, 0, 0, 0] | ||||||
| 2 | 0 3 | Hint: [1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1] | ||||||
| 2 | 4 4 | Hint: [1, 0, 0, 0, 1, 0, 0, 0, 0] | ||||||
| 3 | 1 10 | Hint: [1, 0, 0, 0, 1, 0, 0, 0, 0] | ||||||
| 4 | 5 5 | 
                  Hint:
                  
        distribute conclusion
  | 
||||||
| 5 | 14 | 
                  Hint:
                  
        distribute conclusion
  | 
||||||
| 14 | 15 | 
                  Hint:
                  
        distribute conclusion
  | 
||||||
| 15 | 7 16 | 
                  Hint:
                  
        distribute conclusion
  | 
||||||
| 16 | 5 17 | 
                  Hint:
                  
        distribute conclusion
  | 
We remove transition 7 using the following ranking functions, which are bounded by −1.
| : | x_0 | 
| : | __snapshot_0_x_0 | 
| : | __snapshot_0_x_0 | 
| : | __snapshot_0_x_0 | 
| 5 | 
        distribute assertion
  | 
||||
| 7 | lexStrict[ [1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0] , [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] ] | ||||
| lexWeak[ [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0] ] | |||||
| lexWeak[ [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0] ] | 
We remove transition 5 using the following ranking functions, which are bounded by −6.
| : | −1 | 
| : | −2 | 
| : | −3 | 
| : | −4 | 
| 5 | 
        distribute assertion
  | 
||||
| lexWeak[ [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] ] | |||||
| lexWeak[ [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] ] | 
There remain no cut-point transition to consider. Hence the cooperation termination is trivial.
T2Cert