Documentation

Mathlib.Data.Fin.Embedding

Embeddings of Fin n #

Fin n is the type whose elements are natural numbers smaller than n. This file defines embeddings between Fin n and other types,

Main definitions #

order #

The inclusion map Fin n → ℕ is an embedding.

Equations
    Instances For

      succ and casts into larger Fin types #

      def Fin.succEmb (n : ) :
      Fin n Fin (n + 1)

      Fin.succ as an Embedding

      Equations
        Instances For
          @[simp]
          theorem Fin.coe_succEmb {n : } :
          (succEmb n) = succ
          def Fin.castLEEmb {n m : } (h : n m) :
          Fin n Fin m

          Fin.castLE as an Embedding, castLEEmb h i embeds i into a larger Fin type.

          Equations
            Instances For
              @[simp]
              theorem Fin.castLEEmb_apply {n m : } (h : n m) (i : Fin n) :
              (castLEEmb h) i = castLE h i
              @[simp]
              theorem Fin.coe_castLEEmb {m n : } (hmn : m n) :
              (castLEEmb hmn) = castLE hmn
              def Fin.castAddEmb {n : } (m : ) :
              Fin n Fin (n + m)

              Fin.castAdd as an Embedding, castAddEmb m i embeds i : Fin n in Fin (n+m). See also Fin.natAddEmb and Fin.addNatEmb.

              Equations
                Instances For
                  @[simp]
                  theorem Fin.coe_castAddEmb {n : } (m : ) :
                  theorem Fin.castAddEmb_apply {n : } (m : ) (i : Fin n) :
                  (castAddEmb m) i = castAdd m i
                  def Fin.castSuccEmb {n : } :
                  Fin n Fin (n + 1)

                  Fin.castSucc as an Embedding, castSuccEmb i embeds i : Fin n in Fin (n+1).

                  Equations
                    Instances For
                      def Fin.addNatEmb {n : } (m : ) :
                      Fin n Fin (n + m)

                      Fin.addNat as an Embedding, addNatEmb m i adds m to i, generalizes Fin.succ.

                      Equations
                        Instances For
                          @[simp]
                          theorem Fin.addNatEmb_apply {n : } (m : ) (x✝ : Fin n) :
                          (addNatEmb m) x✝ = x✝.addNat m
                          def Fin.natAddEmb (n : ) {m : } :
                          Fin m Fin (n + m)

                          Fin.natAdd as an Embedding, natAddEmb n i adds n to i "on the left".

                          Equations
                            Instances For
                              @[simp]
                              theorem Fin.natAddEmb_apply (n : ) {m : } (i : Fin m) :
                              (natAddEmb n) i = natAdd n i
                              def Fin.succAboveEmb {n : } (p : Fin (n + 1)) :
                              Fin n Fin (n + 1)

                              Fin.succAbove p as an Embedding.

                              Equations
                                Instances For
                                  @[simp]
                                  theorem Fin.succAboveEmb_apply {n : } (p : Fin (n + 1)) (i : Fin n) :
                                  @[simp]
                                  theorem Fin.coe_succAboveEmb {n : } (p : Fin (n + 1)) :
                                  def Fin.natAdd_castLEEmb {n m : } (hmn : n m) :
                                  Fin n Fin m

                                  Fin.natAdd_castLEEmb as an Embedding from Fin n to Fin m, by appending the former at the end of the latter. natAdd_castLEEmb hmn i maps i : Fin m to i + (m - n) : Fin n by adding m - n to i

                                  Equations
                                    Instances For
                                      @[simp]
                                      theorem Fin.natAdd_castLEEmb_apply_val {n m : } (hmn : n m) (a✝ : Fin n) :
                                      ((natAdd_castLEEmb hmn) a✝) = a✝ + (m - n)
                                      theorem Fin.range_natAdd_castLEEmb {n m : } (hmn : n m) :
                                      Set.range (natAdd_castLEEmb hmn) = {i : Fin m | m - n i}