monty_hall.lp 399 Bytes
prize(1, (1,3) ) ; prize(2, (1,3)) ; prize(3, (1, 3)).

selected(1).

open_door(2, (1,2)) ; open_door(3, (1,2)) :- prize(1, _).
open_door(2, (1,1)) :- prize(3, _).
open_door(3, (1,1)) :- prize(2, _).

win_keep :-
    prize(1, _),
    open_door(_, _).
win_switch :- 
    prize(2, _),
    open_door(3, _).
win_switch :- 
    prize(3, _),
    open_door(2, _).

% #show win_keep/1.
% #show win_switch/1.