proposition: Lemma NatModulo_S_Not_Full : forall n' m, Nat.modulo n' (S m) <> m -> Nat.modulo (S n') (S m) = S (Nat.modulo n' (S m)).
proof: Proof. autounfold with modulo_db. intros; destruct (divmod n' m 0 m) eqn: ?. destruct n0. simpl in H; simpl in *; omega. intros; pose proof (divmod_spec n' m 0 m). rewrite Heqp in H0; destruct H0; eauto. assert (divmod (S n') m 0 m = (n, n0)). apply divmod_eq in Heqp. apply divmod_eq'; try omega. simpl in *; rewrite H2; simpl. omega. Qed.
imports: Fiat.Common.Coq__8_4__8_5__Compat Bedrock.Word Coq.ZArith.ZArith Coq.NArith.NArith Coq.Arith.Arith Coq.Numbers.Natural.Peano.NPeano Coq.Logic.Eqdep_dec Fiat.Narcissus.Common.Specs