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.
{loaded in 3428.215 msec.}
{preprocessed for plai in 0.0 msec.}
{analyzed by plai using det with local-control off in 4.001 msec.}
{written file /tmp/tmpDZQCfl/length1_det_co.pl}
:- module(_1,[len1/2],[assertions]).
:- entry len1(A,B)
: ground(A).
:- true pred len1(A,B)
: ( native_props:mshare([[B]]), ground([A]), gnd(A), term(B) )
=> ( ground([A,B]), rt16(A), rt19(B) )
+ ( is_det, mut_exclusive ).
:- true pred len1(A,B)
: ( native_props:mshare([[B]]), var(B), ground([A]), gnd(A), term(B) )
=> ( ground([A,B]), rt8(A), rt10(B) )
+ ( is_det, mut_exclusive ).
len1([],0).
len1([_1|Ts],N) :-
len1(Ts,M),
eq(N,s(M)).
:- true pred eq(X,s(_1))
: ( native_props:mshare([[X]]), ground([_1]), term(X), rt10(_1) )
=> ( ground([X,_1]), rt12(X), rt10(_1) )
+ ( is_det, mut_exclusive ).
:- true pred eq(X,s(_1))
: ( native_props:mshare([[X]]), var(X), ground([_1]), term(X), rt3(_1) )
=> ( ground([X,_1]), rt4(X), rt3(_1) )
+ ( is_det, mut_exclusive ).
eq(X,X).
:- regtype rt18/1.
rt18([]).
rt18([A|B]) :-
gnd(A),
rt9(B).
:- regtype rt17/1.
rt17([]).
rt17([A|B]) :-
gnd(A),
rt18(B).
:- regtype rt16/1.
rt16([]).
rt16([A|B]) :-
gnd(A),
rt17(B).
:- regtype rt21/1.
rt21(0).
rt21(s(A)) :-
rt21(A).
:- regtype rt20/1.
rt20(0).
rt20(s(A)) :-
rt21(A).
:- regtype rt19/1.
rt19(0).
rt19(s(A)) :-
rt20(A).
:- regtype rt11/1.
rt11(0).
rt11(s(A)) :-
rt11(A).
:- regtype rt10/1.
rt10(0).
rt10(s(A)) :-
rt11(A).
:- regtype rt12/1.
rt12(s(A)) :-
rt10(A).
:- regtype rt9/1.
rt9([]).
rt9([A|B]) :-
gnd(A),
rt9(B).
:- regtype rt8/1.
rt8([]).
rt8([A|B]) :-
gnd(A),
rt9(B).
:- regtype rt3/1.
rt3(0).
:- regtype rt4/1.
rt4(s(A)) :-
rt3(A).