(************************************************************************) (* v * The Coq Proof Assistant / The Coq Development Team *) (* BigN.succ (BigN.pred q) == q. Proof. intros; apply succ_pred. intro H'; rewrite H' in H; discriminate. Qed. (** [BigN] is a semi-ring *) Lemma BigNring : semi_ring_theory BigN.zero BigN.one BigN.add BigN.mul BigN.eq. Proof. constructor. exact add_0_l. exact add_comm. exact add_assoc. exact mul_1_l. exact mul_0_l. exact mul_comm. exact mul_assoc. exact mul_add_distr_r. Qed. Add Ring BigNr : BigNring. (** Todo: tactic translating from [BigN] to [Z] + omega *) (** Todo: micromega *)