(************************************************************************) (* v * The Coq Proof Assistant / The Coq Development Team *) (* true | _ => false end. Lemma Neq_prop : forall n m:N, Is_true (Neq n m) -> n = m. intros n m H; unfold Neq in H. apply Ncompare_Eq_eq. destruct (n ?= m)%N; [ reflexivity | contradiction | contradiction ]. Qed. Definition NTheory : Semi_Ring_Theory Nplus Nmult 1%N 0%N Neq. split. apply Nplus_comm. apply Nplus_assoc. apply Nmult_comm. apply Nmult_assoc. apply Nplus_0_l. apply Nmult_1_l. apply Nmult_0_l. apply Nmult_plus_distr_r. (* apply Nplus_reg_l.*) apply Neq_prop. Qed. Add Legacy Semi Ring N Nplus Nmult 1%N 0%N Neq NTheory [ Npos 0%N xO xI 1%positive ].