Documentation

LeanPool.HighContrastHomogenization.Support.Ambient.BlockMatrix

Coarse-graining support: Support.Ambient.BlockMatrix #

Imported from the Apache-2.0 CoarseGraining development at commit c7ddd76c08ade64fed1b8d2ca51be14dfee8deb4.

@[reducible, inline]

Coordinates for two copies of the d-dimensional coordinate space.

Equations
Instances For
    @[reducible, inline]

    Real vectors indexed by the coordinates of both blocks.

    Equations
    Instances For
      @[reducible, inline]

      Real matrices indexed by the coordinates of both blocks.

      Equations
      Instances For

        Represent a pair of vectors as one vector indexed by the two blocks.

        Equations
        Instances For

          Split a vector indexed by both blocks into its two component vectors.

          Equations
          Instances For

            Represent the four blocks as a single matrix on block coordinates.

            Equations
            Instances For

              Extract the four component blocks of a matrix on block coordinates.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For

                The matrix entry selected by a pair of block coordinates.

                Equations
                Instances For

                  The standard basis vector in the specified component of a vector pair.

                  Equations
                  Instances For

                    Symmetry of all matrix entries under interchange of block coordinates.

                    Equations
                    Instances For
                      theorem HCPolySupport.vecDot_single_left {d : ℕ} (i : Fin d) (y : Vec d) :
                      vecDot (Pi.single i 1) y = y i
                      theorem HCPolySupport.vecDot_single_right {d : ℕ} (x : Vec d) (i : Fin d) :
                      vecDot x (Pi.single i 1) = x i
                      theorem HCPolySupport.matVecMul_single {d : ℕ} (A : Mat d) (j : Fin d) :
                      matVecMul A (Pi.single j 1) = fun (i : Fin d) => A i j
                      theorem HCPolySupport.add_matVecMul {d : ℕ} (A B : Mat d) (x : Vec d) :
                      matVecMul (A + B) x = matVecMul A x + matVecMul B x
                      theorem HCPolySupport.smul_matVecMul {d : ℕ} (c : ℝ) (A : Mat d) (x : Vec d) :
                      matVecMul (c • A) x = c • matVecMul A x
                      theorem HCPolySupport.neg_matVecMul {d : ℕ} (A : Mat d) (x : Vec d) :
                      theorem HCPolySupport.sub_matVecMul {d : ℕ} (A B : Mat d) (x : Vec d) :
                      matVecMul (A - B) x = matVecMul A x - matVecMul B x
                      theorem HCPolySupport.vecDot_zero_left {d : ℕ} (y : Vec d) :
                      vecDot 0 y = 0
                      theorem HCPolySupport.vecDot_comm {d : ℕ} (x y : Vec d) :
                      vecDot x y = vecDot y x
                      theorem HCPolySupport.matVecMul_add {d : ℕ} (A : Mat d) (x y : Vec d) :
                      matVecMul A (x + y) = matVecMul A x + matVecMul A y
                      theorem HCPolySupport.matVecMul_smul {d : ℕ} (A : Mat d) (c : ℝ) (x : Vec d) :
                      matVecMul A (c • x) = c • matVecMul A x
                      theorem HCPolySupport.matVecMul_neg {d : ℕ} (A : Mat d) (x : Vec d) :
                      theorem HCPolySupport.matVecMul_mul {d : ℕ} (A B : Mat d) (x : Vec d) :
                      matVecMul A (matVecMul B x) = matVecMul (A * B) x
                      theorem HCPolySupport.vecDot_add_left {d : ℕ} (x y z : Vec d) :
                      vecDot (x + y) z = vecDot x z + vecDot y z
                      theorem HCPolySupport.vecDot_add_right {d : ℕ} (x y z : Vec d) :
                      vecDot x (y + z) = vecDot x y + vecDot x z
                      theorem HCPolySupport.vecDot_smul_left {d : ℕ} (c : ℝ) (x y : Vec d) :
                      vecDot (c • x) y = c * vecDot x y
                      theorem HCPolySupport.vecDot_smul_right {d : ℕ} (x y : Vec d) (c : ℝ) :
                      vecDot x (c • y) = c * vecDot x y
                      theorem HCPolySupport.vecDot_neg_left {d : ℕ} (x y : Vec d) :
                      vecDot (-x) y = -vecDot x y
                      theorem HCPolySupport.vecDot_neg_right {d : ℕ} (x y : Vec d) :
                      vecDot x (-y) = -vecDot x y
                      theorem HCPolySupport.isUnit_det_smul {d : ℕ} {A : Mat d} (hdet : IsUnit (Matrix.det A)) {c : ℝ} (hc : c ≠ 0) :
                      theorem HCPolySupport.nonsing_inv_smul {d : ℕ} {A : Mat d} (c : ℝ) (hc : c ≠ 0) (hdet : IsUnit (Matrix.det A)) :
                      theorem HCPolySupport.basis_sum_pairing {d : ℕ} (M : Mat d) (i j : Fin d) :
                      vecDot (Pi.single i 1 + Pi.single j 1) (matVecMul M (Pi.single i 1 + Pi.single j 1)) = M i i + M i j + M j i + M j j

                      A block matrix acts linearly on doubled vectors.

                      Equations
                      Instances For

                        A block matrix acts continuously on doubled vectors. Continuity is automatic because the carrier is finite-dimensional.

                        Equations
                        Instances For

                          The block matrix obtained by exchanging the first and second blocks in both indices.

                          Equations
                          Instances For
                            def HCPolySupport.MatLoewnerLE {d : ℕ} (A B : Mat d) :

                            Löwner order on finite-dimensional real matrices, expressed through the quadratic form \frac12 x \cdot A x.

                            Equations
                            Instances For

                              Löwner order on doubled block matrices, expressed through the quadratic form \frac12 X \cdot \mathbf A X.

                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For
                                theorem HCPolySupport.MatLoewnerLE.trans {d : ℕ} {A B C : Mat d} (hAB : MatLoewnerLE A B) (hBC : MatLoewnerLE B C) :
                                theorem HCPolySupport.blockMat_ext {d : ℕ} {A B : BlockMat d} (hUL : A.upperLeft = B.upperLeft) (hUR : A.upperRight = B.upperRight) (hLL : A.lowerLeft = B.lowerLeft) (hLR : A.lowerRight = B.lowerRight) :
                                A = B