WORST_CASE(?,O(n^2)) Solution: --------- "Add" :: ["A"(6, 3) x "A"(3, 3)] -(3)-> "A"(3, 3) "Nat" :: ["A"(3, 0)] -(0)-> "A"(3, 3) "Nat" :: ["A"(6, 0)] -(0)-> "A"(6, 10) "Nat" :: ["A"(3, 0)] -(0)-> "A"(3, 11) "Sub" :: ["A"(3, 3) x "A"(3, 3)] -(3)-> "A"(3, 3) "Succ" :: ["A"(6, 0)] -(6)-> "A"(6, 0) "Succ" :: ["A"(3, 0)] -(3)-> "A"(3, 0) "Zero" :: [] -(0)-> "A"(6, 0) "Zero" :: [] -(0)-> "A"(3, 0) "Zero" :: [] -(0)-> "A"(12, 8) "cond_eval_expr_1" :: ["A"(6, 0) x "A"(3, 3)] -(2)-> "A"(3, 0) "cond_eval_expr_2" :: ["A"(3, 0) x "A"(3, 3)] -(2)-> "A"(3, 0) "cond_eval_expr_3" :: ["A"(3, 0) x "A"(3, 0)] -(2)-> "A"(3, 0) "eval#1" :: ["A"(3, 3)] -(1)-> "A"(3, 0) "main" :: ["A"(13, 13)] -(16)-> "A"(0, 0) Cost Free Signatures: --------------------- "Add" :: ["A"_cf(0, 0) x "A"_cf(0, 0)] -(0)-> "A"_cf(0, 0) "Add" :: ["A"_cf(3, 0) x "A"_cf(3, 0)] -(3)-> "A"_cf(3, 0) "Nat" :: ["A"_cf(0, 0)] -(0)-> "A"_cf(0, 0) "Nat" :: ["A"_cf(3, 0)] -(0)-> "A"_cf(3, 0) "Nat" :: ["A"_cf(3, 0)] -(0)-> "A"_cf(3, 14) "Nat" :: ["A"_cf(3, 0)] -(0)-> "A"_cf(3, 15) "Sub" :: ["A"_cf(0, 0) x "A"_cf(0, 0)] -(0)-> "A"_cf(0, 0) "Sub" :: ["A"_cf(3, 0) x "A"_cf(3, 0)] -(0)-> "A"_cf(3, 0) "Succ" :: ["A"_cf(0, 0)] -(0)-> "A"_cf(0, 0) "Succ" :: ["A"_cf(3, 0)] -(3)-> "A"_cf(3, 0) "Succ" :: ["A"_cf(3, 0)] -(3)-> "A"_cf(3, 12) "Zero" :: [] -(0)-> "A"_cf(0, 0) "Zero" :: [] -(0)-> "A"_cf(3, 0) "Zero" :: [] -(0)-> "A"_cf(11, 8) "cond_eval_expr_1" :: ["A"_cf(0, 0) x "A"_cf(0, 0)] -(0)-> "A"_cf(0, 0) "cond_eval_expr_1" :: ["A"_cf(3, 0) x "A"_cf(3, 0)] -(3)-> "A"_cf(3, 0) "cond_eval_expr_2" :: ["A"_cf(0, 0) x "A"_cf(0, 0)] -(0)-> "A"_cf(0, 0) "cond_eval_expr_2" :: ["A"_cf(3, 0) x "A"_cf(3, 0)] -(0)-> "A"_cf(3, 0) "cond_eval_expr_3" :: ["A"_cf(0, 0) x "A"_cf(0, 0)] -(0)-> "A"_cf(0, 0) "cond_eval_expr_3" :: ["A"_cf(3, 0) x "A"_cf(3, 0)] -(0)-> "A"_cf(3, 0) "eval#1" :: ["A"_cf(0, 0)] -(0)-> "A"_cf(0, 0) "eval#1" :: ["A"_cf(3, 0)] -(0)-> "A"_cf(3, 0) Base Constructors: ------------------ "\"Add\"_A" :: ["A"(1, 0) x "A"(1, 0)] -(1)-> "A"(1, 0) "\"Add\"_A" :: ["A"(1, 1) x "A"(0, 1)] -(0)-> "A"(0, 1) "\"Nat\"_A" :: ["A"(1, 0)] -(0)-> "A"(1, 0) "\"Nat\"_A" :: ["A"(0, 0)] -(0)-> "A"(0, 1) "\"Sub\"_A" :: ["A"(1, 0) x "A"(1, 0)] -(0)-> "A"(1, 0) "\"Sub\"_A" :: ["A"(0, 1) x "A"(0, 1)] -(1)-> "A"(0, 1) "\"Succ\"_A" :: ["A"(1, 0)] -(1)-> "A"(1, 0) "\"Succ\"_A" :: ["A"(0, 0)] -(0)-> "A"(0, 1) "\"Zero\"_A" :: [] -(0)-> "A"(1, 0) "\"Zero\"_A" :: [] -(0)-> "A"(0, 1)