Documentation

LeanPool.BooleanIsoperimetry.Cube

Boolean cube basics #

This file defines Boolean-cube vertices, Hamming distance, closed neighborhoods, simplicial order, initial segments, slicing maps, and the Harper boundary function H.

@[reducible, inline]

A vertex of the n-dimensional Boolean cube, represented by its active coordinates.

Equations
Instances For
    noncomputable def BooleanIsoperimetry.hDist {n : } (x y : Cube n) :

    The Hamming distance between two Boolean-cube vertices.

    Equations
    Instances For
      noncomputable def BooleanIsoperimetry.neighborhood {n : } (r : ) (A : Finset (Cube n)) :

      The closed Hamming r-neighborhood of a family of cube vertices.

      Equations
      Instances For
        @[simp]
        theorem BooleanIsoperimetry.mem_neighborhood_iff {n r : } {A : Finset (Cube n)} {v : Cube n} :
        v neighborhood r A uA, hDist u v r
        noncomputable def BooleanIsoperimetry.hammingBall {n : } (r : ) :

        The closed Hamming ball of radius r centered at the origin.

        Equations
        Instances For
          noncomputable def BooleanIsoperimetry.cubeToNat {n : } (x : Cube n) :

          The binary encoding used to break ties in the simplicial order.

          Equations
          Instances For

            The non-strict simplicial order: first by weight, then by reverse binary order.

            Equations
            Instances For

              The strict simplicial order on Boolean-cube vertices.

              Equations
              Instances For
                theorem BooleanIsoperimetry.sum_pow_two_lt (n : ) :
                iFinset.range n, 2 ^ i < 2 ^ n
                theorem BooleanIsoperimetry.cubeToNat_inj {n : } {x y : Cube n} (h : cubeToNat x = cubeToNat y) :
                x = y
                theorem BooleanIsoperimetry.simplicialLe_trans {n : } (a b c : Cube n) (hab : simplicialLe a b) (hbc : simplicialLe b c) :
                theorem BooleanIsoperimetry.simplicialLe_antisymm {n : } (a b : Cube n) (hab : simplicialLe a b) (hba : simplicialLe b a) :
                a = b
                noncomputable def BooleanIsoperimetry.rank {n : } (x : Cube n) :

                The zero-based position of a vertex in the simplicial order.

                Equations
                Instances For
                  noncomputable def BooleanIsoperimetry.simplicialInitSeg (n k : ) :

                  The first k vertices of the n-cube in simplicial order.

                  Equations
                  Instances For
                    noncomputable def BooleanIsoperimetry.embed0 {n : } (x : Cube n) :
                    Cube (n + 1)

                    Embed an n-cube vertex in dimension n + 1 with last coordinate zero.

                    Equations
                    Instances For
                      noncomputable def BooleanIsoperimetry.embed1 {n : } (x : Cube n) :
                      Cube (n + 1)

                      Embed an n-cube vertex in dimension n + 1 with last coordinate one.

                      Equations
                      Instances For
                        noncomputable def BooleanIsoperimetry.slice0 {n : } (A : Finset (Cube (n + 1))) :

                        The lower slice of a family in dimension n + 1.

                        Equations
                        Instances For
                          noncomputable def BooleanIsoperimetry.slice1 {n : } (A : Finset (Cube (n + 1))) :

                          The upper slice of a family in dimension n + 1.

                          Equations
                          Instances For
                            noncomputable def BooleanIsoperimetry.H (n k : ) :

                            The size of the radius-one neighborhood of the simplicial initial segment of size k.

                            Equations
                            Instances For
                              theorem BooleanIsoperimetry.H_mono {n a b : } (h : a b) :
                              H n a H n b
                              theorem BooleanIsoperimetry.H_le_cube (n k : ) :
                              H n k 2 ^ n
                              theorem BooleanIsoperimetry.H_ge_self (n k : ) (hk : k 2 ^ n) :
                              k H n k
                              theorem BooleanIsoperimetry.H_full (n : ) :
                              H n (2 ^ n) = 2 ^ n
                              theorem BooleanIsoperimetry.card_initSeg_union {n a b : } (ha : a 2 ^ n) (hb : b 2 ^ n) :
                              theorem BooleanIsoperimetry.rank_mono {n : } {a b : Cube n} (h : simplicialLe a b) :
                              noncomputable def BooleanIsoperimetry.gShift {n : } (v : Cube n) :

                              Remove the least active coordinate, giving the lowest-rank vertex in the closed unit ball.

                              Equations
                              Instances For
                                theorem BooleanIsoperimetry.gShift_le_ball {n : } {u v : Cube n} (h : hDist u v 1) :
                                theorem BooleanIsoperimetry.cubeToNat_erase {n : } {x : Cube n} {a : Fin n} (ha : a x) :
                                theorem BooleanIsoperimetry.cubeToNat_lt_two_pow {n M : } {x : Cube n} (h : ix, i < M) :
                                cubeToNat x < 2 ^ M
                                theorem BooleanIsoperimetry.downwardClosed_eq_initSeg {n : } {S : Finset (Cube n)} (hS : ∀ (x y : Cube n), simplicialLe x yy Sx S) :

                                The sum of the first r binomial coefficients in row n.

                                Equations
                                Instances For

                                  The binomial coefficient immediately preceding layer r, with value zero at r = 0.

                                  Equations
                                  Instances For