Documentation

LeanPool.HighContrastHomogenization.Support.Geometry.BoundaryLayer

Coarse-graining support: Support.Geometry.BoundaryLayer #

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

The geometric boundary of a half-open cube, encoded as the difference between the half-open realization and its open core.

Equations
Instances For
    def HCPolySupport.cubeShrunkSet {d : ℕ} (Q : TriadicCube d) (t : ℝ) :
    Set (Vec d)

    The cube obtained by shrinking each face inward by the normalized amount t. For t = 0 this recovers the original half-open cube.

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

      The boundary layer of thickness t, defined as the part of the cube left after removing the shrunk core.

      Equations
      Instances For
        @[simp]
        theorem HCPolySupport.mem_cubeShrunkSet_iff {d : ℕ} {Q : TriadicCube d} {t : ℝ} {x : Vec d} :
        x ∈ cubeShrunkSet Q t ↔ ∀ (i : Fin d), (↑(Q.index i) - 1 / 2 + t) * cubeScaleFactor Q ≤ x i ∧ x i < (↑(Q.index i) + 1 / 2 - t) * cubeScaleFactor Q
        @[simp]
        theorem HCPolySupport.center_mem_cubeShrunkSet_of_lt_half {d : ℕ} (Q : TriadicCube d) {t : ℝ} (ht : t < 1 / 2) :
        (fun (i : Fin d) => ↑(Q.index i) * cubeScaleFactor Q) ∈ cubeShrunkSet Q t
        theorem HCPolySupport.cubeSet_middleChild_subset_cubeShrunkSet {d : ℕ} (Q : TriadicCube d) {t : ℝ} (ht : t ≤ 1 / 3) :
        cubeSet { scale := Q.scale - 1, index := fun (i : Fin d) => 3 * Q.index i } ⊆ cubeShrunkSet Q t
        theorem HCPolySupport.cubeSet_childCube_subset_cubeShrunkSet_of_digits_eq_one {d : ℕ} (Q : TriadicCube d) (digits : Fin d → Fin 3) (hdigits : ∀ (i : Fin d), digits i = 1) {t : ℝ} (ht : t ≤ 1 / 3) :
        cubeSet { scale := Q.scale - 1, index := fun (i : Fin d) => 3 * Q.index i + ↑↑(digits i) - 1 } ⊆ cubeShrunkSet Q t
        theorem HCPolySupport.middleChild_mem_childCubes {d : ℕ} (Q : TriadicCube d) :
        { scale := Q.scale - 1, index := fun (i : Fin d) => 3 * Q.index i } ∈ childCubes Q
        theorem HCPolySupport.middleChild_mem_descendantsAtScale_pred {d : ℕ} (Q : TriadicCube d) :
        { scale := Q.scale - 1, index := fun (i : Fin d) => 3 * Q.index i } ∈ descendantsAtScale Q (Q.scale - 1)
        theorem HCPolySupport.cubeBoundaryLayer_subset_iUnion_childCubes_except_middle {d : ℕ} (Q : TriadicCube d) {t : ℝ} (ht : t ≤ 1 / 3) :
        cubeBoundaryLayer Q t ⊆ ⋃ R ∈ {S : TriadicCube d | S ∈ childCubes Q ∧ S ≠ { scale := Q.scale - 1, index := fun (i : Fin d) => 3 * Q.index i }}, cubeSet R