WORST_CASE(?,O(n^3)) Solution: --------- 0 :: [] -(0)-> A(9, 6, 9) 0 :: [] -(0)-> A(5, 0, 0) 0 :: [] -(0)-> A(3, 0, 0) 0 :: [] -(0)-> A(8, 7, 0) 0 :: [] -(0)-> A(2, 0, 0) 0 :: [] -(0)-> A(5, 1, 7) 0 :: [] -(0)-> A(5, 1, 6) 0 :: [] -(0)-> A(1, 1, 6) add :: [A(3, 0, 0) x A(2, 0, 0)] -(1)-> A(2, 0, 0) cons :: [A(0, 11, 0)] -(11)-> A(11, 11, 0) cons :: [A(0, 11, 0)] -(5)-> A(8, 5, 6) cons :: [A(0, 2, 0)] -(0)-> A(8, 0, 2) dbl :: [A(5, 0, 0)] -(1)-> A(2, 0, 0) first :: [A(8, 7, 0) x A(11, 11, 0)] -(2)-> A(1, 0, 0) half :: [A(2, 0, 0)] -(10)-> A(0, 0, 0) nil :: [] -(0)-> A(4, 1, 6) recip :: [A(0, 0, 0)] -(0)-> A(10, 13, 0) s :: [A(15, 15, 9)] -(9)-> A(9, 6, 9) s :: [A(5, 0, 0)] -(5)-> A(5, 0, 0) s :: [A(3, 0, 0)] -(3)-> A(3, 0, 0) s :: [A(15, 7, 0)] -(8)-> A(8, 7, 0) s :: [A(2, 0, 0)] -(2)-> A(2, 0, 0) s :: [A(0, 0, 0)] -(0)-> A(0, 0, 0) sqr :: [A(9, 6, 9)] -(3)-> A(2, 0, 0) terms :: [A(15, 8, 15)] -(15)-> A(2, 2, 0) Cost Free Signatures: --------------------- 0 :: [] -(0)-> A_cf(1, 9, 0) 0 :: [] -(0)-> A_cf(8, 11, 2) 0 :: [] -(0)-> A_cf(1, 0, 0) 0 :: [] -(0)-> A_cf(3, 0, 0) 0 :: [] -(0)-> A_cf(15, 12, 0) 0 :: [] -(0)-> A_cf(0, 0, 0) 0 :: [] -(0)-> A_cf(0, 0, 2) 0 :: [] -(0)-> A_cf(7, 0, 2) add :: [A_cf(1, 0, 0) x A_cf(1, 0, 0)] -(0)-> A_cf(1, 0, 0) add :: [A_cf(0, 0, 0) x A_cf(0, 0, 0)] -(0)-> A_cf(0, 0, 0) dbl :: [A_cf(3, 0, 0)] -(0)-> A_cf(1, 0, 0) dbl :: [A_cf(7, 0, 2)] -(2)-> A_cf(0, 0, 0) dbl :: [A_cf(7, 0, 2)] -(1)-> A_cf(0, 0, 0) half :: [A_cf(0, 0, 0)] -(1)-> A_cf(0, 0, 0) s :: [A_cf(10, 9, 0)] -(1)-> A_cf(1, 9, 0) s :: [A_cf(1, 0, 0)] -(1)-> A_cf(1, 0, 0) s :: [A_cf(3, 0, 0)] -(3)-> A_cf(3, 0, 0) s :: [A_cf(0, 0, 0)] -(0)-> A_cf(0, 0, 0) s :: [A_cf(7, 2, 2)] -(7)-> A_cf(7, 0, 2) sqr :: [A_cf(1, 9, 0)] -(0)-> A_cf(1, 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)] -(0)-> A(1, 0, 0) cons_A :: [A(0, 1, 0)] -(1)-> A(0, 1, 0) cons_A :: [A(0, 1, 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)] -(0)-> A(0, 1, 0) s_A :: [A(0, 1, 1)] -(0)-> A(0, 0, 1)