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 3396.212 msec.}
{preprocessed for plai in 0.0 msec.}
{analyzed by plai using det with local-control off in 20.002 msec.}
{written file /tmp/tmpv1NunA/sameleaves_det_co.pl}
:- module(_1,[sameleaves/2],[assertions]).
:- entry sameleaves(A,B)
: ( ground(A), ground(B) ).
:- true pred sameleaves(A,B)
: ( ground([A,B]), gnd(A), gnd(B) )
=> ( ground([A,B]), rt60(A), rt65(B) )
+ ( is_det, mut_exclusive ).
sameleaves(leaf(L),leaf(L)).
sameleaves(tree(T1,T2),tree(S1,S2)) :-
getleave(T1,T2,L,T),
getleave(S1,S2,L,S),
sameleaves(T,S).
:- true pred getleave(_1,C,A,O)
: ( native_props:mshare([[O]]), var(O), ground([_1,C,A]), gnd(_1), gnd(C), gnd(A), term(O) )
=> ( ground([_1,C,A,O]), rt52(_1), term(C), gnd(A), rt55(O) )
+ ( is_det, mut_exclusive ).
:- true pred getleave(_1,tree(_2,_3),A,O)
: ( native_props:mshare([[O]]), var(O), ground([_1,A,_2,_3]), rt24(_1), term(A), term(O), gnd(_2), rt23(_3) )
=> ( ground([_1,A,O,_2,_3]), rt48(_1), gnd(A), rt46(O), term(_2), term(_3) )
+ ( is_det, mut_exclusive ).
:- true pred getleave(_1,tree(_2,_3),A,O)
: ( native_props:mshare([[O]]), var(O), ground([_1,A,_2,_3]), rt31(_1), term(A), term(O), gnd(_2), rt29(_3) )
=> ( ground([_1,A,O,_2,_3]), rt42(_1), gnd(A), rt40(O), term(_2), term(_3) )
+ ( is_det, mut_exclusive ).
:- true pred getleave(_1,C,A,O)
: ( native_props:mshare([[A],[O]]), var(A), var(O), ground([_1,C]), gnd(_1), gnd(C), term(A), term(O) )
=> ( ground([_1,C,A,O]), rt17(_1), rt20(C), gnd(A), rt21(O) )
+ ( is_det, mut_exclusive ).
:- true pred getleave(_1,tree(_2,_3),A,O)
: ( native_props:mshare([[A],[O]]), var(A), var(O), ground([_1,_2,_3]), gnd(_1), term(A), term(O), gnd(_2), gnd(_3) )
=> ( ground([_1,A,O,_2,_3]), rt13(_1), gnd(A), rt11(O), gnd(_2), rt10(_3) )
+ ( is_det, mut_exclusive ).
getleave(leaf(A),C,A,C).
getleave(tree(A,B),C,L,O) :-
getleave(A,tree(B,C),L,O).
:- regtype rt64/1.
rt64(leaf(A)) :-
gnd(A).
rt64(tree(A,B)) :-
rt64(A),
gnd(B).
:- regtype rt63/1.
rt63(leaf(A)) :-
gnd(A).
rt63(tree(A,B)) :-
rt64(A),
gnd(B).
:- regtype rt62/1.
rt62(leaf(A)) :-
gnd(A).
rt62(tree(A,B)) :-
rt63(A),
gnd(B).
:- regtype rt61/1.
rt61(A) :-
gnd(A).
rt61(leaf(A)) :-
gnd(A).
rt61(tree(A,B)) :-
rt62(A),
rt61(B).
:- regtype rt60/1.
rt60(leaf(A)) :-
gnd(A).
rt60(tree(A,B)) :-
rt62(A),
rt61(B).
:- regtype rt69/1.
rt69(leaf(A)) :-
gnd(A).
rt69(tree(A,B)) :-
rt69(A),
term(B).
:- regtype rt68/1.
rt68(leaf(A)) :-
gnd(A).
rt68(tree(A,B)) :-
rt69(A),
term(B).
:- regtype rt67/1.
rt67(leaf(A)) :-
gnd(A).
rt67(tree(A,B)) :-
rt68(A),
term(B).
:- regtype rt66/1.
rt66(A) :-
term(A).
rt66(leaf(A)) :-
gnd(A).
rt66(tree(A,B)) :-
rt67(A),
rt66(B).
:- regtype rt65/1.
rt65(leaf(A)) :-
gnd(A).
rt65(tree(A,B)) :-
rt67(A),
rt66(B).
:- regtype rt54/1.
rt54(leaf(A)) :-
gnd(A).
rt54(tree(A,B)) :-
rt54(A),
term(B).
:- regtype rt53/1.
rt53(leaf(A)) :-
gnd(A).
rt53(tree(A,B)) :-
rt54(A),
term(B).
:- regtype rt52/1.
rt52(leaf(A)) :-
gnd(A).
rt52(tree(A,B)) :-
rt53(A),
term(B).
:- regtype rt55/1.
rt55(A) :-
gnd(A).
:- regtype rt24/1.
rt24(A) :-
gnd(A).
:- regtype rt23/1.
rt23(A) :-
gnd(A).
:- regtype rt49/1.
rt49(leaf(A)) :-
gnd(A).
rt49(tree(A,B)) :-
rt49(A),
term(B).
:- regtype rt48/1.
rt48(leaf(A)) :-
gnd(A).
rt48(tree(A,B)) :-
rt49(A),
term(B).
:- regtype rt47/1.
rt47(A) :-
gnd(A).
rt47(tree(A,B)) :-
gnd(A),
rt47(B).
:- regtype rt46/1.
rt46(tree(A,B)) :-
gnd(A),
rt47(B).
:- regtype rt31/1.
rt31(A) :-
gnd(A).
:- regtype rt30/1.
rt30(A) :-
gnd(A).
rt30(tree(A,B)) :-
gnd(A),
rt30(B).
:- regtype rt29/1.
rt29(A) :-
gnd(A).
rt29(tree(A,B)) :-
gnd(A),
rt30(B).
:- regtype rt43/1.
rt43(leaf(A)) :-
gnd(A).
rt43(tree(A,B)) :-
rt43(A),
gnd(B).
:- regtype rt42/1.
rt42(leaf(A)) :-
gnd(A).
rt42(tree(A,B)) :-
rt43(A),
gnd(B).
:- regtype rt41/1.
rt41(A) :-
gnd(A).
rt41(tree(A,B)) :-
gnd(A),
rt41(B).
:- regtype rt40/1.
rt40(tree(A,B)) :-
gnd(A),
rt41(B).
:- regtype rt19/1.
rt19(leaf(A)) :-
gnd(A).
rt19(tree(A,B)) :-
rt19(A),
gnd(B).
:- regtype rt18/1.
rt18(leaf(A)) :-
gnd(A).
rt18(tree(A,B)) :-
rt19(A),
gnd(B).
:- regtype rt17/1.
rt17(leaf(A)) :-
gnd(A).
rt17(tree(A,B)) :-
rt18(A),
gnd(B).
:- regtype rt20/1.
rt20(A) :-
gnd(A).
:- regtype rt21/1.
rt21(A) :-
gnd(A).
:- regtype rt14/1.
rt14(leaf(A)) :-
gnd(A).
rt14(tree(A,B)) :-
rt14(A),
gnd(B).
:- regtype rt13/1.
rt13(leaf(A)) :-
gnd(A).
rt13(tree(A,B)) :-
rt14(A),
gnd(B).
:- regtype rt12/1.
rt12(A) :-
gnd(A).
rt12(tree(A,B)) :-
gnd(A),
rt12(B).
:- regtype rt11/1.
rt11(tree(A,B)) :-
gnd(A),
rt12(B).
:- regtype rt10/1.
rt10(A) :-
gnd(A).