Why3 is a platform for deductive program verification that implements polymorphic first-order logic, an ML-style programming language, and weakest precondition calculus to verify program specifications like safety, termination, and complex behavioral properties. It provides a backend for connecting to various proof assistants and automated theorem provers. Why3 is used as a logical language, for proving algorithms, and as an intermediate language when verifying Java, C, Ada, B Method, and probabilistic programs.