Documentation

LeanPool.FrontierMathOpenHypergraphs.Substitution

Support gadgets and the substitution theorem #

Support patterns and frames #

A support pattern on [t] is a subset of Fin t of size at least 2.

Equations
Instances For
    @[reducible, inline]

    The block hypergraphs used in a substitution construction.

    Equations
    Instances For
      @[reducible, inline]

      An occurrence of a support pattern in a support multiset.

      Equations
      Instances For

        The support pattern attached to a given support-vertex occurrence.

        Equations
        Instances For
          noncomputable def HypergraphLowerBound.supportSetAt {t : } (F : Multiset (SupportPattern t)) (s : SupportOcc F) :

          The underlying subset of [t] attached to a support occurrence.

          Equations
          Instances For
            noncomputable def HypergraphLowerBound.omegaCount {t : } (F : Multiset (SupportPattern t)) (T I : Finset (Fin t)) :

            omegaCount F T I counts the occurrences of support patterns S in F with ST and |S ∩ I| = 1, counting multiplicity.

            Equations
            Instances For

              A support multiset F is an n-frame if the frame inequality holds for every I ⊆ T ⊆ [t].

              Equations
              Instances For

                Vertices of the substituted hypergraph: tagged block vertices together with one vertex for each occurrence of a support pattern.

                Instances For
                  @[reducible, inline]

                  The substituted hypergraph whose vertices live in SubstVertex t F.

                  Equations
                  Instances For
                    noncomputable def HypergraphLowerBound.liftBlockEdge {t : } (F : Multiset (SupportPattern t)) (i : Fin t) (e : Finset ) :

                    Lift one edge from block i into the substituted hypergraph.

                    Equations
                    Instances For

                      The substitution hypergraph F[G_1, ..., G_t], realized as the hypergraph whose vertices are tagged block vertices plus support vertices, and whose edges are the lifted edges of the blocks.

                      Equations
                      Instances For

                        The selected edges from block i inside a chosen subfamily P of the substituted hypergraph.

                        Equations
                        Instances For
                          noncomputable def HypergraphLowerBound.selectedBlockCount {t : } (F : Multiset (SupportPattern t)) (blocks : BlockFamily t) (P : SubstitutedHypergraph F) (i : Fin t) :

                          The number of selected edges from block i.

                          Equations
                          Instances For
                            noncomputable def HypergraphLowerBound.selectedOldVertexCount {t : } (F : Multiset (SupportPattern t)) (blocks : BlockFamily t) (P : SubstitutedHypergraph F) (i : Fin t) (v : ) :

                            The number of selected edges from block i containing v.

                            Equations
                            Instances For

                              The number of selected substituted edges incident to a support occurrence.

                              Equations
                              Instances For
                                noncomputable def HypergraphLowerBound.tOf {t : } (F : Multiset (SupportPattern t)) (blocks : BlockFamily t) (P : SubstitutedHypergraph F) :

                                The blocks from which at most one selected edge is taken.

                                Equations
                                Instances For
                                  noncomputable def HypergraphLowerBound.iOf {t : } (F : Multiset (SupportPattern t)) (blocks : BlockFamily t) (P : SubstitutedHypergraph F) :

                                  The blocks from which exactly one selected edge is taken.

                                  Equations
                                  Instances For

                                    The old vertices in block i that are seen exactly once by the selected family P.

                                    Equations
                                    Instances For

                                      The support-vertex occurrences seen exactly once by the selected family P.

                                      Equations
                                      Instances For

                                        The uniquely covered old vertices in the substituted hypergraph, grouped blockwise.

                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Instances For
                                          noncomputable def HypergraphLowerBound.oldVertexUnion {t : } (F : Multiset (SupportPattern t)) (blocks : BlockFamily t) :

                                          The old vertices coming from the block hypergraphs, tagged by their block index.

                                          Equations
                                          Instances For

                                            All support vertices of the substituted hypergraph, indexed by their occurrences in F.

                                            Equations
                                            Instances For
                                              theorem HypergraphLowerBound.mem_vertexSet_of_count_eq_one {V : Type u_1} [DecidableEq V] {edges P : Hypergraph V} {x : V} (hP : P edges) (hx : {EP | x E}.card = 1) :
                                              x vertexSet edges
                                              theorem HypergraphLowerBound.liftBlockEdge_ne_of_ne {t : } (F : Multiset (SupportPattern t)) (blocks : BlockFamily t) (hEdgeDisjoint : Pairwise fun (i j : Fin t) => Disjoint (blocks i) (blocks j)) {i j : Fin t} (hij : i j) {e e' : Finset } (he : e blocks i) (he' : e' blocks j) :
                                              theorem HypergraphLowerBound.liftedBlockImages_disjoint {t : } (F : Multiset (SupportPattern t)) (blocks : BlockFamily t) (hEdgeDisjoint : Pairwise fun (i j : Fin t) => Disjoint (blocks i) (blocks j)) {i j : Fin t} (hij : i j) :
                                              Disjoint (Finset.image (liftBlockEdge F i) (blocks i)) (Finset.image (liftBlockEdge F j) (blocks j))
                                              theorem HypergraphLowerBound.old_selected_count_eq {t : } (F : Multiset (SupportPattern t)) (blocks : BlockFamily t) (P : SubstitutedHypergraph F) (hP : P substitutionHypergraph F blocks) (i : Fin t) (v : ) :
                                              {EP | SubstVertex.old i v E}.card = selectedOldVertexCount F blocks P i v
                                              theorem HypergraphLowerBound.selectedImages_disjoint {t : } (F : Multiset (SupportPattern t)) (blocks : BlockFamily t) (P : SubstitutedHypergraph F) (hEdgeDisjoint : Pairwise fun (i j : Fin t) => Disjoint (blocks i) (blocks j)) {S : Finset (Fin t)} :
                                              (↑S).PairwiseDisjoint fun (i : Fin t) => Finset.image (liftBlockEdge F i) (selectedBlockEdges F blocks P i)
                                              theorem HypergraphLowerBound.new_selected_count_eq_sum {t : } (F : Multiset (SupportPattern t)) (blocks : BlockFamily t) (P : SubstitutedHypergraph F) (hP : P substitutionHypergraph F blocks) (hEdgeDisjoint : Pairwise fun (i j : Fin t) => Disjoint (blocks i) (blocks j)) (s : SupportOcc F) :
                                              selectedSupportCount P s = isupportSetAt F s, selectedBlockCount F blocks P i
                                              @[simp]
                                              theorem HypergraphLowerBound.mem_tOf_iff {t : } {F : Multiset (SupportPattern t)} {blocks : BlockFamily t} {P : SubstitutedHypergraph F} {i : Fin t} :
                                              i tOf F blocks P selectedBlockCount F blocks P i 1
                                              @[simp]
                                              theorem HypergraphLowerBound.mem_iOf_iff {t : } {F : Multiset (SupportPattern t)} {blocks : BlockFamily t} {P : SubstitutedHypergraph F} {i : Fin t} :
                                              i iOf F blocks P selectedBlockCount F blocks P i = 1
                                              theorem HypergraphLowerBound.card_inter_iOf_eq_sum_indicator {t : } (F : Multiset (SupportPattern t)) (blocks : BlockFamily t) (P : SubstitutedHypergraph F) (S : Finset (Fin t)) :
                                              (S iOf F blocks P).card = iS, if selectedBlockCount F blocks P i = 1 then 1 else 0
                                              theorem HypergraphLowerBound.sum_selected_eq_card_inter_iOf {t : } (F : Multiset (SupportPattern t)) (blocks : BlockFamily t) (P : SubstitutedHypergraph F) (S : Finset (Fin t)) (hST : S tOf F blocks P) :
                                              iS, selectedBlockCount F blocks P i = (S iOf F blocks P).card
                                              theorem HypergraphLowerBound.sum_selected_eq_one_iff {t : } (F : Multiset (SupportPattern t)) (blocks : BlockFamily t) (P : SubstitutedHypergraph F) (S : Finset (Fin t)) :
                                              iS, selectedBlockCount F blocks P i = 1 S tOf F blocks P (S iOf F blocks P).card = 1
                                              theorem HypergraphLowerBound.new_unique_iff {t : } (F : Multiset (SupportPattern t)) (blocks : BlockFamily t) (P : SubstitutedHypergraph F) (hP : P substitutionHypergraph F blocks) (hEdgeDisjoint : Pairwise fun (i j : Fin t) => Disjoint (blocks i) (blocks j)) (s : SupportOcc F) :
                                              selectedSupportCount P s = 1 supportSetAt F s tOf F blocks P (supportSetAt F s iOf F blocks P).card = 1
                                              theorem HypergraphLowerBound.support_vertex_realized {t : } (F : Multiset (SupportPattern t)) (edgeCounts : Fin t) (blocks : BlockFamily t) (hFrame : IsFrame F edgeCounts) (hEdgeCounts : ∀ (i : Fin t), Finset.card (blocks i) = edgeCounts i) (s : SupportOcc F) :
                                              isupportSetAt F s, Finset.Nonempty (blocks i)

                                              Substitution theorem #

                                              structure HypergraphLowerBound.PartitionedBlocks {t : } (cap : Fin t) (blocks : BlockFamily t) :

                                              The assumptions on a family of block hypergraphs needed for the qualitative substitution theorem.

                                              Instances For
                                                structure HypergraphLowerBound.CountedBlocks {t : } (edgeCounts vertexCounts : Fin t) (blocks : BlockFamily t) extends HypergraphLowerBound.PartitionedBlocks edgeCounts blocks :

                                                The additional edge/vertex count data needed for the quantitative recurrence.

                                                Instances For
                                                  theorem HypergraphLowerBound.substitution_theorem {t : } (F : Multiset (SupportPattern t)) (cap : Fin t) (blocks : BlockFamily t) (hFrame : IsFrame F cap) (hBlocks : PartitionedBlocks cap blocks) :

                                                  If F is an n-frame and each block hypergraph has no partition larger than its capacity, then the substituted hypergraph has no partition larger than the total capacity. The hypotheses on pairwise disjoint vertex and edge sets match the setup in frontier.tex.

                                                  theorem HypergraphLowerBound.frame_recurrence {t : } (F : Multiset (SupportPattern t)) (edgeCounts vertexCounts : Fin t) (blocks : BlockFamily t) (hFrame : IsFrame F edgeCounts) (hBlocks : CountedBlocks edgeCounts vertexCounts blocks) :

                                                  Quantitative corollary of the substitution theorem used throughout the recursive constructions. Since hypergraphs are encoded by their edge sets, "no isolated vertices" is implicit in the use of vertexSet.