LTS Termination Proof

by AProVE

Input

Integer Transition System

Proof

1 Switch to Cooperation Termination Proof

We consider the following cutpoint-transitions:
f1596_0_createTree_LE f1596_0_createTree_LE f1596_0_createTree_LE: x1 = x1x2 = x2x3 = x3x4 = x4x5 = x5x6 = x6x7 = x7x8 = x8x9 = x9
f97_0_createTree_NE f97_0_createTree_NE f97_0_createTree_NE: x1 = x1x2 = x2x3 = x3x4 = x4x5 = x5x6 = x6x7 = x7x8 = x8x9 = x9
f1014_0_mirror_InvokeMethod f1014_0_mirror_InvokeMethod f1014_0_mirror_InvokeMethod: x1 = x1x2 = x2x3 = x3x4 = x4x5 = x5x6 = x6x7 = x7x8 = x8x9 = x9
f179_0_createNode_Return f179_0_createNode_Return f179_0_createNode_Return: x1 = x1x2 = x2x3 = x3x4 = x4x5 = x5x6 = x6x7 = x7x8 = x8x9 = x9
f674_0_createTree_Return f674_0_createTree_Return f674_0_createTree_Return: x1 = x1x2 = x2x3 = x3x4 = x4x5 = x5x6 = x6x7 = x7x8 = x8x9 = x9
__init __init __init: x1 = x1x2 = x2x3 = x3x4 = x4x5 = x5x6 = x6x7 = x7x8 = x8x9 = x9
f101_0_main_InvokeMethod f101_0_main_InvokeMethod f101_0_main_InvokeMethod: x1 = x1x2 = x2x3 = x3x4 = x4x5 = x5x6 = x6x7 = x7x8 = x8x9 = x9
f1562_0_createTree_FieldAccess f1562_0_createTree_FieldAccess f1562_0_createTree_FieldAccess: x1 = x1x2 = x2x3 = x3x4 = x4x5 = x5x6 = x6x7 = x7x8 = x8x9 = x9
f1475_0_main_InvokeMethod f1475_0_main_InvokeMethod f1475_0_main_InvokeMethod: x1 = x1x2 = x2x3 = x3x4 = x4x5 = x5x6 = x6x7 = x7x8 = x8x9 = x9
f727_0_mirror_NONNULL f727_0_mirror_NONNULL f727_0_mirror_NONNULL: x1 = x1x2 = x2x3 = x3x4 = x4x5 = x5x6 = x6x7 = x7x8 = x8x9 = x9
f1_0_main_Load f1_0_main_Load f1_0_main_Load: x1 = x1x2 = x2x3 = x3x4 = x4x5 = x5x6 = x6x7 = x7x8 = x8x9 = x9
f1514_0_createTree_NONNULL f1514_0_createTree_NONNULL f1514_0_createTree_NONNULL: x1 = x1x2 = x2x3 = x3x4 = x4x5 = x5x6 = x6x7 = x7x8 = x8x9 = x9
f1650_0_createTree_FieldAccess f1650_0_createTree_FieldAccess f1650_0_createTree_FieldAccess: x1 = x1x2 = x2x3 = x3x4 = x4x5 = x5x6 = x6x7 = x7x8 = x8x9 = x9
f1458_0_createTree_LE f1458_0_createTree_LE f1458_0_createTree_LE: x1 = x1x2 = x2x3 = x3x4 = x4x5 = x5x6 = x6x7 = x7x8 = x8x9 = x9
and for every transition t, a duplicate t is considered.

2 SCC Decomposition

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

2.1 SCC Subproblem 1/2

Here we consider the SCC { f1596_0_createTree_LE, f1514_0_createTree_NONNULL, f1650_0_createTree_FieldAccess, f1458_0_createTree_LE, f1562_0_createTree_FieldAccess }.

2.1.1 Transition Removal

We remove transitions 12, 16, 17 using the following ranking functions, which are bounded by 0.

f1458_0_createTree_LE: −1 + x3 + x4
f1514_0_createTree_NONNULL: −2 + x1 + x5
f1596_0_createTree_LE: −2 + x1 + x5
f1650_0_createTree_FieldAccess: −2 + x1 + x4
f1562_0_createTree_FieldAccess: −2 + x1 + x4

2.1.2 Transition Removal

We remove transitions 13, 20, 21, 25, 24, 23, 22, 19, 18, 15, 14 using the following ranking functions, which are bounded by 0.

f1514_0_createTree_NONNULL: 2
f1458_0_createTree_LE: 0
f1596_0_createTree_LE: 3
f1650_0_createTree_FieldAccess: 1
f1562_0_createTree_FieldAccess: 1

2.1.3 Trivial Cooperation Program

There are no more "sharp" transitions in the cooperation program. Hence the cooperation termination is proved.

2.2 SCC Subproblem 2/2

Here we consider the SCC { f1014_0_mirror_InvokeMethod, f727_0_mirror_NONNULL }.

2.2.1 Transition Removal

We remove transitions 26, 27, 30, 29, 28 using the following ranking functions, which are bounded by 0.

f727_0_mirror_NONNULL: 2⋅x1
f1014_0_mirror_InvokeMethod: 2⋅x2 + 1

2.2.2 Trivial Cooperation Program

There are no more "sharp" transitions in the cooperation program. Hence the cooperation termination is proved.

Tool configuration

AProVE