Annotated using CiaoPP:
:- mode(reverse/2, [+,-]).
:- mode(app/3, [+,+,-]).
:- measure(reverse/2, [length,length]).
:- measure(app/3, [length,length,length]).
%complexity: reverse(i,o).

% mode: app[i,i,o]
app([X|Xs],Ys,[X|Zs]) :- app(Xs,Ys,Zs).
app([],Ys,Ys).

% mode: reverse[i,o]
reverse([X|Xs],Ys) :- reverse(Xs,Zs), app(Zs,[X],Ys).
reverse([],[]).


Caslog 1.0, April 1992.

* Mutually exclusive classes of clauses for predicate app/3 :

[[1],[2]]

* Size functions for predicate app/3 :

[$(1),$(2),$(2)+ $(1)]

* Relation functions for predicate app/3 :

[inf]

* Solution functions for predicate app/3 :

[1]

* Time functions for predicate app/3 :

[$(1)+1]

* Mutually exclusive classes of clauses for predicate reverse/2 :

[[1],[2]]

* Size functions for predicate reverse/2 :

[$(1),$(1)]

* Relation functions for predicate reverse/2 :

[inf]

* Solution functions for predicate reverse/2 :

[1]

* Time functions for predicate reverse/2 :

[0.5*exp($(1),2)+1.5* $(1)+1]

{Exexution Time: 0.0 msec}

{End of Caslog execution.}