In the functor of properties will also be defined:
- setbit : t -> t -> t defined as lor a (1<<n).
- clearbit : t -> t -> t defined as ldiff a (1<<n).
- ones : t -> t, the number with n initial true bits,
corresponding to 2^n - 1.
- a logical complement lnot. For integer numbers it will
be a t->t, doing a swap of all bits, while on natural
numbers, it will be a bounded complement t->t->t, swapping
only the first n bits.
For the moment, no shared properties about NZ here,
since properties and proofs for N and Z are quite different