Alphabeta Math
Pipeline-generated
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.

Preconditioner algorithms and residual metrics

1 · Prerequisites

2 · Summary

This page adds a fixed-order, fixed-pattern ILU(0) procedure and proves its stored-factor pattern and exact setup and application counts. Setup work is counted through pattern intersections; application is counted as two triangular solves. It also defines flexible GMRES with changing right preconditioners and proves residual minimization over the span of the actual preconditioned vectors. The statements keep factor storage, setup, application, and Krylov convergence separate and make no general preconditioner-quality claim.

The canonical left, right, and symmetric residual maps and the SPD-preconditioned CG result remain on conjugate-gradients-minres-and-preconditioning.

3 · Logical flowchart

4 · Definitions, theorems and proofs

AlgorithmAlgorithm: AI-adaptedProof: Not applicablejudge pass (gpt-6-luna)Open item page →

Fixed-pattern ILU(0) factorization and application

Definition

Let F be a field, let n≥1, and let the input be a valid n×n CSR record as in Compressed sparse row matrices with stored-entry semantics, representing A∈Mn(F). Matrix positions in this definition use one-based notation: (i,j) refers to CSR row i−1 and column index j−1. This row/column order is fixed before the procedure begins; vector component label i refers to coordinate i−1. The procedure performs no pivoting or reordering. All field operations below are exact.

Let P={(i,j):aij≠0}. Scan each row once to check the canonical and increasing-index conditions and to record whether its diagonal position occurs. If the input fails either pattern condition, return invalid-pattern. If a row has no diagonal position, return missing-diagonal(i) for the least such i.

Copy the value in each input slot to a work array W, and regard the unit diagonal of L as implicit. Process rows i=1,…,n in increasing order. For each k<i with (i,k)∈P, in increasing k order, do the following:

  1. If Wkk=0, return zero-pivot(k).
  2. Set Wik←Wik/Wkk; this value is the stored factor Lik.
  3. Let R be the increasing list of one-based matrix column labels j>k represented by row i's CSR segment, and let C be the corresponding increasing list represented by row k's CSR segment. Set each pointer to the first entry of its list, or to that list's end marker when it is empty. While both pointers are within their lists, compare their current indices. If they are equal, call their common value j and update Wij←Wij−WikWkj and advance both pointers once. If the current index in R is smaller, advance only its pointer once; if the current index in C is smaller, advance only its pointer once, making no arithmetic update in either unequal-index branch. Stop when either pointer passes the end of its list. Do not skip a matching slot when a current work value is zero.

After all such k have been processed in row i, if Wii=0, return zero-pivot(i). Otherwise the upper row entries Uij are the current Wij for (i,j)∈P and j≥i. Continue to the next row.

If every row completes, return ok with the unit-lower factor L (stored strict-lower entries Lik=Wik for (i,k)∈P) and the upper factor U (stored entries Uij=Wij for (i,j)∈P, j≥i). Both factors use only positions in P; the diagonal of L is implicit, and all other unstored off-diagonal entries are zero. The numeric values remain stored at their structural slots if an update makes a value zero.

For a successful factor pair and r∈Fn, apply the preconditioner as follows. For i=1,…,n in order, initialize yi:=ri and, for each k<i with (i,k)∈P in increasing order, update yi:=yi−Likyk. Then for i=n,n−1,…,1, initialize xi:=yi; for each k>i with (i,k)∈P in decreasing order, update xi:=xi−Uikxk; finally set xi:=xi/Uii. Visit every such stored factor slot exactly once, including slots whose current factor value is zero. These are the forward and backward substitution recurrences, with their sums traversed only over stored strict-triangular slots. The pivot checks ensure every denominator in this application is nonzero. This procedure defines setup and application only; it asserts no factorization identity A=LU, Krylov convergence, conditioning improvement, or accuracy guarantee.

TheoremStatement: AI-adaptedProof: AI-generatedjudge pass (gpt-6-luna)Open item page →

ILU(0) factor slots, setup work, and application work

Statement

