Identifier
F:ml430-int-fib-add-181b6a2c
Proof route
kernel-lean
External status
proved
Axiom footprint
Empty

Recorded description

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

Formal statement
∀ (m n : ℤ), Int.fib (m + n) = Int.fib (m - 1) * Int.fib n + Int.fib m * Int.fib (n + 1)

Dependencies

The graph shows direct ledger edges. Follow a node to open its artifact page.

Evidence

kernel-Int.fib_add

Kind
kernel-term
Status
checked

Supports: Int.fib_add is admitted by the trusted kernel gate, and its canonical type is the pinned Mathlib statement symbol for symbol: ((x0 : Int) -> ((x1 : Int) -> Eq.{1} Int (Int.fib (Int.add x0 x1)) (Int.add (Int.mul (Int.fib (Int.sub x0 Int.one)) (Int.fib x1)) (Int.mul (Int.fib x0) (Int.fib (Int.add x1 Int.one)))))).

Checker command
cargo run -q --release -p axeyum-lean-kernel --example int_theorem_inventory -- fib_add 2>/dev/null | grep -cE '^theorem[[:space:]]+Int\.fib_add[[:space:]]+\(\(x0 : Int\) -> \(\(x1 : Int\) -> Eq\.\{1\} Int \(Int\.fib \(Int\.add x0 x1\)\) \(Int\.add \(Int\.mul \(Int\.fib \(Int\.sub x0 Int\.one\)\) \(Int\.fib x1\)\) \(Int\.mul \(Int\.fib x0\) \(Int\.fib \(Int\.add x1 Int\.one\)\)\)\)\)\)$'
Evidence notes

The pattern pins the ENTIRE rendered type, not just the name, because each of this statement's four factors -- fib (m-1) * fib n against fib m * fib (n+1) -- can be transposed into a different but well-typed proposition the gate would prove just as happily. Verified discriminating on this tree: 1 against the real row, 0 against a row with Int.sub rewritten to Int.add. Tab separators are matched with [[:space:]] and never with a backslash-t escape -- see this repository's documented GNU-grep/ugrep divergence, which silently made 68 checker commands match nothing. --release is MANDATORY: this binary also builds creal/complex/cpoint, which overflow the default debug thread stack, and a debug run's empty output would read as ABSENT.

footprint-Int.fib_add

Kind
exhaustive-enumeration
Status
checked

Supports: axiom_footprint: [] -- the integer prelude's trusted surface is empty, which bounds Int.fib_add

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. --require-axiom-free exits nonzero when the count is not zero, so the exit status depends on the finding. --release is MANDATORY: this binary also builds creal/complex/cpoint, which overflow the default debug thread stack, and a debug run's empty output would read as ABSENT.

evaluation-Int.fib_add-every-sign-combination

Kind
witness-replay
Status
checked

Supports: fib_add instantiated at one (m, n) pair in every sign combination and reduced to a closed numeric identity: (3,4) 13 = 1*3 + 2*5; (0,3) 2 = 1*2 + 0*3, which already reads fib(-1); (-2,3) 1 = 2*2 + (-1)*3; (3,-2) 1 = 1*(-1) + 2*1; (-1,-2) 2 = (-1)*(-1) + 1*1. Each case is paired with a wrong right-hand side that must NOT be def_eq, so the check is capable of failing. Only the first row is within reach of Nat.fib_add.

Checker command
test "$(cargo test -q -p axeyum-lean-kernel --lib int_prelude::int_prelude_tests::fib_add_computes_in_every_sign_combination 2>/dev/null | grep -cE '^test result: ok\. 1 passed')" -eq 1
Evidence notes

crates/axeyum-lean-kernel/src/int_prelude/int_prelude_tests.rs. The command asserts EXACTLY ONE test passed, so a filter matching nothing fails rather than exiting 0. The filter must stay fully qualified: the bare --lib int_prelude:: form substring-matches into an unrelated ~148 s creal_point suite.

Provenance

{
  "date": "2026-08-29",
  "established_by": "axeyum-lean-kernel build_int_prelude (crates/axeyum-lean-kernel/src/int_prelude/fibonacci.rs, declare_fib_add)",
  "prior_art": [
    {
      "attribution": "the proposition statement was read from the pinned statement-only inventory; the proof PRODUCED here is this kernel's own construction (Int.induction_on with a paired motive, over Int.fib_rec), not a transcription of Mathlib's tactic proof, which was never consulted.",
      "what": "the theorem declaration `Int.fib_add`",
      "where": "mathlib4 commit c5ea00351c28e24afc9f0f84379aa41082b1188f (v4.30.0)",
      "who": "the Mathlib contributors",
      "year": 2026
    }
  ],
  "source": "proved in-tree over the CONSTRUCTED integers. The canonical type was read from int_theorem_inventory's own output and compared symbol for symbol against the pinned Mathlib statement already recorded in formal.statement, which is unchanged."
}