LTS Termination Proof

by T2Cert

Input

Integer Transition System

Proof

1 Invariant Updates

The following invariants are asserted.

0: i2_0 ≤ 0
1: i2_0 ≤ 0
2: i2_0 ≤ 0
3: i2_0 ≤ 0
4: TRUE
5: TRUE
6: TRUE
7: TRUE
8: TRUE
9: TRUE

The invariants are proved as follows.

IMPACT Invariant Proof

2 Switch to Cooperation Termination Proof

We consider the following cutpoint-transitions:
0 13 0: n_0 + n_0 ≤ 0n_0n_0 ≤ 0i4_post + i4_post ≤ 0i4_posti4_post ≤ 0i4_0 + i4_0 ≤ 0i4_0i4_0 ≤ 0i3_post + i3_post ≤ 0i3_posti3_post ≤ 0i3_0 + i3_0 ≤ 0i3_0i3_0 ≤ 0i2_post + i2_post ≤ 0i2_posti2_post ≤ 0i2_0 + i2_0 ≤ 0i2_0i2_0 ≤ 0i1_post + i1_post ≤ 0i1_posti1_post ≤ 0i1_0 + i1_0 ≤ 0i1_0i1_0 ≤ 0
2 20 2: n_0 + n_0 ≤ 0n_0n_0 ≤ 0i4_post + i4_post ≤ 0i4_posti4_post ≤ 0i4_0 + i4_0 ≤ 0i4_0i4_0 ≤ 0i3_post + i3_post ≤ 0i3_posti3_post ≤ 0i3_0 + i3_0 ≤ 0i3_0i3_0 ≤ 0i2_post + i2_post ≤ 0i2_posti2_post ≤ 0i2_0 + i2_0 ≤ 0i2_0i2_0 ≤ 0i1_post + i1_post ≤ 0i1_posti1_post ≤ 0i1_0 + i1_0 ≤ 0i1_0i1_0 ≤ 0
4 27 4: n_0 + n_0 ≤ 0n_0n_0 ≤ 0i4_post + i4_post ≤ 0i4_posti4_post ≤ 0i4_0 + i4_0 ≤ 0i4_0i4_0 ≤ 0i3_post + i3_post ≤ 0i3_posti3_post ≤ 0i3_0 + i3_0 ≤ 0i3_0i3_0 ≤ 0i2_post + i2_post ≤ 0i2_posti2_post ≤ 0i2_0 + i2_0 ≤ 0i2_0i2_0 ≤ 0i1_post + i1_post ≤ 0i1_posti1_post ≤ 0i1_0 + i1_0 ≤ 0i1_0i1_0 ≤ 0
6 34 6: n_0 + n_0 ≤ 0n_0n_0 ≤ 0i4_post + i4_post ≤ 0i4_posti4_post ≤ 0i4_0 + i4_0 ≤ 0i4_0i4_0 ≤ 0i3_post + i3_post ≤ 0i3_posti3_post ≤ 0i3_0 + i3_0 ≤ 0i3_0i3_0 ≤ 0i2_post + i2_post ≤ 0i2_posti2_post ≤ 0i2_0 + i2_0 ≤ 0i2_0i2_0 ≤ 0i1_post + i1_post ≤ 0i1_posti1_post ≤ 0i1_0 + i1_0 ≤ 0i1_0i1_0 ≤ 0
and for every transition t, a duplicate t is considered.

3 Transition Removal

We remove transitions 2, 5, 8, 11, 12 using the following ranking functions, which are bounded by −23.

9: 0
8: 0
6: 0
7: 0
4: 0
5: 0
2: 0
3: 0
0: 0
1: 0
9: −7
8: −8
6: −9
7: −9
6_var_snapshot: −9
6*: −9
4: −12
5: −12
4_var_snapshot: −12
4*: −12
2: −15
3: −15
2_var_snapshot: −15
2*: −15
0: −18
1: −18
0_var_snapshot: −18
0*: −18

4 Location Addition

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

