MAYBE TRS: {f(true(), x, y) -> f(gt(x, y), trunc(x), s(y)), gt(s(u), s(v)) -> gt(u, v), gt(s(u), 0()) -> true(), gt(0(), v) -> false(), trunc(s(s(x))) -> s(s(trunc(x))), trunc(s(0())) -> 0(), trunc(0()) -> 0()} DP: Strict: {f#(true(), x, y) -> f#(gt(x, y), trunc(x), s(y)), f#(true(), x, y) -> gt#(x, y), f#(true(), x, y) -> trunc#(x), gt#(s(u), s(v)) -> gt#(u, v), trunc#(s(s(x))) -> trunc#(x)} Weak: {f(true(), x, y) -> f(gt(x, y), trunc(x), s(y)), gt(s(u), s(v)) -> gt(u, v), gt(s(u), 0()) -> true(), gt(0(), v) -> false(), trunc(s(s(x))) -> s(s(trunc(x))), trunc(s(0())) -> 0(), trunc(0()) -> 0()} EDG: {(gt#(s(u), s(v)) -> gt#(u, v), gt#(s(u), s(v)) -> gt#(u, v)) (f#(true(), x, y) -> f#(gt(x, y), trunc(x), s(y)), f#(true(), x, y) -> trunc#(x)) (f#(true(), x, y) -> f#(gt(x, y), trunc(x), s(y)), f#(true(), x, y) -> gt#(x, y)) (f#(true(), x, y) -> f#(gt(x, y), trunc(x), s(y)), f#(true(), x, y) -> f#(gt(x, y), trunc(x), s(y))) (f#(true(), x, y) -> gt#(x, y), gt#(s(u), s(v)) -> gt#(u, v)) (trunc#(s(s(x))) -> trunc#(x), trunc#(s(s(x))) -> trunc#(x)) (f#(true(), x, y) -> trunc#(x), trunc#(s(s(x))) -> trunc#(x))} SCCS: Scc: {trunc#(s(s(x))) -> trunc#(x)} Scc: {gt#(s(u), s(v)) -> gt#(u, v)} Scc: {f#(true(), x, y) -> f#(gt(x, y), trunc(x), s(y))} SCC: Strict: {trunc#(s(s(x))) -> trunc#(x)} Weak: {f(true(), x, y) -> f(gt(x, y), trunc(x), s(y)), gt(s(u), s(v)) -> gt(u, v), gt(s(u), 0()) -> true(), gt(0(), v) -> false(), trunc(s(s(x))) -> s(s(trunc(x))), trunc(s(0())) -> 0(), trunc(0()) -> 0()} SPSC: Simple Projection: pi(trunc#) = 0 Strict: {} Qed SCC: Strict: {gt#(s(u), s(v)) -> gt#(u, v)} Weak: {f(true(), x, y) -> f(gt(x, y), trunc(x), s(y)), gt(s(u), s(v)) -> gt(u, v), gt(s(u), 0()) -> true(), gt(0(), v) -> false(), trunc(s(s(x))) -> s(s(trunc(x))), trunc(s(0())) -> 0(), trunc(0()) -> 0()} SPSC: Simple Projection: pi(gt#) = 0 Strict: {} Qed SCC: Strict: {f#(true(), x, y) -> f#(gt(x, y), trunc(x), s(y))} Weak: {f(true(), x, y) -> f(gt(x, y), trunc(x), s(y)), gt(s(u), s(v)) -> gt(u, v), gt(s(u), 0()) -> true(), gt(0(), v) -> false(), trunc(s(s(x))) -> s(s(trunc(x))), trunc(s(0())) -> 0(), trunc(0()) -> 0()} Fail