This document discusses software verification tools from AdaCore. It begins with an introduction to the concept of verification and different levels of responsibility between language, compiler, and developer. It then provides overviews of various AdaCore static and dynamic verification tools, including how they can be used at different stages of development. The tools can help developers find and fix defects early while leveraging the formal aspects of Ada.