Deadlock detection for cyclic protocols using generalized fair reachability analysis