LTS Termination Proof

by T2Cert

Input

Integer Transition System

Proof

1 Switch to Cooperation Termination Proof

We consider the following cutpoint-transitions:
1 41 1: x5_post + x5_post ≤ 0x5_postx5_post ≤ 0x5_0 + x5_0 ≤ 0x5_0x5_0 ≤ 0x4_post + x4_post ≤ 0x4_postx4_post ≤ 0x4_0 + x4_0 ≤ 0x4_0x4_0 ≤ 0x3_post + x3_post ≤ 0x3_postx3_post ≤ 0x3_0 + x3_0 ≤ 0x3_0x3_0 ≤ 0x2_post + x2_post ≤ 0x2_postx2_post ≤ 0x2_0 + x2_0 ≤ 0x2_0x2_0 ≤ 0x1_post + x1_post ≤ 0x1_postx1_post ≤ 0x1_0 + x1_0 ≤ 0x1_0x1_0 ≤ 0x0_post + x0_post ≤ 0x0_postx0_post ≤ 0x0_0 + x0_0 ≤ 0x0_0x0_0 ≤ 0oldX9_post + oldX9_post ≤ 0oldX9_postoldX9_post ≤ 0oldX9_0 + oldX9_0 ≤ 0oldX9_0oldX9_0 ≤ 0oldX8_post + oldX8_post ≤ 0oldX8_postoldX8_post ≤ 0oldX8_0 + oldX8_0 ≤ 0oldX8_0oldX8_0 ≤ 0oldX7_post + oldX7_post ≤ 0oldX7_postoldX7_post ≤ 0oldX7_0 + oldX7_0 ≤ 0oldX7_0oldX7_0 ≤ 0oldX6_post + oldX6_post ≤ 0oldX6_postoldX6_post ≤ 0oldX6_0 + oldX6_0 ≤ 0oldX6_0oldX6_0 ≤ 0oldX5_post + oldX5_post ≤ 0oldX5_postoldX5_post ≤ 0oldX5_0 + oldX5_0 ≤ 0oldX5_0oldX5_0 ≤ 0oldX4_post + oldX4_post ≤ 0oldX4_postoldX4_post ≤ 0oldX4_0 + oldX4_0 ≤ 0oldX4_0oldX4_0 ≤ 0oldX3_post + oldX3_post ≤ 0oldX3_postoldX3_post ≤ 0oldX3_0 + oldX3_0 ≤ 0oldX3_0oldX3_0 ≤ 0oldX2_post + oldX2_post ≤ 0oldX2_postoldX2_post ≤ 0oldX2_0 + oldX2_0 ≤ 0oldX2_0oldX2_0 ≤ 0oldX1_post + oldX1_post ≤ 0oldX1_postoldX1_post ≤ 0oldX1_0 + oldX1_0 ≤ 0oldX1_0oldX1_0 ≤ 0oldX11_post + oldX11_post ≤ 0oldX11_postoldX11_post ≤ 0oldX11_0 + oldX11_0 ≤ 0oldX11_0oldX11_0 ≤ 0oldX10_post + oldX10_post ≤ 0oldX10_postoldX10_post ≤ 0oldX10_0 + oldX10_0 ≤ 0oldX10_0oldX10_0 ≤ 0oldX0_post + oldX0_post ≤ 0oldX0_postoldX0_post ≤ 0oldX0_0 + oldX0_0 ≤ 0oldX0_0oldX0_0 ≤ 0
6 48 6: x5_post + x5_post ≤ 0x5_postx5_post ≤ 0x5_0 + x5_0 ≤ 0x5_0x5_0 ≤ 0x4_post + x4_post ≤ 0x4_postx4_post ≤ 0x4_0 + x4_0 ≤ 0x4_0x4_0 ≤ 0x3_post + x3_post ≤ 0x3_postx3_post ≤ 0x3_0 + x3_0 ≤ 0x3_0x3_0 ≤ 0x2_post + x2_post ≤ 0x2_postx2_post ≤ 0x2_0 + x2_0 ≤ 0x2_0x2_0 ≤ 0x1_post + x1_post ≤ 0x1_postx1_post ≤ 0x1_0 + x1_0 ≤ 0x1_0x1_0 ≤ 0x0_post + x0_post ≤ 0x0_postx0_post ≤ 0x0_0 + x0_0 ≤ 0x0_0x0_0 ≤ 0oldX9_post + oldX9_post ≤ 0oldX9_postoldX9_post ≤ 0oldX9_0 + oldX9_0 ≤ 0oldX9_0oldX9_0 ≤ 0oldX8_post + oldX8_post ≤ 0oldX8_postoldX8_post ≤ 0oldX8_0 + oldX8_0 ≤ 0oldX8_0oldX8_0 ≤ 0oldX7_post + oldX7_post ≤ 0oldX7_postoldX7_post ≤ 0oldX7_0 + oldX7_0 ≤ 0oldX7_0oldX7_0 ≤ 0oldX6_post + oldX6_post ≤ 0oldX6_postoldX6_post ≤ 0oldX6_0 + oldX6_0 ≤ 0oldX6_0oldX6_0 ≤ 0oldX5_post + oldX5_post ≤ 0oldX5_postoldX5_post ≤ 0oldX5_0 + oldX5_0 ≤ 0oldX5_0oldX5_0 ≤ 0oldX4_post + oldX4_post ≤ 0oldX4_postoldX4_post ≤ 0oldX4_0 + oldX4_0 ≤ 0oldX4_0oldX4_0 ≤ 0oldX3_post + oldX3_post ≤ 0oldX3_postoldX3_post ≤ 0oldX3_0 + oldX3_0 ≤ 0oldX3_0oldX3_0 ≤ 0oldX2_post + oldX2_post ≤ 0oldX2_postoldX2_post ≤ 0oldX2_0 + oldX2_0 ≤ 0oldX2_0oldX2_0 ≤ 0oldX1_post + oldX1_post ≤ 0oldX1_postoldX1_post ≤ 0oldX1_0 + oldX1_0 ≤ 0oldX1_0oldX1_0 ≤ 0oldX11_post + oldX11_post ≤ 0oldX11_postoldX11_post ≤ 0oldX11_0 + oldX11_0 ≤ 0oldX11_0oldX11_0 ≤ 0oldX10_post + oldX10_post ≤ 0oldX10_postoldX10_post ≤ 0oldX10_0 + oldX10_0 ≤ 0oldX10_0oldX10_0 ≤ 0oldX0_post + oldX0_post ≤ 0oldX0_postoldX0_post ≤ 0oldX0_0 + oldX0_0 ≤ 0oldX0_0oldX0_0 ≤ 0
and for every transition t, a duplicate t is considered.

