takes(bob,cs2).
takes(alice,cs3).

reqs(cs2,cs1).
reqs(cs3,cs2).

reqs+(C1,C2) :- reqs(C1,C2).
reqs+(C1,C3) :- reqs(C1,C2),reqs+(C2,C3).

has_taken(A,C) :- takes(A,B), reqs+(B,C).
