:- ordered(b).
%% ordered(Xs) :- Xs is an lte-ordered list of integers. 
%%

%TWTYPES :- type ordered(listn).

ordered([]).
ordered([_]).
ordered([X, Y | Xs]) :- less(X,s(Y)), ordered([Y| Xs]).

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

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



/*TWDESC

ordered(Xs) :- Xs is an lte-ordered list of integers.

*/


/*TWTYPES

listn([]).
listn([X|Xs]) :-
        nat(X),
        listn(Xs).

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

*/


/*TWDEMO

selected_norms([listn,nat]).

query(ordered(f,b)).
query(less(f,b,f,f)).
query(less(f,f,f,b)).

*/
