Annotated using CiaoPP: :- mode(eq/2, [-,+]). :- mode(len1/2, [+,-]). :- measure(eq/2, [size,size]). :- measure(len1/2, [length,size]). %complexity: len1(i,o). %% len1(Xs, X) :- X is the length of the list Xs. %% %TWTYPES :- type len1(list,nat). len1([], 0). len1([_ | Ts], N) :- len1(Ts, M), eq(N,s(M)). %TWTYPES :- type eq(nat,nat). eq(X,X). /*TWDESC len1(Xs, X) :- X is the length of the list Xs. */ /*TWTYPES list([]). list([X|Xs]) :- poly(X), list(Xs). poly(dummy). nat(0). nat(s(X)) :- nat(X). */ /*TWDEMO selected_norms([list,nat,poly]). query(len1(b,f,f,f,f,f)). query(len1(f,f,b,f,f,f)). */ Caslog 1.0, April 1992. * Mutually exclusive classes of clauses for predicate eq/2 : [[1]] * Size functions for predicate eq/2 : [$(2),$(2)] * Relation functions for predicate eq/2 : [inf] * Solution functions for predicate eq/2 : [1] * Time functions for predicate eq/2 : [1] * Mutually exclusive classes of clauses for predicate len1/2 : [[1],[2]] * Size functions for predicate len1/2 : [$(1),$(1)+1] * Relation functions for predicate len1/2 : [inf] * Solution functions for predicate len1/2 : [1] * Time functions for predicate len1/2 : [2* $(1)+1] {Exexution Time: 4.0 msec} {End of Caslog execution.}