LTS Termination Proof

by T2Cert

Input

Integer Transition System

Proof

1 Invariant Updates

The following invariants are asserted.

0: −100 + size7_post ≤ 0100 − size7_post ≤ 0−100 + size7_0 ≤ 0100 − size7_0 ≤ 0
1: −100 + size7_post ≤ 0100 − size7_post ≤ 0−100 + size7_0 ≤ 0100 − size7_0 ≤ 0ret_my_malloc10_post ≤ 0ret_my_malloc10_0 ≤ 0
2: −100 + size7_post ≤ 0100 − size7_post ≤ 0−100 + size7_0 ≤ 0100 − size7_0 ≤ 0ret_my_malloc10_post ≤ 0ret_my_malloc10_0 ≤ 0−1 + retval_0 ≤ 01 − retval_0 ≤ 0−100 + size11_post ≤ 0100 − size11_post ≤ 0−100 + size11_0 ≤ 0100 − size11_0 ≤ 0ret_my_malloc14_post ≤ 0ret_my_malloc14_0 ≤ 0
3: −100 + size7_post ≤ 0100 − size7_post ≤ 0−100 + size7_0 ≤ 0100 − size7_0 ≤ 0ret_my_malloc10_post ≤ 0ret_my_malloc10_0 ≤ 0
4: −100 + size7_post ≤ 0100 − size7_post ≤ 0−100 + size7_0 ≤ 0100 − size7_0 ≤ 0ret_my_malloc10_post ≤ 0ret_my_malloc10_0 ≤ 0−1 + retval_0 ≤ 01 − retval_0 ≤ 0−100 + size11_post ≤ 0100 − size11_post ≤ 0−100 + size11_0 ≤ 0100 − size11_0 ≤ 0ret_my_malloc14_post ≤ 0ret_my_malloc14_0 ≤ 0
5: −100 + size7_post ≤ 0100 − size7_post ≤ 0−100 + size7_0 ≤ 0100 − size7_0 ≤ 0ret_my_malloc10_post ≤ 0ret_my_malloc10_0 ≤ 0−1 + retval_0 ≤ 01 − retval_0 ≤ 0−100 + size11_post ≤ 0100 − size11_post ≤ 0−100 + size11_0 ≤ 0100 − size11_0 ≤ 0ret_my_malloc14_post ≤ 0ret_my_malloc14_0 ≤ 0
6: −100 + size7_post ≤ 0100 − size7_post ≤ 0−100 + size7_0 ≤ 0100 − size7_0 ≤ 0ret_my_malloc10_post ≤ 0ret_my_malloc10_0 ≤ 0−100 + size17_post ≤ 0100 − size17_post ≤ 0−100 + size17_0 ≤ 0100 − size17_0 ≤ 0
7: −100 + size7_post ≤ 0100 − size7_post ≤ 0−100 + size7_0 ≤ 0100 − size7_0 ≤ 0ret_my_malloc10_post ≤ 0ret_my_malloc10_0 ≤ 0−100 + size17_post ≤ 0100 − size17_post ≤ 0−100 + size17_0 ≤ 0100 − size17_0 ≤ 0
8: −100 + size7_post ≤ 0100 − size7_post ≤ 0−100 + size7_0 ≤ 0100 − size7_0 ≤ 0ret_my_malloc10_post ≤ 0ret_my_malloc10_0 ≤ 0−100 + size17_post ≤ 0100 − size17_post ≤ 0−100 + size17_0 ≤ 0100 − size17_0 ≤ 0
9: −100 + size7_post ≤ 0100 − size7_post ≤ 0−100 + size7_0 ≤ 0100 − size7_0 ≤ 0ret_my_malloc10_post ≤ 0ret_my_malloc10_0 ≤ 0
10: −100 + size7_post ≤ 0100 − size7_post ≤ 0−100 + size7_0 ≤ 0100 − size7_0 ≤ 0ret_my_malloc10_post ≤ 0ret_my_malloc10_0 ≤ 0−100 + size11_post ≤ 0100 − size11_post ≤ 0−100 + size11_0 ≤ 0100 − size11_0 ≤ 0ret_my_malloc14_post ≤ 0ret_my_malloc14_0 ≤ 0−100 + size15_post ≤ 0100 − size15_post ≤ 0−100 + size15_0 ≤ 0100 − size15_0 ≤ 0
11: −100 + size7_post ≤ 0100 − size7_post ≤ 0−100 + size7_0 ≤ 0100 − size7_0 ≤ 0ret_my_malloc10_post ≤ 0ret_my_malloc10_0 ≤ 0−100 + size11_post ≤ 0100 − size11_post ≤ 0−100 + size11_0 ≤ 0100 − size11_0 ≤ 0ret_my_malloc14_post ≤ 0ret_my_malloc14_0 ≤ 0−100 + size15_post ≤ 0100 − size15_post ≤ 0−100 + size15_0 ≤ 0100 − size15_0 ≤ 0
12: −100 + size7_post ≤ 0100 − size7_post ≤ 0−100 + size7_0 ≤ 0100 − size7_0 ≤ 0ret_my_malloc10_post ≤ 0ret_my_malloc10_0 ≤ 0−100 + size11_post ≤ 0100 − size11_post ≤ 0−100 + size11_0 ≤ 0100 − size11_0 ≤ 0ret_my_malloc14_post ≤ 0ret_my_malloc14_0 ≤ 0−100 + size15_post ≤ 0100 − size15_post ≤ 0−100 + size15_0 ≤ 0100 − size15_0 ≤ 0
13: −100 + size7_post ≤ 0100 − size7_post ≤ 0−100 + size7_0 ≤ 0100 − size7_0 ≤ 0ret_my_malloc10_post ≤ 0ret_my_malloc10_0 ≤ 0−100 + size11_post ≤ 0100 − size11_post ≤ 0−100 + size11_0 ≤ 0100 − size11_0 ≤ 0ret_my_malloc14_post ≤ 0ret_my_malloc14_0 ≤ 0
14: −100 + size7_post ≤ 0100 − size7_post ≤ 0−100 + size7_0 ≤ 0100 − size7_0 ≤ 0ret_my_malloc10_post ≤ 0ret_my_malloc10_0 ≤ 0−1 + retval_0 ≤ 01 − retval_0 ≤ 0−100 + size11_post ≤ 0100 − size11_post ≤ 0−100 + size11_0 ≤ 0100 − size11_0 ≤ 0ret_my_malloc14_post ≤ 0ret_my_malloc14_0 ≤ 0
15: −100 + size7_post ≤ 0100 − size7_post ≤ 0−100 + size7_0 ≤ 0100 − size7_0 ≤ 0ret_my_malloc10_post ≤ 0ret_my_malloc10_0 ≤ 0−100 + size11_post ≤ 0100 − size11_post ≤ 0−100 + size11_0 ≤ 0100 − size11_0 ≤ 0ret_my_malloc14_post ≤ 0ret_my_malloc14_0 ≤ 0
16: −100 + size7_post ≤ 0100 − size7_post ≤ 0−100 + size7_0 ≤ 0100 − size7_0 ≤ 0ret_my_malloc10_post ≤ 0ret_my_malloc10_0 ≤ 0−1 + retval_0 ≤ 01 − retval_0 ≤ 0−100 + size11_post ≤ 0100 − size11_post ≤ 0−100 + size11_0 ≤ 0100 − size11_0 ≤ 0
17: −100 + size7_post ≤ 0100 − size7_post ≤ 0−100 + size7_0 ≤ 0100 − size7_0 ≤ 0ret_my_malloc10_post ≤ 0ret_my_malloc10_0 ≤ 0
18: TRUE
19: TRUE

The invariants are proved as follows.

IMPACT Invariant Proof

2 Switch to Cooperation Termination Proof

We consider the following cutpoint-transitions:
and for every transition t, a duplicate t is considered.

3 Transition Removal

We remove transitions 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 using the following ranking functions, which are bounded by −42.

19: 0
18: 0
0: 0
1: 0
17: 0
9: 0
8: 0
7: 0
6: 0
16: 0
14: 0
15: 0
5: 0
4: 0
2: 0
13: 0
12: 0
11: 0
10: 0
3: 0
19: −21
18: −22
0: −23
1: −24
17: −25
9: −26
8: −27
7: −28
6: −29
16: −30
14: −31
15: −32
5: −33
4: −34
2: −35
13: −36
12: −37
11: −38
10: −39
3: −40

4 SCC Decomposition

There exist no SCC in the program graph.

Tool configuration

T2Cert