WORST_CASE(?,O(n^3)) Solution: --------- 0 :: [] -(0)-> A(15, 0, 15) 0 :: [] -(0)-> A(0, 1, 0) 0 :: [] -(0)-> A(1, 0, 0) 0 :: [] -(0)-> A(5, 0, 15) 0 :: [] -(0)-> A(1, 1, 7) activate :: [A(0, 8, 15)] -(5)-> A(0, 0, 0) add :: [A(1, 0, 0) x A(0, 0, 0)] -(2)-> A(0, 0, 0) cons :: [A(15, 0, 0) x A(9, 15, 15)] -(15)-> A(9, 0, 15) cons :: [A(0, 0, 0) x A(0, 0, 0)] -(0)-> A(0, 0, 0) dbl :: [A(0, 1, 0)] -(6)-> A(0, 0, 0) first :: [A(5, 0, 15) x A(9, 0, 15)] -(8)-> A(0, 0, 0) n__first :: [A(8, 0, 15) x A(15, 8, 15)] -(8)-> A(0, 8, 15) n__first :: [A(0, 0, 0) x A(0, 0, 0)] -(0)-> A(0, 0, 0) n__first :: [A(0, 0, 0) x A(1, 0, 0)] -(0)-> A(1, 0, 0) n__terms :: [A(15, 8, 15)] -(0)-> A(0, 8, 15) n__terms :: [A(0, 0, 0)] -(0)-> A(0, 0, 0) n__terms :: [A(8, 8, 7)] -(0)-> A(1, 8, 7) nil :: [] -(0)-> A(1, 1, 6) recip :: [A(0, 0, 0)] -(0)-> A(10, 14, 0) s :: [A(15, 15, 15)] -(15)-> A(15, 0, 15) s :: [A(1, 1, 0)] -(1)-> A(0, 1, 0) s :: [A(1, 0, 0)] -(1)-> A(1, 0, 0) s :: [A(5, 15, 15)] -(5)-> A(5, 0, 15) s :: [A(0, 0, 0)] -(0)-> A(0, 0, 0) sqr :: [A(15, 0, 15)] -(1)-> A(0, 0, 0) terms :: [A(15, 8, 15)] -(4)-> A(0, 0, 0) Cost Free Signatures: --------------------- 0 :: [] -(0)-> A_cf(0, 14, 0) 0 :: [] -(0)-> A_cf(13, 15, 2) 0 :: [] -(0)-> A_cf(4, 0, 0) 0 :: [] -(0)-> A_cf(12, 0, 0) 0 :: [] -(0)-> A_cf(15, 14, 2) 0 :: [] -(0)-> A_cf(1, 0, 0) 0 :: [] -(0)-> A_cf(8, 0, 2) 0 :: [] -(0)-> A_cf(0, 0, 0) 0 :: [] -(0)-> A_cf(0, 4, 0) 0 :: [] -(0)-> A_cf(9, 3, 2) 0 :: [] -(0)-> A_cf(15, 15, 2) 0 :: [] -(0)-> A_cf(3, 0, 0) 0 :: [] -(0)-> A_cf(0, 5, 0) 0 :: [] -(0)-> A_cf(5, 0, 0) 0 :: [] -(0)-> A_cf(7, 14, 2) activate :: [A_cf(9, 7, 0)] -(8)-> A_cf(0, 0, 0) activate :: [A_cf(9, 8, 0)] -(5)-> A_cf(0, 0, 0) add :: [A_cf(4, 0, 0) x A_cf(4, 0, 0)] -(0)-> A_cf(4, 0, 0) add :: [A_cf(0, 0, 0) x A_cf(0, 0, 0)] -(0)-> A_cf(0, 0, 0) cons :: [A_cf(0, 0, 0) x A_cf(0, 0, 0)] -(0)-> A_cf(0, 0, 0) cons :: [A_cf(0, 7, 0) x A_cf(12, 7, 0)] -(7)-> A_cf(5, 7, 0) cons :: [A_cf(0, 8, 0) x A_cf(14, 8, 0)] -(8)-> A_cf(6, 8, 0) dbl :: [A_cf(12, 0, 0)] -(0)-> A_cf(4, 0, 0) dbl :: [A_cf(1, 0, 0)] -(0)-> A_cf(0, 0, 0) dbl :: [A_cf(4, 0, 0)] -(4)-> A_cf(0, 0, 0) dbl :: [A_cf(5, 0, 0)] -(1)-> A_cf(0, 0, 0) first :: [A_cf(0, 0, 0) x A_cf(5, 7, 0)] -(11)-> A_cf(0, 0, 0) first :: [A_cf(3, 0, 0) x A_cf(6, 8, 0)] -(4)-> A_cf(0, 0, 0) n__first :: [A_cf(7, 0, 0) x A_cf(9, 7, 0)] -(7)-> A_cf(9, 7, 0) n__first :: [A_cf(0, 0, 0) x A_cf(0, 0, 0)] -(0)-> A_cf(0, 0, 0) n__first :: [A_cf(8, 0, 0) x A_cf(9, 8, 0)] -(8)-> A_cf(9, 8, 0) n__first :: [A_cf(3, 0, 0) x A_cf(5, 3, 0)] -(3)-> A_cf(5, 3, 0) n__terms :: [A_cf(9, 7, 0)] -(0)-> A_cf(9, 7, 0) n__terms :: [A_cf(0, 3, 0)] -(0)-> A_cf(0, 3, 0) n__terms :: [A_cf(1, 0, 0)] -(0)-> A_cf(1, 0, 0) n__terms :: [A_cf(9, 8, 0)] -(0)-> A_cf(9, 8, 0) n__terms :: [A_cf(0, 0, 0)] -(0)-> A_cf(0, 0, 0) nil :: [] -(0)-> A_cf(13, 14, 2) nil :: [] -(0)-> A_cf(5, 9, 2) recip :: [A_cf(0, 0, 0)] -(1)-> A_cf(12, 10, 1) recip :: [A_cf(0, 0, 0)] -(0)-> A_cf(14, 8, 0) s :: [A_cf(14, 14, 0)] -(14)-> A_cf(0, 14, 0) s :: [A_cf(4, 0, 0)] -(4)-> A_cf(4, 0, 0) s :: [A_cf(12, 0, 0)] -(12)-> A_cf(12, 0, 0) s :: [A_cf(1, 0, 0)] -(1)-> A_cf(1, 0, 0) s :: [A_cf(0, 0, 0)] -(0)-> A_cf(0, 0, 0) s :: [A_cf(4, 4, 0)] -(4)-> A_cf(0, 4, 0) s :: [A_cf(3, 3, 0)] -(3)-> A_cf(0, 3, 0) s :: [A_cf(3, 0, 0)] -(3)-> A_cf(3, 0, 0) s :: [A_cf(5, 5, 0)] -(5)-> A_cf(0, 5, 0) s :: [A_cf(5, 0, 0)] -(5)-> A_cf(5, 0, 0) sqr :: [A_cf(0, 14, 0)] -(0)-> A_cf(4, 0, 0) sqr :: [A_cf(0, 4, 0)] -(0)-> A_cf(0, 0, 0) sqr :: [A_cf(0, 5, 0)] -(1)-> A_cf(0, 0, 0) terms :: [A_cf(9, 7, 0)] -(8)-> A_cf(0, 0, 0) terms :: [A_cf(9, 8, 0)] -(5)-> A_cf(0, 0, 0) Base Constructors: ------------------ 0_A :: [] -(0)-> A(1, 0, 0) 0_A :: [] -(0)-> A(0, 1, 0) 0_A :: [] -(0)-> A(0, 0, 1) cons_A :: [A(0, 0, 0) x A(1, 0, 0)] -(0)-> A(1, 0, 0) cons_A :: [A(0, 1, 0) x A(1, 1, 0)] -(1)-> A(0, 1, 0) cons_A :: [A(1, 0, 0) x A(0, 1, 1)] -(1)-> A(0, 0, 1) n__first_A :: [A(0) x A(0)] -(0)-> A(1, 0, 0) n__first_A :: [A(0) x A(0)] -(1)-> A(0, 1, 0) n__first_A :: [A(0) x A(0)] -(0)-> A(0, 0, 1) n__terms_A :: [A(0)] -(0)-> A(1, 0, 0) n__terms_A :: [A(0)] -(0)-> A(0, 1, 0) n__terms_A :: [A(0)] -(0)-> A(0, 0, 1) nil_A :: [] -(0)-> A(1, 0, 0) nil_A :: [] -(0)-> A(0, 1, 0) nil_A :: [] -(0)-> A(0, 0, 1) recip_A :: [A(0, 0, 0)] -(0)-> A(1, 0, 0) recip_A :: [A(0, 0, 0)] -(0)-> A(0, 1, 0) recip_A :: [A(0, 0, 0)] -(1)-> A(0, 0, 1) s_A :: [A(1, 0, 0)] -(1)-> A(1, 0, 0) s_A :: [A(1, 1, 0)] -(1)-> A(0, 1, 0) s_A :: [A(0, 1, 1)] -(0)-> A(0, 0, 1)