0* 16 0: n_0 + n_0 ≤ 0n_0n_0 ≤ 0i4_post + i4_post ≤ 0i4_posti4_post ≤ 0i4_0 + i4_0 ≤ 0i4_0i4_0 ≤ 0i3_post + i3_post ≤ 0i3_posti3_post ≤ 0i3_0 + i3_0 ≤ 0i3_0i3_0 ≤ 0i2_post + i2_post ≤ 0i2_posti2_post ≤ 0i2_0 + i2_0 ≤ 0i2_0i2_0 ≤ 0i1_post + i1_post ≤ 0i1_posti1_post ≤ 0i1_0 + i1_0 ≤ 0i1_0i1_0 ≤ 0

5 Location Addition

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

0 14 0_var_snapshot: n_0 + n_0 ≤ 0n_0n_0 ≤ 0i4_post + i4_post ≤ 0i4_posti4_post ≤ 0i4_0 + i4_0 ≤ 0i4_0i4_0 ≤ 0i3_post + i3_post ≤ 0i3_posti3_post ≤ 0i3_0 + i3_0 ≤ 0i3_0i3_0 ≤ 0i2_post + i2_post ≤ 0i2_posti2_post ≤ 0i2_0 + i2_0 ≤ 0i2_0i2_0 ≤ 0i1_post + i1_post ≤ 0i1_posti1_post ≤ 0i1_0 + i1_0 ≤ 0i1_0i1_0 ≤ 0

6 Location Addition

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

2* 23 2: n_0 + n_0 ≤ 0n_0n_0 ≤ 0i4_post + i4_post ≤ 0i4_posti4_post ≤ 0i4_0 + i4_0 ≤ 0i4_0i4_0 ≤ 0i3_post + i3_post ≤ 0i3_posti3_post ≤ 0i3_0 + i3_0 ≤ 0i3_0i3_0 ≤ 0i2_post + i2_post ≤ 0i2_posti2_post ≤ 0i2_0 + i2_0 ≤ 0i2_0i2_0 ≤ 0i1_post + i1_post ≤ 0i1_posti1_post ≤ 0i1_0 + i1_0 ≤ 0i1_0i1_0 ≤ 0

7 Location Addition

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

2 21 2_var_snapshot: n_0 + n_0 ≤ 0n_0n_0 ≤ 0i4_post + i4_post ≤ 0i4_posti4_post ≤ 0i4_0 + i4_0 ≤ 0i4_0i4_0 ≤ 0i3_post + i3_post ≤ 0i3_posti3_post ≤ 0i3_0 + i3_0 ≤ 0i3_0i3_0 ≤ 0i2_post + i2_post ≤ 0i2_posti2_post ≤ 0i2_0 + i2_0 ≤ 0i2_0i2_0 ≤ 0i1_post + i1_post ≤ 0i1_posti1_post ≤ 0i1_0 + i1_0 ≤ 0i1_0i1_0 ≤ 0

8 Location Addition

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

4* 30 4: n_0 + n_0 ≤ 0n_0n_0 ≤ 0i4_post + i4_post ≤ 0i4_posti4_post ≤ 0i4_0 + i4_0 ≤ 0i4_0i4_0 ≤ 0i3_post + i3_post ≤ 0i3_posti3_post ≤ 0i3_0 + i3_0 ≤ 0i3_0i3_0 ≤ 0i2_post + i2_post ≤ 0i2_posti2_post ≤ 0i2_0 + i2_0 ≤ 0i2_0i2_0 ≤ 0i1_post + i1_post ≤ 0i1_posti1_post ≤ 0i1_0 + i1_0 ≤ 0i1_0i1_0 ≤ 0

9 Location Addition

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

4 28 4_var_snapshot: n_0 + n_0 ≤ 0n_0n_0 ≤ 0i4_post + i4_post ≤ 0i4_posti4_post ≤ 0i4_0 + i4_0 ≤ 0i4_0i4_0 ≤ 0i3_post + i3_post ≤ 0i3_posti3_post ≤ 0i3_0 + i3_0 ≤ 0i3_0i3_0 ≤ 0i2_post + i2_post ≤ 0i2_posti2_post ≤ 0i2_0 + i2_0 ≤ 0i2_0i2_0 ≤ 0i1_post + i1_post ≤ 0i1_posti1_post ≤ 0i1_0 + i1_0 ≤ 0i1_0i1_0 ≤ 0

