kernel-Nat.ble_eq_false_of_lt
- Kind
- kernel-term
- Status
- checked
Supports: For all b and n, if n < b then the boolean test `ble b n` is false.
test "$(cargo run -q -p axeyum-lean-kernel --example nat_theorem_inventory -- ble_eq_false_of_lt 2>/dev/null | grep -Ec '^Nat\.ble_eq_false_of_lt[[:space:]]')" -ge 1 Evidence notes
`build_nat_prelude` admits this theorem through the trusted `Kernel::add_declaration` gate, which re-checks the proof term against the stated type, so producing this row at all is a machine-checked proof. The NEGATIVE half of the `Nat.ble`/`Nat.le` bridge, which the prelude did not have: `ble.rs` carries the two positive directions (`ble_eq_true_of_le`, `le_of_ble_eq_true`) and the negated-`Prop` form (`not_le_of_not_ble_eq_true`), but nothing producing `Eq Bool _ Bool.false` -- which is the only shape that can rewrite a `Bool.rec` cut. Proved by `Bool` excluded middle on `ble b n` (`bool_true_or_false`): the `true` branch gives `b <= n` by `le_of_ble_eq_true`, which with `n < b` gives `n < n` through `lt_of_lt_of_le` and is refuted by `lt_irrefl`; the `false` branch is the goal already. Declared in `log.rs` under its first consumer, which is the retrieval hazard this repository keeps paying for -- it is recorded here so the next lane needing it can find it. `nat_theorem_inventory` exits non-zero for a name that does not exist, and `grep -Ec` consumes the pipe and the count is tested, so the exit status depends on what the run found.