fix: restore the `unsigned` overload family of `mpz` This PR restores `mpz::operator=(unsigned)`, `cmp(mpz, unsigned)` with its comparison operators, and the `unsigned`/`uint64` overloads of `operator-=`, `operator*=` and `operator/=` that the dead-code removal had dropped. Nothing calls them out of line, but the inline friends `mpz - uint64`, `mpz * unsigned`, `mpz / uint64` and friends still forward to them, and since every integer constructor of `mpz` is `explicit`, overload resolution silently fell back to the `int` versions: `mpz(0) - (uint64(1) << 40)` evaluated to `0` and `mpz(1 << 41) / uint64(1 << 40)` divided by zero. Only `operator=(char const *)` and `power`/`_power`/`pow`, which have no such forwarding callers, stay removed. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This is the repository for Lean 4.
See Install Lean.
Please read our Contribution Guidelines first.
See Building Lean.