Documentation

Demazure.InvSet

structure AspSet_prop (I : Set ( × )) :

The axioms characterizing inversion sets of ASP permutations: directedness, closure, coclosure, and finite in/out degree.

Instances For
    structure AspSet :

    An abstract ASP inversion set: a set of boxes equipped with the axioms of AspSet_prop.

    Instances For
      @[simp]
      theorem mem_AspSet (asps : AspSet) (u v : ) :
      (u, v) asps (u, v) asps.I
      theorem AspSet.ext {A B : AspSet} (hI : A.I = B.I) :
      A = B

      Two AspSets are equal if their underlying sets of boxes are equal.

      @[reducible, inline]
      abbrev AspSet.directed (asps : AspSet) (u v : ) :
      (u, v) asps.Iu < v
      Equations
      • =
      Instances For
        @[reducible, inline]
        abbrev AspSet.closed (asps : AspSet) (u v w : ) :
        (u, v) asps.I(v, w) asps.I(u, w) asps.I
        Equations
        • =
        Instances For
          @[reducible, inline]
          abbrev AspSet.coclosed (asps : AspSet) (u v w : ) :
          u < vv < w(u, v)asps.I(v, w)asps.I(u, w)asps.I
          Equations
          • =
          Instances For
            @[reducible, inline]
            abbrev AspSet.finite_outdegree (asps : AspSet) (u : ) :
            {v : | (u, v) asps.I}.Finite
            Equations
            • =
            Instances For
              @[reducible, inline]
              abbrev AspSet.finite_indegree (asps : AspSet) (v : ) :
              {u : | (u, v) asps.I}.Finite
              Equations
              • =
              Instances For
                Equations
                Instances For
                  @[reducible, inline]
                  noncomputable abbrev AspSet.inset (asps : AspSet) (n : ) :
                  Equations
                  Instances For
                    @[reducible, inline]
                    noncomputable abbrev AspSet.outset (asps : AspSet) (n : ) :
                    Equations
                    Instances For
                      @[simp]
                      theorem AspSet.mem_inset (asps : AspSet) (n x : ) :
                      x asps.inset n (x, n) asps
                      @[simp]
                      theorem AspSet.mem_outset (asps : AspSet) (n x : ) :
                      x asps.outset n (n, x) asps
                      noncomputable def AspSet.recon (asps : AspSet) (χ : ) :

                      Reconstruct a function ℤ → ℤ from an abstract ASP inversion set and a shift parameter χ.

                      Equations
                      Instances For
                        @[reducible, inline]
                        noncomputable abbrev AspSet.σ (asps : AspSet) (χ : ) :
                        Equations
                        Instances For
                          @[reducible, inline]
                          noncomputable abbrev AspSet.lf_pos (asps : AspSet) (m n : ) :
                          Equations
                          Instances For
                            @[simp]
                            theorem AspSet.mem_lf_pos (asps : AspSet) (m n x : ) :
                            x asps.lf_pos m n x < m (x, m) asps (x, n)asps
                            @[reducible, inline]
                            noncomputable abbrev AspSet.md_pos (asps : AspSet) (m n : ) :
                            Equations
                            Instances For
                              @[simp]
                              theorem AspSet.mem_md_pos (asps : AspSet) (m n x : ) :
                              x asps.md_pos m n m x x < n (m, x)asps (x, n)asps
                              @[reducible, inline]
                              noncomputable abbrev AspSet.rt_pos (asps : AspSet) (m n : ) :
                              Equations
                              Instances For
                                @[simp]
                                theorem AspSet.mem_rt_pos (asps : AspSet) (m n x : ) :
                                x asps.rt_pos m n x n (m, x)asps (n, x) asps
                                @[reducible, inline]
                                noncomputable abbrev AspSet.lf_neg (asps : AspSet) (m n : ) :
                                Equations
                                Instances For
                                  @[simp]
                                  theorem AspSet.mem_lf_neg (asps : AspSet) (m n x : ) :
                                  x asps.lf_neg m n x < m (x, m)asps (x, n) asps
                                  @[reducible, inline]
                                  noncomputable abbrev AspSet.md_neg (asps : AspSet) (m n : ) :
                                  Equations
                                  Instances For
                                    @[simp]
                                    theorem AspSet.mem_md_neg (asps : AspSet) (m n x : ) :
                                    x asps.md_neg m n m x x < n (m, x) asps (x, n) asps
                                    @[reducible, inline]
                                    noncomputable abbrev AspSet.rt_neg (asps : AspSet) (m n : ) :
                                    Equations
                                    Instances For
                                      @[simp]
                                      theorem AspSet.mem_rt_neg (asps : AspSet) (m n x : ) :
                                      x asps.rt_neg m n x n (m, x) asps (n, x)asps
                                      theorem AspSet.σ_diff (asps : AspSet) (m n χ : ) (m_le_n : m n) :
                                      asps.σ χ n - asps.σ χ m = (asps.lf_pos m n).card + (asps.md_pos m n).card + (asps.rt_pos m n).card - ((asps.lf_neg m n).card + (asps.md_neg m n).card + (asps.rt_neg m n).card)
                                      theorem AspSet.σ_diff_pos (asps : AspSet) (m n χ : ) (m_lt_n : m < n) (mn_I : (m, n)asps) :
                                      asps.σ χ n - asps.σ χ m = (asps.lf_pos m n).card + (asps.md_pos m n).card + (asps.rt_pos m n).card
                                      theorem AspSet.σ_inc (asps : AspSet) (m n χ : ) (m_lt_n : m < n) (mn_nI : (m, n)asps) :
                                      asps.σ χ m < asps.σ χ n
                                      theorem AspSet.σ_dec (asps : AspSet) (m n χ : ) (m_lt_n : m < n) (mn_I : (m, n) asps) :
                                      asps.σ χ m > asps.σ χ n
                                      theorem AspSet.mem_iff_lt (asps : AspSet) (m n χ : ) (m_le_n : m n) :
                                      (m, n) asps asps.σ χ n < asps.σ χ m
                                      theorem AspSet.contiguity_helper (asps : AspSet) (m n χ : ) (m_lt_n : m < n) (σ_m_lt_n : asps.σ χ m < asps.σ χ n) :
                                      asps.σ χ ⁻¹' Set.Ico (asps.σ χ m) (asps.σ χ n) = ↑(asps.lf_pos m n asps.md_pos m n asps.rt_pos m n)
                                      theorem AspSet.func_contiguous (asps : AspSet) (m n χ : ) (m_lt_n : m < n) (σ_m_lt_n : asps.σ χ m < asps.σ χ n) (k : ) :
                                      asps.recon χ m kk < asps.recon χ n∃ (l : ), k = asps.recon χ l

                                      Reconstructing ASP Permutations from ASP Sets #

                                      Starting from an abstract ASP set asps and a shift χ, this section proves that the reconstructed function is bijective, ASP, and has the expected inversion data, yielding an AspPerm.

                                      theorem AspSet.invSet_func (asps : AspSet) (χ : ) :
                                      inv_set (asps.recon χ) = asps

                                      The reconstructed function has the prescribed inversion set.

                                      theorem AspSet.inset_eq_nw (asps : AspSet) (χ n : ) :
                                      (asps.inset n) = northwest_set (asps.σ χ) (asps.σ χ n + 1) n
                                      theorem AspSet.outset_eq_se (asps : AspSet) (χ n : ) :
                                      (asps.outset n) = southeast_set (asps.σ χ) (asps.σ χ n) (n + 1)
                                      theorem AspSet.surj_helper_up (asps : AspSet) (χ m : ) (n : ) :
                                      xm, asps.recon χ x asps.recon χ m + n
                                      theorem AspSet.surj_helper_down (asps : AspSet) (χ m : ) (n : ) :
                                      xm, asps.recon χ x asps.recon χ m - n
                                      theorem AspSet.func_surjective (asps : AspSet) (χ : ) :

                                      The function reconstructed from an ASP set and a shift is surjective.

                                      theorem AspSet.func_asp (asps : AspSet) (χ : ) :
                                      is_asp (asps.recon χ)
                                      noncomputable def AspSet.toAspPerm (asps : AspSet) (χ : ) :

                                      Package the function reconstructed from an ASP set and a shift as an AspPerm.

                                      Equations
                                      Instances For
                                        theorem AspSet.invSet_of_toAspPerm (asps : AspSet) (χ : ) :
                                        inv_set (asps.toAspPerm χ).func = asps
                                        theorem AspSet.inset_of_toAspPerm (asps : AspSet) (χ n : ) :
                                        (asps.toAspPerm χ).inset n = (asps.inset n)
                                        theorem AspSet.outset_of_toAspPerm (asps : AspSet) (χ n : ) :
                                        (asps.toAspPerm χ).outset n = (asps.outset n)
                                        theorem AspSet.chi_of_toAspPerm (asps : AspSet) (χ : ) :
                                        (asps.toAspPerm χ).χ = χ

                                        ASP permutations are equivalent to abstract ASP inversion sets together with a shift parameter.

                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Instances For
                                          theorem AspSet.invSets_of_AspPerms (I : Set ( × )) (χ : ) :
                                          (∃ (τ : AspPerm), inv_set τ.func = I τ.χ = χ) AspSet_prop I