MAYBE Time: 0.002225 TRS: { half 0() -> 0(), half s 0() -> 0(), half s s x -> s half x, inc 0() -> 0(), inc s x -> s inc x, zero 0() -> true(), zero s x -> false(), p 0() -> 0(), p s x -> x, bitIter(x, y) -> if(zero x, x, inc y), bits x -> bitIter(x, 0()), if(true(), x, y) -> p y, if(false(), x, y) -> bitIter(half x, y)} DP: DP: { half# s s x -> half# x, inc# s x -> inc# x, bitIter#(x, y) -> inc# y, bitIter#(x, y) -> zero# x, bitIter#(x, y) -> if#(zero x, x, inc y), bits# x -> bitIter#(x, 0()), if#(true(), x, y) -> p# y, if#(false(), x, y) -> half# x, if#(false(), x, y) -> bitIter#(half x, y)} TRS: { half 0() -> 0(), half s 0() -> 0(), half s s x -> s half x, inc 0() -> 0(), inc s x -> s inc x, zero 0() -> true(), zero s x -> false(), p 0() -> 0(), p s x -> x, bitIter(x, y) -> if(zero x, x, inc y), bits x -> bitIter(x, 0()), if(true(), x, y) -> p y, if(false(), x, y) -> bitIter(half x, y)} EDG: {(inc# s x -> inc# x, inc# s x -> inc# x) (if#(false(), x, y) -> half# x, half# s s x -> half# x) (if#(false(), x, y) -> bitIter#(half x, y), bitIter#(x, y) -> if#(zero x, x, inc y)) (if#(false(), x, y) -> bitIter#(half x, y), bitIter#(x, y) -> zero# x) (if#(false(), x, y) -> bitIter#(half x, y), bitIter#(x, y) -> inc# y) (bitIter#(x, y) -> if#(zero x, x, inc y), if#(true(), x, y) -> p# y) (bitIter#(x, y) -> if#(zero x, x, inc y), if#(false(), x, y) -> half# x) (bitIter#(x, y) -> if#(zero x, x, inc y), if#(false(), x, y) -> bitIter#(half x, y)) (bitIter#(x, y) -> inc# y, inc# s x -> inc# x) (bits# x -> bitIter#(x, 0()), bitIter#(x, y) -> inc# y) (bits# x -> bitIter#(x, 0()), bitIter#(x, y) -> zero# x) (bits# x -> bitIter#(x, 0()), bitIter#(x, y) -> if#(zero x, x, inc y)) (half# s s x -> half# x, half# s s x -> half# x)} STATUS: arrows: 0.839506 SCCS (3): Scc: { bitIter#(x, y) -> if#(zero x, x, inc y), if#(false(), x, y) -> bitIter#(half x, y)} Scc: {inc# s x -> inc# x} Scc: {half# s s x -> half# x} SCC (2): Strict: { bitIter#(x, y) -> if#(zero x, x, inc y), if#(false(), x, y) -> bitIter#(half x, y)} Weak: { half 0() -> 0(), half s 0() -> 0(), half s s x -> s half x, inc 0() -> 0(), inc s x -> s inc x, zero 0() -> true(), zero s x -> false(), p 0() -> 0(), p s x -> x, bitIter(x, y) -> if(zero x, x, inc y), bits x -> bitIter(x, 0()), if(true(), x, y) -> p y, if(false(), x, y) -> bitIter(half x, y)} Open SCC (1): Strict: {inc# s x -> inc# x} Weak: { half 0() -> 0(), half s 0() -> 0(), half s s x -> s half x, inc 0() -> 0(), inc s x -> s inc x, zero 0() -> true(), zero s x -> false(), p 0() -> 0(), p s x -> x, bitIter(x, y) -> if(zero x, x, inc y), bits x -> bitIter(x, 0()), if(true(), x, y) -> p y, if(false(), x, y) -> bitIter(half x, y)} Open SCC (1): Strict: {half# s s x -> half# x} Weak: { half 0() -> 0(), half s 0() -> 0(), half s s x -> s half x, inc 0() -> 0(), inc s x -> s inc x, zero 0() -> true(), zero s x -> false(), p 0() -> 0(), p s x -> x, bitIter(x, y) -> if(zero x, x, inc y), bits x -> bitIter(x, 0()), if(true(), x, y) -> p y, if(false(), x, y) -> bitIter(half x, y)} Open