MAYBE Initial complexity problem: 1: T: (Comp: ?, Cost: 1) f0(Ar_0, Ar_1, Ar_2, Ar_3) -> Com_1(f10001(Ar_0, Ar_1, Ar_2, Ar_3)) (Comp: ?, Cost: 1) f2(Ar_0, Ar_1, Ar_2, Ar_3) -> Com_1(f2(Ar_0, Ar_1, Ar_2, Ar_3)) (Comp: ?, Cost: 1) f2(Ar_0, Ar_1, Ar_2, Ar_3) -> Com_1(f10001(Ar_0, Ar_1, Ar_2, Ar_3)) (Comp: ?, Cost: 1) f2(Ar_0, Ar_1, Ar_2, Ar_3) -> Com_1(f1200(Ar_1, Ar_1, Ar_2, Ar_3)) (Comp: ?, Cost: 1) f2200(Ar_0, Ar_1, Ar_2, Ar_3) -> Com_1(f10000(Ar_0, Ar_1, 0, Ar_3)) [ Ar_2 = 0 ] (Comp: ?, Cost: 1) f12(Ar_0, Ar_1, Ar_2, Ar_3) -> Com_1(f12(Ar_0, Ar_1, Ar_2, Ar_3)) (Comp: ?, Cost: 1) f100(Ar_0, Ar_1, Ar_2, Ar_3) -> Com_1(f110(Ar_0, 1, Ar_2, Ar_3)) (Comp: ?, Cost: 1) f110(Ar_0, Ar_1, Ar_2, Ar_3) -> Com_1(f120(Ar_0, 2, Ar_2, Ar_3)) (Comp: ?, Cost: 1) f120(Ar_0, Ar_1, Ar_2, Ar_3) -> Com_1(f120(Ar_0, Ar_1, Ar_2, Ar_3)) (Comp: ?, Cost: 1) f1200(Ar_0, Ar_1, Ar_2, Ar_3) -> Com_1(f1200(Ar_0, Ar_1, Ar_2, Ar_3)) (Comp: ?, Cost: 1) f0(Ar_0, Ar_1, Ar_2, Ar_3) -> Com_1(f2(Ar_0, 2, Ar_2, Ar_3)) (Comp: ?, Cost: 1) f0(Ar_0, Ar_1, Ar_2, Ar_3) -> Com_1(f10001(Ar_0, 1, Ar_2, Ar_3)) (Comp: ?, Cost: 1) f0(Ar_0, Ar_1, Ar_2, Ar_3) -> Com_1(f110(1, 1, Ar_2, Ar_3)) (Comp: ?, Cost: 1) f0(Ar_0, Ar_1, Ar_2, Ar_3) -> Com_1(f12(Ar_1, 2, Ar_2, Ar_3)) (Comp: ?, Cost: 1) f12(Ar_0, Ar_1, Ar_2, Ar_3) -> Com_1(f10001(Ar_0, Ar_1, Ar_2, 1)) (Comp: ?, Cost: 1) f0(Ar_0, Ar_1, Ar_2, Ar_3) -> Com_1(f10001(Ar_1, Ar_1, Ar_2, 1)) (Comp: ?, Cost: 1) f0(Ar_0, Ar_1, Ar_2, Ar_3) -> Com_1(f10001(Ar_1, 1, Ar_2, 1)) (Comp: ?, Cost: 1) f100(Ar_0, Ar_1, Ar_2, Ar_3) -> Com_1(f10001(Ar_0, Ar_1, Ar_2, 1)) (Comp: ?, Cost: 1) f110(Ar_0, Ar_1, Ar_2, Ar_3) -> Com_1(f10001(Ar_0, Ar_1, Ar_2, 1)) (Comp: ?, Cost: 1) f120(Ar_0, Ar_1, Ar_2, Ar_3) -> Com_1(f10001(Ar_0, Ar_1, Ar_2, 1)) (Comp: ?, Cost: 1) f1000(Ar_0, Ar_1, Ar_2, Ar_3) -> Com_1(f1200(Ar_0, 2, Ar_2, Ar_3)) (Comp: ?, Cost: 1) f1000(Ar_0, Ar_1, Ar_2, Ar_3) -> Com_1(f10001(Ar_0, Ar_1, Ar_2, 1)) (Comp: ?, Cost: 1) f1200(Ar_0, Ar_1, Ar_2, Ar_3) -> Com_1(f10001(Ar_0, Ar_1, Ar_2, 1)) (Comp: ?, Cost: 1) f1000(Ar_0, Ar_1, Ar_2, Ar_3) -> Com_1(f10001(Ar_0, 1, Ar_2, 1)) (Comp: 1, Cost: 0) koat_start(Ar_0, Ar_1, Ar_2, Ar_3) -> Com_1(f0(Ar_0, Ar_1, Ar_2, Ar_3)) [ 0 <= 0 ] start location: koat_start leaf cost: 0 Slicing away variables that do not contribute to conditions from problem 1 leaves variables [Ar_2]. We thus obtain the following problem: 2: T: (Comp: 1, Cost: 0) koat_start(Ar_2) -> Com_1(f0(Ar_2)) [ 0 <= 0 ] (Comp: ?, Cost: 1) f1000(Ar_2) -> Com_1(f10001(Ar_2)) (Comp: ?, Cost: 1) f1200(Ar_2) -> Com_1(f10001(Ar_2)) (Comp: ?, Cost: 1) f1000(Ar_2) -> Com_1(f10001(Ar_2)) (Comp: ?, Cost: 1) f1000(Ar_2) -> Com_1(f1200(Ar_2)) (Comp: ?, Cost: 1) f120(Ar_2) -> Com_1(f10001(Ar_2)) (Comp: ?, Cost: 1) f110(Ar_2) -> Com_1(f10001(Ar_2)) (Comp: ?, Cost: 1) f100(Ar_2) -> Com_1(f10001(Ar_2)) (Comp: ?, Cost: 1) f0(Ar_2) -> Com_1(f10001(Ar_2)) (Comp: ?, Cost: 1) f0(Ar_2) -> Com_1(f10001(Ar_2)) (Comp: ?, Cost: 1) f12(Ar_2) -> Com_1(f10001(Ar_2)) (Comp: ?, Cost: 1) f0(Ar_2) -> Com_1(f12(Ar_2)) (Comp: ?, Cost: 1) f0(Ar_2) -> Com_1(f110(Ar_2)) (Comp: ?, Cost: 1) f0(Ar_2) -> Com_1(f10001(Ar_2)) (Comp: ?, Cost: 1) f0(Ar_2) -> Com_1(f2(Ar_2)) (Comp: ?, Cost: 1) f1200(Ar_2) -> Com_1(f1200(Ar_2)) (Comp: ?, Cost: 1) f120(Ar_2) -> Com_1(f120(Ar_2)) (Comp: ?, Cost: 1) f110(Ar_2) -> Com_1(f120(Ar_2)) (Comp: ?, Cost: 1) f100(Ar_2) -> Com_1(f110(Ar_2)) (Comp: ?, Cost: 1) f12(Ar_2) -> Com_1(f12(Ar_2)) (Comp: ?, Cost: 1) f2200(Ar_2) -> Com_1(f10000(0)) [ Ar_2 = 0 ] (Comp: ?, Cost: 1) f2(Ar_2) -> Com_1(f1200(Ar_2)) (Comp: ?, Cost: 1) f2(Ar_2) -> Com_1(f10001(Ar_2)) (Comp: ?, Cost: 1) f2(Ar_2) -> Com_1(f2(Ar_2)) (Comp: ?, Cost: 1) f0(Ar_2) -> Com_1(f10001(Ar_2)) start location: koat_start leaf cost: 0 Testing for reachability in the complexity graph removes the following transitions from problem 2: f1000(Ar_2) -> Com_1(f10001(Ar_2)) f1000(Ar_2) -> Com_1(f10001(Ar_2)) f1000(Ar_2) -> Com_1(f1200(Ar_2)) f100(Ar_2) -> Com_1(f10001(Ar_2)) f100(Ar_2) -> Com_1(f110(Ar_2)) f2200(Ar_2) -> Com_1(f10000(0)) [ Ar_2 = 0 ] We thus obtain the following problem: 3: T: (Comp: ?, Cost: 1) f1200(Ar_2) -> Com_1(f1200(Ar_2)) (Comp: ?, Cost: 1) f1200(Ar_2) -> Com_1(f10001(Ar_2)) (Comp: ?, Cost: 1) f120(Ar_2) -> Com_1(f120(Ar_2)) (Comp: ?, Cost: 1) f120(Ar_2) -> Com_1(f10001(Ar_2)) (Comp: ?, Cost: 1) f2(Ar_2) -> Com_1(f2(Ar_2)) (Comp: ?, Cost: 1) f2(Ar_2) -> Com_1(f10001(Ar_2)) (Comp: ?, Cost: 1) f2(Ar_2) -> Com_1(f1200(Ar_2)) (Comp: ?, Cost: 1) f110(Ar_2) -> Com_1(f120(Ar_2)) (Comp: ?, Cost: 1) f110(Ar_2) -> Com_1(f10001(Ar_2)) (Comp: ?, Cost: 1) f12(Ar_2) -> Com_1(f12(Ar_2)) (Comp: ?, Cost: 1) f12(Ar_2) -> Com_1(f10001(Ar_2)) (Comp: ?, Cost: 1) f0(Ar_2) -> Com_1(f10001(Ar_2)) (Comp: ?, Cost: 1) f0(Ar_2) -> Com_1(f2(Ar_2)) (Comp: ?, Cost: 1) f0(Ar_2) -> Com_1(f10001(Ar_2)) (Comp: ?, Cost: 1) f0(Ar_2) -> Com_1(f110(Ar_2)) (Comp: ?, Cost: 1) f0(Ar_2) -> Com_1(f12(Ar_2)) (Comp: ?, Cost: 1) f0(Ar_2) -> Com_1(f10001(Ar_2)) (Comp: ?, Cost: 1) f0(Ar_2) -> Com_1(f10001(Ar_2)) (Comp: 1, Cost: 0) koat_start(Ar_2) -> Com_1(f0(Ar_2)) [ 0 <= 0 ] start location: koat_start leaf cost: 0 Repeatedly propagating knowledge in problem 3 produces the following problem: 4: T: (Comp: ?, Cost: 1) f1200(Ar_2) -> Com_1(f1200(Ar_2)) (Comp: ?, Cost: 1) f1200(Ar_2) -> Com_1(f10001(Ar_2)) (Comp: ?, Cost: 1) f120(Ar_2) -> Com_1(f120(Ar_2)) (Comp: ?, Cost: 1) f120(Ar_2) -> Com_1(f10001(Ar_2)) (Comp: ?, Cost: 1) f2(Ar_2) -> Com_1(f2(Ar_2)) (Comp: ?, Cost: 1) f2(Ar_2) -> Com_1(f10001(Ar_2)) (Comp: ?, Cost: 1) f2(Ar_2) -> Com_1(f1200(Ar_2)) (Comp: 1, Cost: 1) f110(Ar_2) -> Com_1(f120(Ar_2)) (Comp: 1, Cost: 1) f110(Ar_2) -> Com_1(f10001(Ar_2)) (Comp: ?, Cost: 1) f12(Ar_2) -> Com_1(f12(Ar_2)) (Comp: ?, Cost: 1) f12(Ar_2) -> Com_1(f10001(Ar_2)) (Comp: 1, Cost: 1) f0(Ar_2) -> Com_1(f10001(Ar_2)) (Comp: 1, Cost: 1) f0(Ar_2) -> Com_1(f2(Ar_2)) (Comp: 1, Cost: 1) f0(Ar_2) -> Com_1(f10001(Ar_2)) (Comp: 1, Cost: 1) f0(Ar_2) -> Com_1(f110(Ar_2)) (Comp: 1, Cost: 1) f0(Ar_2) -> Com_1(f12(Ar_2)) (Comp: 1, Cost: 1) f0(Ar_2) -> Com_1(f10001(Ar_2)) (Comp: 1, Cost: 1) f0(Ar_2) -> Com_1(f10001(Ar_2)) (Comp: 1, Cost: 0) koat_start(Ar_2) -> Com_1(f0(Ar_2)) [ 0 <= 0 ] start location: koat_start leaf cost: 0 A polynomial rank function with Pol(f1200) = 1 Pol(f10001) = 0 Pol(f120) = 1 Pol(f2) = 2 Pol(f110) = 1 Pol(f12) = 1 Pol(f0) = 2 Pol(koat_start) = 2 orients all transitions weakly and the transitions f2(Ar_2) -> Com_1(f1200(Ar_2)) f2(Ar_2) -> Com_1(f10001(Ar_2)) f1200(Ar_2) -> Com_1(f10001(Ar_2)) f120(Ar_2) -> Com_1(f10001(Ar_2)) f12(Ar_2) -> Com_1(f10001(Ar_2)) strictly and produces the following problem: 5: T: (Comp: ?, Cost: 1) f1200(Ar_2) -> Com_1(f1200(Ar_2)) (Comp: 2, Cost: 1) f1200(Ar_2) -> Com_1(f10001(Ar_2)) (Comp: ?, Cost: 1) f120(Ar_2) -> Com_1(f120(Ar_2)) (Comp: 2, Cost: 1) f120(Ar_2) -> Com_1(f10001(Ar_2)) (Comp: ?, Cost: 1) f2(Ar_2) -> Com_1(f2(Ar_2)) (Comp: 2, Cost: 1) f2(Ar_2) -> Com_1(f10001(Ar_2)) (Comp: 2, Cost: 1) f2(Ar_2) -> Com_1(f1200(Ar_2)) (Comp: 1, Cost: 1) f110(Ar_2) -> Com_1(f120(Ar_2)) (Comp: 1, Cost: 1) f110(Ar_2) -> Com_1(f10001(Ar_2)) (Comp: ?, Cost: 1) f12(Ar_2) -> Com_1(f12(Ar_2)) (Comp: 2, Cost: 1) f12(Ar_2) -> Com_1(f10001(Ar_2)) (Comp: 1, Cost: 1) f0(Ar_2) -> Com_1(f10001(Ar_2)) (Comp: 1, Cost: 1) f0(Ar_2) -> Com_1(f2(Ar_2)) (Comp: 1, Cost: 1) f0(Ar_2) -> Com_1(f10001(Ar_2)) (Comp: 1, Cost: 1) f0(Ar_2) -> Com_1(f110(Ar_2)) (Comp: 1, Cost: 1) f0(Ar_2) -> Com_1(f12(Ar_2)) (Comp: 1, Cost: 1) f0(Ar_2) -> Com_1(f10001(Ar_2)) (Comp: 1, Cost: 1) f0(Ar_2) -> Com_1(f10001(Ar_2)) (Comp: 1, Cost: 0) koat_start(Ar_2) -> Com_1(f0(Ar_2)) [ 0 <= 0 ] start location: koat_start leaf cost: 0 Complexity upper bound ? Time: 1.160 sec (SMT: 1.102 sec)