MAYBE Time: 0.011996 TRS: { half 0() -> 0(), half s 0() -> 0(), half s s x -> s half x, bits 0() -> 0(), bits s x -> s bits half s x} DP: DP: {half# s s x -> half# x, bits# s x -> half# s x, bits# s x -> bits# half s x} TRS: { half 0() -> 0(), half s 0() -> 0(), half s s x -> s half x, bits 0() -> 0(), bits s x -> s bits half s x} EDG: {(half# s s x -> half# x, half# s s x -> half# x) (bits# s x -> half# s x, half# s s x -> half# x) (bits# s x -> bits# half s x, bits# s x -> half# s x) (bits# s x -> bits# half s x, bits# s x -> bits# half s x)} STATUS: arrows: 0.555556 SCCS (2): Scc: {bits# s x -> bits# half s x} Scc: {half# s s x -> half# x} SCC (1): Strict: {bits# s x -> bits# half s x} Weak: { half 0() -> 0(), half s 0() -> 0(), half s s x -> s half x, bits 0() -> 0(), bits s x -> s bits half s x} Fail SCC (1): Strict: {half# s s x -> half# x} Weak: { half 0() -> 0(), half s 0() -> 0(), half s s x -> s half x, bits 0() -> 0(), bits s x -> s bits half s x} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [half](x0) = x0 + 1, [s](x0) = x0 + 1, [bits](x0) = x0 + 1, [0] = 1, [half#](x0) = x0 Strict: half# s s x -> half# x 2 + 1x >= 0 + 1x Weak: bits s x -> s bits half s x 2 + 1x >= 4 + 1x bits 0() -> 0() 2 >= 1 half s s x -> s half x 3 + 1x >= 2 + 1x half s 0() -> 0() 3 >= 1 half 0() -> 0() 2 >= 1 Qed