LTS Termination Proof

by T2Cert

Input

Integer Transition System

Proof

1 Switch to Cooperation Termination Proof

We consider the following cutpoint-transitions:
0 11 0: tmp88_post + tmp88_post ≤ 0tmp88_posttmp88_post ≤ 0tmp88_0 + tmp88_0 ≤ 0tmp88_0tmp88_0 ≤ 0tmp1111_post + tmp1111_post ≤ 0tmp1111_posttmp1111_post ≤ 0tmp1111_0 + tmp1111_0 ≤ 0tmp1111_0tmp1111_0 ≤ 0size77_post + size77_post ≤ 0size77_postsize77_post ≤ 0size77_0 + size77_0 ≤ 0size77_0size77_0 ≤ 0size1_post + size1_post ≤ 0size1_postsize1_post ≤ 0size1_0 + size1_0 ≤ 0size1_0size1_0 ≤ 0size1010_post + size1010_post ≤ 0size1010_postsize1010_post ≤ 0size1010_0 + size1010_0 ≤ 0size1010_0size1010_0 ≤ 0i2_post + i2_post ≤ 0i2_posti2_post ≤ 0i2_0 + i2_0 ≤ 0i2_0i2_0 ≤ 0___const_10_0 + ___const_10_0 ≤ 0___const_10_0___const_10_0 ≤ 0
4 18 4: tmp88_post + tmp88_post ≤ 0tmp88_posttmp88_post ≤ 0tmp88_0 + tmp88_0 ≤ 0tmp88_0tmp88_0 ≤ 0tmp1111_post + tmp1111_post ≤ 0tmp1111_posttmp1111_post ≤ 0tmp1111_0 + tmp1111_0 ≤ 0tmp1111_0tmp1111_0 ≤ 0size77_post + size77_post ≤ 0size77_postsize77_post ≤ 0size77_0 + size77_0 ≤ 0size77_0size77_0 ≤ 0size1_post + size1_post ≤ 0size1_postsize1_post ≤ 0size1_0 + size1_0 ≤ 0size1_0size1_0 ≤ 0size1010_post + size1010_post ≤ 0size1010_postsize1010_post ≤ 0size1010_0 + size1010_0 ≤ 0size1010_0size1010_0 ≤ 0i2_post + i2_post ≤ 0i2_posti2_post ≤ 0i2_0 + i2_0 ≤ 0i2_0i2_0 ≤ 0___const_10_0 + ___const_10_0 ≤ 0___const_10_0___const_10_0 ≤ 0
5 25 5: tmp88_post + tmp88_post ≤ 0tmp88_posttmp88_post ≤ 0tmp88_0 + tmp88_0 ≤ 0tmp88_0tmp88_0 ≤ 0tmp1111_post + tmp1111_post ≤ 0tmp1111_posttmp1111_post ≤ 0tmp1111_0 + tmp1111_0 ≤ 0tmp1111_0tmp1111_0 ≤ 0size77_post + size77_post ≤ 0size77_postsize77_post ≤ 0size77_0 + size77_0 ≤ 0size77_0size77_0 ≤ 0size1_post + size1_post ≤ 0size1_postsize1_post ≤ 0size1_0 + size1_0 ≤ 0size1_0size1_0 ≤ 0size1010_post + size1010_post ≤ 0size1010_postsize1010_post ≤ 0size1010_0 + size1010_0 ≤ 0size1010_0size1010_0 ≤ 0i2_post + i2_post ≤ 0i2_posti2_post ≤ 0i2_0 + i2_0 ≤ 0i2_0i2_0 ≤ 0___const_10_0 + ___const_10_0 ≤ 0___const_10_0___const_10_0 ≤ 0
and for every transition t, a duplicate t is considered.

2 Transition Removal

We remove transitions 1, 4, 7, 9, 10 using the following ranking functions, which are bounded by −21.

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

3 Location Addition

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

0* 14 0: tmp88_post + tmp88_post ≤ 0tmp88_posttmp88_post ≤ 0tmp88_0 + tmp88_0 ≤ 0tmp88_0tmp88_0 ≤ 0tmp1111_post + tmp1111_post ≤ 0tmp1111_posttmp1111_post ≤ 0tmp1111_0 + tmp1111_0 ≤ 0tmp1111_0tmp1111_0 ≤ 0size77_post + size77_post ≤ 0size77_postsize77_post ≤ 0size77_0 + size77_0 ≤ 0size77_0size77_0 ≤ 0size1_post + size1_post ≤ 0size1_postsize1_post ≤ 0size1_0 + size1_0 ≤ 0size1_0size1_0 ≤ 0size1010_post + size1010_post ≤ 0size1010_postsize1010_post ≤ 0size1010_0 + size1010_0 ≤ 0size1010_0size1010_0 ≤ 0i2_post + i2_post ≤ 0i2_posti2_post ≤ 0i2_0 + i2_0 ≤ 0i2_0i2_0 ≤ 0___const_10_0 + ___const_10_0 ≤ 0___const_10_0___const_10_0 ≤ 0

