next up previous contents
Next: Bibliography Up: Failure Model (fm) universe Previous: SLP Program   Contents

Transformed Program

:- module( slp, [] ).
:- compile(library('../runtime_fm')).
do_trace(1, [1|A]/B, [1|C]/D, b) :-
        user:trace,
        A=B,
        C=D.
do_trace(2, [2|A]/A, [2|B]/B, c).
p([A|B]/C, [D|E]/F, G) :-
        select_id([[a],[H]], [G], [0.5,0.5], 3, A, B, D, I, J),
        (   I=:=3 ->
            [a]=[G],
            user:true,
            J=C,
            E=F
        ;   [H]=[G],
            q(J/K, E/L, H),
            t(K/C, L/F, H)
        ).
q([A|B]/C, [D|E]/F, G) :-
        select_id([[b],[c]], [G], [0.3333333333333333,0.6666666666666666], 5, 
                A, B, D, H, I),
        (   H=:=5 ->
            [b]=[G],
            user:true,
            I=C,
            E=F
        ;   [c]=[G],
            user:true,
            I=C,
            E=F
        ).
t([A|B]/C, [D|E]/F, G) :-
        select_id([[c]], [G], [1], 7, A, B, D, _, H),
        [c]=[G],
        user:true,
        H=C,
        E=F.



Nicos Angelopoulos 2008-06-02