Documentation

Complexitylib.Algebraic.LowerBound.Monotone.Clique.Basic

The monotone Boolean CLIQUE function #

This file fixes a concrete, one-variable-per-undirected-edge encoding of CLIQUE. Edges are ordered pairs (u,v) with u < v; the noncomputable equivalence with Fin (Fintype.card (Edge n)) is only the boundary required by Circuit's Fin-indexed input interface.

Two finite test families are provided for the approximation argument:

For r = k - 1, every coloring assignment is a negative CLIQUE input. This is the pigeonhole separation used in Razborov's monotone approximation method.

@[reducible, inline]

A canonical undirected edge on Fin n.

Equations
Instances For
    @[instance_reducible]
    noncomputable instance Algebraic.Monotone.Clique.instFintypeEdge {n : ℕ} :
    Equations
    @[reducible, inline]
    noncomputable abbrev Algebraic.Monotone.Clique.edgeCount (n : ℕ) :

    The number of undirected edges in the chosen encoding.

    Equations
    Instances For

      Reindex canonical edges by the Fin input type expected by circuits.

      Equations
      Instances For
        def Algebraic.Monotone.Clique.Edge.Inside {n : ℕ} (edge : Edge n) (vertices : Finset (Fin n)) :

        Both endpoints of an edge lie in a vertex set.

        Equations
        Instances For
          @[instance_reducible]
          instance Algebraic.Monotone.Clique.instDecidableInside {n : ℕ} (edge : Edge n) (vertices : Finset (Fin n)) :
          Decidable (edge.Inside vertices)
          Equations
          @[reducible, inline]

          The family of k-element vertex sets.

          Equations
          Instances For
            @[reducible, inline]

            The family of vertex colorings with r colors.

            Equations
            Instances For
              noncomputable def Algebraic.Monotone.Clique.cliqueAssignment {n : ℕ} (vertices : Finset (Fin n)) :

              The minimal positive graph consisting exactly of the edges induced by a vertex set.

              Equations
              Instances For
                @[simp]
                theorem Algebraic.Monotone.Clique.cliqueAssignment_edge {n : ℕ} (vertices : Finset (Fin n)) (edge : Edge n) :
                cliqueAssignment vertices ((edgeEquiv n) edge) = decide (edge.Inside vertices)
                noncomputable def Algebraic.Monotone.Clique.coloringAssignment {n r : ℕ} (coloring : Coloring n r) :

                The complete multipartite graph induced by a coloring: vertices are adjacent exactly when they receive different colors.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  @[simp]
                  theorem Algebraic.Monotone.Clique.coloringAssignment_edge {n r : ℕ} (coloring : Coloring n r) (edge : Edge n) :
                  coloringAssignment coloring ((edgeEquiv n) edge) = decide (coloring (↑edge).1 ≠ coloring (↑edge).2)
                  def Algebraic.Monotone.Clique.Contains {n : ℕ} (assignment : Fin (edgeCount n) → Bool) (vertices : Finset (Fin n)) :

                  An assignment contains every edge induced by vertices.

                  Equations
                  Instances For
                    theorem Algebraic.Monotone.Clique.Contains.mono_vertices {n : ℕ} {assignment : Fin (edgeCount n) → Bool} {small large : Finset (Fin n)} (subset : small ⊆ large) (contains : Contains assignment large) :
                    Contains assignment small

                    Containing the clique on a vertex set implies containing every smaller clique.

                    theorem Algebraic.Monotone.Clique.subset_of_contains_cliqueAssignment {n : ℕ} {vertices test : Finset (Fin n)} (two_le : 2 ≤ test.card) (contains : Contains (cliqueAssignment vertices) test) :
                    test ⊆ vertices

                    On a minimal clique graph, every contained vertex set of size at least two lies inside the generating clique.

                    @[instance_reducible]
                    noncomputable instance Algebraic.Monotone.Clique.instDecidableContains {n : ℕ} (assignment : Fin (edgeCount n) → Bool) (vertices : Finset (Fin n)) :
                    Decidable (Contains assignment vertices)
                    Equations
                    noncomputable def Algebraic.Monotone.Clique.function (n k : ℕ) (assignment : Fin (edgeCount n) → Bool) :

                    The ordinary monotone Boolean k-CLIQUE function on n vertices.

                    Equations
                    Instances For
                      @[simp]

                      The minimal graph of a k-set is a positive CLIQUE input.

                      theorem Algebraic.Monotone.Clique.coloring_injectiveOn_of_contains {n r : ℕ} (coloring : Coloring n r) (vertices : Finset (Fin n)) (contains : Contains (coloringAssignment coloring) vertices) :
                      Set.InjOn coloring ↑vertices

                      If a coloring graph contains a clique on vertices, then the coloring is injective on those vertices.

                      theorem Algebraic.Monotone.Clique.card_le_colors_of_contains_coloring {n r : ℕ} (coloring : Coloring n r) (vertices : Finset (Fin n)) (contains : Contains (coloringAssignment coloring) vertices) :
                      vertices.card ≤ r

                      A complete r-partite graph has no clique larger than its color set.

                      theorem Algebraic.Monotone.Clique.function_coloringAssignment_eq_false {k n : ℕ} (positive : 0 < k) (coloring : Coloring n (k - 1)) :

                      Every complete (k-1)-partite graph is a negative k-CLIQUE input.

                      CLIQUE is monotone in its edge variables.