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/tmpHZuA2W/rev.pl
}
{loaded in 3404.212 msec.}
{preprocessed for plai in 4.0 msec.}
{analyzed by plai using det with local-control off in 52.003 msec.}
{written file /tmp/tmpHZuA2W/rev_det_co.pl}
:- module(_1,[rev/2],[assertions]).
:- entry rev(A,B)
: ground(A).
:- true pred rev([_1|_2],B)
: ( native_props:mshare([[B]]), var(B), ground([_1,_2]), term(B), gnd(_1), rt12(_2) )
=> ( ground([B,_1,_2]), rt22(B), gnd(_1), rt9(_2) )
+ ( non_det, not_mut_exclusive ).
:- true pred rev([_1|_2],B)
: ( native_props:mshare([[B]]), var(B), ground([_1,_2]), term(B), term(_1), rt12(_2) )
=> ( ground([B,_1,_2]), rt66(B), term(_1), rt53(_2) )
+ ( non_det, not_mut_exclusive ).
:- true pred rev([_1|_2],B)
: ( native_props:mshare([[B]]), ground([_1,_2]), term(B), term(_1), rt128(_2) )
=> ( ground([B,_1,_2]), rt132(B), term(_1), rt126(_2) )
+ ( non_det, not_mut_exclusive ).
:- true pred rev(A,B)
: ( native_props:mshare([[B]]), ground([A]), gnd(A), term(B) )
=> ( ground([A,B]), rt153(A), rt156(B) )
+ ( non_det, mut_exclusive ).
:- true pred rev([_1|_2],B)
: ( native_props:mshare([[B]]), ground([_1,_2]), term(B), gnd(_1), rt112(_2) )
=> ( ground([B,_1,_2]), rt141(B), term(_1), rt137(_2) )
+ ( non_det, mut_exclusive ).
:- true pred rev(A,B)
: ( native_props:mshare([[B]]), var(B), ground([A]), rt75(A), term(B) )
=> ( ground([A,B]), rt92(A), rt94(B) )
+ ( non_det, mut_exclusive ).
:- true pred rev(A,B)
: ( native_props:mshare([[B]]), var(B), ground([A]), rt31(A), term(B) )
=> ( ground([A,B]), rt108(A), rt110(B) )
+ ( non_det, mut_exclusive ).
:- true pred rev([_1|_2],B)
: ( native_props:mshare([[B]]), var(B), ground([_1,_2]), term(B), gnd(_1), rt94(_2) )
=> ( ground([B,_1,_2]), rt96(B), term(_1), rt71(_2) )
+ ( non_det, mut_exclusive ).
:- true pred rev(A,B)
: ( native_props:mshare([[B]]), var(B), ground([A]), rt10(A), term(B) )
=> ( ground([A,B]), rt11(A), rt12(B) )
+ ( is_det, mut_exclusive ).
rev([],[]).
rev([X|XS],[Y|YS]) :-
rev1(X,XS,Y),
rev2(X,XS,YS).
:- true pred rev1(X,_1,Z)
: ( native_props:mshare([[Z]]), ground([X,_1]), term(X), rt81(_1), term(Z) )
=> ( ground([X,_1,Z]), term(X), rt122(_1), term(Z) )
+ ( is_det, mut_exclusive ).
:- true pred rev1(X,_1,Z)
: ( native_props:mshare([[Z]]), ground([X,_1]), term(X), term(_1), term(Z) )
=> ( ground([X,_1,Z]), term(X), rt118(_1), term(Z) )
+ ( is_det, mut_exclusive ).
:- true pred rev1(X,_1,Z)
: ( native_props:mshare([[Z]]), var(Z), ground([X,_1]), term(X), rt81(_1), term(Z) )
=> ( ground([X,_1,Z]), term(X), rt86(_1), term(Z) )
+ ( is_det, mut_exclusive ).
:- true pred rev1(X,_1,Z)
: ( native_props:mshare([[Z]]), var(Z), ground([X,_1]), term(X), term(_1), term(Z) )
=> ( ground([X,_1,Z]), term(X), rt42(_1), term(Z) )
+ ( is_det, mut_exclusive ).
:- true pred rev1(X,_1,Z)
: ( native_props:mshare([[Z]]), var(Z), ground([X,_1]), term(X), rt55(_1), term(Z) )
=> ( ground([X,_1,Z]), term(X), rt60(_1), term(Z) )
+ ( is_det, mut_exclusive ).
:- true pred rev1(X,_1,Z)
: ( native_props:mshare([[Z]]), var(Z), ground([X,_1]), gnd(X), rt36(_1), term(Z) )
=> ( ground([X,_1,Z]), gnd(X), rt46(_1), term(Z) )
+ ( is_det, mut_exclusive ).
:- true pred rev1(X,_1,Z)
: ( native_props:mshare([[Z]]), var(Z), ground([X,_1]), gnd(X), rt13(_1), term(Z) )
=> ( ground([X,_1,Z]), gnd(X), rt17(_1), gnd(Z) )
+ ( is_det, mut_exclusive ).
:- true pred rev1(X,_1,Z)
: ( native_props:mshare([[Z]]), ground([X,_1]), gnd(X), gnd(_1), term(Z) )
=> ( ground([X,_1,Z]), gnd(X), rt5(_1), gnd(Z) )
+ ( is_det, mut_exclusive ).
rev1(X,[],X).
rev1(X,[Y|YS],Z) :-
rev1(Y,YS,Z).
:- true pred rev2(X,_1,ZS)
: ( native_props:mshare([[ZS]]), ground([X,_1]), gnd(X), rt5(_1), term(ZS) )
=> ( ground([X,_1,ZS]), term(X), rt145(_1), rt147(ZS) )
+ ( non_det, mut_exclusive ).
:- true pred rev2(X,_1,ZS)
: ( native_props:mshare([[ZS]]), ground([X,_1]), term(X), rt124(_1), term(ZS) )
=> ( ground([X,_1,ZS]), term(X), rt137(_1), rt139(ZS) )
+ ( non_det, mut_exclusive ).
:- true pred rev2(X,_1,ZS)
: ( native_props:mshare([[ZS]]), var(ZS), ground([X,_1]), term(X), rt52(_1), term(ZS) )
=> ( ground([X,_1,ZS]), term(X), rt71(_1), rt73(ZS) )
+ ( non_det, mut_exclusive ).
:- true pred rev2(X,_1,ZS)
: ( native_props:mshare([[ZS]]), var(ZS), ground([X,_1]), gnd(X), rt48(_1), term(ZS) )
=> ( ground([X,_1,ZS]), term(X), rt100(_1), rt102(ZS) )
+ ( non_det, mut_exclusive ).
:- true pred rev2(X,_1,ZS)
: ( native_props:mshare([[ZS]]), var(ZS), ground([X,_1]), gnd(X), rt6(_1), term(ZS) )
=> ( ground([X,_1,ZS]), gnd(X), rt27(_1), rt29(ZS) )
+ ( non_det, mut_exclusive ).
rev2(X,[],[]).
rev2(X,[Y|YS],ZS) :-
rev2(Y,YS,US),
rev(US,VS),
rev([X|VS],ZS).
:- regtype rt12/1.
rt12([]).
:- regtype rt23/1.
rt23([]).
rt23([A|B]) :-
gnd(A),
rt23(B).
:- regtype rt22/1.
rt22([A|B]) :-
gnd(A),
rt23(B).
:- regtype rt9/1.
rt9([]).
:- regtype rt67/1.
rt67([]).
rt67([A|B]) :-
term(A),
rt67(B).
:- regtype rt66/1.
rt66([A|B]) :-
term(A),
rt67(B).
:- regtype rt53/1.
rt53([]).
:- regtype rt129/1.
rt129([]).
rt129([A|B]) :-
term(A),
rt95(B).
:- regtype rt128/1.
rt128([]).
rt128([A|B]) :-
term(A),
rt129(B).
:- regtype rt133/1.
rt133([]).
rt133([A|B]) :-
term(A),
rt133(B).
:- regtype rt132/1.
rt132([A|B]) :-
term(A),
rt133(B).
:- regtype rt126/1.
rt126([]).
:- regtype rt155/1.
rt155([]).
rt155([A|B]) :-
gnd(A),
rt28(B).
:- regtype rt154/1.
rt154([]).
rt154([A|B]) :-
gnd(A),
rt155(B).
:- regtype rt153/1.
rt153([]).
rt153([A|B]) :-
term(A),
rt154(B).
:- regtype rt158/1.
rt158([]).
rt158([A|B]) :-
term(A),
rt158(B).
:- regtype rt157/1.
rt157([]).
rt157([A|B]) :-
term(A),
rt158(B).
:- regtype rt156/1.
rt156([]).
rt156([A|B]) :-
gnd(A),
rt157(B).
:- regtype rt5/1.
rt5([]).
rt5([A|B]) :-
gnd(A),
rt6(B).
:- regtype rt146/1.
rt146([]).
rt146([A|B]) :-
gnd(A),
rt28(B).
:- regtype rt145/1.
rt145([]).
rt145([A|B]) :-
gnd(A),
rt146(B).
:- regtype rt148/1.
rt148([]).
rt148([A|B]) :-
term(A),
rt148(B).
:- regtype rt147/1.
rt147([]).
rt147([A|B]) :-
term(A),
rt148(B).
:- regtype rt113/1.
rt113([]).
rt113([A|B]) :-
term(A),
rt113(B).
:- regtype rt112/1.
rt112([]).
rt112([A|B]) :-
term(A),
rt113(B).
:- regtype rt141/1.
rt141([A|B]) :-
term(A),
rt139(B).
:- regtype rt138/1.
rt138([]).
rt138([A|B]) :-
term(A),
rt72(B).
:- regtype rt137/1.
rt137([]).
rt137([A|B]) :-
term(A),
rt138(B).
:- regtype rt125/1.
rt125([]).
rt125([A|B]) :-
term(A),
rt125(B).
:- regtype rt124/1.
rt124([]).
rt124([A|B]) :-
term(A),
rt125(B).
:- regtype rt140/1.
rt140([]).
rt140([A|B]) :-
term(A),
rt140(B).
:- regtype rt139/1.
rt139([]).
rt139([A|B]) :-
term(A),
rt140(B).
:- regtype rt82/1.
rt82([]).
rt82(A) :-
gnd(A).
rt82([A|B]) :-
term(A),
rt82(B).
:- regtype rt81/1.
rt81([]).
rt81(A) :-
gnd(A).
rt81([A|B]) :-
term(A),
rt82(B).
:- regtype rt123/1.
rt123([]).
rt123([A|B]) :-
term(A),
rt123(B).
:- regtype rt122/1.
rt122([]).
rt122([A|B]) :-
term(A),
rt123(B).
:- regtype rt76/1.
rt76([]).
rt76([A|B]) :-
term(A),
rt76(B).
:- regtype rt75/1.
rt75([]).
rt75([A|B]) :-
term(A),
rt76(B).
:- regtype rt93/1.
rt93([]).
rt93([A|B]) :-
term(A),
rt93(B).
:- regtype rt92/1.
rt92([]).
rt92([A|B]) :-
term(A),
rt93(B).
:- regtype rt95/1.
rt95([]).
rt95([A|B]) :-
term(A),
rt95(B).
:- regtype rt94/1.
rt94([]).
rt94([A|B]) :-
term(A),
rt95(B).
:- regtype rt52/1.
rt52([]).
rt52([A|B]) :-
term(A),
rt52(B).
:- regtype rt71/1.
rt71([]).
rt71([A|B]) :-
term(A),
rt72(B).
:- regtype rt73/1.
rt73([]).
rt73([A|B]) :-
term(A),
rt74(B).
:- regtype rt119/1.
rt119([]).
rt119([A|B]) :-
term(A),
rt119(B).
:- regtype rt118/1.
rt118([]).
rt118([A|B]) :-
term(A),
rt119(B).
:- regtype rt32/1.
rt32([]).
rt32([A|B]) :-
gnd(A),
rt32(B).
:- regtype rt31/1.
rt31([]).
rt31([A|B]) :-
gnd(A),
rt32(B).
:- regtype rt109/1.
rt109([]).
rt109([A|B]) :-
term(A),
rt109(B).
:- regtype rt108/1.
rt108([]).
rt108([A|B]) :-
term(A),
rt109(B).
:- regtype rt111/1.
rt111([]).
rt111([A|B]) :-
term(A),
rt111(B).
:- regtype rt110/1.
rt110([]).
rt110([A|B]) :-
term(A),
rt111(B).
:- regtype rt49/1.
rt49([]).
rt49([A|B]) :-
term(A),
rt49(B).
:- regtype rt48/1.
rt48([]).
rt48([A|B]) :-
term(A),
rt49(B).
:- regtype rt72/1.
rt72([]).
rt72([A|B]) :-
term(A),
rt72(B).
:- regtype rt101/1.
rt101([]).
rt101([A|B]) :-
term(A),
rt72(B).
:- regtype rt100/1.
rt100([]).
rt100([A|B]) :-
term(A),
rt101(B).
:- regtype rt74/1.
rt74([]).
rt74([A|B]) :-
term(A),
rt74(B).
:- regtype rt103/1.
rt103([]).
rt103([A|B]) :-
term(A),
rt74(B).
:- regtype rt102/1.
rt102([]).
rt102([A|B]) :-
term(A),
rt103(B).
:- regtype rt96/1.
rt96([A|B]) :-
term(A),
rt73(B).
:- regtype rt87/1.
rt87([]).
rt87([A|B]) :-
term(A),
rt87(B).
:- regtype rt86/1.
rt86([]).
rt86([A|B]) :-
term(A),
rt87(B).
:- regtype rt43/1.
rt43([]).
rt43([A|B]) :-
term(A),
rt43(B).
:- regtype rt42/1.
rt42([]).
rt42([A|B]) :-
term(A),
rt43(B).
:- regtype rt56/1.
rt56([]).
rt56(A) :-
gnd(A).
rt56([A|B]) :-
gnd(A),
rt56(B).
:- regtype rt55/1.
rt55([]).
rt55(A) :-
gnd(A).
rt55([A|B]) :-
gnd(A),
rt56(B).
:- regtype rt61/1.
rt61([]).
rt61([A|B]) :-
term(A),
rt61(B).
:- regtype rt60/1.
rt60([]).
rt60([A|B]) :-
term(A),
rt61(B).
:- regtype rt10/1.
rt10([]).
:- regtype rt11/1.
rt11([]).
:- regtype rt37/1.
rt37([]).
rt37(A) :-
gnd(A).
rt37([A|B]) :-
gnd(A),
rt37(B).
:- regtype rt36/1.
rt36([]).
rt36(A) :-
gnd(A).
rt36([A|B]) :-
gnd(A),
rt37(B).
:- regtype rt47/1.
rt47([]).
rt47([A|B]) :-
term(A),
rt47(B).
:- regtype rt46/1.
rt46([]).
rt46([A|B]) :-
term(A),
rt47(B).
:- regtype rt6/1.
rt6([]).
rt6([A|B]) :-
gnd(A),
rt6(B).
:- regtype rt28/1.
rt28([]).
rt28([A|B]) :-
gnd(A),
rt28(B).
:- regtype rt27/1.
rt27([]).
rt27([A|B]) :-
gnd(A),
rt28(B).
:- regtype rt30/1.
rt30([]).
rt30([A|B]) :-
gnd(A),
rt30(B).
:- regtype rt29/1.
rt29([]).
rt29([A|B]) :-
gnd(A),
rt30(B).
:- regtype rt13/1.
rt13(A) :-
gnd(A).
:- regtype rt18/1.
rt18([]).
rt18([A|B]) :-
gnd(A),
rt18(B).
:- regtype rt17/1.
rt17([]).
rt17([A|B]) :-
gnd(A),
rt18(B).