Static Analysis and Symbolic Execution for Deadlock Detection in MPI Programs Book chapter (June 2018)