Let F be a field, n≥1, and A∈Mn(F) have a valid canonical CSR record with strictly increasing column indices in each row. Let P={(i,j):aij≠0} and s=nnz⁡(A). 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 PL={(i,k)∈P:i>k},PU={(k,j)∈P:k≤j}, and put ℓ=∣PL∣, q=∣PU∣, and u=q−n. The stored strict-lower slots of L are exactly PL, and the stored slots of U are exactly PU; the unit diagonal of L is implicit. Thus the factors use exactly ℓ+q=s numeric slots. Here a factor's stored-slot count retains a slot even if an update makes its value zero.

For each (i,k)∈PL, let Rik={j>k:(i,j)∈P},Ck={j>k:(k,j)∈P}, and set I=∑(i,k)∈PL∣Rik∩Ck∣ and J=∑(i,k)∈PL(∣Rik∣+∣Ck∣). On a successful setup, the factorization performs exactly ℓ divisions, I multiplications, and I subtractions. The two-pointer merges perform at most J column-index comparisons, in addition to one validation visit for each of the n row intervals and the s stored entries.

Applying a successful factor pair to one vector by the specified two triangular solves performs exactly ℓ+u=s−n multiplications, s−n subtractions, and n 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 L and U; it does not assert that the product LU has support contained in P.

Facts & Assumptions

Given: A field F, a canonical sorted CSR record for A∈Mn(F) with n≥1, and a successful run of the fixed-pattern ILU(0) algorithm.

[A1]

Field: every nonzero field element has a multiplicative inverse, so division by a checked nonzero pivot is defined.

[F1]

Fixed-pattern ILU(0) factorization and application: the returned L and U 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.

[F2]

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 s=nnz⁡(A).

[F3]

Forward and backward substitution for triangular linear systems: for lower-triangular L with nonzero diagonal, forward substitution uses xi=ℓii−1(bi−∑j<iℓijxj).

[F4]

Forward and backward substitution for triangular linear systems: for upper-triangular U with nonzero diagonal, backward substitution uses xi=uii−1(bi−∑j>iuijxj).

[F5]

Forward and backward substitution are correct, unique, and quadratic in scalar operations: when L is lower triangular with nonzero diagonal, forward substitution produces the unique solution of Lx=b.

[F6]

Forward and backward substitution are correct, unique, and quadratic in scalar operations: when U is upper triangular with nonzero diagonal, backward substitution produces the unique solution of Ux=b.

Proof

1.1givenA1F1F2algebra

The input has finite arrays and n is finite. Validation visits the n row intervals and s stored entries once; the factorization loops over at most n 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.

2.1F1step 1.1

If the procedure returns ok, each processed pivot is nonzero by its check, so the returned U has nonzero diagonal. The definition sets L to be unit lower triangular and retains only upper entries in U.

3.1F1F2step 2.1induction

Initially the work values occupy exactly the input slots P. Each multiplier is written only at a strict-lower slot in PL, and each update is performed only when both matching row positions are in P. No update allocates a new position. Induction over the finite row and pivot loops therefore gives stored patterns PL and PU for L and U, respectively.

3.2F1F3F4F5F6step 2.1

The forward recurrence in [F3] applied to unit-lower L and the backward recurrence in [F4] applied to U are well-defined because Lii=1 and every Uii≠0. By [F5] and [F6] they produce the unique successive triangular-solve outputs specified by the algorithm.

4.1F2step 3.1algebra

The sets PL and PU are disjoint and partition P: every (i,j)∈P has exactly one of i>j or i≤j. Hence ℓ+q=∣P∣=s. Since the unit diagonal of L is implicit, this is exactly the factor numeric-slot count.

4.2F1step 3.1algebra

On success, the outer lower-pattern loop processes every one of the ℓ positions once and performs one division there. For a fixed (i,k)∈PL, the update loop visits exactly the indices in Rik∩Ck; each visit performs one multiplication and one subtraction. Summing these counts gives exactly ℓ divisions and I multiplications and subtractions.

5.1F1F2step 4.2algebra

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, ∣Rik∣+∣Ck∣, comparisons. Summing over PL gives the bound J; validation visits each row interval and stored entry once.

