kernel-Nat.mod_mul_right_mod
- Kind
- kernel-term
- Status
- checked
Supports: ∀ (a b c : ℕ), a % (b * c) % b = a % b
test "$(cargo run -q -p axeyum-lean-kernel --example nat_theorem_inventory -- mod_mul_right_mod 2>/dev/null | grep -Ec '^Nat\.mod_mul_right_mod[[:space:]]')" -ge 1 Evidence notes
Declared in `nat_prelude/mod_mul_lemmas.rs`'s `declare_mod_mul_family`. Case-splits `b` (outer `cases_zero_succ`): at `b=0` both sides collapse to `mod a zero` via `zero_mul`/`mod_zero` congruence (a single `mod_zero` applied to the already-doubled `mod (mod a zero) zero` term, since `dvsr` and the outer divisor coincide at `zero` here); at `b=succ bpred`, case-splits `c`: at `c=0` both sides collapse to `a%b` via `mul_zero`/`mod_zero`; at `c=succ cpred` (both positive), the same `mod_of_dvd_mod` helper as `mod_mul_left_mod` answers the goal directly with `dvsr:=b`, `mult:=c`, `e:=b*c` -- no `mul_comm` bridge needed here since `e` is already `dvsr*mult` in the fact's own order (`e_eq` is `refl`). `nat_theorem_inventory`'s rendered type matches this fact's `formal.statement` verbatim (`x0`=a, `x1`=b, `x2`=c).