(* KE EP TOGETHER> *)
rewrite H. rewrite Zmult_comm. apply modred. fold (0 * 0). apply Zmult_le_compat. apply le_0__Z. apply Zlt_le_weak.
apply lt_0_Zpow. auto with a. omega.
omega. apply Zlt_le_trans with (2 ^ p * 2 ^ (w - p)). apply Zmult_lt_compat_r. auto with a.
apply lt_0_Zpow. auto with a. apply r''0_small. rewrite <- Zpower_exp. replace (p + (w - p)) with w. omega.
ring. apply Zle_ge. auto with a. apply Zle_ge. auto with a. rewrite Meq_ir''0. rewrite Zmult_comm. simpl. apply modred. omega.
auto with a. assumption. ring. unfold x_i. apply le_0__Z. unfold x_i. apply lt_z__Z. auto with a. Qed.

(* <KE EP TOGETHER - h'_i'_eq *)
Lemma h'_i'_eq : _Z h'_i' = x' / 2 ^ p.
unfold h'_i'. rewrite Z_from_plusw. rewrite h_i'_eq. simpl. fold x_i p. rewrite x_i_eq. rewrite <- Zdiv_times_plus.