MAYBE TRS: { gcd2(x, y, i) -> if1(le(x, 0()), le(y, 0()), le(x, y), le(y, x), x, y, inc(i)), gcd(x, y) -> gcd2(x, y, 0()), if1(true(), b1, b2, b3, x, y, i) -> pair(result(y), neededIterations(i)), if1(false(), b1, b2, b3, x, y, i) -> if2(b1, b2, b3, x, y, i), le(0(), y) -> true(), le(s(x), 0()) -> false(), le(s(x), s(y)) -> le(x, y), inc(0()) -> 0(), inc(s(i)) -> s(inc(i)), if2(true(), b2, b3, x, y, i) -> pair(result(x), neededIterations(i)), if2(false(), b2, b3, x, y, i) -> if3(b2, b3, x, y, i), if3(true(), b3, x, y, i) -> if4(b3, x, y, i), if3(false(), b3, x, y, i) -> gcd2(minus(x, y), y, i), minus(x, 0()) -> x, minus(0(), y) -> 0(), minus(s(x), s(y)) -> minus(x, y), if4(true(), x, y, i) -> pair(result(x), neededIterations(i)), if4(false(), x, y, i) -> gcd2(x, minus(y, x), i), a() -> b(), a() -> c()} DP: Strict: { gcd2#(x, y, i) -> if1#(le(x, 0()), le(y, 0()), le(x, y), le(y, x), x, y, inc(i)), gcd2#(x, y, i) -> le#(x, y), gcd2#(x, y, i) -> le#(x, 0()), gcd2#(x, y, i) -> le#(y, x), gcd2#(x, y, i) -> le#(y, 0()), gcd2#(x, y, i) -> inc#(i), gcd#(x, y) -> gcd2#(x, y, 0()), if1#(false(), b1, b2, b3, x, y, i) -> if2#(b1, b2, b3, x, y, i), le#(s(x), s(y)) -> le#(x, y), inc#(s(i)) -> inc#(i), if2#(false(), b2, b3, x, y, i) -> if3#(b2, b3, x, y, i), if3#(true(), b3, x, y, i) -> if4#(b3, x, y, i), if3#(false(), b3, x, y, i) -> gcd2#(minus(x, y), y, i), if3#(false(), b3, x, y, i) -> minus#(x, y), minus#(s(x), s(y)) -> minus#(x, y), if4#(false(), x, y, i) -> gcd2#(x, minus(y, x), i), if4#(false(), x, y, i) -> minus#(y, x)} Weak: { gcd2(x, y, i) -> if1(le(x, 0()), le(y, 0()), le(x, y), le(y, x), x, y, inc(i)), gcd(x, y) -> gcd2(x, y, 0()), if1(true(), b1, b2, b3, x, y, i) -> pair(result(y), neededIterations(i)), if1(false(), b1, b2, b3, x, y, i) -> if2(b1, b2, b3, x, y, i), le(0(), y) -> true(), le(s(x), 0()) -> false(), le(s(x), s(y)) -> le(x, y), inc(0()) -> 0(), inc(s(i)) -> s(inc(i)), if2(true(), b2, b3, x, y, i) -> pair(result(x), neededIterations(i)), if2(false(), b2, b3, x, y, i) -> if3(b2, b3, x, y, i), if3(true(), b3, x, y, i) -> if4(b3, x, y, i), if3(false(), b3, x, y, i) -> gcd2(minus(x, y), y, i), minus(x, 0()) -> x, minus(0(), y) -> 0(), minus(s(x), s(y)) -> minus(x, y), if4(true(), x, y, i) -> pair(result(x), neededIterations(i)), if4(false(), x, y, i) -> gcd2(x, minus(y, x), i), a() -> b(), a() -> c()} EDG: {(if3#(false(), b3, x, y, i) -> gcd2#(minus(x, y), y, i), gcd2#(x, y, i) -> inc#(i)) (if3#(false(), b3, x, y, i) -> gcd2#(minus(x, y), y, i), gcd2#(x, y, i) -> le#(y, 0())) (if3#(false(), b3, x, y, i) -> gcd2#(minus(x, y), y, i), gcd2#(x, y, i) -> le#(y, x)) (if3#(false(), b3, x, y, i) -> gcd2#(minus(x, y), y, i), gcd2#(x, y, i) -> le#(x, 0())) (if3#(false(), b3, x, y, i) -> gcd2#(minus(x, y), y, i), gcd2#(x, y, i) -> le#(x, y)) (if3#(false(), b3, x, y, i) -> gcd2#(minus(x, y), y, i), gcd2#(x, y, i) -> if1#(le(x, 0()), le(y, 0()), le(x, y), le(y, x), x, y, inc(i))) (gcd2#(x, y, i) -> if1#(le(x, 0()), le(y, 0()), le(x, y), le(y, x), x, y, inc(i)), if1#(false(), b1, b2, b3, x, y, i) -> if2#(b1, b2, b3, x, y, i)) (if1#(false(), b1, b2, b3, x, y, i) -> if2#(b1, b2, b3, x, y, i), if2#(false(), b2, b3, x, y, i) -> if3#(b2, b3, x, y, i)) (if4#(false(), x, y, i) -> minus#(y, x), minus#(s(x), s(y)) -> minus#(x, y)) (le#(s(x), s(y)) -> le#(x, y), le#(s(x), s(y)) -> le#(x, y)) (minus#(s(x), s(y)) -> minus#(x, y), minus#(s(x), s(y)) -> minus#(x, y)) (inc#(s(i)) -> inc#(i), inc#(s(i)) -> inc#(i)) (gcd#(x, y) -> gcd2#(x, y, 0()), gcd2#(x, y, i) -> if1#(le(x, 0()), le(y, 0()), le(x, y), le(y, x), x, y, inc(i))) (gcd#(x, y) -> gcd2#(x, y, 0()), gcd2#(x, y, i) -> le#(x, y)) (gcd#(x, y) -> gcd2#(x, y, 0()), gcd2#(x, y, i) -> le#(x, 0())) (gcd#(x, y) -> gcd2#(x, y, 0()), gcd2#(x, y, i) -> le#(y, x)) (gcd#(x, y) -> gcd2#(x, y, 0()), gcd2#(x, y, i) -> le#(y, 0())) (gcd#(x, y) -> gcd2#(x, y, 0()), gcd2#(x, y, i) -> inc#(i)) (gcd2#(x, y, i) -> inc#(i), inc#(s(i)) -> inc#(i)) (if3#(false(), b3, x, y, i) -> minus#(x, y), minus#(s(x), s(y)) -> minus#(x, y)) (gcd2#(x, y, i) -> le#(x, y), le#(s(x), s(y)) -> le#(x, y)) (if2#(false(), b2, b3, x, y, i) -> if3#(b2, b3, x, y, i), if3#(true(), b3, x, y, i) -> if4#(b3, x, y, i)) (if2#(false(), b2, b3, x, y, i) -> if3#(b2, b3, x, y, i), if3#(false(), b3, x, y, i) -> gcd2#(minus(x, y), y, i)) (if2#(false(), b2, b3, x, y, i) -> if3#(b2, b3, x, y, i), if3#(false(), b3, x, y, i) -> minus#(x, y)) (gcd2#(x, y, i) -> le#(y, x), le#(s(x), s(y)) -> le#(x, y)) (if3#(true(), b3, x, y, i) -> if4#(b3, x, y, i), if4#(false(), x, y, i) -> gcd2#(x, minus(y, x), i)) (if3#(true(), b3, x, y, i) -> if4#(b3, x, y, i), if4#(false(), x, y, i) -> minus#(y, x)) (if4#(false(), x, y, i) -> gcd2#(x, minus(y, x), i), gcd2#(x, y, i) -> if1#(le(x, 0()), le(y, 0()), le(x, y), le(y, x), x, y, inc(i))) (if4#(false(), x, y, i) -> gcd2#(x, minus(y, x), i), gcd2#(x, y, i) -> le#(x, y)) (if4#(false(), x, y, i) -> gcd2#(x, minus(y, x), i), gcd2#(x, y, i) -> le#(x, 0())) (if4#(false(), x, y, i) -> gcd2#(x, minus(y, x), i), gcd2#(x, y, i) -> le#(y, x)) (if4#(false(), x, y, i) -> gcd2#(x, minus(y, x), i), gcd2#(x, y, i) -> le#(y, 0())) (if4#(false(), x, y, i) -> gcd2#(x, minus(y, x), i), gcd2#(x, y, i) -> inc#(i))} SCCS: Scc: {minus#(s(x), s(y)) -> minus#(x, y)} Scc: {inc#(s(i)) -> inc#(i)} Scc: {le#(s(x), s(y)) -> le#(x, y)} Scc: { gcd2#(x, y, i) -> if1#(le(x, 0()), le(y, 0()), le(x, y), le(y, x), x, y, inc(i)), if1#(false(), b1, b2, b3, x, y, i) -> if2#(b1, b2, b3, x, y, i), if2#(false(), b2, b3, x, y, i) -> if3#(b2, b3, x, y, i), if3#(true(), b3, x, y, i) -> if4#(b3, x, y, i), if3#(false(), b3, x, y, i) -> gcd2#(minus(x, y), y, i), if4#(false(), x, y, i) -> gcd2#(x, minus(y, x), i)} SCC: Strict: {minus#(s(x), s(y)) -> minus#(x, y)} Weak: { gcd2(x, y, i) -> if1(le(x, 0()), le(y, 0()), le(x, y), le(y, x), x, y, inc(i)), gcd(x, y) -> gcd2(x, y, 0()), if1(true(), b1, b2, b3, x, y, i) -> pair(result(y), neededIterations(i)), if1(false(), b1, b2, b3, x, y, i) -> if2(b1, b2, b3, x, y, i), le(0(), y) -> true(), le(s(x), 0()) -> false(), le(s(x), s(y)) -> le(x, y), inc(0()) -> 0(), inc(s(i)) -> s(inc(i)), if2(true(), b2, b3, x, y, i) -> pair(result(x), neededIterations(i)), if2(false(), b2, b3, x, y, i) -> if3(b2, b3, x, y, i), if3(true(), b3, x, y, i) -> if4(b3, x, y, i), if3(false(), b3, x, y, i) -> gcd2(minus(x, y), y, i), minus(x, 0()) -> x, minus(0(), y) -> 0(), minus(s(x), s(y)) -> minus(x, y), if4(true(), x, y, i) -> pair(result(x), neededIterations(i)), if4(false(), x, y, i) -> gcd2(x, minus(y, x), i), a() -> b(), a() -> c()} SPSC: Simple Projection: pi(minus#) = 0 Strict: {} Qed SCC: Strict: {inc#(s(i)) -> inc#(i)} Weak: { gcd2(x, y, i) -> if1(le(x, 0()), le(y, 0()), le(x, y), le(y, x), x, y, inc(i)), gcd(x, y) -> gcd2(x, y, 0()), if1(true(), b1, b2, b3, x, y, i) -> pair(result(y), neededIterations(i)), if1(false(), b1, b2, b3, x, y, i) -> if2(b1, b2, b3, x, y, i), le(0(), y) -> true(), le(s(x), 0()) -> false(), le(s(x), s(y)) -> le(x, y), inc(0()) -> 0(), inc(s(i)) -> s(inc(i)), if2(true(), b2, b3, x, y, i) -> pair(result(x), neededIterations(i)), if2(false(), b2, b3, x, y, i) -> if3(b2, b3, x, y, i), if3(true(), b3, x, y, i) -> if4(b3, x, y, i), if3(false(), b3, x, y, i) -> gcd2(minus(x, y), y, i), minus(x, 0()) -> x, minus(0(), y) -> 0(), minus(s(x), s(y)) -> minus(x, y), if4(true(), x, y, i) -> pair(result(x), neededIterations(i)), if4(false(), x, y, i) -> gcd2(x, minus(y, x), i), a() -> b(), a() -> c()} SPSC: Simple Projection: pi(inc#) = 0 Strict: {} Qed SCC: Strict: {le#(s(x), s(y)) -> le#(x, y)} Weak: { gcd2(x, y, i) -> if1(le(x, 0()), le(y, 0()), le(x, y), le(y, x), x, y, inc(i)), gcd(x, y) -> gcd2(x, y, 0()), if1(true(), b1, b2, b3, x, y, i) -> pair(result(y), neededIterations(i)), if1(false(), b1, b2, b3, x, y, i) -> if2(b1, b2, b3, x, y, i), le(0(), y) -> true(), le(s(x), 0()) -> false(), le(s(x), s(y)) -> le(x, y), inc(0()) -> 0(), inc(s(i)) -> s(inc(i)), if2(true(), b2, b3, x, y, i) -> pair(result(x), neededIterations(i)), if2(false(), b2, b3, x, y, i) -> if3(b2, b3, x, y, i), if3(true(), b3, x, y, i) -> if4(b3, x, y, i), if3(false(), b3, x, y, i) -> gcd2(minus(x, y), y, i), minus(x, 0()) -> x, minus(0(), y) -> 0(), minus(s(x), s(y)) -> minus(x, y), if4(true(), x, y, i) -> pair(result(x), neededIterations(i)), if4(false(), x, y, i) -> gcd2(x, minus(y, x), i), a() -> b(), a() -> c()} SPSC: Simple Projection: pi(le#) = 0 Strict: {} Qed SCC: Strict: { gcd2#(x, y, i) -> if1#(le(x, 0()), le(y, 0()), le(x, y), le(y, x), x, y, inc(i)), if1#(false(), b1, b2, b3, x, y, i) -> if2#(b1, b2, b3, x, y, i), if2#(false(), b2, b3, x, y, i) -> if3#(b2, b3, x, y, i), if3#(true(), b3, x, y, i) -> if4#(b3, x, y, i), if3#(false(), b3, x, y, i) -> gcd2#(minus(x, y), y, i), if4#(false(), x, y, i) -> gcd2#(x, minus(y, x), i)} Weak: { gcd2(x, y, i) -> if1(le(x, 0()), le(y, 0()), le(x, y), le(y, x), x, y, inc(i)), gcd(x, y) -> gcd2(x, y, 0()), if1(true(), b1, b2, b3, x, y, i) -> pair(result(y), neededIterations(i)), if1(false(), b1, b2, b3, x, y, i) -> if2(b1, b2, b3, x, y, i), le(0(), y) -> true(), le(s(x), 0()) -> false(), le(s(x), s(y)) -> le(x, y), inc(0()) -> 0(), inc(s(i)) -> s(inc(i)), if2(true(), b2, b3, x, y, i) -> pair(result(x), neededIterations(i)), if2(false(), b2, b3, x, y, i) -> if3(b2, b3, x, y, i), if3(true(), b3, x, y, i) -> if4(b3, x, y, i), if3(false(), b3, x, y, i) -> gcd2(minus(x, y), y, i), minus(x, 0()) -> x, minus(0(), y) -> 0(), minus(s(x), s(y)) -> minus(x, y), if4(true(), x, y, i) -> pair(result(x), neededIterations(i)), if4(false(), x, y, i) -> gcd2(x, minus(y, x), i), a() -> b(), a() -> c()} Fail