4 Location Addition

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

0 12 0_var_snapshot: tmp88_post + tmp88_post ≤ 0tmp88_posttmp88_post ≤ 0tmp88_0 + tmp88_0 ≤ 0tmp88_0tmp88_0 ≤ 0tmp1111_post + tmp1111_post ≤ 0tmp1111_posttmp1111_post ≤ 0tmp1111_0 + tmp1111_0 ≤ 0tmp1111_0tmp1111_0 ≤ 0size77_post + size77_post ≤ 0size77_postsize77_post ≤ 0size77_0 + size77_0 ≤ 0size77_0size77_0 ≤ 0size1_post + size1_post ≤ 0size1_postsize1_post ≤ 0size1_0 + size1_0 ≤ 0size1_0size1_0 ≤ 0size1010_post + size1010_post ≤ 0size1010_postsize1010_post ≤ 0size1010_0 + size1010_0 ≤ 0size1010_0size1010_0 ≤ 0i2_post + i2_post ≤ 0i2_posti2_post ≤ 0i2_0 + i2_0 ≤ 0i2_0i2_0 ≤ 0___const_10_0 + ___const_10_0 ≤ 0___const_10_0___const_10_0 ≤ 0

5 Location Addition

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

4* 21 4: tmp88_post + tmp88_post ≤ 0tmp88_posttmp88_post ≤ 0tmp88_0 + tmp88_0 ≤ 0tmp88_0tmp88_0 ≤ 0tmp1111_post + tmp1111_post ≤ 0tmp1111_posttmp1111_post ≤ 0tmp1111_0 + tmp1111_0 ≤ 0tmp1111_0tmp1111_0 ≤ 0size77_post + size77_post ≤ 0size77_postsize77_post ≤ 0size77_0 + size77_0 ≤ 0size77_0size77_0 ≤ 0size1_post + size1_post ≤ 0size1_postsize1_post ≤ 0size1_0 + size1_0 ≤ 0size1_0size1_0 ≤ 0size1010_post + size1010_post ≤ 0size1010_postsize1010_post ≤ 0size1010_0 + size1010_0 ≤ 0size1010_0size1010_0 ≤ 0i2_post + i2_post ≤ 0i2_posti2_post ≤ 0i2_0 + i2_0 ≤ 0i2_0i2_0 ≤ 0___const_10_0 + ___const_10_0 ≤ 0___const_10_0___const_10_0 ≤ 0

6 Location Addition

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

4 19 4_var_snapshot: tmp88_post + tmp88_post ≤ 0tmp88_posttmp88_post ≤ 0tmp88_0 + tmp88_0 ≤ 0tmp88_0tmp88_0 ≤ 0tmp1111_post + tmp1111_post ≤ 0tmp1111_posttmp1111_post ≤ 0tmp1111_0 + tmp1111_0 ≤ 0tmp1111_0tmp1111_0 ≤ 0size77_post + size77_post ≤ 0size77_postsize77_post ≤ 0size77_0 + size77_0 ≤ 0size77_0size77_0 ≤ 0size1_post + size1_post ≤ 0size1_postsize1_post ≤ 0size1_0 + size1_0 ≤ 0size1_0size1_0 ≤ 0size1010_post + size1010_post ≤ 0size1010_postsize1010_post ≤ 0size1010_0 + size1010_0 ≤ 0size1010_0size1010_0 ≤ 0i2_post + i2_post ≤ 0i2_posti2_post ≤ 0i2_0 + i2_0 ≤ 0i2_0i2_0 ≤ 0___const_10_0 + ___const_10_0 ≤ 0___const_10_0___const_10_0 ≤ 0

7 Location Addition

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

