proposition: Theorem ratAdd_0 : forall r1 r2, r1 + r2 == 0 <-> r1 == 0 /\ r2 == 0.
proof: Proof. intuition. rattac. rewrite Nat.mul_0_l in e. unfold posnatToNat in *. simpl in *. destruct p1. destruct p0. rewrite Nat.mul_1_r in e. apply Nat.eq_add_0 in e. destruct e as [H0 e]. eapply Nat.eq_mul_0 in H0. lia. rattac. rewrite Nat.mul_0_l in e. unfold posnatToNat in *. simpl in *. destruct p1. destruct p0. rewrite Nat.mul_1_r in e. apply Nat.eq_add_0 in e. destruct e as [e H1]. eapply Nat.eq_mul_0 in H1. lia. rewrite (ratAdd_0_r 0). eapply ratAdd_eqRat_compat; eauto. Qed.
imports: micromega.Lia List FCF.StdNat Arith Lia Setoid RelationClasses Coq.Classes.Morphisms