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/tmptj2fo7/sicstus1.pl
}
{In /tmp/tmptj2fo7/sicstus1.pl
{loaded in 3368.211 msec.}
{preprocessed for plai in 0.0 msec.}
{analyzed by plai using det with local-control off in 8.001 msec.}
{written file /tmp/tmptj2fo7/sicstus1_det_co.pl}
:- module(_1,[reverse_concatenate/3],[assertions]).
concatenate([],L,L).
concatenate([X|L1],L2,[X|L3]) :-
concatenate(L1,L2,L3).
member(X,[X|L]).
member(X,[Y|L]) :-
member(X,L).
reverse(L,L1) :-
reverse_concatenate(L,[],L1).
:- entry reverse_concatenate(A,B,C)
: ( ground(A), ground(B) ).
:- true pred reverse_concatenate(A,B,C)
: ( native_props:mshare([[C]]), ground([A,B]), gnd(A), gnd(B), term(C) )
=> ( ground([A,B,C]), rt15(A), rt18(B), rt19(C) )
+ ( is_det, mut_exclusive ).
:- true pred reverse_concatenate(A,[_1|_2],C)
: ( native_props:mshare([[C]]), ground([A,_1,_2]), gnd(A), term(C), gnd(_1), gnd(_2) )
=> ( ground([A,C,_1,_2]), rt11(A), rt9(C), gnd(_1), rt8(_2) )
+ ( is_det, mut_exclusive ).
reverse_concatenate([],L,L).
reverse_concatenate([X|L1],L2,L3) :-
reverse_concatenate(L1,[X|L2],L3).
:- regtype rt17/1.
rt17([]).
rt17([A|B]) :-
gnd(A),
rt17(B).
:- regtype rt16/1.
rt16([]).
rt16([A|B]) :-
gnd(A),
rt17(B).
:- regtype rt15/1.
rt15([]).
rt15([A|B]) :-
gnd(A),
rt16(B).
:- regtype rt18/1.
rt18(A) :-
gnd(A).
:- regtype rt19/1.
rt19(A) :-
gnd(A).
:- regtype rt12/1.
rt12([]).
rt12([A|B]) :-
gnd(A),
rt12(B).
:- regtype rt11/1.
rt11([]).
rt11([A|B]) :-
gnd(A),
rt12(B).
:- regtype rt10/1.
rt10(A) :-
gnd(A).
rt10([A|B]) :-
gnd(A),
rt10(B).
:- regtype rt9/1.
rt9([A|B]) :-
gnd(A),
rt10(B).
:- regtype rt8/1.
rt8(A) :-
gnd(A).