Identifier
F:nat-zero-of-testbit-eq-zero
Proof route
kernel-lean
External status
proved
Axiom footprint
Empty

Recorded description

For every natural n: if testBit(n, i) = 0 for every i, then n = 0.

Formal statement
theorem Nat.zero_of_testBit_eq_zero : ((x0 : AxNat) -> ((x1 : ((x1 : AxNat) -> Eq.{1} AxNat (AxNat.testBit x0 x1) AxNat.zero)) -> Eq.{1} AxNat x0 AxNat.zero))

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. [generated] kernel theorem Nat. [generated] kernel theorem Nat. Zero is a left absorbing elemen Current fact two naturals with the same bits
3 direct dependencies 1 direct dependents

Evidence

kernel-Nat.zero_of_testBit_eq_zero

Kind
kernel-term
Status
checked

Supports: Nat.zero_of_testBit_eq_zero is admitted by the trusted kernel gate with the type recorded in formal.statement.

Checker command
test "$(cargo run -q -p axeyum-lean-kernel --example nat_theorem_inventory -- testBit_eq_zero 2>/dev/null | grep -Ec '^Nat\.zero_of_testBit_eq_zero[[:space:]]')" -ge 1
Evidence notes

`build_nat_prelude` admits this theorem only through the trusted `Kernel::add_declaration` gate, which re-checks the proof term against the stated type. `nat_theorem_inventory` exits non-zero for a name that does not exist, and `grep -Ec` consumes the pipe so the tested count decides the exit status. Anchored with `^Nat\.zero_of_testBit_eq_zero[[:space:]]` so a differently-named sibling cannot satisfy this row.

compute-Nat.zero_of_testBit_eq_zero

Kind
kernel-term
Status
checked

Supports: Applied at n := 0 with the hypothesis supplied by Nat.testBit_of_zero (the only value for which the universally-quantified hypothesis is actually provable), the residue is Eq 0 0, and is NOT def-eq to a statement about a different value -- the negative control.

Checker command
cargo test -p axeyum-lean-kernel --lib nat_prelude::nat_prelude_tests::zero_of_test_bit_eq_zero_applies_at_the_only_provable_instance
Evidence notes

The hypothesis `forall i, testBit n i = 0` is false for every n != 0 in this consistent kernel, so n := 0 (via the companion theorem Nat.testBit_of_zero) is the only instance this test can honestly instantiate. Nat.testBit_of_zero itself is checked symbolically (at a genuinely free i, via a re-derived theorem) and at concrete indices 0/1/5/20 in nat_prelude::nat_prelude_tests::test_bit_of_zero_holds_symbolically_and_at_concrete_indices.

footprint-Nat.zero_of_testBit_eq_zero

Kind
instance-pin
Status
checked

Supports: axiom_footprint: [] -- the Nat environment admits no trusted declaration

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

Reports `nat: axiom=0 opaque=0 quotient=0 total_trusted=0`, over the FULL trusted surface rather than `Declaration::Axiom` alone. The enumeration is per-environment, not per-theorem; it bounds this theorem's footprint because a proof cannot depend on a trusted declaration the environment does not contain.

Provenance

{
  "date": "2026-08-29",
  "established_by": "axeyum-lean-kernel build_nat_prelude, lane nat-testbit-bitwise",
  "source": "theorem name and canonical type read directly via nat_theorem_inventory, which prints render_lean of the admitted type."
}