Documentation

Analysis.Misc.erdos_613

def hasMonoStar {V : Type u_1} (G : SimpleGraph V) (color : Sym2 VFin 2) (col : Fin 2) (k : ) :

“Color-col monochromatic star of size k”: there is a center x and a set S of k distinct neighbors of x such that every edge s(x, y) with y ∈ S is present in G and colored col. (No restriction on edges inside S.)

Equations
Instances For
    def hasMonoTriangle {V : Type u_1} (G : SimpleGraph V) (color : Sym2 VFin 2) (col : Fin 2) :

    “Color-col monochromatic triangle”: there exist a, b, c with all three edges present in G and colored col. (Adjacency already forces distinctness.)

    Equations
    Instances For

      Statement (n = 5 case of Pikhurko’s counterexample). There exists a simple graph on 16 vertices with exactly 44 edges such that for every 2‑coloring of unordered pairs, either color 0 contains a $K_{1,5}$ (a 5‑edge star) or color 1 contains a $K₃$ (a triangle).

      This only states the claim (as a Prop). You can later prove it from the explicit construction, or assume it as an axiom while you develop the rest.

      Equations
      Instances For
        inductive PikhurkoN5.V :

        Vertex type with 2 + 5 + 3 + 5 + 1 = 16 vertices.

        Instances For
          def PikhurkoN5.instDecidableEqV.decEq (x✝ x✝¹ : V) :
          Decidable (x✝ = x✝¹)
          Equations
          Instances For
            Equations
            Instances For
              @[implicit_reducible]
              Equations
              def PikhurkoN5.GAdj :
              VVProp

              Adjacency relation for the Pikhurko n=5 counterexample.

              • Inside A1 and inside A2: cliques.

              • Between A1B1 and A2B2: complete bipartite.

              • Inside B1 and B2: no edges.

              • No edges between the two blocks A1/B1 and A2/B2.

              • apex is connected to every non-apex vertex.

              Equations
              Instances For

                The graph G on 16 vertices used for the n=5 counterexample.

                Equations
                Instances For
                  @[simp]
                  theorem PikhurkoN5.adj_A1A1 {i j : Fin 2} :
                  G.Adj (V.A1 i) (V.A1 j) i j
                  @[simp]
                  theorem PikhurkoN5.adj_A2A2 {i j : Fin 3} :
                  G.Adj (V.A2 i) (V.A2 j) i j
                  @[simp]
                  theorem PikhurkoN5.adj_A1B1 {i : Fin 2} {j : Fin 5} :
                  G.Adj (V.A1 i) (V.B1 j)
                  @[simp]
                  theorem PikhurkoN5.adj_B1A1 {i : Fin 5} {j : Fin 2} :
                  G.Adj (V.B1 i) (V.A1 j)
                  @[simp]
                  theorem PikhurkoN5.adj_A2B2 {i : Fin 3} {j : Fin 5} :
                  G.Adj (V.A2 i) (V.B2 j)
                  @[simp]
                  theorem PikhurkoN5.adj_B2A2 {i : Fin 3} {j : Fin 5} :
                  G.Adj (V.B2 j) (V.A2 i)
                  @[simp]
                  theorem PikhurkoN5.no_adj_B1B1 {j j' : Fin 5} :
                  ¬G.Adj (V.B1 j) (V.B1 j')
                  @[simp]
                  theorem PikhurkoN5.no_adj_B2B2 {j j' : Fin 5} :
                  ¬G.Adj (V.B2 j) (V.B2 j')
                  @[simp]
                  theorem PikhurkoN5.no_cross_blocks_A1B2 {i : Fin 2} {j : Fin 5} :
                  ¬G.Adj (V.A1 i) (V.B2 j)
                  @[simp]
                  theorem PikhurkoN5.no_cross_blocks_A2B1 {i : Fin 3} {j : Fin 5} :
                  ¬G.Adj (V.A2 i) (V.B1 j)
                  @[simp]
                  theorem PikhurkoN5.no_cross_blocks_B1A2 {i : Fin 3} {j : Fin 5} :
                  ¬G.Adj (V.B1 j) (V.A2 i)
                  @[simp]
                  theorem PikhurkoN5.no_cross_blocks_B1B2 {i j : Fin 5} :
                  ¬G.Adj (V.B1 j) (V.B2 i)
                  @[simp]
                  theorem PikhurkoN5.no_cross_blocks_A2A1 {i : Fin 2} {j : Fin 3} :
                  ¬G.Adj (V.A2 j) (V.A1 i)

                  An explicit equivalence showing V has 2+5+3+5+1 = 16 elements.

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

                    $|V| = 16$. Useful for quick cardinality arithmetic.

                    deg(apex) = 15.

                    theorem PikhurkoN5.degree_A1 (i : Fin 2) :
                    G.degree (V.A1 i) = 7

                    deg(A1 i) = 7 for each i.

                    theorem PikhurkoN5.degree_B1 (j : Fin 5) :
                    G.degree (V.B1 j) = 3

                    $deg(B1 j) = 3$ for each $j$. (Two A1s + apex.)

                    theorem PikhurkoN5.degree_A2 (i : Fin 3) :
                    G.degree (V.A2 i) = 8

                    $deg(A2 i) = 8$ for each $i$. (Two inside A2 + five in B2 + apex.)

                    theorem PikhurkoN5.degree_B2 (j : Fin 5) :
                    G.degree (V.B2 j) = 4

                    $deg(B2 j) = 4$ for each $j$. (Three A2s + apex.)

                    theorem PikhurkoN5.Finset.exists_subset_card_eq {α : Type u_1} (s : Finset α) {k : } (hk : k s.card) :
                    ts, t.card = k

                    In Fin 2, saying “equals 1” is the same as “not equal to 0”.

                    noncomputable def PikhurkoN5.blueNeighbors (color : Sym2 VFin 2) :

                    The set of blue neighbors of apex in color class 0.

                    Equations
                    Instances For
                      noncomputable def PikhurkoN5.redNeighbors (color : Sym2 VFin 2) :

                      The set of red neighbors of apex in color class 1.

                      Equations
                      Instances For
                        theorem PikhurkoN5.blueNeighbors_card_le_4 (color : Sym2 VFin 2) (hNoBlueStar : ¬hasMonoStar G color 0 5) :

                        If there is no blue K_{1,5}, then the apex has at most 4 blue neighbors.

                        theorem PikhurkoN5.red_from_apex_at_least_11 (color : Sym2 VFin 2) (hNoBlueStar : ¬hasMonoStar G color 0 5) :
                        (redNeighbors color).card 11

                        If there is no blue K_{1,5}, then at least 11 neighbors of apex are red.

                        @[implicit_reducible]
                        Equations
                        • One or more equations did not get rendered due to their size.
                        noncomputable def PikhurkoN5.redBlock1 (color : Sym2 VFin 2) :

                        Red neighbors of apex that lie in the first block A1/B1.

                        Equations
                        Instances For
                          noncomputable def PikhurkoN5.redBlock2 (color : Sym2 VFin 2) :

                          Red neighbors of apex that lie in the second block A2/B2.

                          We implement this as the complement of inBlock1 inside redNeighbors. Since apex is not in redNeighbors, this is exactly the A2/B2 part.

                          Equations
                          Instances For
                            theorem PikhurkoN5.redBlocks_partition_card (color : Sym2 VFin 2) :
                            (redBlock1 color).card + (redBlock2 color).card = (redNeighbors color).card

                            Partition of the red neighbors of apex into the two blocks.

                            theorem PikhurkoN5.exists_block_receives_at_least_6_red (color : Sym2 VFin 2) (hNoBlueStar : ¬hasMonoStar G color 0 5) :
                            (redBlock1 color).card 6 (redBlock2 color).card 6

                            Pigeonhole step. If there is no blue K_{1,5}, then one of the two blocks receives at least six red edges from apex.

                            Recognizes the clique side A1.

                            Equations
                            Instances For

                              Recognizes the independent side B1.

                              Equations
                              Instances For

                                Recognizes the clique side A2.

                                Equations
                                Instances For

                                  Recognizes the independent side B2.

                                  Equations
                                  Instances For
                                    @[implicit_reducible]
                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    @[implicit_reducible]
                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    @[implicit_reducible]
                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    @[implicit_reducible]
                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    @[implicit_reducible]
                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    @[implicit_reducible]
                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    @[simp]
                                    @[simp]
                                    @[simp]
                                    @[simp]
                                    noncomputable def PikhurkoN5.redBlock1A1 (color : Sym2 VFin 2) :

                                    Further refine redBlock1 into its A1 and B1 parts.

                                    Equations
                                    Instances For
                                      noncomputable def PikhurkoN5.redBlock1B1 (color : Sym2 VFin 2) :
                                      Equations
                                      Instances For
                                        noncomputable def PikhurkoN5.redBlock2A2 (color : Sym2 VFin 2) :

                                        Further refine redBlock2 into its A2 and B2 parts.

                                        Equations
                                        Instances For
                                          noncomputable def PikhurkoN5.redBlock2B2 (color : Sym2 VFin 2) :
                                          Equations
                                          Instances For
                                            theorem PikhurkoN5.redBlock1_eq_union (color : Sym2 VFin 2) :

                                            redBlock1 is exactly the disjoint union of its A1 and B1 parts.

                                            theorem PikhurkoN5.redBlock2_eq_union (color : Sym2 VFin 2) :

                                            redBlock2 is exactly the disjoint union of its A2 and B2 parts.

                                            theorem PikhurkoN5.redA1_redB1_disjoint (color : Sym2 VFin 2) :

                                            The two parts of redBlock1 are disjoint.

                                            theorem PikhurkoN5.redA2_redB2_disjoint (color : Sym2 VFin 2) :

                                            The two parts of redBlock2 are disjoint.

                                            theorem PikhurkoN5.redBlock1_card_eq_sum (color : Sym2 VFin 2) :
                                            (redBlock1 color).card = (redBlock1A1 color).card + (redBlock1B1 color).card

                                            Cardinal decompositions of the blocks.

                                            All B1-vertices as a finset (image of Fin 5).

                                            Equations
                                            Instances For

                                              All B2-vertices as a finset (image of Fin 5).

                                              Equations
                                              Instances For
                                                theorem PikhurkoN5.exists_red_A1_of_block1_ge6 (color : Sym2 VFin 2) (h6 : 6 (redBlock1 color).card) :
                                                ∃ (i : Fin 2), G.Adj V.apex (V.A1 i) color s(V.apex, V.A1 i) = 1

                                                If block 1 receives at least 6 red neighbors from apex, then one of them lies in A1.

                                                theorem PikhurkoN5.exists_red_A2_of_block2_ge6 (color : Sym2 VFin 2) (h6 : 6 (redBlock2 color).card) :
                                                ∃ (i : Fin 3), G.Adj V.apex (V.A2 i) color s(V.apex, V.A2 i) = 1

                                                If block 2 receives at least 6 red neighbors from apex, then one of them lies in A2.

                                                theorem PikhurkoN5.exists_red_clique_neighbor (color : Sym2 VFin 2) (hNoBlueStar : ¬hasMonoStar G color 0 5) :
                                                (∃ (i : Fin 2), G.Adj V.apex (V.A1 i) color s(V.apex, V.A1 i) = 1) ∃ (i : Fin 3), G.Adj V.apex (V.A2 i) color s(V.apex, V.A2 i) = 1

                                                Corollary: under the “no blue star” hypothesis, there is a red neighbor of apex in the appropriate clique A1 or A2.

                                                theorem PikhurkoN5.A1_mem_redBlock1_of_red (color : Sym2 VFin 2) (i : Fin 2) (_hAdj : G.Adj V.apex (V.A1 i)) (hRed : color s(V.apex, V.A1 i) = 1) :
                                                theorem PikhurkoN5.A2_mem_redBlock2_of_red (color : Sym2 VFin 2) (i : Fin 3) (_hAdj : G.Adj V.apex (V.A2 i)) (hRed : color s(V.apex, V.A2 i) = 1) :
                                                theorem PikhurkoN5.triangle_or_blueStar_from_block1 (color : Sym2 VFin 2) (h6 : 6 (redBlock1 color).card) (i : Fin 2) (hAdj : G.Adj V.apex (V.A1 i)) (hRedApexA1 : color s(V.apex, V.A1 i) = 1) :
                                                hasMonoTriangle G color 1 hasMonoStar G color 0 5

                                                If Block 1 has at least 6 red apex-neighbors, and one of them is A1 i with a red edge from apex, then either we have a red triangle, or a blue K_{1,5} centered at A1 i.

                                                theorem PikhurkoN5.triangle_or_blueStar_from_block2 (color : Sym2 VFin 2) (h6 : 6 (redBlock2 color).card) (i : Fin 3) (hAdj : G.Adj V.apex (V.A2 i)) (hRedApexA2 : color s(V.apex, V.A2 i) = 1) :
                                                hasMonoTriangle G color 1 hasMonoStar G color 0 5
                                                theorem PikhurkoN5.red_triangle_of_no_blue_star (color : Sym2 VFin 2) (hNoBlueStar : ¬hasMonoStar G color 0 5) :

                                                Main step (n=5): If there is no blue K_{1,5}, then the red color class contains a triangle.