takes(bob,cs2).
takes(alice,cs3).

reqs(cs2,cs1).
reqs(cs3,cs2).
reqs(cs4,cs3).

reqs+(C1,C2) :- reqs(C1,C2).
reqs+(C1,C2) :- reqs(C1,C),reqs+(C,C2).

has_taken(A,C) :- takes(A,B), reqs+(B,C).
