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.
ILU(0) factor slots, setup work, and application work
Statement
Let be a field, , and have a valid canonical CSR
record with strictly increasing column indices in each row. Let
and . Run
Fixed-pattern ILU(0) factorization and application. The procedure terminates with a
missing-diagonal or zero-pivot status, or returns ok.
On an ok return, define
and put , , and . The stored strict-lower
slots of are exactly , and the stored slots of are exactly ;
the unit diagonal of is implicit. Thus the factors use exactly
numeric slots. Here a factor's stored-slot count retains a slot
even if an update makes its value zero.
For each , let and set and . On a successful setup, the factorization performs exactly divisions, multiplications, and subtractions. The two-pointer merges perform at most column-index comparisons, in addition to one validation visit for each of the row intervals and the stored entries.
Applying a successful factor pair to one vector by the specified two triangular solves performs exactly multiplications, subtractions, and divisions, and returns the unique vector produced by forward and backward substitution. These counts concern setup and one application separately. They assert no convergence, conditioning improvement, or accuracy guarantee. The stored-pattern conclusion is about and ; it does not assert that the product has support contained in .
Facts & Assumptions
Given: A field , a canonical sorted CSR record for with , and a successful run of the fixed-pattern ILU(0) algorithm.
Field: every nonzero field element has a multiplicative inverse, so division by a checked nonzero pivot is defined.
Fixed-pattern ILU(0) factorization and application: the returned and use only input-pattern slots; each multiplier update is made only at a matching pair of input-pattern positions; every matching slot is visited even if its current value is zero; and application traverses every stored strict-lower and strict-upper factor slot once.
Compressed sparse row matrices with stored-entry semantics: a canonical CSR record has no repeated column and no stored zero, so its stored-entry count is .
Forward and backward substitution for triangular linear systems: for lower-triangular with nonzero diagonal, forward substitution uses .
Forward and backward substitution for triangular linear systems: for upper-triangular with nonzero diagonal, backward substitution uses .
Forward and backward substitution are correct, unique, and quadratic in scalar operations: when is lower triangular with nonzero diagonal, forward substitution produces the unique solution of .
Forward and backward substitution are correct, unique, and quadratic in scalar operations: when is upper triangular with nonzero diagonal, backward substitution produces the unique solution of .
Proof
The input has finite arrays and is finite. Validation visits the row intervals and stored entries once; the factorization loops over at most rows, finitely many pattern entries, and finite row-list merges. Every division is preceded by a nonzero-pivot check, and [A1] makes each such division defined. Thus the procedure either returns one of its specified failure statuses or completes with ok.
If the procedure returns ok, each processed pivot is nonzero by its check, so the returned has nonzero diagonal. The definition sets to be unit lower triangular and retains only upper entries in .
Initially the work values occupy exactly the input slots . Each multiplier is written only at a strict-lower slot in , and each update is performed only when both matching row positions are in . No update allocates a new position. Induction over the finite row and pivot loops therefore gives stored patterns and for and , respectively.
The forward recurrence in [F3] applied to unit-lower and the backward recurrence in [F4] applied to are well-defined because and every . By [F5] and [F6] they produce the unique successive triangular-solve outputs specified by the algorithm.
The sets and are disjoint and partition : every has exactly one of or . Hence . Since the unit diagonal of is implicit, this is exactly the factor numeric-slot count.
On success, the outer lower-pattern loop processes every one of the positions once and performs one division there. For a fixed , the update loop visits exactly the indices in ; each visit performs one multiplication and one subtraction. Summing these counts gives exactly divisions and multiplications and subtractions.
Both lists in each intersection are strictly increasing. A two-pointer merge advances at least one pointer at every comparison and stops when one list ends, so it makes at most the sum of the two list lengths, , comparisons. Summing over gives the bound ; validation visits each row interval and stored entry once.
The forward recurrence in [F3] performs one multiplication and subtraction for each stored strict-lower slot, hence of each and no diagonal divisions. The backward recurrence in [F4] performs one multiplication and subtraction for each stored strict-upper slot, hence of each, and one division for each of its rows. Since , the stated application counts follow.
Depends on
Used by
Nothing in the library uses this result yet.
Dependency tree · two levels
9 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
- Yousef Saad, Iterative Methods for Sparse Linear Systems, 2nd ed., §§10.3.1–10.3.2, printed pp. 301–310 (standard reference, not scraped)
- Richard Barrett et al., Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods, 2nd ed., §§3.4.1–3.4.2, printed pp. 38–41 (standard reference, not scraped)