Annotated using CiaoPP:
:- mode(max/3, [-,-,+]).
:- mode(less/2, [-,+]).
:- measure(max/3, [size,size,size]).
:- measure(less/2, [size,size]).
%complexity: max(o,o,i).
%% max(X, Y, Z) :- Z is the maximum of the integers X and Y. 
%%


%TWTYPES     :- type max(nat,nat,nat).

max(X, Y, X) :- less(Y,X).
max(X, Y, Y) :- less(X,s(Y)).

%TWTYPES     :- type less(nat,nat).

less(0, s(_)).
less(s(X), s(Y)) :- less(X, Y).



/*TWDESC

max(X, Y, Z) :- Z is the maximum of the integers X and Y.

*/


/*TWTYPES

nat(0).
nat(s(X)) :- nat(X).

*/


/*TWDEMO

selected_norms([nat]).


query(max(b,f,f)).
query(max(f,b,f)).
query(max(f,f,b)).
query(less(b,f)).
query(less(f,b)).
 
*/


Caslog 1.0, April 1992.

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

[[1,2]]

* Size functions for predicate less/2 :

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

* Relation functions for predicate less/2 :

[inf]

* Solution functions for predicate less/2 :

[$(2)]

* Time functions for predicate less/2 :

[2* $(2)]

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

[[1,2]]

* Size functions for predicate max/3 :

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

* Relation functions for predicate max/3 :

[inf]

* Solution functions for predicate max/3 :

[2* $(3)+1]

* Time functions for predicate max/3 :

[4* $(3)+4]

{Exexution Time: 8.0 msec}

{End of Caslog execution.}