Documentation

Demazure.Valley

Valleys #

A valley is a function f : ℤ → ℤ tending to positive infinity on both sides. This terminology is not used in An extended Demazure product; it is introduced here in order to package some elementary arguments that are needed about such functions. In particular, we need to keep track of the set where the minimum value is achieved, and some facts about how this set changes when the valley is modified in simple ways.

structure Valley :

A function on whose sublevel sets are finite. This is the abstraction used to talk about minima and rightmost minimizers.

Instances For
    @[implicit_reducible]
    Equations

    Minima and rightmost minimizers #

    This namespace develops the basic API for working with a Valley: its minimum value, the rightmost index where that minimum is attained, and behavior under vertical shifts.

    noncomputable def Valley.floor (v : Valley) (m : ) :
    Equations
    Instances For
      @[simp]
      theorem Valley.mem_floor (v : Valley) (m n : ) :
      n v.floor m v.f n m
      noncomputable def Valley.min (v : Valley) :

      The minimum value of a valley.

      Equations
      Instances For
        theorem Valley.min_mem (v : Valley) :
        a{n : | v.f n v.f 0}, v.f a = v.min
        theorem Valley.min_spec (v : Valley) (n : ) :
        v.f n v.min
        noncomputable def Valley.M (v : Valley) :

        The largest index at which the minimum of the valley is attained.

        Equations
        Instances For
          theorem Valley.f_M (v : Valley) :
          v.f v.M = v.min
          theorem Valley.M_spec (v : Valley) (n : ) :
          v.f n v.f v.M (n > v.Mv.f n > v.f v.M)

          Shift every value of a valley downward by the constant k.

          Equations
          Instances For
            theorem Valley.shift_down_M (v : Valley) (k : ) :
            (v.shift_down k).M = v.M

            Shifting a valley downward does not change its rightmost minimizer.

            theorem Valley.shift_down_min (v : Valley) (k : ) :
            (v.shift_down k).min = v.min - k

            Shifting a valley downward subtracts k from its minimum value.