OAI/Geometry/EinsteinFour/DirichletFactorization.lean
12 declarations, 0 contain sorry, 0 declared as axioms
The tridiagonal Jacobi matrix and its ordered Schur pivots.
- def
OAI.PositiveEinsteinFour.Jacobi.dirichletMatrixline 14Source documentation
The Dirichlet matrix with diagonal blocks
Dand both off-diagonals-1.def dirichletMatrix {N : ℕ} (D : Fin N → NormalMatrix) : Matrix (Fin 3 × Fin N) (Fin 3 × Fin N) ℝ := fun i j => … - def
OAI.PositiveEinsteinFour.Jacobi.pivotDiagonalline 22Source documentation
The diagonal determined by the pivots. The predecessor sum has at most one term; its use also covers the first node without a separate convention.
def pivotDiagonal {N : ℕ} (S : Fin N → NormalMatrix) (i : Fin N) : NormalMatrix := … - theorem
OAI.PositiveEinsteinFour.Jacobi.blockAt_lowerline 25 - theorem
OAI.PositiveEinsteinFour.Jacobi.blockAt_dirichletline 33 - theorem
OAI.PositiveEinsteinFour.Jacobi.pivot_left_blockline 42 - theorem
OAI.PositiveEinsteinFour.Jacobi.pivot_right_blockline 53 - theorem
OAI.PositiveEinsteinFour.Jacobi.pivot_summandline 64 - theorem
OAI.PositiveEinsteinFour.Jacobi.pivot_factorization_blocksline 77Source documentation
The precise block formula before the predecessor sums are collapsed.
theorem pivot_factorization_blocks {N : ℕ} (S : Fin N → NormalMatrix) (hunit : ∀ k, IsUnit (S k).det) (hsym : ∀ k, (S k).transpose = S k) (i j : Fin N) : blockAt (lowerBidiagonal (fun k => -(S k)⁻¹) * Matrix.blockDiagonal S * (lowerBidiagonal (fun k => -(S k)⁻¹)).transpose) i j = (∑ k, if i = k ∧ j = k then S k else 0) + (∑ k, if i = k ∧ k.val + 1 = j.val then -1 else 0) + (∑ k, if j = k ∧ k.val + 1 = i.val then -1 else 0) + (∑ k, if k.val + 1 = i.val ∧ k.val + 1 = j.val then (S k)⁻¹ else 0) := by …Mentions: OAI.PositiveEinsteinFour.Jacobi.NormalMatrix, OAI.PositiveEinsteinFour.Jacobi.blockAt, OAI.PositiveEinsteinFour.Jacobi.lowerBidiagonal
- theorem
OAI.PositiveEinsteinFour.Jacobi.pivot_sum_collapseline 90 - theorem
OAI.PositiveEinsteinFour.Jacobi.dirichlet_pivot_factorizationline 118Source documentation
The full tridiagonal matrix is the
L D Lᵀfactorization of its Schur pivots, with neither time ordering nor matrix multiplication commuted.theorem dirichlet_pivot_factorization {N : ℕ} (S : Fin N → NormalMatrix) (hunit : ∀ k, IsUnit (S k).det) (hsym : ∀ k, (S k).transpose = S k) : dirichletMatrix (pivotDiagonal S) = lowerBidiagonal (fun k => -(S k)⁻¹) * Matrix.blockDiagonal S * (lowerBidiagonal (fun k => -(S k)⁻¹)).transpose := by …Mentions: OAI.PositiveEinsteinFour.Jacobi.NormalMatrix, OAI.PositiveEinsteinFour.Jacobi.dirichletMatrix, OAI.PositiveEinsteinFour.Jacobi.pivotDiagonal, OAI.PositiveEinsteinFour.Jacobi.lowerBidiagonal
- theorem
OAI.PositiveEinsteinFour.Jacobi.det_dirichlet_pivotsline 131 - theorem
OAI.PositiveEinsteinFour.Jacobi.dirichlet_pivots_posDefline 136