Documentation

LeanPool.AnomalousDiffusion.Homogenization.Ambient.BlockMatrix

Block Matrix #

Support for the Armstrong–Vicol anomalous-diffusion formalization.

@[reducible, inline]

Coordinate indices for the two blocks of a doubled vector.

Equations
Instances For
    @[reducible, inline]

    Doubled vector represented by a function on the disjoint union of coordinate indices.

    Equations
    Instances For
      @[reducible, inline]

      Doubled matrix represented on the disjoint union of coordinate indices.

      Equations
      Instances For

        Flatten a pair of spatial vectors into a doubled coordinate vector.

        Equations
        Instances For

          Split a doubled coordinate vector into its two spatial blocks.

          Equations
          Instances For

            Flatten a block matrix into a matrix on doubled coordinate indices.

            Equations
            Instances For

              Split a doubled coordinate matrix into its four spatial matrix blocks.

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

                Entry of a block matrix indexed by the doubled coordinate set.

                Equations
                Instances For

                  Coordinate basis of the doubled vector space in block form.

                  Equations
                  Instances For

                    Symmetry of all entries of a block matrix under exchange of coordinate indices.

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

                          Exchange both input and output blocks of a block matrix.

                          Equations
                          Instances For

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

                            Equations
                            • One or more equations did not get rendered due to their size.
                            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 Homogenization.MatLoewnerLE.trans {d : ℕ} {A B C : Mat d} (hAB : MatLoewnerLE A B) (hBC : MatLoewnerLE B C) :
                                theorem Homogenization.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