(***********************************************************************) (* v * The Coq Proof Assistant / The Coq Development Team *) (* true | _ => false end. Lemma Neq_prop : (n,m:entier)(Is_true (Neq n m)) -> n=m. Intros n m H; Unfold Neq in H. Apply Ncompare_Eq_eq. NewDestruct (Ncompare n m); [Reflexivity | Contradiction | Contradiction ]. Save. Definition NTheory : (Semi_Ring_Theory Nplus Nmult (Pos xH) Nul Neq). Split. Apply Nplus_comm. Symmetry; Apply Nplus_assoc_l. Apply Nmult_comm. Symmetry; Apply Nmult_assoc_l. Apply Nplus_0_l. Apply Nmult_1_l. Apply Nmult_0_l. Apply Nmult_Nplus_distr_l. Apply Nplus_reg_l. Apply Neq_prop. Save. Add Semi Ring entier Nplus Nmult (Pos xH) Nul Neq NTheory [Pos Nul xO xI xH].