  Deep learning has transformed the way we think of software and what it can
do. But deep neural networks are fragile and their behaviors are often
surprising. In many settings, we need to provide formal guarantees on the
safety, security, correctness, or robustness of neural networks. This book
covers foundational ideas from formal verification and their adaptation to
reasoning about neural networks and deep learning.
