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

Recorded description

Appending the bit `true` to the little end of `n` equals `2 * n + 1`.

Formal statement
theorem Nat.bit_true : ((x0 : AxNat) -> Eq.{1} AxNat (AxNat.bit Bool.true x0) (AxNat.add (AxNat.mul (AxNat.succ (AxNat.succ AxNat.zero)) x0) (AxNat.succ 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. Current fact bit(false, n) <= bit(true, n) 0 < bit(true, n)
0 direct dependencies 2 direct dependents

Evidence

kernel-Nat.bit_true

Kind
kernel-term
Status
checked

Supports: bit(true, n) = 2*n + 1

Checker command
test "$(cargo run -q -p axeyum-lean-kernel --example nat_theorem_inventory -- bit_true 2>/dev/null | grep -Ec '^Nat\.bit_true[[: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. `Nat.bit b n` is stated `add (mul 2 n) (cond b 1 0)`; at `b = true`, `cond true 1 0` iota-reduces to `1 = succ zero`, and `Nat.add`'s successor case (`add x (succ j) ≡ succ (add x j)`) collapses the sum to `succ (mul 2 n)` -- the same normal form the RHS `add (mul 2 n) 1` itself reduces to. The proof is `Eq.refl`; the kernel closes it by delta+iota alone, no case-split combinator and no induction. `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. The anchor `^Nat\.bit_true[[:space:]]` matters here for the same reason as the sibling `bit_false` fact -- `bit_true` is not itself a prefix of another declared name in this build, but the anchor keeps the checker robust if one is added later.

compute-Nat.bit_true

Kind
kernel-term
Status
checked

Supports: the equation instantiates correctly and names the true branch's `2n+1` form

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

`Kernel::def_eq` reduces `bit true n` at n in {0, 1, 6} to {1, 3, 13} directly (definition unfolding, no boundary theorem invoked), including negative controls (`bit false 6` must NOT def_eq `13`, `bit true 6` must NOT def_eq `12`), and separately confirms `Nat.bit_true`'s ADMITTED TYPE (via `Kernel::infer`) is exactly `Eq (bit true 6) (add (mul 2 6) 1)`.

footprint-Nat.bit_true

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. `Nat.bit` needed no fuel device -- it is a plain non-recursive lambda over `Nat.add`/`Nat.mul`/`Bool.rec` -- so this command is what makes the axiom-freedom claim falsifiable rather than asserted.

Provenance

{
  "date": "2026-08-28",
  "established_by": "axeyum-lean-kernel build_nat_prelude, lane 207-nat-bitwise",
  "source": "one of two definitional boundary equations `declare_bit_all` (`crates/axeyum-lean-kernel/src/nat_prelude/bits.rs`) admits alongside the `Nat.bit` definition"
}