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.}