Ciao Preprocessor (integrated Alpha version)
 | This is an alpha distribution, meant only for testing. Please do let us 
 | know at ciaopp-bugclip.dia.fi.upm.es any problems you may have.

{Reading /tmp/tmpgwI6_h/lessleaves.pl
}
{loaded in 3348.209 msec.}
{preprocessed for plai in 4.0 msec.}
{analyzed by plai using det with local-control off in 4.0 msec.}
{written file /tmp/tmpgwI6_h/lessleaves_det_co.pl}
:- module(_1,[lessleaves/2],[assertions]).

:- true pred append(_1,Y,_2)
         : ( native_props:mshare([[_2]]), var(_2), ground([_1,Y]), gnd(_1), gnd(Y), term(_2) )
        => ( ground([_1,Y,_2]), rt6(_1), gnd(Y), gnd(_2) )
         + ( is_det, mut_exclusive ).

append(nil,Y,Y).
append(cons(U,V),Y,cons(U,Z)) :-
        append(V,Y,Z).

:- entry lessleaves(A,B)
         : ( ground(A), ground(B) ).

:- true pred lessleaves(A,B)
         : ( ground([A,B]), gnd(A), gnd(B) )
        => ( ground([A,B]), rt12(A), rt16(B) )
         + ( is_det, mut_exclusive ).

lessleaves(nil,cons(W,Z)).
lessleaves(cons(U,V),cons(W,Z)) :-
        append(U,V,U1),
        append(W,Z,W1),
        lessleaves(U1,W1).


:- regtype rt15/1.

rt15(nil).
rt15(cons(A,B)) :-
        gnd(A),
        rt7(B).


:- regtype rt14/1.

rt14(nil).
rt14(cons(A,B)) :-
        gnd(A),
        rt15(B).


:- regtype rt13/1.

rt13(A) :-
        gnd(A).
rt13(nil).
rt13(cons(A,B)) :-
        rt14(A),
        rt13(B).


:- regtype rt12/1.

rt12(nil).
rt12(cons(A,B)) :-
        rt14(A),
        rt13(B).


:- regtype rt18/1.

rt18(A) :-
        gnd(A).


:- regtype rt17/1.

rt17(A) :-
        gnd(A).
rt17(cons(A,B)) :-
        rt18(A),
        rt17(B).


:- regtype rt16/1.

rt16(cons(A,B)) :-
        rt18(A),
        rt17(B).


:- regtype rt7/1.

rt7(nil).
rt7(cons(A,B)) :-
        gnd(A),
        rt7(B).


:- regtype rt6/1.

rt6(nil).
rt6(cons(A,B)) :-
        gnd(A),
        rt7(B).