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/tmp1kszPw/serialize.pl
}
{In /tmp/tmp1kszPw/serialize.pl
{loaded in 3412.213 msec.}
{preprocessed for plai in 4.0 msec.}
{analyzed by plai using det with local-control off in 112.007 msec.}
{written file /tmp/tmp1kszPw/serialize_det_co.pl}
:- module(_1,[serialize0/2],[assertions]).
:- entry serialize0(A,B)
: ground(A).
:- true pred serialize0(A,B)
: ( native_props:mshare([[B]]), ground([A]), gnd(A), term(B) )
=> ( native_props:mshare([[B]]), ground([A]), rt9(A), rt11(B) )
+ ( is_det, mut_exclusive ).
serialize0(L,R) :-
pairlists(L,R,A),
arrange0(A,T),
numbered(T,1,N).
:- true pred pairlists(_1,_2,_3)
: ( native_props:mshare([[_2],[_3]]), var(_3), ground([_1]), gnd(_1), term(_2), term(_3) )
=> ( native_props:mshare([[_2,_3]]), ground([_1]), rt9(_1), rt11(_2), rt13(_3) )
+ ( is_det, mut_exclusive ).
pairlists([X|L],[Y|R],[pair(X,Y)|A]) :-
pairlists(L,R,A).
pairlists([],[],[]).
:- true pred arrange0(_1,_2)
: ( native_props:mshare([[_1],[_2]]), var(_2), rt13(_1), term(_2) )
=> ( native_props:mshare([[_1,_2]]), rt88(_1), rt91(_2) )
+ ( is_det, mut_exclusive ).
:- true pred arrange0(_1,_2)
: ( native_props:mshare([[_1],[_2]]), var(_2), rt63(_1), term(_2) )
=> ( native_props:mshare([[_1,_2]]), rt81(_1), rt78(_2) )
+ ( is_det, mut_exclusive ).
arrange0([X|L],tree(T1,X,T2)) :-
split0(L,X,L1,L2),
arrange0(L1,T1),
arrange0(L2,T2).
arrange0([],void).
:- true pred split0(_2,_1,L1,L2)
: ( native_props:mshare([[_2],[_2,_1],[_1],[L1],[L2]]), var(L1), var(L2), rt14(_2), rt17(_1), term(L1), term(L2) )
=> ( native_props:mshare([[_2,_1],[_2,_1,L1],[_2,_1,L1,L2],[_2,_1,L2],[_2,L1],[_2,L1,L2],[_2,L2],[_1]]), rt45(_2), rt62(_1), rt63(L1), rt57(L2) )
+ ( is_det, mut_exclusive ).
:- true pred split0(_1,pair(_2,_3),L1,L2)
: ( native_props:mshare([[_1],[_1,_3],[L1],[L2],[_3]]), var(L1), var(L2), ground([_2]), rt14(_1), term(L1), term(L2), arithexpression(_2), term(_3) )
=> ( native_props:mshare([[_1,L1],[_1,L1,_3],[_1,L2],[_1,L2,_3],[_1,_3],[_3]]), ground([_2]), rt29(_1), rt31(L1), rt37(L2), arithexpression(_2), term(_3) )
+ ( is_det, mut_exclusive ).
split0([pair(X1,N1)|L],pair(X2,Y2),[pair(X1,N1)|L1],L2) :-
X1X2,
!,
split0(L,pair(X2,Y2),L1,L2).
split0([],_1,[],[]).
:- true pred numbered(_1,1,N)
: ( native_props:mshare([[_1],[N]]), var(N), rt91(_1), term(N) )
=> ( native_props:mshare([[_1]]), ground([N]), rt124(_1), num(N) )
+ ( is_det, mut_exclusive ).
:- true pred numbered(_1,N0,N)
: ( native_props:mshare([[_1],[N]]), var(N), ground([N0]), rt113(_1), num(N0), term(N) )
=> ( native_props:mshare([[_1]]), ground([N0,N]), rt119(_1), num(N0), num(N) )
+ ( is_det, mut_exclusive ).
:- true pred numbered(_1,N0,N)
: ( native_props:mshare([[_1],[_1,N],[N]]), ground([N0]), rt96(_1), num(N0), term(N) )
=> ( native_props:mshare([[_1]]), ground([N0,N]), rt105(_1), num(N0), num(N) )
+ ( is_det, mut_exclusive ).
:- true pred numbered(_1,N0,N)
: ( native_props:mshare([[_1],[_1,N],[N]]), ground([N0]), rt95(_1), rt100(N0), term(N) )
=> ( native_props:mshare([[_1]]), ground([N0,N]), rt110(_1), rt100(N0), num(N) )
+ ( is_det, mut_exclusive ).
numbered(tree(T1,pair(X,N1),T2),N0,N) :-
numbered(T1,N0,N1),
N2 is N1+1,
numbered(T2,N2,N).
numbered(void,N,N).
palin("ABLE WAS I ERE I SAW ELBA").
go(T,S) :-
time(_1),
palin(X),
serialize0(X,S),
time(T).
time(T) :-
serialize:statistics(runtime,[_1,T]).
:- regtype rt10/1.
rt10([]).
rt10([A|B]) :-
gnd(A),
rt10(B).
:- regtype rt9/1.
rt9([]).
rt9([A|B]) :-
gnd(A),
rt10(B).
:- regtype rt12/1.
rt12([]).
rt12([A|B]) :-
term(A),
rt12(B).
:- regtype rt11/1.
rt11([]).
rt11([A|B]) :-
term(A),
rt12(B).
:- regtype rt92/1.
rt92(void).
rt92(tree(A,B,C)) :-
rt94(A),
rt62(B),
rt93(C).
:- regtype rt91/1.
rt91(void).
rt91(tree(A,B,C)) :-
rt95(A),
rt62(B),
rt92(C).
:- regtype rt130/1.
rt130(void).
rt130(tree(A,pair(B,C),D)) :-
rt130(A),
gnd(B),
rt100(C),
rt129(D).
:- regtype rt129/1.
rt129(void).
rt129(tree(A,pair(B,C),D)) :-
rt107(A),
gnd(B),
num(C),
rt129(D).
:- regtype rt128/1.
rt128(void).
rt128(tree(A,pair(B,C),D)) :-
rt130(A),
gnd(B),
rt100(C),
rt129(D).
:- regtype rt127/1.
rt127(void).
rt127(tree(A,pair(B,C),D)) :-
rt127(A),
gnd(B),
num(C),
rt126(D).
:- regtype rt126/1.
rt126(void).
rt126(tree(A,pair(B,C),D)) :-
rt127(A),
gnd(B),
num(C),
rt126(D).
:- regtype rt125/1.
rt125(void).
rt125(tree(A,pair(B,C),D)) :-
rt127(A),
gnd(B),
num(C),
rt126(D).
:- regtype rt124/1.
rt124(void).
rt124(tree(A,pair(B,C),D)) :-
rt128(A),
gnd(B),
num(C),
rt125(D).
:- regtype rt115/1.
rt115(void).
rt115(tree(A,B,C)) :-
rt94(A),
rt62(B),
rt93(C).
:- regtype rt94/1.
rt94(void).
rt94(tree(A,B,C)) :-
rt94(A),
rt62(B),
rt93(C).
:- regtype rt93/1.
rt93(void).
rt93(tree(A,B,C)) :-
rt94(A),
rt62(B),
rt93(C).
:- regtype rt114/1.
rt114(void).
rt114(tree(A,B,C)) :-
rt94(A),
rt62(B),
rt93(C).
:- regtype rt113/1.
rt113(void).
rt113(tree(A,B,C)) :-
rt115(A),
rt62(B),
rt114(C).
:- regtype rt121/1.
rt121(void).
rt121(tree(A,pair(B,C),D)) :-
rt121(A),
gnd(B),
num(C),
rt120(D).
:- regtype rt120/1.
rt120(void).
rt120(tree(A,pair(B,C),D)) :-
rt121(A),
gnd(B),
num(C),
rt120(D).
:- regtype rt119/1.
rt119(void).
rt119(tree(A,pair(B,C),D)) :-
rt121(A),
gnd(B),
num(C),
rt120(D).
:- regtype rt96/1.
rt96(void).
rt96(tree(A,B,C)) :-
rt97(A),
rt62(B),
rt96(C).
:- regtype rt105/1.
rt105(void).
rt105(tree(A,pair(B,C),D)) :-
rt107(A),
gnd(B),
num(C),
rt106(D).
:- regtype rt97/1.
rt97(void).
rt97(tree(A,B,C)) :-
rt97(A),
rt62(B),
rt96(C).
:- regtype rt95/1.
rt95(void).
rt95(tree(A,B,C)) :-
rt97(A),
rt62(B),
rt96(C).
:- regtype rt100/1.
rt100(1).
:- regtype rt112/1.
rt112(void).
rt112(tree(A,pair(B,C),D)) :-
rt112(A),
gnd(B),
rt100(C),
rt111(D).
:- regtype rt106/1.
rt106(void).
rt106(tree(A,pair(B,C),D)) :-
rt107(A),
gnd(B),
num(C),
rt106(D).
:- regtype rt107/1.
rt107(void).
rt107(tree(A,pair(B,C),D)) :-
rt107(A),
gnd(B),
num(C),
rt106(D).
:- regtype rt111/1.
rt111(void).
rt111(tree(A,pair(B,C),D)) :-
rt107(A),
gnd(B),
num(C),
rt111(D).
:- regtype rt110/1.
rt110(void).
rt110(tree(A,pair(B,C),D)) :-
rt112(A),
gnd(B),
rt100(C),
rt111(D).
:- regtype rt13/1.
rt13([]).
rt13([pair(A,B)|C]) :-
gnd(A),
term(B),
rt14(C).
:- regtype rt90/1.
rt90(pair(A,B)) :-
gnd(A),
term(B).
:- regtype rt89/1.
rt89([]).
rt89([A|B]) :-
rt90(A),
rt89(B).
:- regtype rt88/1.
rt88([]).
rt88([A|B]) :-
rt62(A),
rt89(B).
:- regtype rt64/1.
rt64([]).
rt64([pair(A,B)|C]) :-
arithexpression(A),
term(B),
rt64(C).
:- regtype rt63/1.
rt63([]).
rt63([pair(A,B)|C]) :-
arithexpression(A),
term(B),
rt64(C).
:- regtype rt83/1.
rt83(pair(A,B)) :-
gnd(A),
term(B).
:- regtype rt82/1.
rt82([]).
rt82([A|B]) :-
rt83(A),
rt82(B).
:- regtype rt81/1.
rt81([]).
rt81([A|B]) :-
rt62(A),
rt82(B).
:- regtype rt80/1.
rt80(void).
rt80(tree(A,B,C)) :-
rt80(A),
rt62(B),
rt79(C).
:- regtype rt79/1.
rt79(void).
rt79(tree(A,B,C)) :-
rt80(A),
rt62(B),
rt79(C).
:- regtype rt78/1.
rt78(void).
rt78(tree(A,B,C)) :-
rt80(A),
rt62(B),
rt79(C).
:- regtype rt14/1.
rt14([]).
rt14([pair(A,B)|C]) :-
gnd(A),
term(B),
rt14(C).
:- regtype rt17/1.
rt17(pair(A,B)) :-
gnd(A),
term(B).
:- regtype rt46/1.
rt46([]).
rt46([pair(A,B)|C]) :-
arithexpression(A),
term(B),
rt46(C).
:- regtype rt45/1.
rt45([]).
rt45([pair(A,B)|C]) :-
arithexpression(A),
term(B),
rt46(C).
:- regtype rt62/1.
rt62(pair(A,B)) :-
gnd(A),
term(B).
:- regtype rt58/1.
rt58([]).
rt58([pair(A,B)|C]) :-
arithexpression(A),
term(B),
rt58(C).
:- regtype rt57/1.
rt57([]).
rt57([pair(A,B)|C]) :-
arithexpression(A),
term(B),
rt58(C).
:- regtype rt30/1.
rt30([]).
rt30([pair(A,B)|C]) :-
arithexpression(A),
term(B),
rt30(C).
:- regtype rt29/1.
rt29([]).
rt29([pair(A,B)|C]) :-
arithexpression(A),
term(B),
rt30(C).
:- regtype rt32/1.
rt32([]).
rt32([pair(A,B)|C]) :-
arithexpression(A),
term(B),
rt32(C).
:- regtype rt31/1.
rt31([]).
rt31([pair(A,B)|C]) :-
arithexpression(A),
term(B),
rt32(C).
:- regtype rt38/1.
rt38([]).
rt38([pair(A,B)|C]) :-
arithexpression(A),
term(B),
rt38(C).
:- regtype rt37/1.
rt37([]).
rt37([pair(A,B)|C]) :-
arithexpression(A),
term(B),
rt38(C).