6.1F1F3F4step 4.1algebra∎

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 u of each, and one division for each of its n rows. Since ℓ+u=ℓ+q−n=s−n, the stated application counts follow.

AlgorithmAlgorithm: Literature-sourcedProof: Not applicablejudge pass (gpt-6-luna)Open item page →

Flexible GMRES with variable right preconditioning

Definition

Let n,m∈N with n,m≥1 (The natural numbers N (von Neumann)), let A∈Mn(C) (The vector space Mm×n(F):=F m×n of m by n matrices over a field, with entrywise operations), and let b,x0∈Cn. The complex scalars form a field (C=R[x]/(x2+1) is a field, every element is uniquely a+bi, and every nonzero element has inverse (a−bi)/(a2+b2)). As additional input, take maps P1,…,Pm:Cn→Cn. The maps may vary with j; no linearity or fixedness is assumed. In the usual matrix case, Pj(v)=Mj−1v for an invertible Mj (Invertible matrices and the general linear group GL⁡n(F)). Equip each coordinate space Cq used below with the standard Hermitian inner product ⟨z,w⟩=∑a<qzawa‾ and its induced Euclidean norm ∥z∥2=⟨z,z⟩ (The standard formulas ⟨x,y⟩=∑k<nxkyk on Rn and ∑k<nxkyk‾ on Cn are inner products, The norm ∥v∥=⟨v,v⟩ induced by a real or complex inner product). All arithmetic and orthogonalization are exact. Iteration and auxiliary Hessenberg labels below start at 1; coordinates of A and ambient vectors retain the library's zero-based convention.

The algorithm uses and stores each actual zj and makes no fixed-matrix assumption.

Set r0=b−Ax0 and β=∥r0∥2. If β=0, return initial-solution($x_0$). Otherwise set v1=r0/β. For j=1,…,m, perform:

  1. Obtain zj=Pj(vj) and set w:=Azj.
  2. For i=1,…,j in order, set hij:=⟨w,vi⟩,w:=w−hijvi.
  3. Set hj+1,j:=∥w∥2. If hj+1,j=0, return breakdown($j,x_{j-1}$) with the last fully formed iterate (for j=1 it is x0); do not normalize or claim a new iterate at this step.
  4. If hj+1,j>0, set vj+1:=w/hj+1,j. Let e0∈Cj+1 be the standard unit vector at coordinate 0 (coordinate 0 is 1 and all other coordinates are 0; The standard list e:n→Fn with ei(i)=1F and ei(j)=0F for j≠i is an ordered basis of Fn; hence dim⁡FFn=n, and F0 is the zero space with basis ∅ and dimension 0). The iteration labels hik remain one-based, while matrix slots are zero-based: put Zj∈Mn×j(C) with (Zj)a,k−1=(zk)a for 0≤a<n, 1≤k≤j, and let Hˉj∈M(j+1)×j(C) satisfy (Hˉj)i−1,k−1=hik for 1≤k≤j, 1≤i≤k+1, and (Hˉj)a,b=0 when a>b+1. Choose any yj∈argmin⁡y∈Cj∥βe0−Hˉjy∥2 and set xj:=x0+Zjyj.

If all m steps complete without breakdown, return budget-complete($m,x_m,Z_m$). The finite-dimensional least-squares minimizer exists because each coordinate space Cq is finite-dimensional by The standard list e:n→Fn with ei(i)=1F and ei(j)=0F for j≠i is an ordered basis of Fn; hence dim⁡FFn=n, and F0 is the zero space with basis ∅ and dimension 0, and the least-squares theorem For a linear map T:V→W between finite-dimensional inner-product spaces, x minimises ∥Tx−b∥ if and only if T∗(Tx−b)=0, equivalently T∗Tx=T∗b; minimisers exist and any two differ by an element of ker⁡T applies; the output relation permits any minimizer. The algorithm has no convergence test: budget-complete and breakdown assert neither convergence nor that a breakdown iterate solves Ax=b. The residual-minimization property over the actual span of the zj is proved separately in Flexible GMRES minimizes over the actual preconditioned-vector span. Every division is by a positive real norm: the initial β=0 case returns before normalizing r0, and each later hj+1,j=0 case returns before normalizing w.

