Notation pow2 := (Nat.pow 2).Fixpoint Npow2 (n : nat) : N :=
  match n with
    | O => 1
    | S n' => 2 * Npow2 n'
  end%N.

Lemma mod_add_r: forall a b, b <> 0 -> (a + b) mod b = a mod b.