invariant procedure