Documentation

Mathlib.Combinatorics.KatonaCircle

The Katona circle method #

This file provides tooling to use the Katona circle method, which is double-counting ways to order n elements on a circle under some condition.

@[reducible, inline]
abbrev Numbering (X : Type u_1) [Fintype X] :
Type u_1

A numbering of a fintype X is a bijection between X and Fin (card X).

Equations
    Instances For
      def Numbering.IsPrefix {X : Type u_1} [Fintype X] (f : Numbering X) (s : Finset X) :

      IsPrefix f s means that the elements of s precede the elements of sᶜ in the numbering f.

      Equations
        Instances For
          theorem Numbering.IsPrefix.subset_of_card_le_card {X : Type u_1} [Fintype X] {f : Numbering X} {s t : Finset X} (hs : f.IsPrefix s) (ht : f.IsPrefix t) (hst : s.card t.card) :
          s t
          instance Numbering.instDecidableIsPrefix {X : Type u_1} [Fintype X] {f : Numbering X} {s : Finset X} [DecidableEq X] :
          Equations
            def Numbering.prefixed {X : Type u_1} [Fintype X] [DecidableEq X] (s : Finset X) :

            The set of numberings of which s is a prefix.

            Equations
              Instances For
                @[simp]
                theorem Numbering.mem_prefixed {X : Type u_1} [Fintype X] {f : Numbering X} {s : Finset X} [DecidableEq X] :
                def Numbering.prefixedEquiv {X : Type u_1} [Fintype X] [DecidableEq X] (s : Finset X) :

                Decompose a numbering of which s is a prefix into a numbering of s and a numbering on sᶜ.

                Equations
                  Instances For
                    @[simp]
                    theorem Numbering.dens_prefixed {X : Type u_1} [Fintype X] [DecidableEq X] (s : Finset X) :
                    theorem Numbering.disjoint_prefixed_prefixed {X : Type u_1} [Fintype X] {s t : Finset X} [DecidableEq X] (hst : ¬s t) (hts : ¬t s) :