# Loop Invariant

We use loop invariants to help us understand why an algorithm is correct. We must show three things about a loop invariant:

**Initialization**: It is true prior to the first iteration of the loop.
**Maintenance**: If it is true before an iteration of the loop, it remains true before the next iteration.
**Termination**: When the loop terminates, the invariant gives us a useful property that helps show that the algorithm is correct.