Documentation

Complexitylib.Algebraic.LowerBound.Fusion.Conondeterministic.Neq

A conondeterministic lower bound for Boolean inequality #

The false inputs of inequality on two n-bit strings are the diagonal assignments (v, v). Above a true input (u, v), the two-point family generated by (u, u) and (v, v) is a semi-ultrafilter and accepts every literal true at (u, v).

As in the row/column inequality graph, a pair cover assigns a Boolean code to every n-bit vertex. Equal codes for distinct vertices would make their canonical semi-ultrafilter preserve the entire cover. Thus every cover has at least n pairs. The universal-circuit pullback transfers this bound, without loss, to conondeterministic AND/OR circuits over literals.

@[reducible, inline]

An n-bit vertex.

Equations
Instances For
    @[reducible, inline]

    A primary assignment consists of two n-bit vertices.

    Equations
    Instances For

      The left half of a primary assignment.

      Equations
      Instances For

        The right half of a primary assignment.

        Equations
        Instances For
          def Algebraic.Fusion.Conondeterministic.Neq.pair {n : ℕ} (leftVertex rightVertex : Vertex n) :

          Pair two vertices into one primary assignment.

          Equations
          Instances For
            @[simp]
            theorem Algebraic.Fusion.Conondeterministic.Neq.left_pair {n : ℕ} (leftVertex rightVertex : Vertex n) :
            left (pair leftVertex rightVertex) = leftVertex
            @[simp]
            theorem Algebraic.Fusion.Conondeterministic.Neq.right_pair {n : ℕ} (leftVertex rightVertex : Vertex n) :
            right (pair leftVertex rightVertex) = rightVertex

            Boolean inequality of the two halves of a primary assignment.

            Equations
            Instances For
              @[simp]
              theorem Algebraic.Fusion.Conondeterministic.Neq.function_pair {n : ℕ} (leftVertex rightVertex : Vertex n) :
              function n (pair leftVertex rightVertex) = decide (leftVertex ≠ rightVertex)
              theorem Algebraic.Fusion.Conondeterministic.Neq.pair_mem_target_iff {n : ℕ} (leftVertex rightVertex : Vertex n) :
              pair leftVertex rightVertex ∈ (literalProblem (function n)).target ↔ leftVertex ≠ rightVertex

              A diagonal false input, regarded as a point outside inequality.

              Equations
              Instances For
                @[simp]
                theorem Algebraic.Fusion.Conondeterministic.Neq.diagonal_value {n : ℕ} (vertex : Vertex n) :
                ↑(diagonal vertex) = pair vertex vertex
                @[reducible, inline]

                The canonical two-point semi-filter above an unequal primary input.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  theorem Algebraic.Fusion.Conondeterministic.Neq.canonicalFilter_accepts_coordinate {n : ℕ} (leftVertex rightVertex : Vertex n) (coordinate : Fin (n + n)) (value : Bool) (present : pair leftVertex rightVertex coordinate = value) :
                  Problem.restrict (literalProblem (function n)) {assignment : Fin (n + n) → Bool | assignment coordinate = value} ∈ canonicalFilter leftVertex rightVertex

                  The canonical filter accepts every coordinate condition true at its associated pair.

                  theorem Algebraic.Fusion.Conondeterministic.Neq.canonicalFilter_above {n : ℕ} (leftVertex rightVertex : Vertex n) :
                  (canonicalFilter leftVertex rightVertex).Above (pair leftVertex rightVertex)

                  The canonical two-point filter is above its unequal assignment.

                  theorem Algebraic.Fusion.Conondeterministic.Neq.canonicalFilter_isUltra {n : ℕ} (leftVertex rightVertex : Vertex n) :
                  (canonicalFilter leftVertex rightVertex).IsUltra

                  Canonical inequality witnesses are semi-ultrafilters.

                  Boolean membership code assigned to a diagonal vertex by a pair cover.

                  Equations
                  Instances For

                    Every semi-ultrafilter pair cover assigns distinct codes to distinct Boolean vertices.

                    Information-theoretic inequality for semi-ultrafilter covers.

                    Every semi-ultrafilter pair cover for Boolean inequality has at least n pairs.

                    theorem Algebraic.Fusion.Conondeterministic.Neq.and_lowerBound {n a : ℕ} (circuit : Circuit AndOr.signature (n + n + a + (n + n + a)) 1) (computes : UniversallyComputes circuit (function n)) :

                    Any conondeterministic literal circuit universally computing inequality of two n-bit strings contains at least n AND gates, regardless of the number of auxiliary variables or free OR gates.