nat-countrange-bij-of-inverse-1
- Kind
- kernel-term
- Status
- checked
Supports: `Nat.countRange_bij_of_inverse` is a checked `Declaration::Theorem` with an EMPTY axiom footprint in all eight preludes that build the naturals, AND its admitted type renders with BOTH round trips stated UNCONDITIONALLY -- `(x6 : ((x6 : AxNat) -> Eq.{1} AxNat (x3 (x2 x6)) x6))` and its mirror -- and with the cross-bound conclusion. The unconditional shape is the whole content of this row: a version whose round trips were restricted to the selected sets would be `Nat.countRange_bij` with a hypothesis silently deleted, i.e. an UNSOUND statement, and it would render with `AxNat.lt` and `Bool.true` guards inside the binder that this pattern's `((x6 : AxNat) -> Eq...)` shape excludes.
out=$(target/release/examples/kernel_declaration_projection 2>/dev/null 2>&1) && test "$(printf "%s\n" "$out" | grep -cE '^(nat|integer|characterization|rat|creal|complex|cpoint|ipc)[[:space:]]+theorem[[:space:]]+Nat\.countRange_bij_of_inverse[[:space:]]+0[[:space:]].*\(x6 : \(\(x6 : AxNat\) -> Eq\.\{1\} AxNat \(x3 \(x2 x6\)\) x6\)\).*\(x7 : \(\(x7 : AxNat\) -> Eq\.\{1\} AxNat \(x2 \(x3 x7\)\) x7\)\).*Eq\.\{1\} AxNat \(AxNat\.countRange x0 x4\) \(AxNat\.countRange x1 x5\)')" = 8 Evidence notes
Verified discriminating by scripts/new-fact.py before this file was written: the pattern matches the real output and its match count drops on mutated output. Anchored on the footprint column `0`, on the two unconditional round-trip binders written out in full (which is what pins them as total rather than selected-set hypotheses), and on the cross-bound conclusion, with the row count pinned at 8. Run 2026-09-02: 8 rows.