Identifier
F:nat-bit-true-pos
Proof route
kernel-lean
External status
proved
Axiom footprint
Empty

Recorded description

Appending the bit `true` to the little end of any `n` produces a strictly positive result.

Formal statement
theorem Nat.bit_true_pos : ((x0 : AxNat) -> AxNat.lt AxNat.zero (AxNat.bit Bool.true x0))

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. bit(true, n) = 2n + 1 <= is preserved by successor on Zero is a lower bound for every Current fact
3 direct dependencies 0 direct dependents

Evidence

kernel-Nat.bit_true_pos

Kind
kernel-term
Status
checked

Supports: 0 < bit(true, n), for every n

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

`build_nat_prelude` admits this theorem through the trusted `Kernel::add_declaration` gate, which re-checks the proof term against the stated type, so producing this row at all is a machine-checked proof. The proof term is `zero_lt_succ (mul 2 n)` -- the already-proved generic lemma `0 < succ m` instantiated at `m := mul 2 n` -- accepted directly by the kernel's definitional-equality check, because `bit true n` unfolds (delta on `Nat.bit`, iota on the inner `Bool.rec`, iota again on `Nat.add`'s successor case) to exactly `succ (mul 2 n)`. No case-split combinator and no induction were needed for this theorem specifically; the case split is already paid for by `Nat.bit`'s own construction. `nat_theorem_inventory` exits non-zero for a name that does not exist, and `grep -Ec` consumes the pipe and the count is tested, so the exit status depends on what the run found.

instantiation-Nat.bit_true_pos

Kind
kernel-term
Status
checked

Supports: the statement instantiates to the promised strict inequality at a concrete witness

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

Applies `Nat.bit_true_pos` at `n = 6` and confirms (via `Kernel::infer` + `Kernel::def_eq`) the inferred conclusion is exactly `Lt 0 (bit true 6)`, i.e. `Lt 0 13` after full reduction -- a positive statement at a concrete, nontrivial instance rather than a vacuous universal.

footprint-Nat.bit_true_pos

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 --example nat_axiom_inventory -- --require-axiom-free nat
Evidence notes

`nat_axiom_inventory --require-axiom-free nat` enumerates the built Nat environment and exits non-zero unless it admits no Axiom, Opaque or Quotient declaration. `bit_true_pos`'s proof only ever composes `Nat.zero_le`, `Nat.le_succ_succ` (via the `zero_lt_succ` term-builder), and `Nat.rec`, none of them asserted, so this row stays empty.

Provenance

{
  "date": "2026-08-28",
  "established_by": "axeyum-lean-kernel build_nat_prelude, lane 207-nat-bitwise",
  "source": "`declare_bit_all` (`crates/axeyum-lean-kernel/src/nat_prelude/bits.rs`), a defeq corollary of `zero_lt_succ`"
}