@@ -95,19 +95,47 @@ HB.instance Definition _ := GRing.isSemiAdditive.Build N nat nat_of_bin
95
95
nat_of_bin_is_semi_additive.
96
96
97
97
Fact 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 .
99
99
100
100
#[export]
101
101
HB.instance Definition _ := GRing.isMultiplicative.Build nat N bin_of_nat
102
102
bin_of_nat_is_multiplicative.
103
103
104
104
Fact 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 .
106
106
107
107
#[export]
108
108
HB.instance Definition _ := GRing.isMultiplicative.Build N nat nat_of_bin
109
109
nat_of_bin_is_multiplicative.
110
110
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
+
111
139
Implicit Types (m n : Z).
112
140
113
141
Fact eqZP : Equality.axiom Z.eqb.
0 commit comments