kernel-Nat.descFactorial_le
- Kind
- kernel-term
- Status
- checked
Supports: ∀ (n : ℕ) {k m : ℕ}, k ≤ m → k.descFactorial n ≤ m.descFactorial n
test "$(cargo run -q -p axeyum-lean-kernel --example nat_theorem_inventory -- descFactorial_le 2>/dev/null | grep -Ec '^Nat\.descFactorial_le[[:space:]]')" -ge 1 Evidence notes
`build_nat_prelude` admits `Nat.descFactorial_le` through the trusted `Kernel::add_declaration` gate. Route: rewrite `Le (choose k n) (choose m n)` (`Nat.choose_le_choose`, directly from the hypothesis `k <= m`) up to `Le (mul (factorial n) (choose k n)) (mul (factorial n) (choose m n))` (`Nat.mul_le_mul_left`), then transport twice along `Nat.descFactorial_eq_factorial_mul_choose`'s bridge equations (at `(k, n)` and `(m, n)`, both reversed) to land on `Le (descFactorial k n) (descFactorial m n)`. `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.