How statement and proof provenance work
The first chip identifies the source of the statement or construction; the second identifies the source of its local proof or verification.
- Literature-sourced: the exact statement appears in a cited source; only wording and notation differ.
- AI-adapted: a semantically identical restatement of literature-sourced material, modulo indexing, notation, and boundary cases adopted by the library.
- AI-generated: a genuinely novel statement formulated by AI, with no source for the claim itself.
These labels describe origin, not correctness: citations and verification chips remain separate evidence.
The L-Bfgs two-loop recursion equals the stored inverse updates and costs linear memory work
Statement
Let stored pairs , , be ordered oldest to newest, with , and let . Start from with and apply the inverse updates of Bfgs curvature pairs and Hessian/inverse updates in that order, obtaining . For every , the two-loop recursion in Limited-memory Bfgs two-loop recursion with curvature filtering returns before changing its sign to form the search direction. The recursion uses scalar operations and stores real entries; when and , these are .
Facts & Assumptions
Given: The memory length, valid stored pairs, scale , and vector in the Statement.
Limited-memory Bfgs two-loop recursion with curvature filtering: the reverse loop updates with , then the forward loop updates with .
Bfgs curvature pairs and Hessian/inverse updates: an inverse update is , where .
Proof
Given: The memory length, valid stored pairs, scale , and vector in the Statement.
[F1] Limited-memory Bfgs two-loop recursion with curvature filtering: the reverse loop updates with , then the forward loop updates with .
[F2] Bfgs curvature pairs and Hessian/inverse updates: an inverse update is , where .
Set . In the reverse loop, when pair is processed, the current vector is and . Its update is therefore .
Set . In the forward loop, if is the current vector, then because and .
By induction on , . It holds at by definition. If it holds at , then from step 1.1, so by [F2] and step 2.1. At , , hence the output is .
Each stored pair is read once in each loop. Each read uses a fixed number of length- dot products, scalar-vector products, and vector additions, so the operation count is at most a constant times . The stored pairs use coordinates; loop scalars use entries and the working vectors use entries. Therefore the counts are , and are when and .
Depends on
Used by
Dependency tree · two levels
5 results within two dependency steps of this one, each drawn at its shortest distance from it. An arrow runs from a result to what uses it, so the chart reads left to right and ends at this result, which carries a heavier outline. Every node is a link to that result. Click elsewhere on the chart to enlarge it.
Sources
- Jorge Nocedal and Stephen J. Wright, Numerical Optimization, 2nd ed. (standard reference, not scraped)
- Manuel Carreira-Perpiñán, Lecture Notes on Numerical Optimization (standard reference, not scraped)