OAI/GroupTheory/Hyperbolic/PermutationCycles.lean

GitHub source file

45 declarations, 0 contain sorry, 0 declared as axioms

  1. abbrev OAI.Release075.PermCycles.Cycles line 13
  2. instance OAI.Release075.PermCycles.(instance at line 14) line 14
  3. def OAI.Release075.PermCycles.cl line 16
  4. theorem OAI.Release075.PermCycles.cl_eq_iff line 19
  5. theorem OAI.Release075.PermCycles.cl_surjective line 23
  6. def OAI.Release075.PermCycles.orbit line 25
  7. theorem OAI.Release075.PermCycles.mem_orbit line 29
  8. theorem OAI.Release075.PermCycles.orbit_eq_image line 33
  9. theorem OAI.Release075.PermCycles.orbit_card_of_period line 53
  10. def OAI.Release075.PermCycles.fiberOrbitEquiv line 60
  11. theorem OAI.Release075.PermCycles.card_fiber line 67
  12. theorem OAI.Release075.PermCycles.sum_card_fibers line 72
  13. theorem OAI.Release075.PermCycles.card_eq_mul_cycles line 78
  14. theorem OAI.Release075.PermCycles.orbit_card_involution line 89

    Source documentation

    A fixed-point-free involution has precisely two darts in each edge orbit.

    theorem orbit_card_involution (f : Perm A) (h : Function.Involutive f)
        (hne : ∀ a, f a ≠ a) (a : A) : (orbit f a).card = 2 := by
    …

    Mentions: OAI.Release075.PermCycles.orbit

  15. theorem OAI.Release075.PermCycles.orbit_card_three line 97

    Source documentation

    A three-cycle orbit is counted with all corners, not merely its moved support.

    theorem orbit_card_three (f : Perm A) (a : A) (hp : (f^3) a = a)
        (hne : f a ≠ a) : (orbit f a).card = 3 := by
    …

    Mentions: OAI.Release075.PermCycles.orbit

  16. theorem OAI.Release075.PermCycles.minimalPeriod_pos line 120
  17. theorem OAI.Release075.PermCycles.orbit_card_eq_minimalPeriod line 124
  18. theorem OAI.Release075.PermCycles.cl_apply line 133
  19. theorem OAI.Release075.PermCycles.invariant_sameCycle line 146

    Source documentation

    Any function invariant under one permutation step is constant on entire cycles. This includes negative powers without any infinite search.

    theorem invariant_sameCycle {B : Type*} (f : Perm A) (q : A → B)
        (h : ∀ x, q (f x) = q x) {x y : A} (hxy : f.SameCycle x y) : q x = q y := by
    …
  20. def OAI.Release075.PermCycles.descend line 155
  21. theorem OAI.Release075.PermCycles.descend_cl line 159
  22. theorem OAI.Release075.PermCycles.swap_merges line 164

    Source documentation

    Switching the two outgoing cycle destinations joins distinct cycles. This is the elementary surgery used when gluing or cancelling planar picture arcs.

    theorem swap_merges (f : Perm A) {a b : A} (hab : ¬ f.SameCycle a b) :
        (Equiv.swap a b * f).SameCycle a b := by
    …
  23. theorem OAI.Release075.PermCycles.old_cycles_of_swap_merged line 196
  24. theorem OAI.Release075.PermCycles.card_subtype_ne_add_one line 214
  25. theorem OAI.Release075.PermCycles.cycles_card_swap_of_not_same line 225

    Source documentation

    Exact cycle count for merging two different cycles by one swap. Fixed points are included in the count, unlike the support-cycle count in permutation sign.

    theorem cycles_card_swap_of_not_same (f : Perm A) {a b : A} (hab : ¬ f.SameCycle a b) :
        Fintype.card (Cycles (Equiv.swap a b * f)) + 1 = Fintype.card (Cycles f) := by
    …

    Mentions: OAI.Release075.PermCycles.Cycles

  26. theorem OAI.Release075.PermCycles.swap_splits line 277

    Source documentation

    Switching the destinations within one cycle cuts it into two. The proof uses the initial orbit segment from a to b, rather than assuming an unproved topological separation statement.

    theorem swap_splits (f : Perm A) {a b : A} (hne : a ≠ b) (hab : f.SameCycle a b) :
        ¬ (Equiv.swap a b * f).SameCycle a b := by
    …
  27. theorem OAI.Release075.PermCycles.cycles_card_swap_of_same line 323
  28. def OAI.Release075.PermCycles.joinPair line 340

    Source documentation

    Join just two classes of a partition.

    def joinPair (s : Setoid A) (a b : A) : Setoid A :=
    …
  29. theorem OAI.Release075.PermCycles.le_joinPair line 344
  30. theorem OAI.Release075.PermCycles.joinPair_rel line 348
  31. theorem OAI.Release075.PermCycles.joinPair_le line 352
  32. theorem OAI.Release075.PermCycles.joinPair_eq_of_rel line 361
  33. theorem OAI.Release075.PermCycles.card_joinPair line 365

    Source documentation

    The exact loss of one component when two distinct classes are joined.

    theorem card_joinPair (s : Setoid A) {a b : A} (hab : ¬ s a b) :
        Nat.card (Quotient (joinPair s a b)) + 1 = Nat.card (Quotient s) := by
    …

    Mentions: OAI.Release075.PermCycles.joinPair

  34. abbrev OAI.Release075.PermCycles.components line 411

    Source documentation

    Components of the graph generated by two permutations; cycles of their product are contained in these components.

    abbrev components (f g : Perm A) : Setoid A :=
    …
  35. def OAI.Release075.PermCycles.cycleCount line 414
  36. def OAI.Release075.PermCycles.componentCount line 415
  37. theorem OAI.Release075.PermCycles.sameCycle_le_of_step line 417
  38. theorem OAI.Release075.PermCycles.sameCycle_mul_le_components line 428
  39. theorem OAI.Release075.PermCycles.components_swap_of_not_same line 438
  40. theorem OAI.Release075.PermCycles.cycleCount_one line 470
  41. theorem OAI.Release075.PermCycles.components_one line 478
  42. theorem OAI.Release075.PermCycles.componentCount_one line 486
  43. theorem OAI.Release075.PermCycles.cycleCount_swap_of_not_same line 489
  44. theorem OAI.Release075.PermCycles.cycleCount_swap_le line 493
  45. theorem OAI.Release075.PermCycles.euler_bound line 509

    Source documentation

    Euler's upper bound for an arbitrary oriented combinatorial map, allowing multiple components and positive genus. No planarity theorem is assumed.

    theorem euler_bound (f g : Perm A) :
        cycleCount f + cycleCount g + cycleCount (f*g) ≤
          Fintype.card A + 2 * componentCount f g := by
    …

    Mentions: OAI.Release075.PermCycles.cycleCount, OAI.Release075.PermCycles.componentCount