5* 28 5: tmp88_post + tmp88_post ≤ 0tmp88_posttmp88_post ≤ 0tmp88_0 + tmp88_0 ≤ 0tmp88_0tmp88_0 ≤ 0tmp1111_post + tmp1111_post ≤ 0tmp1111_posttmp1111_post ≤ 0tmp1111_0 + tmp1111_0 ≤ 0tmp1111_0tmp1111_0 ≤ 0size77_post + size77_post ≤ 0size77_postsize77_post ≤ 0size77_0 + size77_0 ≤ 0size77_0size77_0 ≤ 0size1_post + size1_post ≤ 0size1_postsize1_post ≤ 0size1_0 + size1_0 ≤ 0size1_0size1_0 ≤ 0size1010_post + size1010_post ≤ 0size1010_postsize1010_post ≤ 0size1010_0 + size1010_0 ≤ 0size1010_0size1010_0 ≤ 0i2_post + i2_post ≤ 0i2_posti2_post ≤ 0i2_0 + i2_0 ≤ 0i2_0i2_0 ≤ 0___const_10_0 + ___const_10_0 ≤ 0___const_10_0___const_10_0 ≤ 0

8 Location Addition

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

5 26 5_var_snapshot: tmp88_post + tmp88_post ≤ 0tmp88_posttmp88_post ≤ 0tmp88_0 + tmp88_0 ≤ 0tmp88_0tmp88_0 ≤ 0tmp1111_post + tmp1111_post ≤ 0tmp1111_posttmp1111_post ≤ 0tmp1111_0 + tmp1111_0 ≤ 0tmp1111_0tmp1111_0 ≤ 0size77_post + size77_post ≤ 0size77_postsize77_post ≤ 0size77_0 + size77_0 ≤ 0size77_0size77_0 ≤ 0size1_post + size1_post ≤ 0size1_postsize1_post ≤ 0size1_0 + size1_0 ≤ 0size1_0size1_0 ≤ 0size1010_post + size1010_post ≤ 0size1010_postsize1010_post ≤ 0size1010_0 + size1010_0 ≤ 0size1010_0size1010_0 ≤ 0i2_post + i2_post ≤ 0i2_posti2_post ≤ 0i2_0 + i2_0 ≤ 0i2_0i2_0 ≤ 0___const_10_0 + ___const_10_0 ≤ 0___const_10_0___const_10_0 ≤ 0

9 SCC Decomposition

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

9.1 SCC Subproblem 1/3

Here we consider the SCC { 2, 4, 4_var_snapshot, 4* }.

9.1.1 Transition Removal

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

2: −1 − 4⋅i2_0 + 4⋅size1_0
4: 1 − 4⋅i2_0 + 4⋅size1_0
4_var_snapshot: −4⋅i2_0 + 4⋅size1_0
4*: 2 − 4⋅i2_0 + 4⋅size1_0

9.1.2 Transition Removal

We remove transitions 19, 21, 6 using the following ranking functions, which are bounded by −3.

2: −3
4: −1
4_var_snapshot: −2
4*: 0

9.1.3 Splitting Cut-Point Transitions

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

9.1.3.1 Cut-Point Subproblem 1/1

Here we consider cut-point transition 18.

9.1.3.1.1 Splitting Cut-Point Transitions

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

9.2 SCC Subproblem 2/3

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

9.2.1 Transition Removal

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

5: 2 − 3⋅i2_0 + 3⋅size1_0
6: −3⋅i2_0 + 3⋅size1_0
5_var_snapshot: 1 − 3⋅i2_0 + 3⋅size1_0
5*: 2 − 3⋅i2_0 + 3⋅size1_0

9.2.2 Transition Removal

We remove transitions 26, 28, 3 using the following ranking functions, which are bounded by −1.

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

9.2.3 Splitting Cut-Point Transitions

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

9.2.3.1 Cut-Point Subproblem 1/1

Here we consider cut-point transition 25.

9.2.3.1.1 Splitting Cut-Point Transitions

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

9.3 SCC Subproblem 3/3

Here we consider the SCC { 0, 1, 0_var_snapshot, 0* }.

9.3.1 Transition Removal

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

0: 2 − 3⋅i2_0 + 3⋅size1_0
1: −3⋅i2_0 + 3⋅size1_0
0_var_snapshot: 1 − 3⋅i2_0 + 3⋅size1_0
0*: 2 − 3⋅i2_0 + 3⋅size1_0

9.3.2 Transition Removal

We remove transitions 12, 14, 0 using the following ranking functions, which are bounded by −3.

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

9.3.3 Splitting Cut-Point Transitions

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

9.3.3.1 Cut-Point Subproblem 1/1

Here we consider cut-point transition 11.

9.3.3.1.1 Splitting Cut-Point Transitions

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

Tool configuration

T2Cert