Documentation

Demazure.Avoiding321

def is_321a (τ : ) :

The 321-avoidance condition used in this file: every triple i < j < k has either τ i < τ j or τ j < τ k.

Equations
Instances For
    structure ASP321a.set_321a_prop (I : Set ( × )) :

    The abstract version of 321-avoidance for an ASP set: ASP-set axioms together with triangle-freeness.

    Instances For
      structure ASP321a.tfasextends AspSet :

      A triangle-free ASP set.

      Instances For
        theorem ASP321a.is_asp_of_is_321a (τ : ) (h_bij : Function.Bijective τ) (h_321a : is_321a τ) :
        theorem ASP321a.tfree_of_is_321a (τ : ) (h_321a : is_321a τ) (u v w : ) :
        (u, v)inv_set τ (v, w)inv_set τ

        A bijection of is 321-avoiding exactly when its inversion set is a triangle-free ASP set.

        def ASP321a.tfas_of_perm {τ : AspPerm} (h_321a : is_321a τ.func) :
        Equations
        Instances For
          Equations
          • One or more equations did not get rendered due to their size.
          Instances For

            321-avoiding ASP permutations are equivalent to triangle-free ASP sets together with a shift parameter.

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

              Characterize the sets of boxes that arise as inversion sets of 321-avoiding ASP permutations.

              def ASP321a.is_src (τ : AspPerm) (u : ) :
              Equations
              Instances For
                theorem ASP321a.src_of_inv {τ : AspPerm} {u v : } (uv_inv : (u, v) inv_set τ.func) :
                is_src τ u
                def ASP321a.is_snk (τ : AspPerm) (v : ) :
                Equations
                Instances For
                  theorem ASP321a.snk_of_inv {τ : AspPerm} {u v : } (uv_inv : (u, v) inv_set τ.func) :
                  is_snk τ v

                  Source and Sink Geometry for a Fixed 321-Avoiding Permutation #

                  Fix a 321-avoiding ASP permutation τ. This section develops the source/sink geometry and the duality identities for s and s' that drive the later factorization arguments.

                  theorem ASP321a.not_src_and_snk {τ : AspPerm} (h_321a : is_321a τ.func) (n : ) :
                  theorem ASP321a.snk_lt {τ : AspPerm} (h_321a : is_321a τ.func) {v x : } (v_snk : is_snk τ v) (v_lt_x : v < x) :
                  τ.func v < τ.func x
                  theorem ASP321a.snk_le {τ : AspPerm} (h_321a : is_321a τ.func) {v x : } (v_snk : is_snk τ v) (v_le_x : v x) :
                  τ.func v τ.func x
                  theorem ASP321a.src_gt {τ : AspPerm} (h_321a : is_321a τ.func) {u x : } (u_src : is_src τ u) (x_lt_u : x < u) :
                  τ.func x < τ.func u
                  theorem ASP321a.src_ge {τ : AspPerm} (h_321a : is_321a τ.func) {u x : } (u_src : is_src τ u) (x_le_u : x u) :
                  τ.func x τ.func u
                  structure ASP321a.between_inv_prop {τ : AspPerm} (u x v : ) :
                  Instances For
                    theorem ASP321a.between_inv {τ : AspPerm} (h_321a : is_321a τ.func) {u x v : } (uv_inv : (u, v) inv_set τ.func) (u_le_x : u x) (x_le_v : x v) :
                    theorem ASP321a.inv_of_quadrants {τ : AspPerm} {a b u v : } (hu : u northwest_set τ.func a b) (hv : v southeast_set τ.func a b) :
                    theorem ASP321a.split_s {τ : AspPerm} (h_321a : is_321a τ.func) {u v a b : } (u_lt_b : u < b) (b_le_v : b v) (τv_lt_a : τ.func v < a) (τu_ge_a : τ.func u a) :
                    τ.s a v + τ.s (τ.func v) b = τ.s a b
                    theorem ASP321a.uv_duality {τ : AspPerm} (h_321a : is_321a τ.func) {u a b : } (u_lt_b : u < b) (τu_ge_a : τ.func u a) {m m' : } (m_pos : m > 0) (m'_pos : m' > 0) (m_sum : m + m' = τ.s a b + 1) :
                    τ.func (τ.v b m_pos) = τ⁻¹.u a m'_pos
                    theorem ASP321a.uv_duality_ge {τ : AspPerm} (h_321a : is_321a τ.func) {a b m m' : } (m_pos : m > 0) (m'_pos : m' > 0) (m_sum : m + m' = τ.s a b + 1) :
                    is_snk τ (τ.v b m_pos)is_snk τ (τ⁻¹.func (τ⁻¹.u a m'_pos))τ.func (τ.v b m_pos) τ⁻¹.u a m'_pos τ.v b m_pos τ⁻¹.func (τ⁻¹.u a m'_pos)
                    theorem ASP321a.uv_duality_lt {τ : AspPerm} (h_321a : is_321a τ.func) (a b : ) {m m' : } (m_pos : m > 0) (m'_pos : m' > 0) (h_sum : m + m' τ.s a b + 2) :
                    have v := τ.v b m_pos; have w := τ⁻¹.u a m'_pos; is_snk τ vis_snk τ (τ⁻¹.func w)τ⁻¹.func w < v
                    theorem ASP321a.split_s' {τ : AspPerm} (h_321a : is_321a τ.func) {u v a b : } (u_lt_b : u < b) (b_le_v : b v) (τv_lt_a : τ.func v < a) (τu_ge_a : τ.func u a) :
                    τ⁻¹.s b (τ.func u) + τ⁻¹.s u a = τ⁻¹.s b a

                    Passing to Left Weak Order Subpermutations #

                    Here β ≤L τ is fixed. The lemmas compare the inversion geometry of β and τ, especially the way ramps, sources, sinks, and shifted inversion sets are inherited along left weak order.

                    theorem ASP321a.src_of_src {τ β : AspPerm} (h_L : β ≤L τ) {n : } (h_src : is_src β n) :
                    is_src τ n
                    theorem ASP321a.snk_of_snk {τ β : AspPerm} (h_L : β ≤L τ) {n : } (h_snk : is_snk β n) :
                    is_snk τ n
                    theorem ASP321a.is_321a_of_lel {τ : AspPerm} (h_321a : is_321a τ.func) {β : AspPerm} (h_L : β ≤L τ) :
                    structure ASP321a.between_inv_lel_prop (β τ : AspPerm) (u x v : ) :
                    Instances For
                      theorem ASP321a.between_inv_lel {τ : AspPerm} (h_321a : is_321a τ.func) {β : AspPerm} (h_L : β ≤L τ) {u x v : } (uv_inv : (u, v) inv_set β.func) (u_le_x : u x) (x_le_v : x v) :
                      def ASP321a.interval_sub (i₁ i₂ : × ) :
                      Equations
                      Instances For
                        theorem ASP321a.inv_of_lel_iff {τ : AspPerm} (h_321a : is_321a τ.func) {β : AspPerm} (h_L : β ≤L τ) {u v u' v' : } (uv_inv : (u, v) inv_set β.func) (nested : (u', v') (u, v)) :
                        theorem ASP321a.sr_inv_of_ler_iff {τ : AspPerm} (h_321a : is_321a τ.func) {α : AspPerm} (h_R : α ≤R τ) {u v u' v' : } (uv_inv : (u, v) τ.sr α '' inv_set α.func) (nested : (u, v) (u', v')) :
                        (u', v') τ.sr α '' inv_set α.func (u', v') inv_set τ.func
                        theorem ASP321a.eq_s_of_lel {τ : AspPerm} (h_321a : is_321a τ.func) {β : AspPerm} (h_L : β ≤L τ) {u b v : } (uv_inv : (u, v) inv_set β.func) (u_lt_b : u < b) :
                        β.s (β.func v) b = τ.s (τ.func v) b
                        theorem ASP321a.eq_s'_of_lel {τ : AspPerm} (h_321a : is_321a τ.func) {β : AspPerm} (h_L : β ≤L τ) {u b v : } (uv_inv : (u, v) inv_set β.func) (b_le_v : b v) :
                        β.s' b (β.func u) = τ.s' b (τ.func u)
                        theorem ASP321a.uv_eq_of_lel {τ : AspPerm} (h_321a : is_321a τ.func) {β : AspPerm} (h_L : β ≤L τ) (b : ) {m n : } (m_pos : m > 0) (n_pos : n > 0) :
                        (τ.u b n_pos, τ.v b m_pos) inv_set β.funcτ.u b n_pos = β.u b n_pos τ.v b m_pos = β.v b m_pos
                        theorem ASP321a.uv_eq_of_lel' {τ : AspPerm} (h_321a : is_321a τ.func) {β : AspPerm} (h_L : β ≤L τ) (b : ) {m n : } (m_pos : m > 0) (n_pos : n > 0) :
                        (β.u b n_pos, β.v b m_pos) inv_set β.funcβ.u b n_pos = τ.u b n_pos β.v b m_pos = τ.v b m_pos
                        theorem ASP321a.lel_ramp {τ : AspPerm} (h_321a : is_321a τ.func) {β : AspPerm} (h_L : β ≤L τ) (b : ) {m n : } (m_pos : m > 0) (n_pos : n > 0) :
                        (τ.u b n_pos, τ.v b m_pos) inv_set β.func (m, n) β.ramp b
                        theorem ASP321a.lel_lamp {τ : AspPerm} (h_321a : is_321a τ.func) {α : AspPerm} (h_R : α ≤R τ) (a : ) {m n : } (m_pos : m > 0) (n_pos : n > 0) :
                        (τ⁻¹.u a m_pos, τ⁻¹.v a n_pos) inv_set α⁻¹.func (m, n) α.lamp a
                        theorem ASP321a.inv_of_lel_iff_ramp {τ : AspPerm} (h_321a : is_321a τ.func) {β : AspPerm} (h_L : β ≤L τ) {u b v : } (u_lt_b : u < b) (b_le_v : b v) :
                        have m := τ.s (τ.func v) b + 1; have n := τ.s' b (τ.func u); (u, v) inv_set β.func (m, n) β.ramp b

                        Two-Factor Demazure Factorization for 321-Avoiding ASP Permutations #

                        This section proves the inversion-set criterion for a factorization τ = α ⋆ β in the 321-avoiding setting, first as upper and lower bounds and then as a full characterization.

                        theorem ASP321a.inversion_in_union {τ : AspPerm} (h_321a : is_321a τ.func) {β : AspPerm} (h_L : β ≤L τ) {α : AspPerm} (h_R : α ≤R τ) (h_χ : τ.χ = α.χ + β.χ) (a b u v : ) (dprod : α.dprod_val_ge β a b (τ.s a b)) :
                        u < bb vτ.func u aτ.func v < a(u, v) τ.sr α '' inv_set α.func inv_set β.func
                        theorem ASP321a.union_sufficient {τ : AspPerm} (h_321a : is_321a τ.func) {β : AspPerm} (h_L : β ≤L τ) {α : AspPerm} (h_R : α ≤R τ) (h_χ : τ.χ = α.χ + β.χ) (a b : ) (h_union : inv_set τ.func τ.sr α '' inv_set α.func inv_set β.func) :
                        α.dprod_val_ge β a b (τ.s a b)
                        theorem ASP321a.excess_of_not_isolated {τ : AspPerm} (h_321a : is_321a τ.func) {β : AspPerm} (h_L : β ≤L τ) {α : AspPerm} (h_R : α ≤R τ) (h_χ : τ.χ = α.χ + β.χ) {u v₁ v₂ : } (v₁_lt_v₂ : v₁ < v₂) (uv₁_inv : (u, v₁) τ.sr α '' inv_set α.func) (uv₂_inv : (u, v₂) inv_set β.func) :
                        have a := τ.func v₁ + 1; have b := v₁ + 1; α.dprod_val_ge β a b (τ.s a b + 1)
                        theorem ASP321a.not_isolated_of_domino {τ : AspPerm} (h_321a : is_321a τ.func) {β : AspPerm} (h_L : β ≤L τ) {α : AspPerm} (h_R : α ≤R τ) (a b m m' n n' : ) (m_pos : m 1) (m'_pos : m' 1) (n_pos : n 1) (n'_pos : n' 1) (msum : m + m' = τ.s a b + 2) (nsum : n + n' = τ⁻¹.s b a + 1) ( : (m', n') α.lamp a) ( : (m, n) β.ramp b) :
                        ∃ (I : × ) (J : × ), {I, J} τ.sr α '' inv_set α.func inv_set β.func I J I J
                        theorem ASP321a.not_isolated_of_excess {τ : AspPerm} (h_321a : is_321a τ.func) {β : AspPerm} (h_L : β ≤L τ) {α : AspPerm} (h_R : α ≤R τ) (h_χ : τ.χ = α.χ + β.χ) {a b : } (h_s : α.dprod_val_ge β a b (τ.s a b + 1)) :
                        ∃ (I : × ) (J : × ), {I, J} τ.sr α '' inv_set α.func inv_set β.func I J I J
                        theorem ASP321a.dprod_ge_iff_union {τ : AspPerm} (h_321a : is_321a τ.func) {β : AspPerm} (h_L : β ≤L τ) {α : AspPerm} (h_R : α ≤R τ) (h_χ : τ.χ = α.χ + β.χ) :
                        τ α β inv_set τ.func τ.sr α '' inv_set α.func inv_set β.func

                        In the 321-avoiding setting, the inequality τ ≤ α ⋆ β is equivalent to the inversion set of τ lying in the union of the shifted inversion set of α and the inversion set of β.

                        A set of boxes is isolated if it contains no two distinct comparable elements.

                        Equations
                        Instances For
                          theorem ASP321a.dprod_le_iff_isolated {τ : AspPerm} (h_321a : is_321a τ.func) {β : AspPerm} (h_L : β ≤L τ) {α : AspPerm} (h_R : α ≤R τ) (h_χ : τ.χ = α.χ + β.χ) :
                          α β τ isolated (τ.sr α '' inv_set α.func inv_set β.func)

                          In the 321-avoiding setting, the inequality α ⋆ β ≤ τ is equivalent to isolatedness of the overlap between the shifted inversion set of α and the inversion set of β.

                          theorem ASP321a.dprod_eq_iff {τ : AspPerm} (h_321a : is_321a τ.func) {β α : AspPerm} :
                          τ = α β α.χ + β.χ = τ.χ inv_set τ.func = τ.sr α '' inv_set α.func inv_set β.func isolated (τ.sr α '' inv_set α.func inv_set β.func)

                          Characterize the Demazure factorization τ = α ⋆ β by equality of shifts, a union formula for inversion sets, and isolatedness of the overlap.