1:- use_module(library(pita)). 2
3:- pita. 4
5:- begin_lpad. 6
7holdsAt(F, T) :-
8 initially(F),
9 \+ clipped(0, F, T).
10holdsAt(F, T2) :-
11 initiates(F, T1),
12 T1 < T2 ,
13 \+ clipped(T1 ,F, T2 ).
14clipped(T1 ,F, T3) :-
15 terminates(F, T2),
16 T1 < T2 , T2 < T3.
17
18initiates(locatedIn(A, B), T):0.66 :-
19 happens(arrive(A, B), T).
20terminates(locatedIn(A, D), T):0.66 :-
21 happens(arrive(A, B), T),
22 B \= D.
23initially(locatedIn(bob, garden)).
24happens(arrive(bob, kitchen), 3).
25happens(arrive(bob, garage), 5).
26
27:- end_lpad.
?-
prob(holdsAt(locatedIn(bob,garden),2),P)
. % 1.0 ?-prob(holdsAt(locatedIn(bob,garden),4),P)
. % 0.34 ?-prob(holdsAt(locatedIn(bob,kitchen),4),P)
. % 0.66 ?-prob(holdsAt(locatedIn(bob,garage),6),P)
. % 0.66.*/