TheoremStatement: Literature-sourcedProof: AI-generatedOpen item page →

Flexible GMRES minimizes over the actual preconditioned-vector span

Statement

Let A∈Mn(C) and b,x0∈Cn, with the standard Hermitian inner product and induced Euclidean norm. Suppose the algorithm Flexible GMRES with variable right preconditioning completes m≥1 steps without breakdown, producing Zm=[z1,…,zm] and Hˉm. Define β=∥b−Ax0∥2, let e0∈Cm+1 be the standard unit vector at coordinate 0, and define Vm+1∈Mn×(m+1)(C) by (Vm+1)a,i−1=(vi)a for 0≤a<n, 1≤i≤m+1. The one-based column label i therefore occupies zero-based matrix column i−1. The matrices Zm and Hˉm use the algorithm's one-based-to-zero-based slot mapping. Then AZm=Vm+1Hˉm, and every y∈Cm satisfies b−A(x0+Zmy)=Vm+1(βe0−Hˉmy),∥b−A(x0+Zmy)∥2=∥βe0−Hˉmy∥2. Consequently every least-squares minimizer ym in the algorithm produces a true-residual minimizer xm=x0+Zmym over x0+span⁡{z1,…,zm}. Moreover, Hˉm has full column rank, so its least-squares minimizer is unique. The result makes no fixed-preconditioner spectral or convergence claim.

Facts & Assumptions

Given: A system Ax=b, an initial vector x0, and a completed m-step run of the variable-right-preconditioned flexible GMRES algorithm with no breakdown.

[F1]

Flexible GMRES with variable right preconditioning: the initialization sets r0=b−Ax0, β=∥r0∥2, and, when β≠0, v1=r0/β.

[F2]

Flexible GMRES with variable right preconditioning: each column starts with w=Azj; the ordered updates use hij=⟨w,vi⟩ and w:=w−hijvi; after them hj+1,j=∥w∥2, and a positive value normalizes vj+1=w/hj+1,j.

[F3]

Flexible GMRES with variable right preconditioning: in zero-based matrix coordinates, column k−1 of Zj is zk, and (Hˉj)i−1,k−1=hik for 1≤k≤j, 1≤i≤k+1; (Hˉj)a,b=0 when a>b+1, and the algorithm minimizes ∥βe0−Hˉjy∥2.

[F4]

The standard formulas ⟨x,y⟩=∑k<nxkyk on Rn and ∑k<nxkyk‾ on Cn are inner products: on each Cq, ⟨z,w⟩=∑k<qzkwk‾ is an inner product, linear in its first argument.

[F5]

The norm ∥v∥=⟨v,v⟩ induced by a real or complex inner product: the induced norm is ∥v∥2=⟨v,v⟩.

[F6]

Rectangular matrix multiplication and the identity matrix In, including zero-sized shapes: matrix multiplication is defined by the finite coordinate sums, so its columns act linearly on vectors.

[F9]

span⁡(S) is exactly the set of linear combinations of finite lists of elements of S, and span⁡(∅)={0V}: a vector belongs to span⁡(S) exactly when it is a finite linear combination of elements of S.

[F10]
[F11]

The standard list e:n→Fn with ei(i)=1F and ei(j)=0F for j≠i is an ordered basis of Fn; hence dim⁡FFn=n, and F0 is the zero space with basis ∅ and dimension 0: for every q∈N, Cq has the standard basis indexed by i<q and is finite-dimensional; when q≥1, its standard unit vector at coordinate 0 has value 1 there and 0 elsewhere.

Proof

1.1givenF1F2F4F5algebrainduction

