kernel-Nat.factorial_dvd_descFactorial
- Kind
- kernel-term
- Status
- checked
Supports: ∀ (n k : ℕ), k.factorial ∣ n.descFactorial k
test "$(cargo run -q -p axeyum-lean-kernel --example nat_theorem_inventory -- factorial_dvd_descFactorial 2>/dev/null | grep -Ec '^Nat\.factorial_dvd_descFactorial[[:space:]]')" -ge 1 Evidence notes
`build_nat_prelude` admits `Nat.factorial_dvd_descFactorial` through the trusted `Kernel::add_declaration` gate. Route: `Nat.descFactorial_eq_factorial_mul_choose : n.descFactorial k = k! * n.choose k` (declared alongside, `desc_factorial.rs`), proved by induction on `n` with `k` generalized inside the motive, using the front-peel identity `Nat.descFactorial_succ_eq_succ_mul : (succ n).descFactorial (succ k) = succ n * n.descFactorial k` (a separate induction on `k`, `n` fixed), `Nat.succ_mul_choose_eq`, `mul_left_comm`, `mul_assoc` and `factorial_succ`. `factorial_dvd_descFactorial` itself is then `Nat.dvd_mul : a ∣ a*q` transported along that bridge equation. `nat_theorem_inventory` exits non-zero for a name that does not exist, and the `grep -c` count (tested `-ge 1`, not piped into `grep -q`) requires the admitted declaration to actually be printed.