Documentation

CsdLean4.Mathlib.Analysis.Normed.Module.Alternating.WedgeShuffle

The shuffle sum of a wedge with a 2-form, on a pair family #

Category: 1-Mathlib (CSD-free; upstream target Mathlib.Analysis.Normed.Module.Alternating).

The wedge α ∧ β of a 2k-form with a 2-form, evaluated on 2k + 2 vectors, is a signed sum over the shuffle classes Equiv.Perm.ModSumCongr (Fin (2k)) (Fin 2) (wedge_apply). When the vectors come in k + 1 pairs on which β is ±1 within a pair and 0 across pairs (IsPairFamily), only the classes sending the two β-slots into one pair survive, and each such class has a representative made of two disjoint transpositions — of sign +1 — that moves that pair into the β-slots and leaves a family of k pairs behind:

No sign is ever computed beyond sign (swap · ·) = -1 twice: that is the whole point of the two-transposition representative, and it is what makes the count of the top power of the standard symplectic form (Instances/ProjectiveSpaceFubiniStudyVolume.lean) an induction with no combinatorics left in it.

Honest scope #

⚠️ Real-valued forms with the codomains paired by multiplication only. ⚠️ Nothing is said about α ∧ β off pair families.

Provenance and references. The top-power plan (M6(b)); Alternating/Wedge.lean (wedge_apply), Alternating/WedgeCLM.lean (liftTensor_summand_mk''); Mathlib/LinearAlgebra/Alternating/DomCoprod.lean; Mathlib/GroupTheory/Perm/Finite.lean; the completed-work ledger.

def ContinuousAlternatingMap.slotPair {k : ℕ} :
Fin (2 * k) ⊕ Fin 2 → Fin (k + 1)

The pair a slot of Fin (2k) ⊕ Fin 2 belongs to: inl p is in pair p / 2, the two inr slots form the last pair.

