∀ {oldLen k w iterNum : ℕ} {oldLayer : BitVec (oldLen * w)} {newLayer : BitVec (iterNum * w)}
  (hold : 2 * (iterNum - 1) < oldLen),
  (∀ i < iterNum,
      BitVec.extractLsb' (i * w) w newLayer =
        BitVec.extractLsb' (2 * i * w) w oldLayer + BitVec.extractLsb' ((2 * i + 1) * w) w oldLayer) →
    (oldLayer.cpopLayer newLayer hold).getLsbD k =
      (BitVec.extractLsb' (2 * ((k - k % w) / w) * w) w oldLayer +
            BitVec.extractLsb' ((2 * ((k - k % w) / w) + 1) * w) w oldLayer).getLsbD
        (k % w)