Documentation

TauCeti.GroupTheory.Perm.FiberSubgroup

Permutations preserving the fibers of a map #

Given f : α → ι, the permutations σ of α with f (σ a) = f a for every a form a subgroup of Equiv.Perm α, here called TauCeti.fiberSubgroup f. This file records that subgroup, the transpositions it contains, the behaviour of the construction under conjugation and pairing two maps, the criteria for it to be trivial and for it to be a point stabilizer, and the isomorphism restricting a fiber-preserving permutation to each fiber,

fiberSubgroup f ≃* ∀ i, Equiv.Perm {a // f a = i},

together with the two formulas reading that isomorphism, and its inverse, through a family of equivalences {a // f a = i} ≃ β i of the fibers, which is how a concrete description of the fibers is fed into it.

For finite α the cosets of fiberSubgroup f are the rearrangements of f: the coset of g records the map f ∘ g⁻¹, and this identifies Equiv.Perm α ⧸ fiberSubgroup f, equivariantly, with the maps α → ι having fibers of the same sizes as those of f (TauCeti.quotientFiberSubgroupEquiv). When the fibers of f are the rows of a tabloid this is the description of the tabloids as the row-colourings of α, and the fixed points of a permutation π on the cosets are the rearrangements c with c ∘ π = c (TauCeti.card_fixedPoints_quotient_fiberSubgroup).

The order of fiberSubgroup f is the product of the factorials of the fiber sizes (TauCeti.natCard_fiberSubgroup). Summing these orders over all colourings α → ι, each weighted by a function of its fiber sizes, therefore gives (card α)! times the sum of the weight over the fiber-size functions of total card α (TauCeti.sum_natCard_fiberSubgroup_smul), the orbit-stabilizer count that averages power sums over the symmetric group.

Mathlib already studies these permutations, but through the domain action of Equiv.Perm α on α → ι: DomMulAct.stabilizerMulEquiv is the same isomorphism stated on (MulAction.stabilizer (Equiv.Perm α)ᵈᵐᵃ f)ᵐᵒᵖ. The ᵈᵐᵃ/ᵐᵒᵖ wrapping makes it awkward to use where the object of interest is a subgroup of Equiv.Perm α itself, as it is for the row and column groups of a Young tableau; fiberSubgroup is that subgroup. The two presentations are identified by fiberSubgroupMulEquivStabilizer, and the isomorphism above is Mathlib's DomMulAct.stabilizerMulEquiv transported along it.

def TauCeti.fiberSubgroup {α : Type u_1} {ι : Type u_2} (f : α → ι) :

The subgroup of permutations of α that preserve every fiber of f : α → ι, that is, those moving each point within its own fiber.

Equations
Instances For
    @[simp]
    theorem TauCeti.mem_fiberSubgroup {α : Type u_1} {ι : Type u_2} {f : α → ι} {σ : Equiv.Perm α} :
    σ ∈ fiberSubgroup f ↔ ∀ (a : α), f (σ a) = f a
    theorem TauCeti.swap_mem_fiberSubgroup {α : Type u_1} {ι : Type u_2} [DecidableEq α] {f : α → ι} {x y : α} (h : f x = f y) :

    The transposition of two points lying in a common fiber of f preserves every fiber of f: it moves each of the two points to the other, inside their shared fiber, and fixes the rest.

    theorem TauCeti.fiberSubgroup_map_conj {α : Type u_1} {ι : Type u_2} {κ : Type u_3} {f : α → ι} {g : α → κ} (e : Equiv.Perm α) (h : ∀ (a b : α), f a = f b ↔ g (e a) = g (e b)) :

    Conjugation by e transports the subgroup preserving the fibers of f to the subgroup preserving the fibers of g when e identifies their fiber equivalence relations.

    theorem TauCeti.fiberSubgroup_comp_of_injective {α : Type u_1} {ι : Type u_2} {κ : Type u_3} {g : ι → κ} (hg : Function.Injective g) (f : α → ι) :

    Composing with an injective map does not change the fibers of f, hence neither the permutations preserving them.

    theorem TauCeti.fiberSubgroup_inf {α : Type u_1} {ι : Type u_2} {κ : Type u_3} (f : α → ι) (g : α → κ) :
    fiberSubgroup f ⊓ fiberSubgroup g = fiberSubgroup fun (a : α) => (f a, g a)

    Preserving the fibers of two maps at once is preserving the fibers of the paired map.

    theorem TauCeti.fiberSubgroup_eq_stabilizer {α : Type u_1} {ι : Type u_2} {f : α → ι} {a : α} (hsep : ∀ (x : α), x ≠ a → f x ≠ f a) (hrest : ∀ (x y : α), x ≠ a → y ≠ a → f x = f y) :

    A map whose fibers are {a} and at most one other makes the fiber subgroup a point stabilizer. If f separates a from every other point and identifies all the others with one another, then a permutation preserves the fibers of f exactly when it fixes a: the fiber {a} can only be mapped to itself, and its complement -- a second fiber when it is nonempty, and empty when α = {a} -- then takes care of itself.

    theorem TauCeti.fiberSubgroup_eq_bot_of_injective {α : Type u_1} {ι : Type u_2} {f : α → ι} (hf : Function.Injective f) :

    Only the identity preserves the fibers of an injective map, its fibers being singletons.

    theorem TauCeti.injective_of_fiberSubgroup_eq_bot {α : Type u_1} {ι : Type u_2} {f : α → ι} (h : fiberSubgroup f = ⊥) :

    If the identity is the only permutation preserving the fibers of f, then f is injective: two points in a common fiber would be exchanged by a nontrivial fiber-preserving transposition.

    theorem TauCeti.fiberSubgroup_eq_bot_iff {α : Type u_1} {ι : Type u_2} {f : α → ι} :

    The fibers of f are preserved only by the identity exactly when f is injective.

    The permutations preserving the fibers of f are the stabilizer of f for the domain action of Equiv.Perm α on α → ι, read as a subgroup of Equiv.Perm α itself: the ᵈᵐᵃ and ᵐᵒᵖ synonyms reverse multiplication twice, so σ ↦ DomMulAct.mk σ is an isomorphism.

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

      Read in (Equiv.Perm α)ᵈᵐᵃ, the stabilizer element attached to a fiber-preserving permutation is that permutation.

      @[simp]

      Read in Equiv.Perm α, the fiber-preserving permutation attached to an element of the stabilizer is that element.

      def TauCeti.fiberSubgroupMulEquivPiPerm {α : Type u_1} {ι : Type u_2} (f : α → ι) :
      ↥(fiberSubgroup f) ≃* ((i : ι) → Equiv.Perm { a : α // f a = i })

      Restricting a fiber-preserving permutation of α to each fiber of f is an isomorphism onto the product of the permutation groups of the fibers.

      This is Mathlib's DomMulAct.stabilizerMulEquiv transported along fiberSubgroupMulEquivStabilizer.

      Equations
      Instances For
        @[simp]
        theorem TauCeti.fiberSubgroupMulEquivPiPerm_apply_coe {α : Type u_1} {ι : Type u_2} (f : α → ι) (σ : ↥(fiberSubgroup f)) (i : ι) (a : { a : α // f a = i }) :
        ↑(((fiberSubgroupMulEquivPiPerm f) σ i) a) = ↑σ ↑a
        @[simp]
        theorem TauCeti.fiberSubgroupMulEquivPiPerm_symm_apply {α : Type u_1} {ι : Type u_2} (f : α → ι) (σ : (i : ι) → Equiv.Perm { a : α // f a = i }) (a : α) :
        ↑((fiberSubgroupMulEquivPiPerm f).symm σ) a = ↑((σ (f a)) ⟨a, ⋯⟩)

        The fiber-preserving permutation assembled from a family of permutations of the fibers of f moves each point by the permutation of its own fiber.

        theorem TauCeti.fiberSubgroupMulEquivPiPerm_trans_piCongrRight_apply {α : Type u_1} {ι : Type u_2} {β : ι → Type u_4} (f : α → ι) (e : (i : ι) → { a : α // f a = i } ≃ β i) (σ : ↥(fiberSubgroup f)) (i : ι) (a : { a : α // f a = i }) :
        (((fiberSubgroupMulEquivPiPerm f).trans (MulEquiv.piCongrRight fun (i : ι) => (e i).permCongrHom)) σ i) ((e i) a) = (e i) ⟨↑σ ↑a, ⋯⟩

        Reading fiberSubgroupMulEquivPiPerm f through equivalences e i : {a // f a = i} ≃ β i of the fibers of f: the i-th component takes the point of β i matching a to the one matching σ a. Specialising this to a concrete family of fibers gives the component formula for the transported isomorphism.

        theorem TauCeti.fiberSubgroupMulEquivPiPerm_trans_piCongrRight_symm_apply {α : Type u_1} {ι : Type u_2} {β : ι → Type u_4} (f : α → ι) (e : (i : ι) → { a : α // f a = i } ≃ β i) (σ : (i : ι) → Equiv.Perm (β i)) (a : α) :
        ↑(((fiberSubgroupMulEquivPiPerm f).trans (MulEquiv.piCongrRight fun (i : ι) => (e i).permCongrHom)).symm σ) a = ↑((e (f a)).symm ((σ (f a)) ((e (f a)) ⟨a, ⋯⟩)))

        Reading the inverse of fiberSubgroupMulEquivPiPerm f through equivalences e i : {a // f a = i} ≃ β i of the fibers of f: the assembled permutation moves each point by the permutation of its own fiber, read through e.

        @[instance_reducible]
        noncomputable def TauCeti.instDecidableEqFiberColour {ι : Type u_2} :

        Local decidable equality for computing fiber cardinalities without an API constraint.

        Equations
        Instances For
          noncomputable def TauCeti.quotientFiberSubgroupEquiv {α : Type u_1} {ι : Type u_2} [Fintype α] (f : α → ι) :
          Equiv.Perm α ⧸ fiberSubgroup f ≃ { c : α → ι // ∀ (i : ι), {a : α | c a = i}.card = {a : α | f a = i}.card }

          The cosets of the fiber subgroup of f are the rearrangements of f. The coset of g in Equiv.Perm α ⧸ fiberSubgroup f is sent to the map f ∘ g⁻¹ (TauCeti.quotientFiberSubgroupEquiv_mk), and every map with fibers of the same sizes as those of f arises in exactly one way. The equivalence intertwines the left action of Equiv.Perm α on the cosets with its action c ↦ c ∘ π⁻¹ on maps (TauCeti.quotientFiberSubgroupEquiv_smul).

          Equations
          Instances For
            @[simp]
            theorem TauCeti.quotientFiberSubgroupEquiv_mk {α : Type u_1} {ι : Type u_2} [Fintype α] (f : α → ι) (g : Equiv.Perm α) :

            The coset of g is sent to the rearrangement f ∘ g⁻¹ of f.

            @[simp]
            theorem TauCeti.quotientFiberSubgroupEquiv_smul {α : Type u_1} {ι : Type u_2} [Fintype α] (f : α → ι) (π : Equiv.Perm α) (q : Equiv.Perm α ⧸ fiberSubgroup f) :

            The rearrangement equivalence is equivariant: moving a coset by π precomposes the corresponding rearrangement with π⁻¹.

            @[simp]
            theorem TauCeti.smul_eq_self_iff_quotientFiberSubgroupEquiv {α : Type u_1} {ι : Type u_2} [Fintype α] (f : α → ι) (π : Equiv.Perm α) (q : Equiv.Perm α ⧸ fiberSubgroup f) :

            A coset is fixed by π exactly when the corresponding rearrangement of f is invariant under π.

            theorem TauCeti.card_fixedPoints_quotient_fiberSubgroup {α : Type u_1} {ι : Type u_2} [Fintype α] [Fintype ι] (f : α → ι) (π : Equiv.Perm α) :
            Nat.card { q : Equiv.Perm α ⧸ fiberSubgroup f // π • q = q } = {c : α → ι | c ∘ ⇑π = c ∧ ∀ (i : ι), {a : α | c a = i}.card = {a : α | f a = i}.card}.card

            The fixed cosets of π count the π-invariant rearrangements of f: the number of cosets of the fiber subgroup of f fixed by π is the number of maps c : α → ι with fibers of the same sizes as those of f and with c ∘ π = c. For the rows of a tabloid this is the value at π of the permutation character on the tabloids.

            theorem TauCeti.natCard_fiberSubgroup {α : Type u_1} {ι : Type u_2} [Fintype α] [Fintype ι] [DecidableEq ι] (f : α → ι) :
            Nat.card ↥(fiberSubgroup f) = ∏ i : ι, {a : α | f a = i}.card.factorial

            The order of the fiber subgroup is the product of the factorials of the fiber sizes: a fiber-preserving permutation is an independent permutation of each fiber.

            theorem TauCeti.exists_forall_card_filter_eq {α : Type u_1} {ι : Type u_2} [Fintype α] [Fintype ι] [DecidableEq ι] {d : ι → ℕ} (hd : ∑ i : ι, d i = Fintype.card α) :
            ∃ (f : α → ι), ∀ (i : ι), {a : α | f a = i}.card = d i

            Every distribution of the points of α among the colours is the fiber-size function of some colouring: a function d : ι → ℕ with total card α is i ↦ #{a | f a = i} for some f : α → ι.

            theorem TauCeti.sum_natCard_fiberSubgroup_smul {α : Type u_1} {ι : Type u_2} [Fintype α] [Fintype ι] [DecidableEq ι] [DecidableEq α] {M : Type u_4} [AddCommMonoid M] (F : (ι → ℕ) → M) :
            (∑ f : α → ι, Nat.card ↥(fiberSubgroup f) • F fun (i : ι) => {a : α | f a = i}.card) = (Fintype.card α).factorial • ∑ d ∈ Finset.univ.piAntidiag (Fintype.card α), F d

            Summing the orders of the fiber subgroups over all colourings, each colouring weighted by a function of its fiber sizes: the colourings with a given fiber-size function d form one orbit of Equiv.Perm α, whose stabilizers are their fiber subgroups, so together they contribute (card α)! times the weight of d, and every d of total card α occurs.