Prolog

  p(X,Y) :- r(Z), b(X). 
clauses
p(X,Y) :- q(Y), b(X). b(X) :- a(X). b(0).
facts
a(1). q(2).
Query
  ?- p(X,Y). 
results in (X = 1,Y = 2)
and (X = 0, Y = 2)

slide: DLP -- control (1)