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

Recorded description

For every n, appending bit `false` to n's little end is at most appending bit `true`.

Formal statement
theorem Nat.bit_false_le_bit_true : ((x0 : AxNat) -> AxNat.le (AxNat.bit Bool.false x0) (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(false, n) = 2n bit(true, n) = 2n + 1 Current fact
2 direct dependencies 0 direct dependents

Evidence

kernel-Nat.bit_false_le_bit_true

Kind
kernel-term
Status
checked

Supports: bit(false, n) <= bit(true, n), for every n

Checker command
test "$(cargo run -q -p axeyum-lean-kernel --example nat_theorem_inventory -- bit_false_le_bit_true 2>/dev/null | grep -Ec '^Nat\.bit_false_le_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. The proof term is `le_succ (mul 2 n)` -- the already-proved generic lemma `m <= succ m` instantiated at `m := mul 2 n` -- accepted directly by the kernel's definitional-equality check, because `bit false n` unfolds to `mul 2 n` and `bit true n` unfolds to `succ (mul 2 n)` (delta+iota, per `F:nat-bit-false`/`F:nat-bit-true`). No case-split combinator and no induction were needed for this theorem specifically. `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_false_le_bit_true

Kind
kernel-term
Status
checked

Supports: the statement instantiates to the promised inequality, in the promised direction, 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_false_le_bit_true` at `n = 6` and confirms (via `Kernel::infer` + `Kernel::def_eq`) the inferred conclusion is exactly `Le (bit false 6) (bit true 6)`, with a REVERSED negative control (`Le (bit true 6) (bit false 6)`, i.e. `Le 13 12`) that must NOT def_eq the inferred type -- the direction is genuinely checked, not merely present.

footprint-Nat.bit_false_le_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. `bit_false_le_bit_true`'s proof only ever composes `Nat.le_refl` and `Nat.le_step` (via the `le_succ` theorem) 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 `le_succ`"
}