Documentation

LeanPool.RegtsSevenster.RS.Novel.Coordinates.BlockSigma

The block sigma equivalence #

The block enumeration pairs a block index with an offset within the block to enumerate the concatenated total.

def RS.blockSigmaSplitFun (d : ℕ) (ds : List ℕ) :
(v : Fin (ds.length + 1)) × Fin ((d :: ds).get v) → Fin d ⊕ (w : Fin ds.length) × Fin (ds.get w)

Split the sigma over a cons list into head + tail.

Equations
Instances For
    def RS.blockSigmaSplitInv (d : ℕ) (ds : List ℕ) :
    Fin d ⊕ (w : Fin ds.length) × Fin (ds.get w) → (v : Fin (ds.length + 1)) × Fin ((d :: ds).get v)

    Inverse of the split.

    Equations
    Instances For
      def RS.blockSigmaSplit (d : ℕ) (ds : List ℕ) :
      (v : Fin (ds.length + 1)) × Fin ((d :: ds).get v) ≃ Fin d ⊕ (w : Fin ds.length) × Fin (ds.get w)

      The sigma over a cons list splits as head + tail.

      Equations
      Instances For
        noncomputable def RS.blockSigmaEquiv (ds : List ℕ) :
        (v : Fin ds.length) × Fin (ds.get v) ≃ Fin ds.sum

        The block enumeration: a block index and an offset within the block enumerate the concatenated total.

        Equations
        Instances For
          theorem RS.blockAssign_blockSigmaEquiv (ds : List ℕ) (p : (v : Fin ds.length) × Fin (ds.get v)) :

          The block enumeration lands in its own block.