2 Transition Removal

We remove transitions 1, 3, 6, 8, 16, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 using the following ranking functions, which are bounded by −25.

17: 0
15: 0
7: 0
5: 0
6: 0
4: 0
16: 0
0: 0
1: 0
2: 0
8: 0
9: 0
10: 0
11: 0
12: 0
13: 0
3: 0
14: 0
17: −10
15: −11
7: −12
5: −13
6: −13
6_var_snapshot: −13
6*: −13
4: −16
16: −17
0: −18
1: −18
2: −18
8: −18
9: −18
10: −18
11: −18
12: −18
13: −18
1_var_snapshot: −18
1*: −18
3: −22
14: −23

3 Location Addition

The following skip-transition is inserted and corresponding redirections w.r.t. the old location are performed.

1* 44 1: x5_post + x5_post ≤ 0x5_postx5_post ≤ 0x5_0 + x5_0 ≤ 0x5_0x5_0 ≤ 0x4_post + x4_post ≤ 0x4_postx4_post ≤ 0x4_0 + x4_0 ≤ 0x4_0x4_0 ≤ 0x3_post + x3_post ≤ 0x3_postx3_post ≤ 0x3_0 + x3_0 ≤ 0x3_0x3_0 ≤ 0x2_post + x2_post ≤ 0x2_postx2_post ≤ 0x2_0 + x2_0 ≤ 0x2_0x2_0 ≤ 0x1_post + x1_post ≤ 0x1_postx1_post ≤ 0x1_0 + x1_0 ≤ 0x1_0x1_0 ≤ 0x0_post + x0_post ≤ 0x0_postx0_post ≤ 0x0_0 + x0_0 ≤ 0x0_0x0_0 ≤ 0oldX9_post + oldX9_post ≤ 0oldX9_postoldX9_post ≤ 0oldX9_0 + oldX9_0 ≤ 0oldX9_0oldX9_0 ≤ 0oldX8_post + oldX8_post ≤ 0oldX8_postoldX8_post ≤ 0oldX8_0 + oldX8_0 ≤ 0oldX8_0oldX8_0 ≤ 0oldX7_post + oldX7_post ≤ 0oldX7_postoldX7_post ≤ 0oldX7_0 + oldX7_0 ≤ 0oldX7_0oldX7_0 ≤ 0oldX6_post + oldX6_post ≤ 0oldX6_postoldX6_post ≤ 0oldX6_0 + oldX6_0 ≤ 0oldX6_0oldX6_0 ≤ 0oldX5_post + oldX5_post ≤ 0oldX5_postoldX5_post ≤ 0oldX5_0 + oldX5_0 ≤ 0oldX5_0oldX5_0 ≤ 0oldX4_post + oldX4_post ≤ 0oldX4_postoldX4_post ≤ 0oldX4_0 + oldX4_0 ≤ 0oldX4_0oldX4_0 ≤ 0oldX3_post + oldX3_post ≤ 0oldX3_postoldX3_post ≤ 0oldX3_0 + oldX3_0 ≤ 0oldX3_0oldX3_0 ≤ 0oldX2_post + oldX2_post ≤ 0oldX2_postoldX2_post ≤ 0oldX2_0 + oldX2_0 ≤ 0oldX2_0oldX2_0 ≤ 0oldX1_post + oldX1_post ≤ 0oldX1_postoldX1_post ≤ 0oldX1_0 + oldX1_0 ≤ 0oldX1_0oldX1_0 ≤ 0oldX11_post + oldX11_post ≤ 0oldX11_postoldX11_post ≤ 0oldX11_0 + oldX11_0 ≤ 0oldX11_0oldX11_0 ≤ 0oldX10_post + oldX10_post ≤ 0oldX10_postoldX10_post ≤ 0oldX10_0 + oldX10_0 ≤ 0oldX10_0oldX10_0 ≤ 0oldX0_post + oldX0_post ≤ 0oldX0_postoldX0_post ≤ 0oldX0_0 + oldX0_0 ≤ 0oldX0_0oldX0_0 ≤ 0