10 Location Addition

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

6* 37 6: n_0 + n_0 ≤ 0n_0n_0 ≤ 0i4_post + i4_post ≤ 0i4_posti4_post ≤ 0i4_0 + i4_0 ≤ 0i4_0i4_0 ≤ 0i3_post + i3_post ≤ 0i3_posti3_post ≤ 0i3_0 + i3_0 ≤ 0i3_0i3_0 ≤ 0i2_post + i2_post ≤ 0i2_posti2_post ≤ 0i2_0 + i2_0 ≤ 0i2_0i2_0 ≤ 0i1_post + i1_post ≤ 0i1_posti1_post ≤ 0i1_0 + i1_0 ≤ 0i1_0i1_0 ≤ 0

11 Location Addition

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

6 35 6_var_snapshot: n_0 + n_0 ≤ 0n_0n_0 ≤ 0i4_post + i4_post ≤ 0i4_posti4_post ≤ 0i4_0 + i4_0 ≤ 0i4_0i4_0 ≤ 0i3_post + i3_post ≤ 0i3_posti3_post ≤ 0i3_0 + i3_0 ≤ 0i3_0i3_0 ≤ 0i2_post + i2_post ≤ 0i2_posti2_post ≤ 0i2_0 + i2_0 ≤ 0i2_0i2_0 ≤ 0i1_post + i1_post ≤ 0i1_posti1_post ≤ 0i1_0 + i1_0 ≤ 0i1_0i1_0 ≤ 0

12 SCC Decomposition

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

12.1 SCC Subproblem 1/4

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

12.1.1 Transition Removal

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

0: −2 + 4⋅i4_0
1: 4⋅i4_0
0_var_snapshot: −3 + 4⋅i4_0
0*: −1 + 4⋅i4_0

12.1.2 Transition Removal

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

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

12.1.3 Transition Removal

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

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

12.1.4 Splitting Cut-Point Transitions

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

12.1.4.1 Cut-Point Subproblem 1/1

Here we consider cut-point transition 13.

12.1.4.1.1 Splitting Cut-Point Transitions

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

12.2 SCC Subproblem 2/4

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

12.2.1 Transition Removal

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

2: −2 − 4⋅i3_0 + 4⋅n_0
3: −4⋅i3_0 + 4⋅n_0
2_var_snapshot: −3 − 4⋅i3_0 + 4⋅n_0
2*: −1 − 4⋅i3_0 + 4⋅n_0

12.2.2 Transition Removal

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

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

12.2.3 Transition Removal

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

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

12.2.4 Splitting Cut-Point Transitions

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

12.2.4.1 Cut-Point Subproblem 1/1

Here we consider cut-point transition 20.

12.2.4.1.1 Splitting Cut-Point Transitions

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

12.3 SCC Subproblem 3/4

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

12.3.1 Transition Removal

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

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

12.3.2 Transition Removal

We remove transitions 28, 30 using the following ranking functions, which are bounded by −2.

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

12.3.3 Transition Removal

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

4: 0
5: 0
4_var_snapshot: 0
4*: −1

12.3.4 Splitting Cut-Point Transitions

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

12.3.4.1 Cut-Point Subproblem 1/1

Here we consider cut-point transition 27.

12.3.4.1.1 Splitting Cut-Point Transitions

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

12.4 SCC Subproblem 4/4

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

12.4.1 Transition Removal

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

6: −2 − 4⋅i1_0 + 4⋅n_0
7: −4⋅i1_0 + 4⋅n_0
6_var_snapshot: −3 − 4⋅i1_0 + 4⋅n_0
6*: −1 − 4⋅i1_0 + 4⋅n_0

12.4.2 Transition Removal

We remove transitions 35, 37 using the following ranking functions, which are bounded by −2.

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

12.4.3 Transition Removal

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

6: 0
7: 0
6_var_snapshot: 0
6*: −1

12.4.4 Splitting Cut-Point Transitions

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

12.4.4.1 Cut-Point Subproblem 1/1

Here we consider cut-point transition 34.

12.4.4.1.1 Splitting Cut-Point Transitions

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

Tool configuration

T2Cert