LTS Termination Proof

by T2Cert

Input

Integer Transition System

Proof

1 Invariant Updates

The following invariants are asserted.

0: −10 + size1010_post ≤ 0−10 + size1_post ≤ 010 − size1_post ≤ 0−10 + size77_post ≤ 0−10 + size1010_0 ≤ 0−10 + size1_0 ≤ 010 − size1_0 ≤ 0−10 + size77_0 ≤ 0
1: −10 + size1010_post ≤ 0−10 + size1_post ≤ 010 − size1_post ≤ 0−10 + size77_post ≤ 0−10 + size1010_0 ≤ 0−10 + size1_0 ≤ 010 − size1_0 ≤ 0−10 + size77_0 ≤ 0
2: −10 + size1010_post ≤ 0−10 + size1_post ≤ 010 − size1_post ≤ 0−10 + size77_post ≤ 0−10 + size1010_0 ≤ 010 − size1_0 ≤ 0−10 + size77_0 ≤ 0
3: −10 + size1010_post ≤ 0−10 + size1_post ≤ 010 − size1_post ≤ 0−10 + size77_post ≤ 0−10 + size1010_0 ≤ 010 − size1_0 ≤ 0−10 + size77_0 ≤ 0
4: −10 + size1010_post ≤ 0−10 + size1_post ≤ 010 − size1_post ≤ 0−10 + size77_post ≤ 0−10 + size1010_0 ≤ 010 − size1_0 ≤ 0−10 + size77_0 ≤ 0
5: −10 + size1010_post ≤ 0−10 + size1_post ≤ 010 − size1_post ≤ 0−10 + size77_post ≤ 0−10 + size1010_0 ≤ 010 − size1_0 ≤ 0−10 + size77_0 ≤ 0
6: −10 + size1010_post ≤ 0−10 + size1_post ≤ 010 − size1_post ≤ 0−10 + size77_post ≤ 0−10 + size1010_0 ≤ 010 − size1_0 ≤ 0−10 + size77_0 ≤ 0
7: TRUE
8: TRUE

The invariants are proved as follows.

IMPACT Invariant Proof

2 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
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
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
and for every transition t, a duplicate t is considered.

3 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

4 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

5 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

6 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

7 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

8 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

9 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

10 SCC Decomposition

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

10.1 SCC Subproblem 1/3

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

10.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

10.1.2 Transition Removal

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

2: −2⋅size1_post
4: 0
4_var_snapshot: size1_post
4*: 1

10.1.3 Splitting Cut-Point Transitions

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

10.1.3.1 Cut-Point Subproblem 1/1

Here we consider cut-point transition 18.

10.1.3.1.1 Splitting Cut-Point Transitions

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

10.2 SCC Subproblem 2/3

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

10.2.1 Transition Removal

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

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

10.2.2 Transition Removal

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

5: size1_0
6: size1_post
5_var_snapshot: 0
5*: 2⋅size1_0

10.2.3 Splitting Cut-Point Transitions

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

10.2.3.1 Cut-Point Subproblem 1/1

Here we consider cut-point transition 25.

10.2.3.1.1 Splitting Cut-Point Transitions

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

10.3 SCC Subproblem 3/3

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

10.3.1 Transition Removal

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

0: 20 − 31⋅i2_0
1: −31⋅i2_0
0_var_snapshot: 10 − 31⋅i2_0
0*: −31⋅i2_0 + 3⋅size1_0

10.3.2 Transition Removal

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

0: 0
1: −1 − size1_0
0_var_snapshot: size1_0
0*: 1

10.3.3 Splitting Cut-Point Transitions

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

10.3.3.1 Cut-Point Subproblem 1/1

Here we consider cut-point transition 11.

10.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