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 3408.212 msec.}
{preprocessed for plai in 4.0 msec.}
{analyzed by plai using det with local-control off in 4.0 msec.}
{written file /tmp/tmpPk4pPI/sum-ioi_det_co.pl}
:- module(_1,[sum/3],[assertions]).
:- entry sum(A,B,C)
: ( ground(A), ground(C) ).
:- true pred sum(A,B,C)
: ( native_props:mshare([[B]]), ground([A,C]), gnd(A), term(B), gnd(C) )
=> ( ground([A,B,C]), rt15(A), rt19(B), rt22(C) )
+ ( is_det, mut_exclusive ).
sum([],[],[]).
sum([X1|Y1],[X2|Y2],[X3|Y3]) :-
add(X1,X2,X3),
sum(Y1,Y2,Y3).
:- true pred add(_1,X,_2)
: ( native_props:mshare([[X]]), ground([_1,_2]), gnd(_1), term(X), gnd(_2) )
=> ( ground([_1,X,_2]), rt7(_1), gnd(X), gnd(_2) )
+ ( is_det, mut_exclusive ).
add(0,X,X).
add(s(X),Y,s(Z)) :-
add(X,Y,Z).
:- regtype rt18/1.
rt18(0).
rt18(s(A)) :-
rt8(A).
:- regtype rt17/1.
rt17(0).
rt17(s(A)) :-
rt18(A).
:- regtype rt16/1.
rt16([]).
rt16([A|B]) :-
rt17(A),
rt16(B).
:- regtype rt15/1.
rt15([]).
rt15([A|B]) :-
rt17(A),
rt16(B).
:- regtype rt21/1.
rt21(A) :-
gnd(A).
:- regtype rt20/1.
rt20([]).
rt20([A|B]) :-
rt21(A),
rt20(B).
:- regtype rt19/1.
rt19([]).
rt19([A|B]) :-
rt21(A),
rt20(B).
:- regtype rt24/1.
rt24(A) :-
gnd(A).
:- regtype rt23/1.
rt23([]).
rt23([A|B]) :-
rt24(A),
rt23(B).
:- regtype rt22/1.
rt22([]).
rt22([A|B]) :-
rt24(A),
rt23(B).
:- regtype rt8/1.
rt8(0).
rt8(s(A)) :-
rt8(A).
:- regtype rt7/1.
rt7(0).
rt7(s(A)) :-
rt8(A).