@@ -95,19 +95,47 @@ HB.instance Definition _ := GRing.isSemiAdditive.Build N nat nat_of_bin
9595 nat_of_bin_is_semi_additive.
9696
9797Fact bin_of_nat_is_multiplicative : multiplicative bin_of_nat.
98- Proof . by split => // m n; rewrite /GRing.mul /=; lia. Qed .
98+ Proof . by split=> // m n; rewrite /GRing.mul /=; lia. Qed .
9999
100100#[export]
101101HB.instance Definition _ := GRing.isMultiplicative.Build nat N bin_of_nat
102102 bin_of_nat_is_multiplicative.
103103
104104Fact nat_of_bin_is_multiplicative : multiplicative nat_of_bin.
105- Proof . exact: can2_rmorphism bin_of_natK nat_of_binK . Qed .
105+ Proof . by split=> // m n; rewrite /GRing.mul /=; lia . Qed .
106106
107107#[export]
108108HB.instance Definition _ := GRing.isMultiplicative.Build N nat nat_of_bin
109109 nat_of_bin_is_multiplicative.
110110
111+ Fact N_of_nat_is_semi_additive : semi_additive N.of_nat.
112+ Proof . by split=> //= m n; rewrite /GRing.add /=; lia. Qed .
113+
114+ #[export]
115+ HB.instance Definition _ := GRing.isSemiAdditive.Build nat N N.of_nat
116+ N_of_nat_is_semi_additive.
117+
118+ Fact N_to_nat_is_semi_additive : semi_additive N.to_nat.
119+ Proof . by split=> //= m n; rewrite /GRing.add /=; lia. Qed .
120+
121+ #[export]
122+ HB.instance Definition _ := GRing.isSemiAdditive.Build N nat N.to_nat
123+ N_to_nat_is_semi_additive.
124+
125+ Fact N_of_nat_is_multiplicative : multiplicative N.of_nat.
126+ Proof . by split=> // m n; rewrite /GRing.mul /=; lia. Qed .
127+
128+ #[export]
129+ HB.instance Definition _ := GRing.isMultiplicative.Build nat N N.of_nat
130+ N_of_nat_is_multiplicative.
131+
132+ Fact N_to_nat_is_multiplicative : multiplicative N.to_nat.
133+ Proof . by split=> // m n; rewrite /GRing.mul /=; lia. Qed .
134+
135+ #[export]
136+ HB.instance Definition _ := GRing.isMultiplicative.Build N nat N.to_nat
137+ N_to_nat_is_multiplicative.
138+
111139Implicit Types (m n : Z).
112140
113141Fact eqZP : Equality.axiom Z.eqb.
0 commit comments