Documentation

LeanPool.Feige.ChainInsertion

Inserting a new coordinate into a maximal chain #

Let σ encode a maximal chain on Fin n, and let J : Fin (n + 1) be an insertion rank. We identify the old ground set with the first n elements of Fin (n + 1) and use Fin.last n for the new element. Before rank J the new chain is the lifted old chain; after rank J it is the lifted old chain with the new element adjoined. These are the two cases of the inserted-chain construction used in the proof of Theorem 2.1.

def Feige.liftChainState {n : } (S : Finset (Fin n)) :
Finset (Fin (n + 1))

Lift a Boolean-lattice state to the enlarged ground set.

Equations
Instances For
    @[simp]
    theorem Feige.mem_liftChainState {n : } (S : Finset (Fin n)) (i : Fin n) :
    @[simp]
    def Feige.insertChainPerm {n : } (σ : Equiv.Perm (Fin n)) (J : Fin (n + 1)) :
    Equiv.Perm (Fin (n + 1))

    The enlarged permutation obtained by inserting the new element Fin.last n at rank J and retaining the relative order σ on old elements.

    Equations
    Instances For
      @[simp]
      theorem Feige.insertChainPerm_at {n : } (σ : Equiv.Perm (Fin n)) (J : Fin (n + 1)) :
      @[simp]
      theorem Feige.insertChainPerm_succAbove {n : } (σ : Equiv.Perm (Fin n)) (J : Fin (n + 1)) (i : Fin n) :
      (insertChainPerm σ J) (J.succAbove i) = (σ i).castSucc
      @[simp]
      theorem Feige.insertChainPerm_symm_last {n : } (σ : Equiv.Perm (Fin n)) (J : Fin (n + 1)) :
      @[simp]
      theorem Feige.insertChainPerm_symm_castSucc {n : } (σ : Equiv.Perm (Fin n)) (J : Fin (n + 1)) (i : Fin n) :
      def Feige.insertedChainState {n : } (σ : Equiv.Perm (Fin n)) (J : Fin (n + 1)) (j : Fin (n + 2)) :
      Finset (Fin (n + 1))

      The states of the enlarged maximal chain, written directly in the two cases before and after the insertion rank.

      Equations
      Instances For
        theorem Feige.insertedChainState_before {n : } (σ : Equiv.Perm (Fin n)) (J r : Fin (n + 1)) (hr : r J) :

        The enlarged chain state before the insertion rank.

        theorem Feige.insertedChainState_after {n : } (σ : Equiv.Perm (Fin n)) (J r : Fin (n + 1)) (hr : J r) :

        After the insertion rank, the new state consists of the corresponding old state together with the inserted element.

        @[simp]
        theorem Feige.insertedChainState_zero {n : } (σ : Equiv.Perm (Fin n)) (J : Fin (n + 1)) :
        @[simp]
        theorem Feige.insertedChainState_last {n : } (σ : Equiv.Perm (Fin n)) (J : Fin (n + 1)) :
        @[simp]
        theorem Feige.card_insertedChainState {n : } (σ : Equiv.Perm (Fin n)) (J : Fin (n + 1)) (j : Fin (n + 2)) :
        (insertedChainState σ J j).card = j

        Before the insertion rank, insertChainPerm produces the lifted old chain state.

        theorem Feige.chainState_insertChainPerm_after {n : } (σ : Equiv.Perm (Fin n)) (J r : Fin (n + 1)) (hr : J r) :

        After the insertion rank, insertChainPerm produces the lifted old chain state with the new coordinate adjoined.

        The direct inserted-state formula agrees at every level with the maximal chain encoded by the inserted permutation.