Physlib Documentation

Physlib.Mathematics.Fin.Involutions

Fin involutions #

Some properties of involutions of Fin n.

These involutions are used in e.g. proving results about Wick contractions.

def Physlib.Fin.involutionCons (n : ) :
{ f : Fin n.succFin n.succ // Function.Involutive f } (f : { f : Fin nFin n // Function.Involutive f }) × { i : Option (Fin n) // ∀ (h : i.isSome = true), f (i.get h) = i.get h }

There is an equivalence between involutions of Fin n.succ and involutions of Fin n and an optional valid choice of an element in Fin n (which is where 0 in Fin n.succ will be sent).

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    theorem Physlib.Fin.involutionCons_ext {n : } {f1 f2 : (f : { f : Fin nFin n // Function.Involutive f }) × { i : Option (Fin n) // ∀ (h : i.isSome = true), f (i.get h) = i.get h }} (h1 : f1.fst = f2.fst) (h2 : f1.snd = (Equiv.subtypeEquivRight ) f2.snd) :
    f1 = f2
    def Physlib.Fin.involutionAddEquiv {n : } (f : { f : Fin nFin n // Function.Involutive f }) :
    { i : Option (Fin n) // ∀ (h : i.isSome = true), f (i.get h) = i.get h } Option (Fin {i : Fin n | f i = i}.card)

    Given an involution of Fin n, the optional choice of an element in Fin n which maps to itself is equivalent to the optional choice of an element in Fin (Finset.univ.filter fun i => f.1 i = i).card.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      theorem Physlib.Fin.involutionAddEquiv_cast' {m : } {f1 f2 : { f : Fin mFin m // Function.Involutive f }} {N : } (hf : f1 = f2) (n : Option (Fin N)) (hn1 : N = {i : Fin m | f1 i = i}.card) (hn2 : N = {i : Fin m | f2 i = i}.card) :

      Equivalences of involutions with no fixed points. #

      The main aim of these equivalences is to define involutionNoFixedZeroEquivProd.

      def Physlib.Fin.involutionNoFixedEquivSum {n : } :
      { f : Fin n.succFin n.succ // Function.Involutive f ∀ (i : Fin n.succ), f i i } (k : Fin n) × { f : Fin n.succFin n.succ // Function.Involutive f (∀ (i : Fin n.succ), f i i) f 0 = k.succ }

      Fixed point free involutions of Fin n.succ can be separated based on where they sent 0.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        def Physlib.Fin.involutionNoFixedZeroSetEquivEquiv {n : } (k : Fin n) (e : Fin n.succ Fin n.succ) :
        { f : Fin n.succFin n.succ // Function.Involutive f (∀ (i : Fin n.succ), f i i) f 0 = k.succ } { f : Fin n.succFin n.succ // Function.Involutive (e.symm f e) (∀ (i : Fin n.succ), (e.symm f e) i i) (e.symm f e) 0 = k.succ }

        The condition on fixed point free involutions of Fin n.succ for a fixed value of f 0, can be modified by conjugation with an equivalence.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          def Physlib.Fin.involutionNoFixedZeroSetEquivSetEquiv {n : } (k : Fin n) (e : Fin n.succ Fin n.succ) :
          { f : Fin n.succFin n.succ // Function.Involutive (e.symm f e) (∀ (i : Fin n.succ), (e.symm f e) i i) (e.symm f e) 0 = k.succ } { f : Fin n.succFin n.succ // Function.Involutive f (∀ (i : Fin n.succ), f i i) (e.symm f e) 0 = k.succ }

          The condition on fixed point free involutions of Fin n.succ for a fixed value of f 0 given an equivalence e, can be modified so that only the condition on f 0 is up-to the equivalence e.

          Equations
          Instances For
            def Physlib.Fin.involutionNoFixedZeroSetEquivEquiv' {n : } (k : Fin n) (e : Fin n.succ Fin n.succ) :
            { f : Fin n.succFin n.succ // Function.Involutive f (∀ (i : Fin n.succ), f i i) (e.symm f e) 0 = k.succ } { f : Fin n.succFin n.succ // Function.Involutive f (∀ (i : Fin n.succ), f i i) f (e 0) = e k.succ }

            Fixed point free involutions of Fin n.succ fixing (e.symm ∘ f ∘ e) = k.succ for a given e are equivalent to fixing f (e 0) = e k.succ.

            Equations
            Instances For
              def Physlib.Fin.involutionNoFixedZeroSetEquivSetOne {n : } (k : Fin n.succ) :
              { f : Fin n.succ.succFin n.succ.succ // Function.Involutive f (∀ (i : Fin n.succ.succ), f i i) f 0 = k.succ } { f : Fin n.succ.succFin n.succ.succ // Function.Involutive f (∀ (i : Fin n.succ.succ), f i i) f 0 = 1 }

              Fixed point involutions of Fin n.succ.succ with f 0 = k.succ are equivalent to fixed point involutions with f 0 = 1.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                def Physlib.Fin.involutionNoFixedSetOne {n : } :
                { f : Fin n.succ.succFin n.succ.succ // Function.Involutive f (∀ (i : Fin n.succ.succ), f i i) f 0 = 1 } { f : Fin nFin n // Function.Involutive f ∀ (i : Fin n), f i i }

                Fixed point involutions of Fin n.succ.succ fixing f 0 = 1 are equivalent to fixed point involutions of Fin n.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  def Physlib.Fin.involutionNoFixedZeroSetEquiv {n : } (k : Fin n.succ) :
                  { f : Fin n.succ.succFin n.succ.succ // Function.Involutive f (∀ (i : Fin n.succ.succ), f i i) f 0 = k.succ } { f : Fin nFin n // Function.Involutive f ∀ (i : Fin n), f i i }

                  Fixed point involutions of Fin n.succ.succ for fixed f 0 = k.succ are equivalent to fixed point involutions of Fin n.

                  Equations
                  Instances For
                    def Physlib.Fin.involutionNoFixedEquivSumSame {n : } :
                    { f : Fin n.succ.succFin n.succ.succ // Function.Involutive f ∀ (i : Fin n.succ.succ), f i i } (_ : Fin n.succ) × { f : Fin nFin n // Function.Involutive f ∀ (i : Fin n), f i i }

                    The type of fixed point free involutions of Fin n.succ.succ is equivalent to the sum of Fin n.succ copies of fixed point involutions of Fin n.

                    Equations
                    Instances For
                      def Physlib.Fin.involutionNoFixedZeroEquivProd {n : } :
                      { f : Fin n.succ.succFin n.succ.succ // Function.Involutive f ∀ (i : Fin n.succ.succ), f i i } Fin n.succ × { f : Fin nFin n // Function.Involutive f ∀ (i : Fin n), f i i }

                      Ever fixed-point free involutions of Fin n.succ.succ can be decomposed into a element of Fin n.succ (where 0 is sent) and a fixed-point free involution of Fin n.

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

                        Cardinality #

                        The type of fixed-point free involutions of Fin n is finite.

                        Equations
                        theorem Physlib.Fin.involutionNoFixed_card_mul_two (n : ) :
                        Fintype.card { f : Fin (2 * n)Fin (2 * n) // Function.Involutive f ∀ (i : Fin (2 * n)), f i i } = (2 * n - 1).doubleFactorial
                        theorem Physlib.Fin.involutionNoFixed_card_mul_two_plus_one (n : ) :
                        Fintype.card { f : Fin (2 * n + 1)Fin (2 * n + 1) // Function.Involutive f ∀ (i : Fin (2 * n + 1)), f i i } = 0
                        theorem Physlib.Fin.involutionNoFixed_card_odd (n : ) (ho : Odd n) :
                        Fintype.card { f : Fin nFin n // Function.Involutive f ∀ (i : Fin n), f i i } = 0