Identifier
F:nat-bitwise-or-eq-lor
Proof route
kernel-lean
External status
proved
Axiom footprint
Empty

Recorded description

The general bitwise combinator instantiated at Bool.or agrees with the specialized bitwise-OR at every pair of natural numbers.

Formal statement
theorem Nat.bitwise_or_eq_lor : ((x0 : AxNat) -> ((x1 : AxNat) -> Eq.{1} AxNat (AxNat.bitwise (fun (x2 : Bool) => fun (x3 : Bool) => Bool.rec.{1} (fun (x4 : Bool) => Bool) x3 Bool.true x2) x0 x1) (AxNat.lor x0 x1)))

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. n mod 2 = 0 or n mod 2 = 1 bitwise or_fn 3 5 = lor 3 5 Current fact
2 direct dependencies 0 direct dependents

Evidence

kernel-Nat.bitwise_or_eq_lor

Kind
kernel-term
Status
checked

Supports: for all m n, bitwise or_fn m n = lor m n

Checker command
test "$(cargo run -q -p axeyum-lean-kernel --example nat_theorem_inventory -- bitwise_or_eq_lor 2>/dev/null | grep -Ec '^Nat\.bitwise_or_eq_lor[[: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 anchor `^Nat\.bitwise_or_eq_lor[[:space:]]` matters: the same filter also prints `Nat.bitwise_or_eq_lor_three_five` (the single-point predecessor this theorem supersedes), and the trailing `[[:space:]]` excludes it -- verified exactly 1 row. `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.

compute-Nat.bitwise_or_eq_lor

Kind
kernel-term
Status
checked

Supports: the equivalence holds at symbolic operands and at seven concrete pairs, and depends on lor's own guard values

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

Same two-way check as the `land` twin: the statement is re-declared over genuinely bound variables with this theorem as the entire proof (so it must apply at non-numeral operands), and instantiated at seven concrete pairs including `(3,5)`, `(5,3)` and `(6,3)` where AND and OR values differ. The same test also mutation-verifies that `lorAux`'s guard values are load-bearing rather than incidental: replacing `lor`'s `n = 0` branch -- which returns `m`, since OR has no absorbing zero on the fuel operand -- with the constant `0` that `land` uses makes the kernel refuse the declaration and the whole prelude build fails (0 passed, 121 failed).

footprint-Nat.bitwise_or_eq_lor

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.

Provenance

{
  "date": "2026-08-29",
  "established_by": "axeyum-lean-kernel build_nat_prelude, lane nat-rec-agreement",
  "source": "`declare_rec_agreement_all` (`crates/axeyum-lean-kernel/src/nat_prelude/rec_agreement.rs`)"
}