Documentation

LeanPool.HighContrastHomogenization.Support.Sobolev.Foundations.CubeReflection.Folding.Geometry

Coarse-graining support: Support.Sobolev.Foundations.CubeReflection.Folding.Geometry #

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

The three-cube slab obtained by adjoining both same-coordinate face neighbors to Q.

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

    The open block obtained by allowing each coordinate to lie in the lower neighbor strip, the original cube strip, or the upper neighbor strip.

    This is the all-coordinate target for iterating the one-coordinate reflection argument. It excludes the internal reflecting faces, which are null sets for the later weak-form argument.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      def HCPolySupport.cubeFaceReflectionCellCoordSet {d : ℕ} (Q : TriadicCube d) (choice : Fin 3) (i : Fin d) :
      Set (Vec d)

      One coordinate strip of the all-coordinate reflection block. The choice 0 is the lower neighbor strip, 1 is the original cube strip, and 2 is the upper neighbor strip.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        def HCPolySupport.cubeFaceReflectionCellSet {d : ℕ} (Q : TriadicCube d) (choice : Fin d → Fin 3) :
        Set (Vec d)

        A 3^d cell of the all-coordinate reflection block, with an independent lower/original/upper strip choice in every coordinate.

        Equations
        Instances For

          Integer shift associated to a reflection cell coordinate choice: lower/original/upper corresponds to -1/0/1.

          Equations
          Instances For

            The translated cube represented by a 3^d reflection-block cell.

            Equations
            Instances For

              A reflection-block cell is exactly the open translated triadic cube with coordinate shifts -1/0/1 prescribed by its choices.

              noncomputable def HCPolySupport.cubeCoordinateFold {d : ℕ} (Q : TriadicCube d) (x : Vec d) :
              Vec d

              Coordinatewise fold from the all-coordinate reflection block back toward the original cube. Below the lower face it reflects through the lower face, inside the cube it is the identity, and above the upper face it reflects through the upper face.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                noncomputable def HCPolySupport.cubeCoordinateFoldSign {d : ℕ} (Q : TriadicCube d) (x : Vec d) (i : Fin d) :

                Sign contributed to a vector component by the coordinatewise fold. The component changes sign exactly when that coordinate was reflected through one of the two faces.

                Equations
                Instances For
                  noncomputable def HCPolySupport.cubeCoordinateFoldReflectedScalar {d : ℕ} (Q : TriadicCube d) (F : Vec d → ℝ) :
                  Vec d → ℝ

                  Scalar field pulled back by the all-coordinate fold.

                  Equations
                  Instances For
                    noncomputable def HCPolySupport.cubeCoordinateFoldReflectedVectorField {d : ℕ} (Q : TriadicCube d) (G : Vec d → Vec d) :
                    Vec d → Vec d

                    Vector field pulled back by the all-coordinate fold with the reflection sign in each component.

                    Equations
                    Instances For
                      noncomputable def HCPolySupport.cubeFaceReflectionCellFoldMap {d : ℕ} (Q : TriadicCube d) (choice : Fin d → Fin 3) :
                      Vec d → Vec d

                      The affine fold map associated to one reflection-block cell. It is the same as cubeCoordinateFold on that cell, but has no x-dependent branching.

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

                        Linear part of the affine fold map associated to a reflection-block cell: original-coordinate choices have sign +1, reflected choices have sign -1.

                        Equations
                        Instances For
                          @[simp]
                          theorem HCPolySupport.cubeFaceReflectionCellFoldLinear_apply {d : ℕ} (choice : Fin d → Fin 3) (v : Vec d) (i : Fin d) :
                          (cubeFaceReflectionCellFoldLinear choice) v i = if choice i = 1 then v i else -v i
                          noncomputable def HCPolySupport.cubeFaceReflectionCellFoldHomeomorph {d : ℕ} (Q : TriadicCube d) (choice : Fin d → Fin 3) :

                          The affine fold map associated to a reflection cell, as a homeomorphism. Its inverse is itself.

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

                            The affine fold map associated to a reflection cell is smooth.

                            theorem HCPolySupport.contDiff_comp_cubeFaceReflectionCellFoldMap {d : ℕ} (Q : TriadicCube d) (choice : Fin d → Fin 3) {φ : Vec d → ℝ} (hφ : ContDiff ℝ (↑⊤) φ) :
                            ContDiff ℝ ↑⊤ fun (x : Vec d) => φ (cubeFaceReflectionCellFoldMap Q choice x)

                            Smoothness of a compact-test function is preserved by precomposition with the affine fold map of a reflection cell.

                            The Fréchet derivative of a reflection-cell fold map is its diagonal linear reflection part.

                            theorem HCPolySupport.euclideanGradient_comp_cubeFaceReflectionCellFoldMap {d : ℕ} {φ : Vec d → ℝ} (hφ : ContDiff ℝ (↑⊤) φ) (Q : TriadicCube d) (choice : Fin d → Fin 3) (x : Vec d) :

                            Chain rule for gradients after precomposing a smooth test with a reflection-cell fold map.

                            theorem HCPolySupport.euclideanCoordDeriv_comp_cubeFaceReflectionCellFoldMap {d : ℕ} {u : Vec d → ℝ} (hu : ContDiff ℝ (↑⊤) u) (Q : TriadicCube d) (choice : Fin d → Fin 3) (k : Fin d) (x : Vec d) :
                            euclideanCoordDeriv k (fun (y : Vec d) => u (cubeFaceReflectionCellFoldMap Q choice y)) x = (if choice k = 1 then 1 else -1) * euclideanCoordDeriv k u (cubeFaceReflectionCellFoldMap Q choice x)

                            Coordinate derivative chain rule for precomposition with a reflection-cell fold map.

                            theorem HCPolySupport.euclideanCoordSecondDeriv_comp_cubeFaceReflectionCellFoldMap {d : ℕ} {u : Vec d → ℝ} (hu : ContDiff ℝ (↑⊤) u) (Q : TriadicCube d) (choice : Fin d → Fin 3) (k l : Fin d) (x : Vec d) :
                            euclideanCoordSecondDeriv k l (fun (y : Vec d) => u (cubeFaceReflectionCellFoldMap Q choice y)) x = ((if choice k = 1 then 1 else -1) * if choice l = 1 then 1 else -1) * euclideanCoordSecondDeriv k l u (cubeFaceReflectionCellFoldMap Q choice x)

                            Second coordinate-derivative chain rule for precomposition with a reflection-cell fold map. Each reflected coordinate contributes one sign.

                            theorem HCPolySupport.euclideanCoordSecondDeriv_diag_comp_cubeFaceReflectionCellFoldMap {d : ℕ} {u : Vec d → ℝ} (hu : ContDiff ℝ (↑⊤) u) (Q : TriadicCube d) (choice : Fin d → Fin 3) (k : Fin d) (x : Vec d) :

                            Diagonal second derivatives are invariant under a reflection-cell fold.

                            The coordinate Laplacian is invariant under a reflection-cell fold.

                            theorem HCPolySupport.sum_sq_euclideanCoordSecondDeriv_comp_cubeFaceReflectionCellFoldMap {d : ℕ} {u : Vec d → ℝ} (hu : ContDiff ℝ (↑⊤) u) (Q : TriadicCube d) (choice : Fin d → Fin 3) (x : Vec d) :
                            ∑ k : Fin d, ∑ l : Fin d, euclideanCoordSecondDeriv k l (fun (y : Vec d) => u (cubeFaceReflectionCellFoldMap Q choice y)) x ^ 2 = ∑ k : Fin d, ∑ l : Fin d, euclideanCoordSecondDeriv k l u (cubeFaceReflectionCellFoldMap Q choice x) ^ 2

                            The pointwise squared Hessian sum is invariant under a reflection-cell fold.

                            theorem HCPolySupport.hasCompactSupport_comp_cubeFaceReflectionCellFoldMap {d : ℕ} (Q : TriadicCube d) (choice : Fin d → Fin 3) {φ : Vec d → ℝ} (hφ : HasCompactSupport φ) :
                            HasCompactSupport fun (x : Vec d) => φ (cubeFaceReflectionCellFoldMap Q choice x)

                            Compact support of a test function is preserved by precomposition with the affine fold map of a reflection cell.

                            The cell fold map carries exactly its associated reflection-block cell onto the original open cube.

                            Change variables from a reflection-block cell to the original open cube using the cell fold map.

                            Integrability transports from the original open cube to a reflection-block cell by precomposition with the cell fold map.