Since this run reaches the first step, [F1] gives r0≠0 and β=⟨r0,r0⟩>0. Since β is real, ⟨r0/β,r0/β⟩=β−2⟨r0,r0⟩=1, so v1 has norm 1. Inductively suppose v1,…,vj are orthonormal. At the ith Gram–Schmidt substep, the current vector w is orthogonal to vk for k<i. The update w′:=w−hijvi, with hij=⟨w,vi⟩, satisfies ⟨w′,vi⟩=hij−hij⟨vi,vi⟩=0 and ⟨w′,vk⟩=⟨w,vk⟩−hij⟨vi,vk⟩=0 for each k<i. These equalities use linearity in the first argument and orthonormality [F4]. After all i=1,…,j, the final w is orthogonal to every current basis vector. Nonbreakdown gives hj+1,j=∥w∥2>0; the same inner-product calculation gives ⟨vj+1,vj+1⟩=hj+1,j−2⟨w,w⟩=1, and its orthogonality follows from that of w. Induction proves orthonormality through vm+1.

1.2givenF2F3F6F7F10F11algebra

The finite matrix Hˉm defines a linear map Cm→Cm+1 between finite-dimensional inner-product spaces by [F6], [F10], and [F11]. By [F7], least-squares minimizers exist and any two differ by an element of ker⁡Hˉm. This kernel is zero: if Hˉmy=0, its zero-based last row a=m gives hm+1,mym−1=0, hence ym−1=0. For each one-based row label r=m,m−1,…,2 in descending order, matrix row r−1 has coefficient hr,r−1 in column r−2; its other possibly nonzero terms use coordinates yk−1 with k≥r, already shown zero. Thus hr,r−1yr−2=0. Since hr,r−1=h(r−1)+1,r−1>0 by no breakdown, we obtain yr−2=0. Thus every zero-based coordinate vanishes, Hˉm is injective, and its least-squares minimizer is unique.

1.3F2F3F6F10algebra

At the end of column j, the successive subtractions give Azj=∑i=1jhijvi+w. Since w=hj+1,jvj+1, this is Azj=∑i=1j+1hijvi. Assembling these column identities for j=1,…,m yields AZm=Vm+1Hˉm.

2.1givenF1F6F10F11step 1.3algebra

The initial residual is r0=b−Ax0=βv1. The vector e0 has value 1 in coordinate 0 and 0 in every other coordinate by [F11], so Vm+1βe0=βv1. For any y∈Cm, linearity and step 1.3 give b−A(x0+Zmy)=r0−AZmy=Vm+1(βe0−Hˉmy).

3.1F4F5step 1.1step 2.1algebra

For every c∈Cm+1, orthonormality from step 1.1 and the coordinate inner product [F4] give ∥Vm+1c∥22=⟨Vm+1c,Vm+1c⟩=∑i=1m+1∑k=1m+1ci−1ck−1‾⟨vi,vk⟩=∑i=1m+1∣ci−1∣2=∥c∥22. Taking the nonnegative square roots defined by [F5] proves norm preservation. Apply it to c=βe0−Hˉmy in step 2.1 to obtain the asserted norm identity.

4.1step 1.2step 3.1F3F6F8F9F10F11∎

Put S={z1,…,zm}. By [F9], write any u∈span⁡(S) as u=∑a<qcava with va∈S. For each of the finitely many indices a<q, choose ja∈{1,…,m} with va=zja; successive finite induction supplies this list. Set y(0)=0∈Cm and, for a<q, set y(a+1)=y(a)+caeja−1, where eja−1 is the standard coordinate vector. By [F3], [F6], and [F11], Zmeja−1=zja; the matrix-product coordinate formula and field distributivity then give by induction on a that Zmy(a)=∑t<actzjt. Hence u=Zmy(q), so span⁡(S) is contained in the range of Zm. Conversely, [F3] and [F6] give Zmy=∑k=1myk−1zk for every y∈Cm, so Zmy∈span⁡(S) by [F8] and [F9]. Thus the range of Zm is exactly span⁡(S). By step 3.1, each vector in this affine set has true-residual norm ∥βe0−Hˉmy∥2. Therefore the unique least-squares minimizer from step 1.2 gives xm=x0+Zmym with minimum true residual over the whole affine span.

5 · Examples, counterexamples and false statements

None yet.

Sources