4 Location Addition

The following skip-transition is inserted and corresponding redirections w.r.t. the old location are performed.

1 42 1_var_snapshot: x5_post + x5_post ≤ 0x5_postx5_post ≤ 0x5_0 + x5_0 ≤ 0x5_0x5_0 ≤ 0x4_post + x4_post ≤ 0x4_postx4_post ≤ 0x4_0 + x4_0 ≤ 0x4_0x4_0 ≤ 0x3_post + x3_post ≤ 0x3_postx3_post ≤ 0x3_0 + x3_0 ≤ 0x3_0x3_0 ≤ 0x2_post + x2_post ≤ 0x2_postx2_post ≤ 0x2_0 + x2_0 ≤ 0x2_0x2_0 ≤ 0x1_post + x1_post ≤ 0x1_postx1_post ≤ 0x1_0 + x1_0 ≤ 0x1_0x1_0 ≤ 0x0_post + x0_post ≤ 0x0_postx0_post ≤ 0x0_0 + x0_0 ≤ 0x0_0x0_0 ≤ 0oldX9_post + oldX9_post ≤ 0oldX9_postoldX9_post ≤ 0oldX9_0 + oldX9_0 ≤ 0oldX9_0oldX9_0 ≤ 0oldX8_post + oldX8_post ≤ 0oldX8_postoldX8_post ≤ 0oldX8_0 + oldX8_0 ≤ 0oldX8_0oldX8_0 ≤ 0oldX7_post + oldX7_post ≤ 0oldX7_postoldX7_post ≤ 0oldX7_0 + oldX7_0 ≤ 0oldX7_0oldX7_0 ≤ 0oldX6_post + oldX6_post ≤ 0oldX6_postoldX6_post ≤ 0oldX6_0 + oldX6_0 ≤ 0oldX6_0oldX6_0 ≤ 0oldX5_post + oldX5_post ≤ 0oldX5_postoldX5_post ≤ 0oldX5_0 + oldX5_0 ≤ 0oldX5_0oldX5_0 ≤ 0oldX4_post + oldX4_post ≤ 0oldX4_postoldX4_post ≤ 0oldX4_0 + oldX4_0 ≤ 0oldX4_0oldX4_0 ≤ 0oldX3_post + oldX3_post ≤ 0oldX3_postoldX3_post ≤ 0oldX3_0 + oldX3_0 ≤ 0oldX3_0oldX3_0 ≤ 0oldX2_post + oldX2_post ≤ 0oldX2_postoldX2_post ≤ 0oldX2_0 + oldX2_0 ≤ 0oldX2_0oldX2_0 ≤ 0oldX1_post + oldX1_post ≤ 0oldX1_postoldX1_post ≤ 0oldX1_0 + oldX1_0 ≤ 0oldX1_0oldX1_0 ≤ 0oldX11_post + oldX11_post ≤ 0oldX11_postoldX11_post ≤ 0oldX11_0 + oldX11_0 ≤ 0oldX11_0oldX11_0 ≤ 0oldX10_post + oldX10_post ≤ 0oldX10_postoldX10_post ≤ 0oldX10_0 + oldX10_0 ≤ 0oldX10_0oldX10_0 ≤ 0oldX0_post + oldX0_post ≤ 0oldX0_postoldX0_post ≤ 0oldX0_0 + oldX0_0 ≤ 0oldX0_0oldX0_0 ≤ 0

