Identifier
F:nat-finset-all-below-congr
Proof route
kernel-lean
External status
proved
Axiom footprint
Empty

Recorded description

For all Boolean predicates f and g on the naturals and every bound n, if f and g agree at every index then the bounded searches `allBelow f n` and `allBelow g n` return the same Boolean.

Formal statement
theorem Nat.Finset.allBelow_congr : ((x0 : ((x0 : AxNat) -> Bool)) -> ((x1 : ((x1 : AxNat) -> Bool)) -> ((x2 : AxNat) -> ((x3 : ((x3 : AxNat) -> Eq.{1} Bool (x0 x3) (x1 x3))) -> Eq.{1} Bool (AxNat.Finset.allBelow x0 x2) (AxNat.Finset.allBelow x1 x2)))))

Dependencies

The graph shows direct ledger edges. Follow a node to open its artifact page.

Direct dependencies appear to the left. The current fact is in the center. Facts that depend directly on it appear to the right. The subsets of an initial segme Current fact Splitting a finite set of natur
1 direct dependencies 1 direct dependents

Evidence

kernel-Nat.Finset.allBelow_congr

Kind
kernel-term
Status
checked

Supports: theorem Nat.Finset.allBelow_congr : ((x0 : ((x0 : AxNat) -> Bool)) -> ((x1 : ((x1 : AxNat) -> Bool)) -> ((x2 : AxNat) -> ((x3 : ((x3 : AxNat) -> Eq.{1} Bool (x0 x3) (x1 x3))) -> Eq.{1} Bool (AxNat.Finset.allBelow x0 x2) (AxNat.Finset.allBelow x1 x2)))))

Checker command
test "$(cargo run -q -p axeyum-lean-kernel --release --example nat_theorem_inventory -- Nat.Finset.allBelow_congr 2>/dev/null | grep -xFc 'Nat.Finset.allBelow_congr	7	((x0 : ((x0 : AxNat) -> Bool)) -> ((x1 : ((x1 : AxNat) -> Bool)) -> ((x2 : AxNat) -> ((x3 : ((x3 : AxNat) -> Eq.{1} Bool (x0 x3) (x1 x3))) -> Eq.{1} Bool (AxNat.Finset.allBelow x0 x2) (AxNat.Finset.allBelow x1 x2)))))')" -ge 1
Evidence notes

`build_nat_prelude` admits this through the trusted `Kernel::add_declaration` gate, which re-derives the type from the proof term; the checker greps for the inventory's exact tab-separated row, so a single wrong token in the rendered type makes it exit 1. Mutation-verified: reversing the hypothesis direction to `g i = f i` while leaving the proof unchanged makes the kernel reject the declaration with `TypeMismatch`, and all 11 tests in `nat_prelude::hall_theorem_tests` die (measured 2026-09-05, exit 101).

footprint-Nat.Finset.allBelow_congr

Kind
exhaustive-enumeration
Status
checked

Supports: axiom_footprint: [] -- the Nat prelude's trusted surface is empty

Checker command
cargo run -q -p axeyum-lean-kernel --release --example nat_axiom_inventory -- --require-axiom-free nat
Evidence notes

`nat_axiom_inventory` reports `nat: axiom=0 opaque=0 quotient=0 total_trusted=0`, and this theorem is declared inside `build_nat_prelude`, so it cannot rest on a trusted declaration the Nat environment does not contain. Demonstrated to discriminate: `--require-axiom-free axreal` against the SAME kernel build exits 1 (`axreal trusted surface = 30, expected 0`), so the flag is not satisfied unconditionally.

Provenance

{
  "date": "2026-09-05",
  "established_by": "lane hall-theorem (ADR-1644): proved in `crates/axeyum-lean-kernel/src/nat_prelude/hall_theorem.rs` and admitted through `Kernel::add_declaration`",
  "source": "proved in-tree; no import, no replay"
}