Deadlock prediction via generalized dependency