kernel-Int.odd_of_mul_left
- Kind
- kernel-term
- Status
- checked
Supports: The proposition declared as `Int.Odd.of_mul_left` in the pinned Mathlib v4.30 source.
cargo test -p axeyum-lean-kernel --lib int_prelude:: Evidence notes
`Int.odd_of_mul_left` in `crates/axeyum-lean-kernel/src/int_prelude/parity.rs` (`declare_odd_of_mul_left`). Mirrors Mathlib v4.30's `Odd.of_mul_left` (`Mathlib/Algebra/Ring/Int/Parity.lean`) verbatim. Routes entirely through `Int.natAbs` being multiplicative (`nat_abs_mul`, `gcd.rs`) -- no `Int.rec` needed, since sign plays no role. Contrapositive: `Nat.Even (natAbs m)` gives `Nat.Even (natAbs m * natAbs n)` (a new helper `nat_even_mul_of_even_left`, via `Nat.right_distrib`), hence `Not (Nat.Odd (natAbs m * natAbs n))` (`Nat.even_not_odd`), refuting the rewritten hypothesis; a new helper `nat_not_even_implies_odd` (contrapositive of `Nat.even_or_odd_exists`) closes it. The `Nat`-level distributivity content used here has no home in `nat_prelude` yet and is built module-locally in `int_prelude/parity.rs`, not added to that crate.