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 3340.209 msec.}
{preprocessed for plai in 4.001 msec.}
{analyzed by plai using det with local-control off in 76.004 msec.}
{written file /tmp/tmpgm2rbV/soundex_det_co.pl}
:- module(_1,[goal/2],[assertions]).
:- entry goal(A,B)
: ground(A).
:- true pred goal(A,B)
: ( native_props:mshare([[B]]), ground([A]), gnd(A), term(B) )
=> ( ground([A,B]), rt0(A), rt192(B) )
+ ( is_det, mut_exclusive ).
goal(Name,Code) :-
eq(Name,[First|Others]),
reduce(Others,s(0),First,Reduced),
eq(Code,Reduced).
:- true pred reduce(_1,s(0),_2,Code)
: ( native_props:mshare([[Code]]), var(Code), ground([_1,_2]), term(_1), term(_2), term(Code) )
=> ( ground([_1,_2,Code]), rt190(_1), term(_2), rt192(Code) )
+ ( is_det, mut_exclusive ).
:- true pred reduce(_1,s(_3),_2,Code)
: ( native_props:mshare([[Code]]), var(Code), ground([_1,_2,_3]), term(_1), term(_2), term(Code), rt4(_3) )
=> ( ground([_1,_2,Code,_3]), rt157(_1), term(_2), rt159(Code), rt168(_3) )
+ ( is_det, mut_exclusive ).
:- true pred reduce(_1,Count,_2,Code)
: ( native_props:mshare([[Code]]), var(Code), ground([_1,Count,_2]), term(_1), rt4(Count), rt19(_2), term(Code) )
=> ( ground([_1,Count,_2,Code]), rt176(_1), rt173(Count), rt19(_2), rt174(Code) )
+ ( is_det, mut_exclusive ).
:- true pred reduce(_1,Count,_2,Code)
: ( native_props:mshare([[Code]]), var(Code), ground([_1,Count,_2]), term(_1), rt48(Count), rt19(_2), term(Code) )
=> ( ground([_1,Count,_2,Code]), term(_1), rt104(Count), rt19(_2), rt105(Code) )
+ ( is_det, mut_exclusive ).
reduce(_1,s(s(s(s(0)))),_2,[]) :- !.
reduce([],_1,_2,[]) :- !.
reduce([Current|Others],Count,Current,Code) :-
vowel_h_w_y(Current),
!,
reduce(Others,Count,Current,Code).
reduce([Letter|Others],Count,Letter,Code) :-
!,
reduce(Others,Count,Letter,Code).
reduce([Current|Others],Count,_1,[Current|Code]) :-
reduce(Others,s(Count),Current,Code).
:- true pred vowel_h_w_y(_1)
: ( ground([_1]), term(_1) )
=> ( ground([_1]), rt19(_1) )
+ ( is_det, mut_exclusive ).
:- true pred vowel_h_w_y(_1)
: ( ground([_1]), rt19(_1) )
=> ( ground([_1]), rt36(_1) )
+ ( is_det, mut_exclusive ).
vowel_h_w_y(97).
vowel_h_w_y(101).
vowel_h_w_y(105).
vowel_h_w_y(111).
vowel_h_w_y(117).
vowel_h_w_y(104).
vowel_h_w_y(119).
vowel_h_w_y(121).
:- true pred eq(X,_1)
: ( native_props:mshare([[X]]), ground([_1]), term(X), rt192(_1) )
=> ( ground([X,_1]), rt192(X), rt192(_1) )
+ ( is_det, mut_exclusive ).
:- true pred eq(X,[_1|_2])
: ( native_props:mshare([[_1],[_2]]), var(_1), var(_2), ground([X]), gnd(X), term(_1), term(_2) )
=> ( ground([X,_1,_2]), rt0(X), term(_1), term(_2) )
+ ( is_det, mut_exclusive ).
eq(X,X).
:- regtype rt0/1.
rt0([A|B]) :-
term(A),
term(B).
:- regtype rt193/1.
rt193([]).
rt193([A|B]) :-
term(A),
rt90(B).
:- regtype rt192/1.
rt192([]).
rt192([A|B]) :-
term(A),
rt193(B).
:- regtype rt191/1.
rt191(A) :-
term(A).
:- regtype rt190/1.
rt190([]).
rt190([A|B]) :-
term(A),
rt191(B).
:- regtype rt4/1.
rt4(s(0)).
:- regtype rt157/1.
rt157([]).
rt157([A|B]) :-
term(A),
rt158(B).
:- regtype rt90/1.
rt90([]).
rt90([A|B]) :-
term(A),
rt90(B).
:- regtype rt160/1.
rt160([]).
rt160([A|B]) :-
term(A),
rt90(B).
:- regtype rt159/1.
rt159([]).
rt159([A|B]) :-
term(A),
rt160(B).
:- regtype rt168/1.
rt168(0).
rt168(s(A)) :-
rt168(A).
:- regtype rt19/1.
rt19(97).
rt19(101).
rt19(104).
rt19(105).
rt19(111).
rt19(117).
rt19(119).
rt19(121).
:- regtype rt158/1.
rt158([]).
rt158(A) :-
term(A).
rt158([A|B]) :-
term(A),
rt158(B).
:- regtype rt177/1.
rt177([]).
rt177([A|B]) :-
term(A),
rt158(B).
:- regtype rt176/1.
rt176([]).
rt176([A|B]) :-
term(A),
rt177(B).
:- regtype rt173/1.
rt173(0).
rt173(s(A)) :-
rt173(A).
:- regtype rt175/1.
rt175([]).
rt175([A|B]) :-
term(A),
rt175(B).
:- regtype rt174/1.
rt174([]).
rt174([A|B]) :-
term(A),
rt175(B).
:- regtype rt49/1.
rt49(0).
rt49(s(A)) :-
rt49(A).
:- regtype rt48/1.
rt48(s(A)) :-
rt49(A).
:- regtype rt104/1.
rt104(0).
rt104(s(A)) :-
rt104(A).
:- regtype rt94/1.
rt94([]).
rt94([A|B]) :-
term(A),
rt94(B).
:- regtype rt106/1.
rt106([]).
rt106([A|B]) :-
term(A),
rt94(B).
:- regtype rt105/1.
rt105([]).
rt105([A|B]) :-
term(A),
rt106(B).
:- regtype rt36/1.
rt36(97).
rt36(101).
rt36(104).
rt36(105).
rt36(111).
rt36(117).
rt36(119).
rt36(121).