MAYBE Time: 0.028275 TRS: { le(0(), y) -> true(), le(s x, 0()) -> false(), le(s x, s y) -> le(x, y), minus(x, 0()) -> x, minus(s x, s y) -> minus(x, y), mod(0(), y) -> 0(), mod(s x, 0()) -> 0(), mod(s x, s y) -> if_mod(le(y, x), s x, s y), if_mod(true(), x, y) -> mod(minus(x, y), y), if_mod(false(), s x, s y) -> s x} DP: DP: { le#(s x, s y) -> le#(x, y), minus#(s x, s y) -> minus#(x, y), mod#(s x, s y) -> le#(y, x), mod#(s x, s y) -> if_mod#(le(y, x), s x, s y), if_mod#(true(), x, y) -> minus#(x, y), if_mod#(true(), x, y) -> mod#(minus(x, y), y)} TRS: { le(0(), y) -> true(), le(s x, 0()) -> false(), le(s x, s y) -> le(x, y), minus(x, 0()) -> x, minus(s x, s y) -> minus(x, y), mod(0(), y) -> 0(), mod(s x, 0()) -> 0(), mod(s x, s y) -> if_mod(le(y, x), s x, s y), if_mod(true(), x, y) -> mod(minus(x, y), y), if_mod(false(), s x, s y) -> s x} EDG: {(le#(s x, s y) -> le#(x, y), le#(s x, s y) -> le#(x, y)) (mod#(s x, s y) -> if_mod#(le(y, x), s x, s y), if_mod#(true(), x, y) -> mod#(minus(x, y), y)) (mod#(s x, s y) -> if_mod#(le(y, x), s x, s y), if_mod#(true(), x, y) -> minus#(x, y)) (if_mod#(true(), x, y) -> mod#(minus(x, y), y), mod#(s x, s y) -> if_mod#(le(y, x), s x, s y)) (if_mod#(true(), x, y) -> mod#(minus(x, y), y), mod#(s x, s y) -> le#(y, x)) (if_mod#(true(), x, y) -> minus#(x, y), minus#(s x, s y) -> minus#(x, y)) (minus#(s x, s y) -> minus#(x, y), minus#(s x, s y) -> minus#(x, y)) (mod#(s x, s y) -> le#(y, x), le#(s x, s y) -> le#(x, y))} STATUS: arrows: 0.777778 SCCS (3): Scc: { mod#(s x, s y) -> if_mod#(le(y, x), s x, s y), if_mod#(true(), x, y) -> mod#(minus(x, y), y)} Scc: {minus#(s x, s y) -> minus#(x, y)} Scc: {le#(s x, s y) -> le#(x, y)} SCC (2): Strict: { mod#(s x, s y) -> if_mod#(le(y, x), s x, s y), if_mod#(true(), x, y) -> mod#(minus(x, y), y)} Weak: { le(0(), y) -> true(), le(s x, 0()) -> false(), le(s x, s y) -> le(x, y), minus(x, 0()) -> x, minus(s x, s y) -> minus(x, y), mod(0(), y) -> 0(), mod(s x, 0()) -> 0(), mod(s x, s y) -> if_mod(le(y, x), s x, s y), if_mod(true(), x, y) -> mod(minus(x, y), y), if_mod(false(), s x, s y) -> s x} Fail SCC (1): Strict: {minus#(s x, s y) -> minus#(x, y)} Weak: { le(0(), y) -> true(), le(s x, 0()) -> false(), le(s x, s y) -> le(x, y), minus(x, 0()) -> x, minus(s x, s y) -> minus(x, y), mod(0(), y) -> 0(), mod(s x, 0()) -> 0(), mod(s x, s y) -> if_mod(le(y, x), s x, s y), if_mod(true(), x, y) -> mod(minus(x, y), y), if_mod(false(), s x, s y) -> s x} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [if_mod](x0, x1, x2) = x0 + x1, [le](x0, x1) = x0 + 1, [minus](x0, x1) = x0 + 1, [mod](x0, x1) = x0 + 1, [s](x0) = x0 + 1, [true] = 0, [0] = 1, [false] = 1, [minus#](x0, x1) = x0 + 1 Strict: minus#(s x, s y) -> minus#(x, y) 2 + 0y + 1x >= 1 + 0y + 1x Weak: if_mod(false(), s x, s y) -> s x 2 + 0y + 1x >= 1 + 1x if_mod(true(), x, y) -> mod(minus(x, y), y) 0 + 0y + 1x >= 2 + 1y + 0x mod(s x, s y) -> if_mod(le(y, x), s x, s y) 2 + 0y + 1x >= 2 + 1y + 1x mod(s x, 0()) -> 0() 2 + 1x >= 1 mod(0(), y) -> 0() 2 + 0y >= 1 minus(s x, s y) -> minus(x, y) 2 + 1y + 0x >= 1 + 1y + 0x minus(x, 0()) -> x 2 + 0x >= 1x le(s x, s y) -> le(x, y) 2 + 0y + 1x >= 1 + 0y + 1x le(s x, 0()) -> false() 2 + 1x >= 1 le(0(), y) -> true() 2 + 0y >= 0 Qed SCC (1): Strict: {le#(s x, s y) -> le#(x, y)} Weak: { le(0(), y) -> true(), le(s x, 0()) -> false(), le(s x, s y) -> le(x, y), minus(x, 0()) -> x, minus(s x, s y) -> minus(x, y), mod(0(), y) -> 0(), mod(s x, 0()) -> 0(), mod(s x, s y) -> if_mod(le(y, x), s x, s y), if_mod(true(), x, y) -> mod(minus(x, y), y), if_mod(false(), s x, s y) -> s x} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [if_mod](x0, x1, x2) = x0 + x1, [le](x0, x1) = x0 + 1, [minus](x0, x1) = x0 + 1, [mod](x0, x1) = x0 + 1, [s](x0) = x0 + 1, [true] = 0, [0] = 1, [false] = 1, [le#](x0, x1) = x0 + 1 Strict: le#(s x, s y) -> le#(x, y) 2 + 0y + 1x >= 1 + 0y + 1x Weak: if_mod(false(), s x, s y) -> s x 2 + 0y + 1x >= 1 + 1x if_mod(true(), x, y) -> mod(minus(x, y), y) 0 + 0y + 1x >= 2 + 1y + 0x mod(s x, s y) -> if_mod(le(y, x), s x, s y) 2 + 0y + 1x >= 2 + 1y + 1x mod(s x, 0()) -> 0() 2 + 1x >= 1 mod(0(), y) -> 0() 2 + 0y >= 1 minus(s x, s y) -> minus(x, y) 2 + 1y + 0x >= 1 + 1y + 0x minus(x, 0()) -> x 2 + 0x >= 1x le(s x, s y) -> le(x, y) 2 + 0y + 1x >= 1 + 0y + 1x le(s x, 0()) -> false() 2 + 1x >= 1 le(0(), y) -> true() 2 + 0y >= 0 Qed