5 Location Addition

The following skip-transition is inserted and corresponding redirections w.r.t. the old location are performed.

6* 51 6: x5_post + x5_post ≤ 0x5_postx5_post ≤ 0x5_0 + x5_0 ≤ 0x5_0x5_0 ≤ 0x4_post + x4_post ≤ 0x4_postx4_post ≤ 0x4_0 + x4_0 ≤ 0x4_0x4_0 ≤ 0x3_post + x3_post ≤ 0x3_postx3_post ≤ 0x3_0 + x3_0 ≤ 0x3_0x3_0 ≤ 0x2_post + x2_post ≤ 0x2_postx2_post ≤ 0x2_0 + x2_0 ≤ 0x2_0x2_0 ≤ 0x1_post + x1_post ≤ 0x1_postx1_post ≤ 0x1_0 + x1_0 ≤ 0x1_0x1_0 ≤ 0x0_post + x0_post ≤ 0x0_postx0_post ≤ 0x0_0 + x0_0 ≤ 0x0_0x0_0 ≤ 0oldX9_post + oldX9_post ≤ 0oldX9_postoldX9_post ≤ 0oldX9_0 + oldX9_0 ≤ 0oldX9_0oldX9_0 ≤ 0oldX8_post + oldX8_post ≤ 0oldX8_postoldX8_post ≤ 0oldX8_0 + oldX8_0 ≤ 0oldX8_0oldX8_0 ≤ 0oldX7_post + oldX7_post ≤ 0oldX7_postoldX7_post ≤ 0oldX7_0 + oldX7_0 ≤ 0oldX7_0oldX7_0 ≤ 0oldX6_post + oldX6_post ≤ 0oldX6_postoldX6_post ≤ 0oldX6_0 + oldX6_0 ≤ 0oldX6_0oldX6_0 ≤ 0oldX5_post + oldX5_post ≤ 0oldX5_postoldX5_post ≤ 0oldX5_0 + oldX5_0 ≤ 0oldX5_0oldX5_0 ≤ 0oldX4_post + oldX4_post ≤ 0oldX4_postoldX4_post ≤ 0oldX4_0 + oldX4_0 ≤ 0oldX4_0oldX4_0 ≤ 0oldX3_post + oldX3_post ≤ 0oldX3_postoldX3_post ≤ 0oldX3_0 + oldX3_0 ≤ 0oldX3_0oldX3_0 ≤ 0oldX2_post + oldX2_post ≤ 0oldX2_postoldX2_post ≤ 0oldX2_0 + oldX2_0 ≤ 0oldX2_0oldX2_0 ≤ 0oldX1_post + oldX1_post ≤ 0oldX1_postoldX1_post ≤ 0oldX1_0 + oldX1_0 ≤ 0oldX1_0oldX1_0 ≤ 0oldX11_post + oldX11_post ≤ 0oldX11_postoldX11_post ≤ 0oldX11_0 + oldX11_0 ≤ 0oldX11_0oldX11_0 ≤ 0oldX10_post + oldX10_post ≤ 0oldX10_postoldX10_post ≤ 0oldX10_0 + oldX10_0 ≤ 0oldX10_0oldX10_0 ≤ 0oldX0_post + oldX0_post ≤ 0oldX0_postoldX0_post ≤ 0oldX0_0 + oldX0_0 ≤ 0oldX0_0oldX0_0 ≤ 0

