proof complete (TODO: k)