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 3416.213 msec.}
{preprocessed for plai in 4.0 msec.}
{analyzed by plai using det with local-control off in 8.001 msec.}
{written file /tmp/tmpbES8uf/transpose-bb_det_co.pl}
:- module(_1,[transpose/2],[assertions]).
:- entry transpose(A,B)
: ( ground(A), ground(B) ).
:- true pred transpose(A,B)
: ( ground([A,B]), gnd(A), gnd(B) )
=> ( ground([A,B]), rt57(A), rt66(B) )
+ ( is_det, mut_exclusive ).
transpose(A,B) :-
transpose_aux(A,[],B).
:- true pred transpose_aux(_1,[],X)
: ( ground([_1,X]), gnd(_1), gnd(X) )
=> ( ground([_1,X]), rt57(_1), rt66(X) )
+ ( is_det, mut_exclusive ).
:- true pred transpose_aux(_2,_1,X)
: ( ground([_2,_1,X]), gnd(_2), rt26(_1), rt25(X) )
=> ( ground([_2,_1,X]), rt39(_2), rt49(_1), rt44(X) )
+ ( is_det, mut_exclusive ).
transpose_aux([R|Rs],_1,[C|Cs]) :-
row2col(R,[C|Cs],Cols1,Accm),
transpose_aux(Rs,Accm,Cols1).
transpose_aux([],X,X).
:- true pred row2col(_1,[_4|_5],_2,_3)
: ( native_props:mshare([[_2],[_3]]), var(_2), var(_3), ground([_1,_4,_5]), gnd(_1), term(_2), term(_3), gnd(_4), gnd(_5) )
=> ( ground([_1,_2,_3,_4,_5]), rt23(_1), rt25(_2), rt26(_3), rt24(_4), rt17(_5) )
+ ( is_det, mut_exclusive ).
:- true pred row2col(_1,_2,_3,_4)
: ( native_props:mshare([[_3],[_4]]), var(_3), var(_4), ground([_1,_2]), gnd(_1), gnd(_2), term(_3), term(_4) )
=> ( ground([_1,_2,_3,_4]), rt15(_1), rt17(_2), rt19(_3), rt21(_4) )
+ ( is_det, mut_exclusive ).
row2col([X|Xs],[[X|Ys]|Cols],[Ys|Cols1],[[]|As]) :-
row2col(Xs,Cols,Cols1,As).
row2col([],[],[],[]).
:- regtype rt65/1.
rt65([]).
rt65([A|B]) :-
gnd(A),
rt65(B).
:- regtype rt64/1.
rt64([]).
rt64([A|B]) :-
gnd(A),
rt65(B).
:- regtype rt63/1.
rt63([A|B]) :-
gnd(A),
rt64(B).
:- regtype rt62/1.
rt62([]).
rt62([A|B]) :-
gnd(A),
rt62(B).
:- regtype rt61/1.
rt61([]).
rt61([A|B]) :-
gnd(A),
rt62(B).
:- regtype rt60/1.
rt60([A|B]) :-
gnd(A),
rt61(B).
:- regtype rt59/1.
rt59([]).
rt59([A|B]) :-
rt60(A),
rt59(B).
:- regtype rt58/1.
rt58([]).
rt58([A|B]) :-
rt60(A),
rt59(B).
:- regtype rt57/1.
rt57([]).
rt57([A|B]) :-
rt63(A),
rt58(B).
:- regtype rt70/1.
rt70(A) :-
gnd(A).
rt70([A|B]) :-
gnd(A),
rt70(B).
:- regtype rt69/1.
rt69([A|B]) :-
gnd(A),
rt70(B).
:- regtype rt68/1.
rt68([]).
rt68([[A|B]|C]) :-
gnd(A),
gnd(B),
rt68(C).
:- regtype rt67/1.
rt67([]).
rt67([[A|B]|C]) :-
gnd(A),
gnd(B),
rt68(C).
:- regtype rt66/1.
rt66([]).
rt66([A|B]) :-
rt69(A),
rt67(B).
:- regtype rt26/1.
rt26([[]|A]) :-
rt21(A).
:- regtype rt25/1.
rt25([A|B]) :-
gnd(A),
rt19(B).
:- regtype rt43/1.
rt43([]).
rt43([A|B]) :-
gnd(A),
rt43(B).
:- regtype rt42/1.
rt42([]).
rt42([A|B]) :-
gnd(A),
rt43(B).
:- regtype rt41/1.
rt41([A|B]) :-
gnd(A),
rt42(B).
:- regtype rt40/1.
rt40([]).
rt40([A|B]) :-
rt41(A),
rt40(B).
:- regtype rt39/1.
rt39([]).
rt39([A|B]) :-
rt41(A),
rt40(B).
:- regtype rt52/1.
rt52([]).
:- regtype rt51/1.
rt51([]).
rt51([[]|A]) :-
rt51(A).
:- regtype rt50/1.
rt50([]).
rt50([[]|A]) :-
rt51(A).
:- regtype rt49/1.
rt49([A|B]) :-
rt52(A),
rt50(B).
:- regtype rt48/1.
rt48([]).
rt48(A) :-
gnd(A).
rt48([A|B]) :-
gnd(A),
rt48(B).
:- regtype rt47/1.
rt47([]).
rt47([A|B]) :-
gnd(A),
rt48(B).
:- regtype rt37/1.
rt37([]).
rt37([A|B]) :-
gnd(A),
gnd(B).
:- regtype rt46/1.
rt46([]).
rt46([A|B]) :-
rt37(A),
rt46(B).
:- regtype rt45/1.
rt45([]).
rt45([A|B]) :-
rt37(A),
rt46(B).
:- regtype rt44/1.
rt44([A|B]) :-
rt47(A),
rt45(B).
:- regtype rt23/1.
rt23([A|B]) :-
gnd(A),
rt15(B).
:- regtype rt24/1.
rt24([A|B]) :-
gnd(A),
gnd(B).
:- regtype rt18/1.
rt18([]).
rt18([[A|B]|C]) :-
gnd(A),
gnd(B),
rt18(C).
:- regtype rt17/1.
rt17([]).
rt17([[A|B]|C]) :-
gnd(A),
gnd(B),
rt18(C).
:- regtype rt16/1.
rt16([]).
rt16([A|B]) :-
gnd(A),
rt16(B).
:- regtype rt15/1.
rt15([]).
rt15([A|B]) :-
gnd(A),
rt16(B).
:- regtype rt20/1.
rt20([]).
rt20([A|B]) :-
gnd(A),
rt20(B).
:- regtype rt19/1.
rt19([]).
rt19([A|B]) :-
gnd(A),
rt20(B).
:- regtype rt22/1.
rt22([]).
rt22([[]|A]) :-
rt22(A).
:- regtype rt21/1.
rt21([]).
rt21([[]|A]) :-
rt22(A).