Description
I recall it and return to pointing out that:
in lib-2.0 the part of Data.Nat.Binary.Properties
has several proofs that cannot be considered as reliable.
Their badness is in that the proofs
(Ps) +-assoc, +-comm, *-assoc, *-comm
and some other,
rely on similar proofs for ℕ
(unary representation) by using the isomoprphism to ℕ
.
But these proofs for ℕ
are not implemented as the first class, are not reliable. Because Nat._+_
and Nat._*_
are implemented as built-in, not in Agda. So that these proofs for ℕ
are not about the real algorithms for computing these operations.
And ℕᵇ
is different. Its arithmetic is implemented totally in Agda.
The corresponding proofs can also be implemented totally in Agda.
In this sense, ℕᵇ
is a better Agda model for natural numbers than ℕ
.
So that it is better to untie ℕᵇ
from ℕ
, because using proofs for ℕ
spoils the purity of ℕᵇ
.