# Chapter 16: Proof of imperative programs

Jean-Christophe Filliātre
This chapter describes a new tactic to prove the correctness and termination of imperative programs annotated in a Floyd-Hoare logic style. The theoretical fundations of this tactic are described in [Filliatre99, Filliatre00a]. This tactic is provided in the Coq module `Correctness`, which does not belong to the initial state of Coq. So you must import it when necessary, with the following command:
`Require Correctness.`

- 16.1 How it works
- 16.2 Syntax of annotated programs
- 16.3 Local and global variables
- 16.4 Function call
- 16.5 Libraries
- 16.6 Examples
- 16.7 Bugs