kernel-nat-subsets-sum-sel-on-const-of-mem
- Kind
- kernel-term
- Status
- checked
Supports: Nat.Subsets.sumSelOn_const_of_mem is admitted by the trusted kernel gate with the type recorded in formal.statement.
test "$(cargo run -q --release -p axeyum-lean-kernel --example nat_theorem_inventory -- Nat.Subsets.sumSelOn_const_of_mem 2>/dev/null | grep -Fc '((x4 : AxNat.lt x3 x2) -> ((x5 : Eq.{1} Bool (x1 x3) Bool.true) ->')" -ge 1 Evidence notes
The pattern is BOTH hypotheses as rendered by Kernel::render_lean, so a statement that dropped either fails this check -- and both are load-bearing, since the conclusion is FALSE without a masked index below the width. The two branches of the induction step are asymmetric: with the top index masked, add_comm closes it and the induction hypothesis is never used; without it, the witness must move below the top index, which needs i /= j, and that comes from the mask itself. So the case split is over the EQUATION P j = false, not Bool.rec on P j -- a Bool.rec branch does not hand you the equation it split on and the contradiction is unreachable inside it.