Equations
Instances For

    Which member of its pair a slot is.

    Equations
    Instances For
      theorem ContinuousAlternatingMap.slotPair_inl {k : ℕ} (p : Fin (2 * k)) :
      slotPair (Sum.inl p) = ⟨↑p / 2, ⋯⟩

      slotPair on an inl slot: pair p / 2.

      slotPair on an inr slot: the last pair.

      theorem ContinuousAlternatingMap.slotMem_inl {k : ℕ} (p : Fin (2 * k)) :
      slotMem (Sum.inl p) = ⟨↑p % 2, ⋯⟩

      slotMem on an inl slot: member p % 2.

      slotMem on an inr slot: the slot's own index.

      def ContinuousAlternatingMap.slotOf {k : ℕ} (j : Fin (k + 1)) (m : Fin 2) :
      Fin (2 * k) ⊕ Fin 2

      The slot of member m of pair j.

      Equations
      Instances For
        theorem ContinuousAlternatingMap.slotOf_def {k : ℕ} (j : Fin (k + 1)) (m : Fin 2) :
        slotOf j m = if h : ↑j < k then Sum.inl ⟨2 * ↑j + ↑m, ⋯⟩ else Sum.inr m

        slotOf, unfolded: the definitional equation.

        theorem ContinuousAlternatingMap.slotPair_slotOf {k : ℕ} (j : Fin (k + 1)) (m : Fin 2) :
        slotPair (slotOf j m) = j
        theorem ContinuousAlternatingMap.slotMem_slotOf {k : ℕ} (j : Fin (k + 1)) (m : Fin 2) :
        slotMem (slotOf j m) = m
        theorem ContinuousAlternatingMap.slot_ext {k : ℕ} {x y : Fin (2 * k) ⊕ Fin 2} (h₁ : slotPair x = slotPair y) (h₂ : slotMem x = slotMem y) :
        x = y
        def ContinuousAlternatingMap.pairRep {k : ℕ} (j : Fin (k + 1)) :
        Equiv.Perm (Fin (2 * k) ⊕ Fin 2)

        The two-transposition representative of the shuffle class that sends pair j into the two inr slots (the identity when j is the last pair).

        Equations
        Instances For
          theorem ContinuousAlternatingMap.pairRep_inr {k : ℕ} (j : Fin (k + 1)) (m : Fin 2) :
          (pairRep j) (Sum.inr m) = slotOf j m
          theorem ContinuousAlternatingMap.modSumCongr_mk_eq_of_inr {k : ℕ} {σ₁ σ₂ : Equiv.Perm (Fin (2 * k) ⊕ Fin 2)} (h : ∀ (m : Fin 2), ∃ (m' : Fin 2), σ₁ (Sum.inr m) = σ₂ (Sum.inr m')) :

          Two permutations whose images of the inr slots agree lie in the same shuffle class.

          theorem ContinuousAlternatingMap.exists_inr_eq_of_mk_eq {k : ℕ} {σ ρ : Equiv.Perm (Fin (2 * k) ⊕ Fin 2)} (h : Quotient.mk'' σ = Quotient.mk'' ρ) (m : Fin 2) :
          ∃ (m' : Fin 2), σ (Sum.inr m) = ρ (Sum.inr m')

          In one shuffle class, the images of the inr slots agree.

          The sign of a pairing: 1 for (member 0, member 1), -1 the other way round, 0 otherwise.

          Equations
          Instances For

            A family of 2k + 2 vectors is a pair family for the 2-form β when β pairs the two members of each pair to ±1 and kills everything else.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              def ContinuousAlternatingMap.IsWeightedPairFamily {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {k : ℕ} (β : E [⋀^Fin 2]→L[ℝ] ℝ) (c : Fin (k + 1) → ℝ) (u : Fin (2 * k) ⊕ Fin 2 → E) :

              A family of 2k + 2 vectors is a weighted pair family for the 2-form β, with weights c, when β pairs the two members of pair j to ± c j and kills everything else.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                theorem ContinuousAlternatingMap.IsPairFamily.isWeightedPairFamily {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {k : ℕ} {β : E [⋀^Fin 2]→L[ℝ] ℝ} {u : Fin (2 * k) ⊕ Fin 2 → E} (hu : β.IsPairFamily u) :
                β.IsWeightedPairFamily (fun (x : Fin (k + 1)) => 1) u

                A pair family is a weighted pair family with all weights 1.

                noncomputable def ContinuousAlternatingMap.classTerm {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {k : ℕ} (α : E [⋀^Fin (2 * k)]→L[ℝ] ℝ) (β : E [⋀^Fin 2]→L[ℝ] ℝ) (u : Fin (2 * k) ⊕ Fin 2 → E) (q : Equiv.Perm.ModSumCongr (Fin (2 * k)) (Fin 2)) :

                One shuffle-class term of the real-valued wedge.

                Equations
                Instances For
                  theorem ContinuousAlternatingMap.classTerm_mk'' {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {k : ℕ} (α : E [⋀^Fin (2 * k)]→L[ℝ] ℝ) (β : E [⋀^Fin 2]→L[ℝ] ℝ) (u : Fin (2 * k) ⊕ Fin 2 → E) (σ : Equiv.Perm (Fin (2 * k) ⊕ Fin 2)) :
                  α.classTerm β u (Quotient.mk'' σ) = ↑(Equiv.Perm.sign σ) • ((α fun (i : Fin (2 * k)) => u (σ (Sum.inl i))) * β fun (i : Fin 2) => u (σ (Sum.inr i)))
                  theorem ContinuousAlternatingMap.beta_inr_eq {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {k : ℕ} (β : E [⋀^Fin 2]→L[ℝ] ℝ) (u : Fin (2 * k) ⊕ Fin 2 → E) (σ : Equiv.Perm (Fin (2 * k) ⊕ Fin 2)) :
                  (β fun (i : Fin 2) => u (σ (Sum.inr i))) = β ![u (σ (Sum.inr 0)), u (σ (Sum.inr 1))]
                  theorem ContinuousAlternatingMap.slotPair_eq_of_classTerm_ne_zero {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {k : ℕ} {α : E [⋀^Fin (2 * k)]→L[ℝ] ℝ} {β : E [⋀^Fin 2]→L[ℝ] ℝ} {c : Fin (k + 1) → ℝ} {u : Fin (2 * k) ⊕ Fin 2 → E} (hu : β.IsWeightedPairFamily c u) (σ : Equiv.Perm (Fin (2 * k) ⊕ Fin 2)) (h : α.classTerm β u (Quotient.mk'' σ) ≠ 0) :
                  slotPair (σ (Sum.inr 0)) = slotPair (σ (Sum.inr 1))

                  A class term vanishes unless the two inr slots land in one pair.

                  theorem ContinuousAlternatingMap.mk_eq_pairRep_of_classTerm_ne_zero {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {k : ℕ} {α : E [⋀^Fin (2 * k)]→L[ℝ] ℝ} {β : E [⋀^Fin 2]→L[ℝ] ℝ} {c : Fin (k + 1) → ℝ} {u : Fin (2 * k) ⊕ Fin 2 → E} (hu : β.IsWeightedPairFamily c u) (σ : Equiv.Perm (Fin (2 * k) ⊕ Fin 2)) (h : α.classTerm β u (Quotient.mk'' σ) ≠ 0) :

                  A non-vanishing class is the class of the two-transposition representative of its pair.

                  theorem ContinuousAlternatingMap.classTerm_pairRep_weighted {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {k : ℕ} {α : E [⋀^Fin (2 * k)]→L[ℝ] ℝ} {β : E [⋀^Fin 2]→L[ℝ] ℝ} {c : Fin (k + 1) → ℝ} {u : Fin (2 * k) ⊕ Fin 2 → E} (hu : β.IsWeightedPairFamily c u) (j : Fin (k + 1)) :
                  α.classTerm β u (Quotient.mk'' (pairRep j)) = c j * α fun (i : Fin (2 * k)) => u ((pairRep j) (Sum.inl i))

                  The class term of the representative of pair j, on a weighted pair family: the weight of pair j times the 2k-form on the family with pair j moved into the β-slots.

                  theorem ContinuousAlternatingMap.classTerm_pairRep {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {k : ℕ} {α : E [⋀^Fin (2 * k)]→L[ℝ] ℝ} {β : E [⋀^Fin 2]→L[ℝ] ℝ} {u : Fin (2 * k) ⊕ Fin 2 → E} (hu : β.IsPairFamily u) (j : Fin (k + 1)) :
                  α.classTerm β u (Quotient.mk'' (pairRep j)) = α fun (i : Fin (2 * k)) => u ((pairRep j) (Sum.inl i))

                  The class term of the representative of pair j.

                  theorem ContinuousAlternatingMap.wedge_mul_apply_weightedPairs {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {k : ℕ} {α : E [⋀^Fin (2 * k)]→L[ℝ] ℝ} {β : E [⋀^Fin 2]→L[ℝ] ℝ} {c : Fin (k + 1) → ℝ} {u : Fin (2 * k) ⊕ Fin 2 → E} (hu : β.IsWeightedPairFamily c u) :
                  (wedge (ContinuousLinearMap.mul ℝ ℝ) α β) u = ∑ j : Fin (k + 1), c j * α fun (i : Fin (2 * k)) => u ((pairRep j) (Sum.inl i))

                  ★★ The shuffle sum on a weighted pair family. The wedge of a 2k-form with a 2-form, on a weighted pair family, is the sum over the pairs of that pair's weight times the 2k-form on the family with the pair moved into the 2-form's slots.

                  theorem ContinuousAlternatingMap.wedge_mul_apply_pairs {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {k : ℕ} {α : E [⋀^Fin (2 * k)]→L[ℝ] ℝ} {β : E [⋀^Fin 2]→L[ℝ] ℝ} {u : Fin (2 * k) ⊕ Fin 2 → E} (hu : β.IsPairFamily u) :
                  (wedge (ContinuousLinearMap.mul ℝ ℝ) α β) u = ∑ j : Fin (k + 1), α fun (i : Fin (2 * k)) => u ((pairRep j) (Sum.inl i))

                  ★★ The shuffle sum on a pair family. The wedge of a 2k-form with a 2-form, on a pair family, is the sum over the pairs of the 2k-form on the family with that pair moved into the 2-form's slots.