WORST_CASE(?,O(n^2)) Solution: --------- "#0" :: [] -(0)-> "A"(0, 0) "#and" :: ["A"(0, 1) x "A"(0, 1)] -(0)-> "A"(0, 1) "#eq" :: ["A"(0, 0) x "A"(0, 0)] -(0)-> "A"(0, 1) "#equal" :: ["A"(0, 0) x "A"(0, 0)] -(0)-> "A"(0, 1) "#false" :: [] -(0)-> "A"(0, 1) "#neg" :: ["A"(0, 0)] -(0)-> "A"(0, 0) "#pos" :: ["A"(0, 0)] -(0)-> "A"(0, 0) "#s" :: ["A"(0, 0)] -(0)-> "A"(0, 0) "#true" :: [] -(0)-> "A"(0, 1) "#true" :: [] -(0)-> "A"(1, 1) "::" :: ["A"(40, 0) x "A"(40, 22)] -(22)-> "A"(40, 22) "::" :: ["A"(40, 0) x "A"(40, 20)] -(20)-> "A"(40, 20) "::" :: ["A"(40, 0) x "A"(40, 28)] -(28)-> "A"(40, 28) "::" :: ["A"(12, 0) x "A"(12, 6)] -(6)-> "A"(12, 6) "::" :: ["A"(0, 0) x "A"(0, 0)] -(0)-> "A"(0, 0) "::" :: ["A"(40, 0) x "A"(40, 39)] -(39)-> "A"(40, 39) "::" :: ["A"(12, 0) x "A"(12, 12)] -(12)-> "A"(12, 12) "appendreverse" :: ["A"(40, 22) x "A"(40, 20)] -(2)-> "A"(40, 20) "appendreverse#1" :: ["A"(40, 22) x "A"(40, 20)] -(1)-> "A"(40, 20) "bfs" :: ["A"(40, 20) x "A"(40, 28) x "A"(0, 0)] -(3)-> "A"(40, 0) "bfs#1" :: ["A"(40, 20) x "A"(40, 28) x "A"(0, 0)] -(2)-> "A"(40, 0) "bfs#2" :: ["A"(40, 28) x "A"(0, 0)] -(1)-> "A"(40, 0) "bfs#3" :: ["A"(40, 0) x "A"(40, 28) x "A"(40, 20) x "A"(0, 0)] -(21)-> "A"(40, 0) "bfs#4" :: ["A"(0, 1) x "A"(40, 28) x "A"(40, 0) x "A"(40, 0) x "A"(40, 20) x "A"(0, 0) x "A"(0, 0)] -(60)-> "A"(40, 0) "bfs2" :: ["A"(40, 0) x "A"(0, 0)] -(88)-> "A"(0, 0) "bfs2#1" :: ["A"(40, 0) x "A"(0, 0)] -(44)-> "A"(0, 0) "dfs" :: ["A"(12, 6) x "A"(0, 0)] -(2)-> "A"(0, 0) "dfs#1" :: ["A"(12, 6) x "A"(0, 0)] -(1)-> "A"(0, 0) "dfs#2" :: ["A"(12, 0) x "A"(0, 0) x "A"(12, 6) x "A"(0, 0)] -(4)-> "A"(0, 0) "dfs#3" :: ["A"(0, 1) x "A"(0, 0) x "A"(12, 0) x "A"(12, 0) x "A"(12, 6) x "A"(0, 0)] -(15)-> "A"(0, 0) "dobfs" :: ["A"(40, 0) x "A"(0, 0)] -(43)-> "A"(40, 0) "dodfs" :: ["A"(12, 0) x "A"(0, 0)] -(15)-> "A"(0, 0) "leaf" :: [] -(0)-> "A"(40, 0) "leaf" :: [] -(0)-> "A"(12, 0) "leaf" :: [] -(0)-> "A"(0, 0) "leaf" :: [] -(0)-> "A"(40, 1) "nil" :: [] -(0)-> "A"(40, 22) "nil" :: [] -(0)-> "A"(40, 20) "nil" :: [] -(0)-> "A"(40, 28) "nil" :: [] -(0)-> "A"(12, 6) "nil" :: [] -(0)-> "A"(0, 0) "nil" :: [] -(0)-> "A"(40, 39) "nil" :: [] -(0)-> "A"(12, 12) "node" :: ["A"(0, 0) x "A"(40, 0) x "A"(40, 0)] -(40)-> "A"(40, 0) "node" :: ["A"(0, 0) x "A"(12, 0) x "A"(12, 0)] -(12)-> "A"(12, 0) "node" :: ["A"(0, 0) x "A"(0, 0) x "A"(0, 0)] -(0)-> "A"(0, 0) "node" :: ["A"(0, 0) x "A"(40, 0) x "A"(40, 0)] -(40)-> "A"(40, 40) "reverse" :: ["A"(40, 22)] -(3)-> "A"(40, 20) Cost Free Signatures: --------------------- Base Constructors: ------------------ "\"#0\"_A" :: [] -(1)-> "A"(1, 0) "\"#0\"_A" :: [] -(0)-> "A"(0, 1) "\"#false\"_A" :: [] -(1)-> "A"(1, 0) "\"#false\"_A" :: [] -(0)-> "A"(0, 1) "\"#neg\"_A" :: ["A"(0, 0)] -(1)-> "A"(1, 0) "\"#neg\"_A" :: ["A"(0, 0)] -(1)-> "A"(0, 1) "\"#pos\"_A" :: ["A"(0, 0)] -(1)-> "A"(1, 0) "\"#pos\"_A" :: ["A"(0, 1)] -(0)-> "A"(0, 1) "\"#s\"_A" :: ["A"(1, 0)] -(1)-> "A"(1, 0) "\"#s\"_A" :: ["A"(0, 0)] -(1)-> "A"(0, 1) "\"#true\"_A" :: [] -(0)-> "A"(1, 0) "\"#true\"_A" :: [] -(0)-> "A"(0, 1) "\"::\"_A" :: ["A"(1, 0) x "A"(1, 0)] -(0)-> "A"(1, 0) "\"::\"_A" :: ["A"(0, 0) x "A"(0, 1)] -(1)-> "A"(0, 1) "\"leaf\"_A" :: [] -(0)-> "A"(1, 0) "\"leaf\"_A" :: [] -(0)-> "A"(0, 1) "\"nil\"_A" :: [] -(0)-> "A"(1, 0) "\"nil\"_A" :: [] -(0)-> "A"(0, 1) "\"node\"_A" :: ["A"(0, 0) x "A"(1, 0) x "A"(1, 0)] -(1)-> "A"(1, 0) "\"node\"_A" :: ["A"(0, 0) x "A"(0, 0) x "A"(0, 0)] -(0)-> "A"(0, 1)