6 Location Addition

The following skip-transition is inserted and corresponding redirections w.r.t. the old location are performed.

6 49 6_var_snapshot: x5_post + x5_post ≤ 0x5_postx5_post ≤ 0x5_0 + x5_0 ≤ 0x5_0x5_0 ≤ 0x4_post + x4_post ≤ 0x4_postx4_post ≤ 0x4_0 + x4_0 ≤ 0x4_0x4_0 ≤ 0x3_post + x3_post ≤ 0x3_postx3_post ≤ 0x3_0 + x3_0 ≤ 0x3_0x3_0 ≤ 0x2_post + x2_post ≤ 0x2_postx2_post ≤ 0x2_0 + x2_0 ≤ 0x2_0x2_0 ≤ 0x1_post + x1_post ≤ 0x1_postx1_post ≤ 0x1_0 + x1_0 ≤ 0x1_0x1_0 ≤ 0x0_post + x0_post ≤ 0x0_postx0_post ≤ 0x0_0 + x0_0 ≤ 0x0_0x0_0 ≤ 0oldX9_post + oldX9_post ≤ 0oldX9_postoldX9_post ≤ 0oldX9_0 + oldX9_0 ≤ 0oldX9_0oldX9_0 ≤ 0oldX8_post + oldX8_post ≤ 0oldX8_postoldX8_post ≤ 0oldX8_0 + oldX8_0 ≤ 0oldX8_0oldX8_0 ≤ 0oldX7_post + oldX7_post ≤ 0oldX7_postoldX7_post ≤ 0oldX7_0 + oldX7_0 ≤ 0oldX7_0oldX7_0 ≤ 0oldX6_post + oldX6_post ≤ 0oldX6_postoldX6_post ≤ 0oldX6_0 + oldX6_0 ≤ 0oldX6_0oldX6_0 ≤ 0oldX5_post + oldX5_post ≤ 0oldX5_postoldX5_post ≤ 0oldX5_0 + oldX5_0 ≤ 0oldX5_0oldX5_0 ≤ 0oldX4_post + oldX4_post ≤ 0oldX4_postoldX4_post ≤ 0oldX4_0 + oldX4_0 ≤ 0oldX4_0oldX4_0 ≤ 0oldX3_post + oldX3_post ≤ 0oldX3_postoldX3_post ≤ 0oldX3_0 + oldX3_0 ≤ 0oldX3_0oldX3_0 ≤ 0oldX2_post + oldX2_post ≤ 0oldX2_postoldX2_post ≤ 0oldX2_0 + oldX2_0 ≤ 0oldX2_0oldX2_0 ≤ 0oldX1_post + oldX1_post ≤ 0oldX1_postoldX1_post ≤ 0oldX1_0 + oldX1_0 ≤ 0oldX1_0oldX1_0 ≤ 0oldX11_post + oldX11_post ≤ 0oldX11_postoldX11_post ≤ 0oldX11_0 + oldX11_0 ≤ 0oldX11_0oldX11_0 ≤ 0oldX10_post + oldX10_post ≤ 0oldX10_postoldX10_post ≤ 0oldX10_0 + oldX10_0 ≤ 0oldX10_0oldX10_0 ≤ 0oldX0_post + oldX0_post ≤ 0oldX0_postoldX0_post ≤ 0oldX0_0 + oldX0_0 ≤ 0oldX0_0oldX0_0 ≤ 0

