Documentation

Complexity.Computability.PCP.Encoded.SelectedComposition

Executable composition with the selected assignment tester #

The six-query tester supplies an executable realization to the shared graph compiler. Slot numbering, edge enumeration, interpretation, and resource accounting use the same implementation as conjunction composition. Complete coin and query lists recover mathematical selected composition; incomplete lists still give a well-formed graph when the input is well formed.

Main definitions #

Main results #

References #

The selected tester's query and acceptance algorithms, independent of its specification.

Instances For
    @[reducible, inline]

    Input, auxiliary-proof, and selected-coin slots in a numbered composition block.

    Instances For
      def Cslib.PCP.Encoded.Graph.composeSelectedTabulated {α : Type} [Fintype α] [DecidableEq α] {width : ℕ} (number : SelectedComposeSlot α ≃ Fin width) (coins : List (Fin 5 × HadamardTester.Rand α)) (queries : List (Fin 6)) (g : Graph (α → α → Bool)) :
      Graph (Bool × (Fin 6 → Bool) → Bool × (Fin 6 → Bool) → Bool)

      Compile the selected tester and materialize the constraints over its 128-symbol alphabet.

      Instances For

        The shared compiler charges the graph, every selected query, and the full output tables.

        @[simp]
        theorem Cslib.PCP.Encoded.Graph.vertices_composeSelectedTabulated {α : Type} [Fintype α] [DecidableEq α] {width : ℕ} (number : SelectedComposeSlot α ≃ Fin width) (coins : List (Fin 5 × HadamardTester.Rand α)) (queries : List (Fin 6)) (g : Graph (α → α → Bool)) :
        (composeSelectedTabulated number coins queries g).vertices = (g.vertices + g.edges.length) * width

        The output reserves a fixed block for each old vertex and edge.

        @[simp]
        theorem Cslib.PCP.Encoded.Graph.length_edges_composeSelectedTabulated {α : Type} [Fintype α] [DecidableEq α] {width : ℕ} (number : SelectedComposeSlot α ≃ Fin width) (coins : List (Fin 5 × HadamardTester.Rand α)) (queries : List (Fin 6)) (g : Graph (α → α → Bool)) :
        (composeSelectedTabulated number coins queries g).edges.length = g.edges.length * coins.length * queries.length

        Every listed coin and query contributes one occurrence for each old edge.

        theorem Cslib.PCP.Encoded.Graph.WellFormed.composeSelectedTabulated {α : Type} [Fintype α] [DecidableEq α] {width : ℕ} (number : SelectedComposeSlot α ≃ Fin width) (coins : List (Fin 5 × HadamardTester.Rand α)) (queries : List (Fin 6)) {g : Graph (α → α → Bool)} (hg : g.WellFormed) :

        Selected composition preserves endpoint bounds for arbitrary supplied coin and query lists.

        theorem Cslib.PCP.Encoded.Graph.unsatVal_composeSelectedTabulated_eq {α : Type} [Fintype α] [DecidableEq α] {width : ℕ} (number : SelectedComposeSlot α ≃ Fin width) (coins : List (Fin 5 × HadamardTester.Rand α)) (queries : List (Fin 6)) (g : Graph (α → α → Bool)) (hcoins : coins.Nodup) (hqueries : queries.Nodup) (hmemCoins : ∀ (ω : Fin 5 × HadamardTester.Rand α), ω ∈ coins) (hmemQueries : ∀ (i : Fin 6), i ∈ queries) :

        Complete enumeration gives exactly the value of mathematical selected composition.

        theorem Cslib.PCP.Encoded.Graph.satisfiable_composeSelectedTabulated_iff {α : Type} [Fintype α] [DecidableEq α] {width : ℕ} [Nonempty α] (number : SelectedComposeSlot α ≃ Fin width) (coins : List (Fin 5 × HadamardTester.Rand α)) (queries : List (Fin 6)) (g : Graph (α → α → Bool)) (hcoins : coins.Nodup) (hqueries : queries.Nodup) (hmemCoins : ∀ (ω : Fin 5 × HadamardTester.Rand α), ω ∈ coins) (hmemQueries : ∀ (i : Fin 6), i ∈ queries) :

        Complete selected composition preserves satisfiability.

        theorem Cslib.PCP.Encoded.Graph.le_unsatVal_composeSelectedTabulated {α : Type} [Fintype α] [DecidableEq α] {width : ℕ} [Nonempty α] (number : SelectedComposeSlot α ≃ Fin width) (coins : List (Fin 5 × HadamardTester.Rand α)) (queries : List (Fin 6)) (g : Graph (α → α → Bool)) (hcoins : coins.Nodup) (hqueries : queries.Nodup) (hmemCoins : ∀ (ω : Fin 5 × HadamardTester.Rand α), ω ∈ coins) (hmemQueries : ∀ (i : Fin 6), i ∈ queries) :
        (g.toGraph id).unsatVal / 840 ≤ ((composeSelectedTabulated number coins queries g).toGraph id).unsatVal

        The six-query gadget retains at least 1/840 of the input's unsatisfied fraction.