WORST_CASE(?,O(n^1)) Solution: --------- "0" :: [] -(0)-> "nat"(2) "0" :: [] -(0)-> "nat"(7) "Cons" :: ["__ANY_TYPE__"(15) x "list"(15)] -(15)-> "list"(15) "Cons" :: ["__ANY_TYPE__"(2) x "list"(2)] -(2)-> "list"(2) "Nil" :: [] -(0)-> "list"(15) "Nil" :: [] -(0)-> "list"(2) "Nil" :: [] -(0)-> "list"(5) "S" :: ["nat"(2)] -(2)-> "nat"(2) "S" :: ["nat"(0)] -(0)-> "nat"(0) "comp_f_g" :: ["nat"(2) x "nat"(2)] -(0)-> "nat"(2) "comp_f_g#1" :: ["nat"(2) x "nat"(2)] -(0)-> "nat"(0) "foldr#3" :: ["list"(2)] -(8)-> "nat"(2) "foldr_f#3" :: ["list"(2)] -(7)-> "nat"(0) "id" :: [] -(0)-> "nat"(2) "id" :: [] -(0)-> "nat"(5) "main" :: ["list"(15)] -(16)-> "nat"(0) "map#2" :: ["list"(15)] -(1)-> "list"(2) "plus_x" :: ["nat"(2)] -(2)-> "nat"(2) "plus_x#1" :: ["nat"(2) x "nat"(0)] -(1)-> "nat"(0) Cost Free Signatures: --------------------- "0" :: [] -(0)-> "nat"_cf(0) "Cons" :: ["__ANY_TYPE__"_cf(0) x "list"_cf(0)] -(0)-> "list"_cf(0) "Nil" :: [] -(0)-> "list"_cf(0) "S" :: ["nat"_cf(0)] -(0)-> "nat"_cf(0) "comp_f_g" :: ["nat"_cf(0) x "nat"_cf(0)] -(0)-> "nat"_cf(0) "comp_f_g#1" :: ["nat"_cf(0) x "nat"_cf(0)] -(0)-> "nat"_cf(0) "foldr#3" :: ["list"_cf(0)] -(0)-> "nat"_cf(0) "id" :: [] -(0)-> "nat"_cf(0) "map#2" :: ["list"_cf(0)] -(0)-> "list"_cf(0) "plus_x" :: ["nat"_cf(0)] -(0)-> "nat"_cf(0) "plus_x#1" :: ["nat"_cf(0) x "nat"_cf(0)] -(0)-> "nat"_cf(0) Base Constructors: ------------------ "\"0\"_nat" :: [] -(0)-> "nat"(1) "\"Cons\"_list" :: ["__ANY_TYPE__"(1) x "list"(1)] -(1)-> "list"(1) "\"Nil\"_list" :: [] -(0)-> "list"(1) "\"S\"_nat" :: ["nat"(1)] -(1)-> "nat"(1) "\"comp_f_g\"_nat" :: ["nat"(0) x "nat"(0)] -(0)-> "nat"(1) "\"id\"_nat" :: [] -(0)-> "nat"(1) "\"plus_x\"_nat" :: ["nat"(0)] -(1)-> "nat"(1) Parsed Typed Term Rewrite System: --------------------------------- (STRATEGY INNERMOST) (VAR "v3" "v2" "v1" "v16" "v6" "v8" "v10") (DATATYPES "list" = µX.< "Nil", "Cons"("__ANY_TYPE__", X) > "nat" = µX.< "plus_x"(X), "comp_f_g"(X, X), "id", "0", "S"(X) >) (SIGNATURES "comp_f_g#1" :: ["nat" x "nat"] --> "nat" "map#2" :: ["list"] --> "list" "plus_x#1" :: ["nat" x "nat"] --> "nat" "foldr_f#3" :: ["list"] --> "nat" "foldr#3" :: ["list"] --> "nat" "main" :: ["list"] --> "nat") (RULES "comp_f_g#1"("plus_x"("v3"),"comp_f_g"("plus_x"("v2"),"v1")) -> "plus_x#1"("v3","comp_f_g#1"("plus_x"("v2"),"v1")) "comp_f_g#1"("plus_x"("v3"),"id"()) -> "plus_x#1"("v3","0"()) "map#2"("Nil"()) -> "Nil"() "map#2"("Cons"("v16","v6")) -> "Cons"("plus_x"("v16"),"map#2"("v6")) "plus_x#1"("0"(),"v6") -> "v6" "plus_x#1"("S"("v8"),"v10") -> "S"("plus_x#1"("v8","v10")) "foldr_f#3"("Nil"()) -> "0"() "foldr_f#3"("Cons"("plus_x"("v2"),"v1")) -> "comp_f_g#1"("plus_x"("v2"),"foldr#3"("v1")) "foldr#3"("Nil"()) -> "id"() "foldr#3"("Cons"("plus_x"("v2"),"v1")) -> "comp_f_g"("plus_x"("v2"),"foldr#3"("v1")) "main"("v3") -> "foldr_f#3"("map#2"("v3"))) WORST_CASE(?,O(n^1))