loop invariants explained - Search