MAYBE TRS: { minus(x, 0()) -> x, minus(minus(x, y), z) -> minus(x, plus(y, z)), minus(s(x), s(y)) -> minus(x, y), quot(0(), s(y)) -> 0(), quot(s(x), s(y)) -> s(quot(minus(x, y), s(y))), plus(0(), y) -> y, plus(s(x), x) -> plus(if(gt(x, x), id(x), id(x)), s(x)), plus(s(x), y) -> s(plus(x, y)), plus(s(x), s(y)) -> s(s(plus(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))))), plus(id(x), s(y)) -> s(plus(x, if(gt(s(y), y), y, s(y)))), plus(zero(), y) -> y, app(l, nil()) -> l, app(nil(), k) -> k, app(cons(x, l), k) -> cons(x, app(l, k)), sum(app(l, cons(x, cons(y, k)))) -> sum(app(l, sum(cons(x, cons(y, k))))), sum(cons(x, nil())) -> cons(x, nil()), sum(cons(x, cons(y, l))) -> sum(cons(plus(x, y), l)), if(true(), x, y) -> x, if(false(), x, y) -> y, gt(s(x), s(y)) -> gt(x, y), gt(s(x), zero()) -> true(), gt(zero(), y) -> false(), not(x) -> if(x, false(), true()), id(x) -> x} DP: Strict: { minus#(minus(x, y), z) -> minus#(x, plus(y, z)), minus#(minus(x, y), z) -> plus#(y, z), minus#(s(x), s(y)) -> minus#(x, y), quot#(s(x), s(y)) -> minus#(x, y), quot#(s(x), s(y)) -> quot#(minus(x, y), s(y)), plus#(s(x), x) -> plus#(if(gt(x, x), id(x), id(x)), s(x)), plus#(s(x), x) -> if#(gt(x, x), id(x), id(x)), plus#(s(x), x) -> gt#(x, x), plus#(s(x), x) -> id#(x), plus#(s(x), y) -> plus#(x, y), plus#(s(x), s(y)) -> plus#(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))), plus#(s(x), s(y)) -> if#(gt(x, y), x, y), plus#(s(x), s(y)) -> if#(not(gt(x, y)), id(x), id(y)), plus#(s(x), s(y)) -> gt#(x, y), plus#(s(x), s(y)) -> not#(gt(x, y)), plus#(s(x), s(y)) -> id#(x), plus#(s(x), s(y)) -> id#(y), plus#(id(x), s(y)) -> plus#(x, if(gt(s(y), y), y, s(y))), plus#(id(x), s(y)) -> if#(gt(s(y), y), y, s(y)), plus#(id(x), s(y)) -> gt#(s(y), y), app#(cons(x, l), k) -> app#(l, k), sum#(app(l, cons(x, cons(y, k)))) -> app#(l, sum(cons(x, cons(y, k)))), sum#(app(l, cons(x, cons(y, k)))) -> sum#(app(l, sum(cons(x, cons(y, k))))), sum#(app(l, cons(x, cons(y, k)))) -> sum#(cons(x, cons(y, k))), sum#(cons(x, cons(y, l))) -> plus#(x, y), sum#(cons(x, cons(y, l))) -> sum#(cons(plus(x, y), l)), gt#(s(x), s(y)) -> gt#(x, y), not#(x) -> if#(x, false(), true())} Weak: { minus(x, 0()) -> x, minus(minus(x, y), z) -> minus(x, plus(y, z)), minus(s(x), s(y)) -> minus(x, y), quot(0(), s(y)) -> 0(), quot(s(x), s(y)) -> s(quot(minus(x, y), s(y))), plus(0(), y) -> y, plus(s(x), x) -> plus(if(gt(x, x), id(x), id(x)), s(x)), plus(s(x), y) -> s(plus(x, y)), plus(s(x), s(y)) -> s(s(plus(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))))), plus(id(x), s(y)) -> s(plus(x, if(gt(s(y), y), y, s(y)))), plus(zero(), y) -> y, app(l, nil()) -> l, app(nil(), k) -> k, app(cons(x, l), k) -> cons(x, app(l, k)), sum(app(l, cons(x, cons(y, k)))) -> sum(app(l, sum(cons(x, cons(y, k))))), sum(cons(x, nil())) -> cons(x, nil()), sum(cons(x, cons(y, l))) -> sum(cons(plus(x, y), l)), if(true(), x, y) -> x, if(false(), x, y) -> y, gt(s(x), s(y)) -> gt(x, y), gt(s(x), zero()) -> true(), gt(zero(), y) -> false(), not(x) -> if(x, false(), true()), id(x) -> x} EDG: { (sum#(app(l, cons(x, cons(y, k)))) -> app#(l, sum(cons(x, cons(y, k)))), app#(cons(x, l), k) -> app#(l, k)) (sum#(app(l, cons(x, cons(y, k)))) -> sum#(cons(x, cons(y, k))), sum#(cons(x, cons(y, l))) -> sum#(cons(plus(x, y), l))) (sum#(app(l, cons(x, cons(y, k)))) -> sum#(cons(x, cons(y, k))), sum#(cons(x, cons(y, l))) -> plus#(x, y)) (plus#(id(x), s(y)) -> gt#(s(y), y), gt#(s(x), s(y)) -> gt#(x, y)) (sum#(cons(x, cons(y, l))) -> sum#(cons(plus(x, y), l)), sum#(cons(x, cons(y, l))) -> sum#(cons(plus(x, y), l))) (sum#(cons(x, cons(y, l))) -> sum#(cons(plus(x, y), l)), sum#(cons(x, cons(y, l))) -> plus#(x, y)) (plus#(s(x), s(y)) -> plus#(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))), plus#(id(x), s(y)) -> gt#(s(y), y)) (plus#(s(x), s(y)) -> plus#(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))), plus#(id(x), s(y)) -> if#(gt(s(y), y), y, s(y))) (plus#(s(x), s(y)) -> plus#(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))), plus#(id(x), s(y)) -> plus#(x, if(gt(s(y), y), y, s(y)))) (plus#(s(x), s(y)) -> plus#(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))), plus#(s(x), s(y)) -> id#(y)) (plus#(s(x), s(y)) -> plus#(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))), plus#(s(x), s(y)) -> id#(x)) (plus#(s(x), s(y)) -> plus#(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))), plus#(s(x), s(y)) -> not#(gt(x, y))) (plus#(s(x), s(y)) -> plus#(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))), plus#(s(x), s(y)) -> gt#(x, y)) (plus#(s(x), s(y)) -> plus#(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))), plus#(s(x), s(y)) -> if#(not(gt(x, y)), id(x), id(y))) (plus#(s(x), s(y)) -> plus#(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))), plus#(s(x), s(y)) -> if#(gt(x, y), x, y)) (plus#(s(x), s(y)) -> plus#(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))), plus#(s(x), s(y)) -> plus#(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y)))) (plus#(s(x), s(y)) -> plus#(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))), plus#(s(x), y) -> plus#(x, y)) (plus#(s(x), s(y)) -> plus#(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))), plus#(s(x), x) -> id#(x)) (plus#(s(x), s(y)) -> plus#(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))), plus#(s(x), x) -> gt#(x, x)) (plus#(s(x), s(y)) -> plus#(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))), plus#(s(x), x) -> if#(gt(x, x), id(x), id(x))) (plus#(s(x), s(y)) -> plus#(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))), plus#(s(x), x) -> plus#(if(gt(x, x), id(x), id(x)), s(x))) (minus#(minus(x, y), z) -> minus#(x, plus(y, z)), minus#(s(x), s(y)) -> minus#(x, y)) (minus#(minus(x, y), z) -> minus#(x, plus(y, z)), minus#(minus(x, y), z) -> plus#(y, z)) (minus#(minus(x, y), z) -> minus#(x, plus(y, z)), minus#(minus(x, y), z) -> minus#(x, plus(y, z))) (quot#(s(x), s(y)) -> minus#(x, y), minus#(s(x), s(y)) -> minus#(x, y)) (quot#(s(x), s(y)) -> minus#(x, y), minus#(minus(x, y), z) -> plus#(y, z)) (quot#(s(x), s(y)) -> minus#(x, y), minus#(minus(x, y), z) -> minus#(x, plus(y, z))) (plus#(s(x), s(y)) -> gt#(x, y), gt#(s(x), s(y)) -> gt#(x, y)) (gt#(s(x), s(y)) -> gt#(x, y), gt#(s(x), s(y)) -> gt#(x, y)) (app#(cons(x, l), k) -> app#(l, k), app#(cons(x, l), k) -> app#(l, k)) (plus#(s(x), x) -> plus#(if(gt(x, x), id(x), id(x)), s(x)), plus#(id(x), s(y)) -> gt#(s(y), y)) (plus#(s(x), x) -> plus#(if(gt(x, x), id(x), id(x)), s(x)), plus#(id(x), s(y)) -> if#(gt(s(y), y), y, s(y))) (plus#(s(x), x) -> plus#(if(gt(x, x), id(x), id(x)), s(x)), plus#(id(x), s(y)) -> plus#(x, if(gt(s(y), y), y, s(y)))) (plus#(s(x), x) -> plus#(if(gt(x, x), id(x), id(x)), s(x)), plus#(s(x), s(y)) -> id#(y)) (plus#(s(x), x) -> plus#(if(gt(x, x), id(x), id(x)), s(x)), plus#(s(x), s(y)) -> id#(x)) (plus#(s(x), x) -> plus#(if(gt(x, x), id(x), id(x)), s(x)), plus#(s(x), s(y)) -> not#(gt(x, y))) (plus#(s(x), x) -> plus#(if(gt(x, x), id(x), id(x)), s(x)), plus#(s(x), s(y)) -> gt#(x, y)) (plus#(s(x), x) -> plus#(if(gt(x, x), id(x), id(x)), s(x)), plus#(s(x), s(y)) -> if#(not(gt(x, y)), id(x), id(y))) (plus#(s(x), x) -> plus#(if(gt(x, x), id(x), id(x)), s(x)), plus#(s(x), s(y)) -> if#(gt(x, y), x, y)) (plus#(s(x), x) -> plus#(if(gt(x, x), id(x), id(x)), s(x)), plus#(s(x), s(y)) -> plus#(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y)))) (plus#(s(x), x) -> plus#(if(gt(x, x), id(x), id(x)), s(x)), plus#(s(x), y) -> plus#(x, y)) (plus#(s(x), x) -> plus#(if(gt(x, x), id(x), id(x)), s(x)), plus#(s(x), x) -> id#(x)) (plus#(s(x), x) -> plus#(if(gt(x, x), id(x), id(x)), s(x)), plus#(s(x), x) -> gt#(x, x)) (plus#(s(x), x) -> plus#(if(gt(x, x), id(x), id(x)), s(x)), plus#(s(x), x) -> if#(gt(x, x), id(x), id(x))) (plus#(s(x), x) -> plus#(if(gt(x, x), id(x), id(x)), s(x)), plus#(s(x), x) -> plus#(if(gt(x, x), id(x), id(x)), s(x))) (quot#(s(x), s(y)) -> quot#(minus(x, y), s(y)), quot#(s(x), s(y)) -> minus#(x, y)) (quot#(s(x), s(y)) -> quot#(minus(x, y), s(y)), quot#(s(x), s(y)) -> quot#(minus(x, y), s(y))) (sum#(cons(x, cons(y, l))) -> plus#(x, y), plus#(s(x), x) -> plus#(if(gt(x, x), id(x), id(x)), s(x))) (sum#(cons(x, cons(y, l))) -> plus#(x, y), plus#(s(x), x) -> if#(gt(x, x), id(x), id(x))) (sum#(cons(x, cons(y, l))) -> plus#(x, y), plus#(s(x), x) -> gt#(x, x)) (sum#(cons(x, cons(y, l))) -> plus#(x, y), plus#(s(x), x) -> id#(x)) (sum#(cons(x, cons(y, l))) -> plus#(x, y), plus#(s(x), y) -> plus#(x, y)) (sum#(cons(x, cons(y, l))) -> plus#(x, y), plus#(s(x), s(y)) -> plus#(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y)))) (sum#(cons(x, cons(y, l))) -> plus#(x, y), plus#(s(x), s(y)) -> if#(gt(x, y), x, y)) (sum#(cons(x, cons(y, l))) -> plus#(x, y), plus#(s(x), s(y)) -> if#(not(gt(x, y)), id(x), id(y))) (sum#(cons(x, cons(y, l))) -> plus#(x, y), plus#(s(x), s(y)) -> gt#(x, y)) (sum#(cons(x, cons(y, l))) -> plus#(x, y), plus#(s(x), s(y)) -> not#(gt(x, y))) (sum#(cons(x, cons(y, l))) -> plus#(x, y), plus#(s(x), s(y)) -> id#(x)) (sum#(cons(x, cons(y, l))) -> plus#(x, y), plus#(s(x), s(y)) -> id#(y)) (sum#(cons(x, cons(y, l))) -> plus#(x, y), plus#(id(x), s(y)) -> plus#(x, if(gt(s(y), y), y, s(y)))) (sum#(cons(x, cons(y, l))) -> plus#(x, y), plus#(id(x), s(y)) -> if#(gt(s(y), y), y, s(y))) (sum#(cons(x, cons(y, l))) -> plus#(x, y), plus#(id(x), s(y)) -> gt#(s(y), y)) (plus#(s(x), y) -> plus#(x, y), plus#(s(x), x) -> plus#(if(gt(x, x), id(x), id(x)), s(x))) (plus#(s(x), y) -> plus#(x, y), plus#(s(x), x) -> if#(gt(x, x), id(x), id(x))) (plus#(s(x), y) -> plus#(x, y), plus#(s(x), x) -> gt#(x, x)) (plus#(s(x), y) -> plus#(x, y), plus#(s(x), x) -> id#(x)) (plus#(s(x), y) -> plus#(x, y), plus#(s(x), y) -> plus#(x, y)) (plus#(s(x), y) -> plus#(x, y), plus#(s(x), s(y)) -> plus#(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y)))) (plus#(s(x), y) -> plus#(x, y), plus#(s(x), s(y)) -> if#(gt(x, y), x, y)) (plus#(s(x), y) -> plus#(x, y), plus#(s(x), s(y)) -> if#(not(gt(x, y)), id(x), id(y))) (plus#(s(x), y) -> plus#(x, y), plus#(s(x), s(y)) -> gt#(x, y)) (plus#(s(x), y) -> plus#(x, y), plus#(s(x), s(y)) -> not#(gt(x, y))) (plus#(s(x), y) -> plus#(x, y), plus#(s(x), s(y)) -> id#(x)) (plus#(s(x), y) -> plus#(x, y), plus#(s(x), s(y)) -> id#(y)) (plus#(s(x), y) -> plus#(x, y), plus#(id(x), s(y)) -> plus#(x, if(gt(s(y), y), y, s(y)))) (plus#(s(x), y) -> plus#(x, y), plus#(id(x), s(y)) -> if#(gt(s(y), y), y, s(y))) (plus#(s(x), y) -> plus#(x, y), plus#(id(x), s(y)) -> gt#(s(y), y)) (minus#(s(x), s(y)) -> minus#(x, y), minus#(minus(x, y), z) -> minus#(x, plus(y, z))) (minus#(s(x), s(y)) -> minus#(x, y), minus#(minus(x, y), z) -> plus#(y, z)) (minus#(s(x), s(y)) -> minus#(x, y), minus#(s(x), s(y)) -> minus#(x, y)) (plus#(id(x), s(y)) -> plus#(x, if(gt(s(y), y), y, s(y))), plus#(s(x), x) -> plus#(if(gt(x, x), id(x), id(x)), s(x))) (plus#(id(x), s(y)) -> plus#(x, if(gt(s(y), y), y, s(y))), plus#(s(x), x) -> if#(gt(x, x), id(x), id(x))) (plus#(id(x), s(y)) -> plus#(x, if(gt(s(y), y), y, s(y))), plus#(s(x), x) -> gt#(x, x)) (plus#(id(x), s(y)) -> plus#(x, if(gt(s(y), y), y, s(y))), plus#(s(x), x) -> id#(x)) (plus#(id(x), s(y)) -> plus#(x, if(gt(s(y), y), y, s(y))), plus#(s(x), y) -> plus#(x, y)) (plus#(id(x), s(y)) -> plus#(x, if(gt(s(y), y), y, s(y))), plus#(s(x), s(y)) -> plus#(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y)))) (plus#(id(x), s(y)) -> plus#(x, if(gt(s(y), y), y, s(y))), plus#(s(x), s(y)) -> if#(gt(x, y), x, y)) (plus#(id(x), s(y)) -> plus#(x, if(gt(s(y), y), y, s(y))), plus#(s(x), s(y)) -> if#(not(gt(x, y)), id(x), id(y))) (plus#(id(x), s(y)) -> plus#(x, if(gt(s(y), y), y, s(y))), plus#(s(x), s(y)) -> gt#(x, y)) (plus#(id(x), s(y)) -> plus#(x, if(gt(s(y), y), y, s(y))), plus#(s(x), s(y)) -> not#(gt(x, y))) (plus#(id(x), s(y)) -> plus#(x, if(gt(s(y), y), y, s(y))), plus#(s(x), s(y)) -> id#(x)) (plus#(id(x), s(y)) -> plus#(x, if(gt(s(y), y), y, s(y))), plus#(s(x), s(y)) -> id#(y)) (plus#(id(x), s(y)) -> plus#(x, if(gt(s(y), y), y, s(y))), plus#(id(x), s(y)) -> plus#(x, if(gt(s(y), y), y, s(y)))) (plus#(id(x), s(y)) -> plus#(x, if(gt(s(y), y), y, s(y))), plus#(id(x), s(y)) -> if#(gt(s(y), y), y, s(y))) (plus#(id(x), s(y)) -> plus#(x, if(gt(s(y), y), y, s(y))), plus#(id(x), s(y)) -> gt#(s(y), y)) (sum#(app(l, cons(x, cons(y, k)))) -> sum#(app(l, sum(cons(x, cons(y, k))))), sum#(app(l, cons(x, cons(y, k)))) -> app#(l, sum(cons(x, cons(y, k))))) (sum#(app(l, cons(x, cons(y, k)))) -> sum#(app(l, sum(cons(x, cons(y, k))))), sum#(app(l, cons(x, cons(y, k)))) -> sum#(app(l, sum(cons(x, cons(y, k)))))) (sum#(app(l, cons(x, cons(y, k)))) -> sum#(app(l, sum(cons(x, cons(y, k))))), sum#(app(l, cons(x, cons(y, k)))) -> sum#(cons(x, cons(y, k)))) (sum#(app(l, cons(x, cons(y, k)))) -> sum#(app(l, sum(cons(x, cons(y, k))))), sum#(cons(x, cons(y, l))) -> plus#(x, y)) (sum#(app(l, cons(x, cons(y, k)))) -> sum#(app(l, sum(cons(x, cons(y, k))))), sum#(cons(x, cons(y, l))) -> sum#(cons(plus(x, y), l))) (plus#(s(x), s(y)) -> not#(gt(x, y)), not#(x) -> if#(x, false(), true())) (minus#(minus(x, y), z) -> plus#(y, z), plus#(s(x), x) -> plus#(if(gt(x, x), id(x), id(x)), s(x))) (minus#(minus(x, y), z) -> plus#(y, z), plus#(s(x), x) -> if#(gt(x, x), id(x), id(x))) (minus#(minus(x, y), z) -> plus#(y, z), plus#(s(x), x) -> gt#(x, x)) (minus#(minus(x, y), z) -> plus#(y, z), plus#(s(x), x) -> id#(x)) (minus#(minus(x, y), z) -> plus#(y, z), plus#(s(x), y) -> plus#(x, y)) (minus#(minus(x, y), z) -> plus#(y, z), plus#(s(x), s(y)) -> plus#(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y)))) (minus#(minus(x, y), z) -> plus#(y, z), plus#(s(x), s(y)) -> if#(gt(x, y), x, y)) (minus#(minus(x, y), z) -> plus#(y, z), plus#(s(x), s(y)) -> if#(not(gt(x, y)), id(x), id(y))) (minus#(minus(x, y), z) -> plus#(y, z), plus#(s(x), s(y)) -> gt#(x, y)) (minus#(minus(x, y), z) -> plus#(y, z), plus#(s(x), s(y)) -> not#(gt(x, y))) (minus#(minus(x, y), z) -> plus#(y, z), plus#(s(x), s(y)) -> id#(x)) (minus#(minus(x, y), z) -> plus#(y, z), plus#(s(x), s(y)) -> id#(y)) (minus#(minus(x, y), z) -> plus#(y, z), plus#(id(x), s(y)) -> plus#(x, if(gt(s(y), y), y, s(y)))) (minus#(minus(x, y), z) -> plus#(y, z), plus#(id(x), s(y)) -> if#(gt(s(y), y), y, s(y))) (minus#(minus(x, y), z) -> plus#(y, z), plus#(id(x), s(y)) -> gt#(s(y), y)) (plus#(s(x), x) -> gt#(x, x), gt#(s(x), s(y)) -> gt#(x, y)) } SCCS: Scc: {gt#(s(x), s(y)) -> gt#(x, y)} Scc: {sum#(cons(x, cons(y, l))) -> sum#(cons(plus(x, y), l))} Scc: {sum#(app(l, cons(x, cons(y, k)))) -> sum#(app(l, sum(cons(x, cons(y, k)))))} Scc: {app#(cons(x, l), k) -> app#(l, k)} Scc: { plus#(s(x), x) -> plus#(if(gt(x, x), id(x), id(x)), s(x)), plus#(s(x), y) -> plus#(x, y), plus#(s(x), s(y)) -> plus#(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))), plus#(id(x), s(y)) -> plus#(x, if(gt(s(y), y), y, s(y)))} Scc: {quot#(s(x), s(y)) -> quot#(minus(x, y), s(y))} Scc: {minus#(minus(x, y), z) -> minus#(x, plus(y, z)), minus#(s(x), s(y)) -> minus#(x, y)} SCC: Strict: {gt#(s(x), s(y)) -> gt#(x, y)} Weak: { minus(x, 0()) -> x, minus(minus(x, y), z) -> minus(x, plus(y, z)), minus(s(x), s(y)) -> minus(x, y), quot(0(), s(y)) -> 0(), quot(s(x), s(y)) -> s(quot(minus(x, y), s(y))), plus(0(), y) -> y, plus(s(x), x) -> plus(if(gt(x, x), id(x), id(x)), s(x)), plus(s(x), y) -> s(plus(x, y)), plus(s(x), s(y)) -> s(s(plus(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))))), plus(id(x), s(y)) -> s(plus(x, if(gt(s(y), y), y, s(y)))), plus(zero(), y) -> y, app(l, nil()) -> l, app(nil(), k) -> k, app(cons(x, l), k) -> cons(x, app(l, k)), sum(app(l, cons(x, cons(y, k)))) -> sum(app(l, sum(cons(x, cons(y, k))))), sum(cons(x, nil())) -> cons(x, nil()), sum(cons(x, cons(y, l))) -> sum(cons(plus(x, y), l)), if(true(), x, y) -> x, if(false(), x, y) -> y, gt(s(x), s(y)) -> gt(x, y), gt(s(x), zero()) -> true(), gt(zero(), y) -> false(), not(x) -> if(x, false(), true()), id(x) -> x} SPSC: Simple Projection: pi(gt#) = 0 Strict: {} Qed SCC: Strict: {sum#(cons(x, cons(y, l))) -> sum#(cons(plus(x, y), l))} Weak: { minus(x, 0()) -> x, minus(minus(x, y), z) -> minus(x, plus(y, z)), minus(s(x), s(y)) -> minus(x, y), quot(0(), s(y)) -> 0(), quot(s(x), s(y)) -> s(quot(minus(x, y), s(y))), plus(0(), y) -> y, plus(s(x), x) -> plus(if(gt(x, x), id(x), id(x)), s(x)), plus(s(x), y) -> s(plus(x, y)), plus(s(x), s(y)) -> s(s(plus(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))))), plus(id(x), s(y)) -> s(plus(x, if(gt(s(y), y), y, s(y)))), plus(zero(), y) -> y, app(l, nil()) -> l, app(nil(), k) -> k, app(cons(x, l), k) -> cons(x, app(l, k)), sum(app(l, cons(x, cons(y, k)))) -> sum(app(l, sum(cons(x, cons(y, k))))), sum(cons(x, nil())) -> cons(x, nil()), sum(cons(x, cons(y, l))) -> sum(cons(plus(x, y), l)), if(true(), x, y) -> x, if(false(), x, y) -> y, gt(s(x), s(y)) -> gt(x, y), gt(s(x), zero()) -> true(), gt(zero(), y) -> false(), not(x) -> if(x, false(), true()), id(x) -> x} POLY: Argument Filtering: pi(false) = [], pi(true) = [], pi(zero) = [], pi(id) = [], pi(not) = [], pi(gt) = [], pi(if) = [], pi(sum#) = 0, pi(sum) = [], pi(cons) = [1], pi(nil) = [], pi(app) = [], pi(plus) = [], pi(quot) = [], pi(s) = [], pi(0) = [], pi(minus) = [] Usable Rules: {} Interpretation: [cons](x0) = x0 + 1 Strict: {} Weak: { minus(x, 0()) -> x, minus(minus(x, y), z) -> minus(x, plus(y, z)), minus(s(x), s(y)) -> minus(x, y), quot(0(), s(y)) -> 0(), quot(s(x), s(y)) -> s(quot(minus(x, y), s(y))), plus(0(), y) -> y, plus(s(x), x) -> plus(if(gt(x, x), id(x), id(x)), s(x)), plus(s(x), y) -> s(plus(x, y)), plus(s(x), s(y)) -> s(s(plus(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))))), plus(id(x), s(y)) -> s(plus(x, if(gt(s(y), y), y, s(y)))), plus(zero(), y) -> y, app(l, nil()) -> l, app(nil(), k) -> k, app(cons(x, l), k) -> cons(x, app(l, k)), sum(app(l, cons(x, cons(y, k)))) -> sum(app(l, sum(cons(x, cons(y, k))))), sum(cons(x, nil())) -> cons(x, nil()), sum(cons(x, cons(y, l))) -> sum(cons(plus(x, y), l)), if(true(), x, y) -> x, if(false(), x, y) -> y, gt(s(x), s(y)) -> gt(x, y), gt(s(x), zero()) -> true(), gt(zero(), y) -> false(), not(x) -> if(x, false(), true()), id(x) -> x} Qed SCC: Strict: {sum#(app(l, cons(x, cons(y, k)))) -> sum#(app(l, sum(cons(x, cons(y, k)))))} Weak: { minus(x, 0()) -> x, minus(minus(x, y), z) -> minus(x, plus(y, z)), minus(s(x), s(y)) -> minus(x, y), quot(0(), s(y)) -> 0(), quot(s(x), s(y)) -> s(quot(minus(x, y), s(y))), plus(0(), y) -> y, plus(s(x), x) -> plus(if(gt(x, x), id(x), id(x)), s(x)), plus(s(x), y) -> s(plus(x, y)), plus(s(x), s(y)) -> s(s(plus(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))))), plus(id(x), s(y)) -> s(plus(x, if(gt(s(y), y), y, s(y)))), plus(zero(), y) -> y, app(l, nil()) -> l, app(nil(), k) -> k, app(cons(x, l), k) -> cons(x, app(l, k)), sum(app(l, cons(x, cons(y, k)))) -> sum(app(l, sum(cons(x, cons(y, k))))), sum(cons(x, nil())) -> cons(x, nil()), sum(cons(x, cons(y, l))) -> sum(cons(plus(x, y), l)), if(true(), x, y) -> x, if(false(), x, y) -> y, gt(s(x), s(y)) -> gt(x, y), gt(s(x), zero()) -> true(), gt(zero(), y) -> false(), not(x) -> if(x, false(), true()), id(x) -> x} POLY: Argument Filtering: pi(false) = [], pi(true) = [], pi(zero) = [], pi(id) = [], pi(not) = [], pi(gt) = [], pi(if) = [], pi(sum#) = 0, pi(sum) = [], pi(cons) = [1], pi(nil) = [], pi(app) = [0,1], pi(plus) = [], pi(quot) = [], pi(s) = [], pi(0) = [], pi(minus) = [] Usable Rules: {} Interpretation: [cons](x0) = x0 + 1, [app](x0, x1) = x0 + x1, [sum] = 1 Strict: {} Weak: { minus(x, 0()) -> x, minus(minus(x, y), z) -> minus(x, plus(y, z)), minus(s(x), s(y)) -> minus(x, y), quot(0(), s(y)) -> 0(), quot(s(x), s(y)) -> s(quot(minus(x, y), s(y))), plus(0(), y) -> y, plus(s(x), x) -> plus(if(gt(x, x), id(x), id(x)), s(x)), plus(s(x), y) -> s(plus(x, y)), plus(s(x), s(y)) -> s(s(plus(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))))), plus(id(x), s(y)) -> s(plus(x, if(gt(s(y), y), y, s(y)))), plus(zero(), y) -> y, app(l, nil()) -> l, app(nil(), k) -> k, app(cons(x, l), k) -> cons(x, app(l, k)), sum(app(l, cons(x, cons(y, k)))) -> sum(app(l, sum(cons(x, cons(y, k))))), sum(cons(x, nil())) -> cons(x, nil()), sum(cons(x, cons(y, l))) -> sum(cons(plus(x, y), l)), if(true(), x, y) -> x, if(false(), x, y) -> y, gt(s(x), s(y)) -> gt(x, y), gt(s(x), zero()) -> true(), gt(zero(), y) -> false(), not(x) -> if(x, false(), true()), id(x) -> x} Qed SCC: Strict: {app#(cons(x, l), k) -> app#(l, k)} Weak: { minus(x, 0()) -> x, minus(minus(x, y), z) -> minus(x, plus(y, z)), minus(s(x), s(y)) -> minus(x, y), quot(0(), s(y)) -> 0(), quot(s(x), s(y)) -> s(quot(minus(x, y), s(y))), plus(0(), y) -> y, plus(s(x), x) -> plus(if(gt(x, x), id(x), id(x)), s(x)), plus(s(x), y) -> s(plus(x, y)), plus(s(x), s(y)) -> s(s(plus(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))))), plus(id(x), s(y)) -> s(plus(x, if(gt(s(y), y), y, s(y)))), plus(zero(), y) -> y, app(l, nil()) -> l, app(nil(), k) -> k, app(cons(x, l), k) -> cons(x, app(l, k)), sum(app(l, cons(x, cons(y, k)))) -> sum(app(l, sum(cons(x, cons(y, k))))), sum(cons(x, nil())) -> cons(x, nil()), sum(cons(x, cons(y, l))) -> sum(cons(plus(x, y), l)), if(true(), x, y) -> x, if(false(), x, y) -> y, gt(s(x), s(y)) -> gt(x, y), gt(s(x), zero()) -> true(), gt(zero(), y) -> false(), not(x) -> if(x, false(), true()), id(x) -> x} SPSC: Simple Projection: pi(app#) = 0 Strict: {} Qed SCC: Strict: { plus#(s(x), x) -> plus#(if(gt(x, x), id(x), id(x)), s(x)), plus#(s(x), y) -> plus#(x, y), plus#(s(x), s(y)) -> plus#(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))), plus#(id(x), s(y)) -> plus#(x, if(gt(s(y), y), y, s(y)))} Weak: { minus(x, 0()) -> x, minus(minus(x, y), z) -> minus(x, plus(y, z)), minus(s(x), s(y)) -> minus(x, y), quot(0(), s(y)) -> 0(), quot(s(x), s(y)) -> s(quot(minus(x, y), s(y))), plus(0(), y) -> y, plus(s(x), x) -> plus(if(gt(x, x), id(x), id(x)), s(x)), plus(s(x), y) -> s(plus(x, y)), plus(s(x), s(y)) -> s(s(plus(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))))), plus(id(x), s(y)) -> s(plus(x, if(gt(s(y), y), y, s(y)))), plus(zero(), y) -> y, app(l, nil()) -> l, app(nil(), k) -> k, app(cons(x, l), k) -> cons(x, app(l, k)), sum(app(l, cons(x, cons(y, k)))) -> sum(app(l, sum(cons(x, cons(y, k))))), sum(cons(x, nil())) -> cons(x, nil()), sum(cons(x, cons(y, l))) -> sum(cons(plus(x, y), l)), if(true(), x, y) -> x, if(false(), x, y) -> y, gt(s(x), s(y)) -> gt(x, y), gt(s(x), zero()) -> true(), gt(zero(), y) -> false(), not(x) -> if(x, false(), true()), id(x) -> x} Fail SCC: Strict: {quot#(s(x), s(y)) -> quot#(minus(x, y), s(y))} Weak: { minus(x, 0()) -> x, minus(minus(x, y), z) -> minus(x, plus(y, z)), minus(s(x), s(y)) -> minus(x, y), quot(0(), s(y)) -> 0(), quot(s(x), s(y)) -> s(quot(minus(x, y), s(y))), plus(0(), y) -> y, plus(s(x), x) -> plus(if(gt(x, x), id(x), id(x)), s(x)), plus(s(x), y) -> s(plus(x, y)), plus(s(x), s(y)) -> s(s(plus(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))))), plus(id(x), s(y)) -> s(plus(x, if(gt(s(y), y), y, s(y)))), plus(zero(), y) -> y, app(l, nil()) -> l, app(nil(), k) -> k, app(cons(x, l), k) -> cons(x, app(l, k)), sum(app(l, cons(x, cons(y, k)))) -> sum(app(l, sum(cons(x, cons(y, k))))), sum(cons(x, nil())) -> cons(x, nil()), sum(cons(x, cons(y, l))) -> sum(cons(plus(x, y), l)), if(true(), x, y) -> x, if(false(), x, y) -> y, gt(s(x), s(y)) -> gt(x, y), gt(s(x), zero()) -> true(), gt(zero(), y) -> false(), not(x) -> if(x, false(), true()), id(x) -> x} POLY: Argument Filtering: pi(false) = [], pi(true) = [], pi(zero) = [], pi(id) = [], pi(not) = [], pi(gt) = [], pi(if) = [], pi(sum) = [], pi(cons) = [], pi(nil) = [], pi(app) = [], pi(plus) = [], pi(quot#) = [0], pi(quot) = [], pi(s) = [0], pi(0) = [], pi(minus) = 0 Usable Rules: {} Interpretation: [quot#](x0) = x0 + 1, [s](x0) = x0 + 1 Strict: {} Weak: { minus(x, 0()) -> x, minus(minus(x, y), z) -> minus(x, plus(y, z)), minus(s(x), s(y)) -> minus(x, y), quot(0(), s(y)) -> 0(), quot(s(x), s(y)) -> s(quot(minus(x, y), s(y))), plus(0(), y) -> y, plus(s(x), x) -> plus(if(gt(x, x), id(x), id(x)), s(x)), plus(s(x), y) -> s(plus(x, y)), plus(s(x), s(y)) -> s(s(plus(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))))), plus(id(x), s(y)) -> s(plus(x, if(gt(s(y), y), y, s(y)))), plus(zero(), y) -> y, app(l, nil()) -> l, app(nil(), k) -> k, app(cons(x, l), k) -> cons(x, app(l, k)), sum(app(l, cons(x, cons(y, k)))) -> sum(app(l, sum(cons(x, cons(y, k))))), sum(cons(x, nil())) -> cons(x, nil()), sum(cons(x, cons(y, l))) -> sum(cons(plus(x, y), l)), if(true(), x, y) -> x, if(false(), x, y) -> y, gt(s(x), s(y)) -> gt(x, y), gt(s(x), zero()) -> true(), gt(zero(), y) -> false(), not(x) -> if(x, false(), true()), id(x) -> x} Qed SCC: Strict: {minus#(minus(x, y), z) -> minus#(x, plus(y, z)), minus#(s(x), s(y)) -> minus#(x, y)} Weak: { minus(x, 0()) -> x, minus(minus(x, y), z) -> minus(x, plus(y, z)), minus(s(x), s(y)) -> minus(x, y), quot(0(), s(y)) -> 0(), quot(s(x), s(y)) -> s(quot(minus(x, y), s(y))), plus(0(), y) -> y, plus(s(x), x) -> plus(if(gt(x, x), id(x), id(x)), s(x)), plus(s(x), y) -> s(plus(x, y)), plus(s(x), s(y)) -> s(s(plus(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))))), plus(id(x), s(y)) -> s(plus(x, if(gt(s(y), y), y, s(y)))), plus(zero(), y) -> y, app(l, nil()) -> l, app(nil(), k) -> k, app(cons(x, l), k) -> cons(x, app(l, k)), sum(app(l, cons(x, cons(y, k)))) -> sum(app(l, sum(cons(x, cons(y, k))))), sum(cons(x, nil())) -> cons(x, nil()), sum(cons(x, cons(y, l))) -> sum(cons(plus(x, y), l)), if(true(), x, y) -> x, if(false(), x, y) -> y, gt(s(x), s(y)) -> gt(x, y), gt(s(x), zero()) -> true(), gt(zero(), y) -> false(), not(x) -> if(x, false(), true()), id(x) -> x} SPSC: Simple Projection: pi(minus#) = 0 Strict: {minus#(s(x), s(y)) -> minus#(x, y)} EDG: {(minus#(s(x), s(y)) -> minus#(x, y), minus#(s(x), s(y)) -> minus#(x, y))} SCCS: Scc: {minus#(s(x), s(y)) -> minus#(x, y)} SCC: Strict: {minus#(s(x), s(y)) -> minus#(x, y)} Weak: { minus(x, 0()) -> x, minus(minus(x, y), z) -> minus(x, plus(y, z)), minus(s(x), s(y)) -> minus(x, y), quot(0(), s(y)) -> 0(), quot(s(x), s(y)) -> s(quot(minus(x, y), s(y))), plus(0(), y) -> y, plus(s(x), x) -> plus(if(gt(x, x), id(x), id(x)), s(x)), plus(s(x), y) -> s(plus(x, y)), plus(s(x), s(y)) -> s(s(plus(if(gt(x, y), x, y), if(not(gt(x, y)), id(x), id(y))))), plus(id(x), s(y)) -> s(plus(x, if(gt(s(y), y), y, s(y)))), plus(zero(), y) -> y, app(l, nil()) -> l, app(nil(), k) -> k, app(cons(x, l), k) -> cons(x, app(l, k)), sum(app(l, cons(x, cons(y, k)))) -> sum(app(l, sum(cons(x, cons(y, k))))), sum(cons(x, nil())) -> cons(x, nil()), sum(cons(x, cons(y, l))) -> sum(cons(plus(x, y), l)), if(true(), x, y) -> x, if(false(), x, y) -> y, gt(s(x), s(y)) -> gt(x, y), gt(s(x), zero()) -> true(), gt(zero(), y) -> false(), not(x) -> if(x, false(), true()), id(x) -> x} SPSC: Simple Projection: pi(minus#) = 1 Strict: {} Qed