(************************************************************************) (* v * The Coq Proof Assistant / The Coq Development Team *) (* y" := (BigN.lt y x)(only parsing) : bigN_scope. Notation "x >= y" := (BigN.le y x)(only parsing) : bigN_scope. Notation "[ i ]" := (BigN.to_Z i) : bigN_scope. Open Scope bigN_scope. (** Example of reasoning about [BigN] *) Theorem succ_pred: forall q:bigN, 0 < q -> 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 *)