7 SCC Decomposition

We consider subproblems for each of the 2 SCC(s) of the program graph.

7.1 SCC Subproblem 1/2

Here we consider the SCC { 5, 6, 6_var_snapshot, 6* }.

7.1.1 Transition Removal

We remove transition 7 using the following ranking functions, which are bounded by 3.

5: −1 + 4⋅x0_0 − 4⋅x1_0
6: 1 + 4⋅x0_0 − 4⋅x1_0
6_var_snapshot: 4⋅x0_0 − 4⋅x1_0
6*: 2 + 4⋅x0_0 − 4⋅x1_0

7.1.2 Transition Removal

We remove transitions 49, 51, 5 using the following ranking functions, which are bounded by −3.

5: 0
6: −2
6_var_snapshot: −3
6*: −1

7.1.3 Transition Removal

We remove transition 4 using the following ranking functions, which are bounded by −1.

5: 0
6: 0
6_var_snapshot: 0
6*: −1

7.1.4 Splitting Cut-Point Transitions

We consider 1 subproblems corresponding to sets of cut-point transitions as follows.

7.1.4.1 Cut-Point Subproblem 1/1

Here we consider cut-point transition 48.

7.1.4.1.1 Splitting Cut-Point Transitions

There remain no cut-point transition to consider. Hence the cooperation termination is trivial.

7.2 SCC Subproblem 2/2

Here we consider the SCC { 0, 1, 2, 8, 9, 10, 11, 12, 13, 1_var_snapshot, 1* }.

7.2.1 Transition Removal

We remove transition 2 using the following ranking functions, which are bounded by 6.

0: 1 + 5⋅x0_0 − 5⋅x2_0
1: 5⋅x0_0 − 5⋅x2_0
2: 2 + 5⋅x0_0 − 5⋅x2_0
8: −2 + 5⋅x0_0 − 5⋅x2_0
9: 5⋅x0_0 − 5⋅x2_0
10: 5⋅x0_0 − 5⋅x2_0
11: 5⋅x0_0 − 5⋅x2_0
12: −1 + 5⋅x0_0 − 5⋅x2_0
13: 5⋅x0_0 − 5⋅x2_0
1_var_snapshot: 5⋅x0_0 − 5⋅x2_0
1*: 5⋅x0_0 − 5⋅x2_0

7.2.2 Transition Removal

We remove transition 20 using the following ranking functions, which are bounded by −1.

0: 7⋅x0_0 − 7⋅x2_0
1: 1 + 7⋅x0_0 − 7⋅x3_0
2: −2 + 7⋅oldX0_post − 7⋅oldX3_post
8: −1 + 7⋅x0_0 − 7⋅x3_0
9: −3 + 7⋅x0_0 − 7⋅x3_0
10: −4 + 7⋅x0_0 − 7⋅x3_0
11: −2 + 7⋅x0_0 − 7⋅x3_0
12: −1 + 7⋅x0_0 − 7⋅x3_0
13: −1 + 7⋅x0_0 − 7⋅x3_0
1_var_snapshot: 7⋅x0_0 − 7⋅x3_0
1*: 2 + 7⋅x0_0 − 7⋅x3_0

7.2.3 Transition Removal

We remove transitions 42, 44, 0, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19 using the following ranking functions, which are bounded by −8.

0: 0
1: −4
2: −8
8: −7
9: −1
10: −2
11: 0
12: −6
13: 1
1_var_snapshot: −5
1*: −3

7.2.4 Splitting Cut-Point Transitions

We consider 1 subproblems corresponding to sets of cut-point transitions as follows.

7.2.4.1 Cut-Point Subproblem 1/1

Here we consider cut-point transition 41.

7.2.4.1.1 Splitting Cut-Point Transitions

There remain no cut-point transition to consider. Hence the cooperation termination is trivial.

Tool configuration

T2Cert