WORST_CASE(?,O(n^2)) Solution: --------- append :: [c(15, 0) x c(3, 0)] -(2)-> c(1, 0) append#1 :: [c(15, 0) x c(3, 0)] -(1)-> c(1, 0) cons :: [a(0, 0) x c(15, 0)] -(15)-> c(15, 0) cons :: [a(0, 0) x c(1, 0)] -(1)-> c(1, 0) cons :: [a(0, 0) x c(0, 0)] -(0)-> c(0, 1) leaf :: [] -(0)-> a(0, 15) nil :: [] -(0)-> c(15, 0) nil :: [] -(0)-> c(7, 7) node :: [b(15, 15) x a(15, 15) x a(15, 15)] -(15)-> a(0, 15) node :: [b(0, 0) x a(0, 0) x a(0, 0)] -(0)-> a(0, 0) subtrees :: [a(7, 15)] -(4)-> c(7, 1) subtrees#1 :: [a(0, 15)] -(3)-> c(0, 1) subtrees#2 :: [c(15, 1) x a(0, 0) x a(7, 15) x b(7, 0)] -(8)-> c(0, 1) subtrees#3 :: [c(4, 3) x c(15, 1) x a(0, 0) x a(0, 0) x b(1, 0)] -(3)-> c(0, 1) Cost Free Signatures: --------------------- append :: [c_cf(0, 0) x c_cf(0, 0)] -(0)-> c_cf(0, 0) append :: [c_cf(7, 0) x c_cf(7, 0)] -(0)-> c_cf(7, 0) append :: [c_cf(8, 0) x c_cf(8, 0)] -(0)-> c_cf(8, 0) append :: [c_cf(0, 0) x c_cf(0, 8)] -(0)-> c_cf(0, 8) append#1 :: [c_cf(0, 0) x c_cf(0, 0)] -(0)-> c_cf(0, 0) append#1 :: [c_cf(7, 0) x c_cf(7, 0)] -(0)-> c_cf(7, 0) append#1 :: [c_cf(8, 0) x c_cf(8, 0)] -(0)-> c_cf(8, 0) append#1 :: [c_cf(0, 0) x c_cf(0, 8)] -(0)-> c_cf(0, 8) cons :: [a_cf(0, 0) x c_cf(0, 0)] -(0)-> c_cf(0, 0) cons :: [a_cf(0, 0) x c_cf(7, 0)] -(7)-> c_cf(7, 2) cons :: [a_cf(0, 0) x c_cf(7, 0)] -(7)-> c_cf(7, 0) cons :: [a_cf(0, 0) x c_cf(7, 0)] -(7)-> c_cf(7, 8) cons :: [a_cf(0, 0) x c_cf(8, 0)] -(8)-> c_cf(8, 8) cons :: [a_cf(0, 0) x c_cf(8, 0)] -(8)-> c_cf(8, 0) cons :: [a_cf(0, 0) x c_cf(0, 0)] -(0)-> c_cf(0, 10) cons :: [a_cf(0, 0) x c_cf(0, 0)] -(0)-> c_cf(0, 8) leaf :: [] -(0)-> a_cf(7, 0) leaf :: [] -(0)-> a_cf(8, 0) leaf :: [] -(0)-> a_cf(0, 0) nil :: [] -(0)-> c_cf(0, 0) nil :: [] -(0)-> c_cf(11, 2) nil :: [] -(0)-> c_cf(7, 0) nil :: [] -(0)-> c_cf(2, 2) nil :: [] -(0)-> c_cf(10, 2) nil :: [] -(0)-> c_cf(8, 0) nil :: [] -(0)-> c_cf(2, 10) node :: [b_cf(7, 0) x a_cf(7, 0) x a_cf(7, 0)] -(7)-> a_cf(7, 0) node :: [b_cf(0, 0) x a_cf(0, 0) x a_cf(0, 0)] -(0)-> a_cf(0, 0) node :: [b_cf(8, 0) x a_cf(8, 0) x a_cf(8, 0)] -(8)-> a_cf(8, 0) subtrees :: [a_cf(7, 0)] -(0)-> c_cf(7, 0) subtrees :: [a_cf(8, 0)] -(0)-> c_cf(0, 0) subtrees :: [a_cf(8, 0)] -(0)-> c_cf(8, 0) subtrees :: [a_cf(0, 0)] -(0)-> c_cf(0, 8) subtrees#1 :: [a_cf(7, 0)] -(0)-> c_cf(7, 0) subtrees#1 :: [a_cf(8, 0)] -(0)-> c_cf(0, 0) subtrees#1 :: [a_cf(8, 0)] -(0)-> c_cf(8, 0) subtrees#1 :: [a_cf(0, 0)] -(0)-> c_cf(0, 8) subtrees#2 :: [c_cf(7, 0) x a_cf(0, 0) x a_cf(7, 0) x b_cf(2, 0)] -(7)-> c_cf(7, 0) subtrees#2 :: [c_cf(0, 0) x a_cf(0, 0) x a_cf(8, 0) x b_cf(0, 0)] -(4)-> c_cf(0, 0) subtrees#2 :: [c_cf(8, 0) x a_cf(0, 0) x a_cf(8, 0) x b_cf(0, 0)] -(8)-> c_cf(8, 0) subtrees#2 :: [c_cf(0, 8) x a_cf(0, 0) x a_cf(0, 0) x b_cf(0, 0)] -(0)-> c_cf(0, 8) subtrees#3 :: [c_cf(7, 0) x c_cf(7, 0) x a_cf(0, 0) x a_cf(0, 0) x b_cf(0, 0)] -(7)-> c_cf(7, 0) subtrees#3 :: [c_cf(0, 0) x c_cf(0, 0) x a_cf(0, 0) x a_cf(0, 0) x b_cf(0, 0)] -(4)-> c_cf(0, 0) subtrees#3 :: [c_cf(8, 0) x c_cf(8, 0) x a_cf(0, 0) x a_cf(0, 0) x b_cf(0, 0)] -(8)-> c_cf(8, 0) subtrees#3 :: [c_cf(0, 8) x c_cf(0, 2) x a_cf(0, 0) x a_cf(0, 0) x b_cf(0, 0)] -(0)-> c_cf(0, 8) Base Constructors: ------------------ cons_c :: [a(0, 0) x c(1, 0)] -(1)-> c(1, 0) cons_c :: [a(0, 0) x c(0, 0)] -(0)-> c(0, 1) leaf_a :: [] -(0)-> a(1, 0) leaf_a :: [] -(0)-> a(0, 1) nil_c :: [] -(0)-> c(1, 0) nil_c :: [] -(0)-> c(0, 1) node_a :: [b(1, 0) x a(1, 0) x a(1, 0)] -(1)-> a(1, 0) node_a :: [b(1, 1) x a(1, 1) x a(1, 1)] -(1)-> a(0, 1)