kernel-Rat.natDivSucc_antitone
- Kind
- kernel-term
- Status
- checked
Supports: `Rat.natDivSucc_antitone` is admitted with exactly the type in formal.statement. THE PROOF NEVER TOUCHES Rat.inv, which is the point: the route everyone had assumed goes through the reciprocal and needs an inv_inv law this prelude does not have. Reading the two definitions instead settled it -- natDivSucc is a single normalize call and Rat.le is cross-multiplication -- so the proof unfolds le, applies Rat.normalize_cross on each side (Nat.one_mul clearing the ofNat 1 factor), scales the goal by the positive (succ j')*(succ j), regroups with a new length-4 helper iregroup4, substitutes both normalize_cross facts, and cancels the common denominator factor with the already-proved Rat.int_le_of_mul_le_mul_right. The Nat -> Rat order transport that was expected to be needed does not have to exist: Int.le (ofNat m) (ofNat n) unfolds DEFINITIONALLY to Nat.le m n, so Nat.succ_le_succ serves directly.
test "$(scripts/cargo-serialized.sh test -p axeyum-lean-kernel --lib rat_prelude::rat_prelude_tests::nat_div_succ_antitone_is_the_statement_briefed -- --exact 2>&1 | grep -Ec 'test result: ok\. 1 passed; 0 failed')" -ge 1 Evidence notes
A footprint check cannot carry this claim: the SAME theorem with the two natDivSucc terms swapped -- i.e. asserting monotonicity, which is FALSE -- has an identically empty footprint. Mutation-verified 2026-08-24 by the coordinating lane: exchanging x0 and x1 in the pinned string (reversing the inequality) makes cargo report `583 passed; 1 failed`, naming this test and no other; restored byte-identically and hash-checked, the suite returns to 584 passed. The command is anchored on the exact `1 passed; 0 failed` count so an unmatched filter -- which prints `running 0 tests ... ok` and exits 0 -- cannot read as success.