Identifier
F:ml430-int-fib-two-mul-add-one-eq-natfib-natabs-61a8342b
Proof route
kernel-lean
External status
proved
Axiom footprint
Empty

Recorded description

The proposition declared as `Int.fib_two_mul_add_one_eq_natFib_natAbs` in the pinned Mathlib v4.30 source.

Formal statement
∀ {n : ℤ}, Int.fib (2 * n + 1) = ↑(Nat.fib (2 * n + 1).natAbs)

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. Mathlib v4.30 source propositio Int.Odd n := Nat.Odd (natAbs n) Multiplication on the naturals Nat zero_add Current fact
4 direct dependencies 0 direct dependents

Evidence

kernel-Int.fib_two_mul_add_one_eq_natfib_natabs

Kind
kernel-term
Status
checked

Supports: Int.fib_two_mul_add_one_eq_natfib_natabs is admitted by the trusted kernel gate with the type recorded in formal.kernel_statement.

Checker command
cargo run -q --release -p axeyum-lean-kernel --example int_theorem_inventory 2>/dev/null | grep -cE '^theorem[[:space:]]Int\.fib_two_mul_add_one_eq_natfib_natabs[[:space:]]'
Evidence notes

int_theorem_inventory lists every Declaration::Theorem in the integer prelude with its canonical type; the grep asserts the exact tab-anchored name. --release is MANDATORY: this binary also builds creal/complex/cpoint, which overflow the default debug thread stack. Confirmed to exit 1 on a deliberately wrong name (…_WRONG) and 0 on the real one.

footprint-Int.fib_two_mul_add_one_eq_natfib_natabs

Kind
exhaustive-enumeration
Status
checked

Supports: axiom_footprint: [] -- the integer prelude's trusted surface is empty, which bounds Int.fib_two_mul_add_one_eq_natfib_natabs and its stepping-stone Int.odd_two_mul_add_one.

Checker command
cargo run -q --release -p axeyum-lean-kernel --example nat_axiom_inventory -- --include-constructed --require-axiom-free integer
Evidence notes

Re-measured on this tree: integer trusted surface = 0. --release is MANDATORY here.

evaluation-Int.fib_two_mul_add_one_eq_natfib_natabs-both-signs

Kind
witness-replay
Status
checked

Supports: The composite theorem instantiated at n := 1 (index 2*1+1=3, fib 3 = ofNat (Nat.fib 3) = ofNat 2) and n := negSucc 1 (n = -2, index 2*(-2)+1 = -3 = negSucc 2, fib (-3) = ofNat (Nat.fib 3) = ofNat 2) -- checked by Kernel::infer + Kernel::def_eq against the closed-form equation, exercising odd_two_mul_add_one composed with fib_of_odd end to end, not either lemma in isolation.

Checker command
cargo test -p axeyum-lean-kernel --lib int_prelude::int_prelude_tests::fib_two_mul_add_one_eq_natfib_natabs_applies_at_a_concrete_index_of_each_sign 2>&1 | grep -c '^test result: ok\. 1 passed'
Evidence notes

crates/axeyum-lean-kernel/src/int_prelude/int_prelude_tests.rs. Must be run with an explicit test-name filter and a NONZERO pass count confirmed -- confirmed to exit 1 (count 0) against a deliberately misspelled test name.

coverage-Int.fib_two_mul_add_one_eq_natfib_natabs

Kind
witness-replay
Status
checked

Supports: int_prelude_tests.rs's every_int_declaration_is_checked_and_axiom_free asserts, against the ENVIRONMENT rather than a hand-maintained list, that every live Int.* Definition/Theorem (both new declarations included) is listed in derived_laws/derived_lemmas/asserted_laws/definition_names and carries an empty axiom footprint.

Checker command
cargo test -p axeyum-lean-kernel --lib int_prelude::int_prelude_tests::every_int_declaration_is_checked_and_axiom_free 2>&1 | grep -c '^test result: ok\. 1 passed'
Evidence notes

This test failed (panicked, naming both new declarations by name) before Int.odd_two_mul_add_one and Int.fib_two_mul_add_one_eq_natfib_natabs were added to derived_laws; it passes now.

Provenance

{
  "date": "2026-09-01",
  "established_by": "axeyum-lean-kernel build_int_prelude (crates/axeyum-lean-kernel/src/int_prelude/fibonacci.rs, declare_odd_two_mul_add_one + declare_fib_two_mul_add_one_eq_natfib_natabs)",
  "source": "canonical type read via int_theorem_inventory's own output (cargo run -q --release -p axeyum-lean-kernel --example int_theorem_inventory), which prints one row per Declaration::Theorem in the integer prelude with kernel.render_lean(declaration.ty()) as the last field. That row was grepped and copied verbatim into formal.kernel_statement.",
  "prior_art": [
    {
      "who": "the Mathlib contributors",
      "what": "the theorem declaration `Int.fib_two_mul_add_one_eq_natFib_natAbs`",
      "where": "mathlib4 commit c5ea00351c28e24afc9f0f84379aa41082b1188f (v4.30.0), Mathlib/Data/Int/Fib/Basic.lean:45",
      "year": 2026,
      "attribution": "Mathlib's own proof is one line, `fib_of_odd <| odd_two_mul_add_one n`, and this kernel's route is exactly that shape once `Int.Odd` is stated via `natAbs` (F:int-odd) -- `fib_of_odd` was already proved (F:ml430-int-fib-of-odd-66560495); the new work is `Int.odd_two_mul_add_one`, proved by a case split on `n` reducing `2*n+1` to a Nat magnitude of the form `succ (mul 2 _)` in both signs, closed by a witness built from the ALREADY-DECLARED `second_supplementary.rs::two_mul_eq_add_self`/`odd_predicate` helpers (built for an unrelated quadratic-reciprocity modulus, reused unchanged here)."
    }
  ]
}