OAI/Computability/MaxCut/Machines/Relations.lean
73 declarations, 0 contain sorry, 0 declared as axioms
Real gap and exact size of the alphabet graph
The gap bound is obtained directly from the two checked rejection-count inequalities. The finite graph's size is linear in the old vertices and darts, with an explicit coefficient determined only by the old alphabet cardinality.
- def
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Relations.sameAddressline 16Source documentation
Exact local address comparison. A loop identifies the two endpoint tables; the joint edge table is always disjoint from every endpoint table.
def sameAddress (selfLoop : Bool) : RawQuery q → RawQuery q → Bool | .inl (side, f), .inl (side', g) => ((side == side') || selfLoop) && decide (f = g) | .inr f, .inr g => decide (f = g) | _, _ => false
- theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Relations.sameAddress_reflline 21 - theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Relations.globalize_eq_iffline 25 - def
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Relations.eqProfileline 41 - theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Relations.eqProfile_reflline 44 - def
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Relations.canonicalSlotline 48Source documentation
Search the fixed six positions for the least occurrence of an address.
def canonicalSlot (selfLoop : Bool) (queries : Fin 6 → RawQuery q) (i : Fin 6) : Fin 6 := …
- theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Relations.canonicalSlot_profileline 51 - theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Relations.canonicalSlot_leline 57 - def
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Relations.RepeatedConsistentline 62 - instance
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Relations.repeatedConsistentDecidableline 66 - def
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Relations.incidenceAcceptline 71 - def
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Relations.predicateline 77 - def
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Relations.relationline 84Source documentation
A complete 64-by-64 Boolean relation in the shared row-major table format.
def relation (P : Fin q → Fin q → Bool) (selfLoop : Bool) (event : AlphabetGraph.LocalEvent (Fin q)) (slot : Fin 6) (orientation : Bool) : GraphTables.RelationTable := …Mentions: OAI.MaxCutGames.Foundations.PCP.AlphabetGraph.LocalEvent, OAI.MaxCutGames.Foundations.PCP.GraphTables.RelationTable
- theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Relations.relationAt_relationline 91 - theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Relations.relation_reverseline 99 - def
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Relations.oldPredicateline 108Source documentation
The old predicate is read in the same row-major order as a graph row.
def oldPredicate (old : Vector Bool (q * q)) (a b : Fin q) : Bool := …
- def
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Relations.relationFromTableline 111 - theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Relations.oldPredicate_relationAtline 115 - theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Relations.relationFromTable_eqline 118 - theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Relations.eqProfile_query_iffline 127 - theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Relations.canonicalSlot_eqline 135 - theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Relations.repeatedConsistent_iffline 144 - theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Relations.verifier_acceptsline 155 - theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Relations.incidenceAccept_eqline 162 - theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Relations.relationAt_relation_graphline 176Source documentation
Every stored bit is the actual six-query incidence predicate under the canonical explicit six-bit label enumeration, including loops and repeats.
theorem relationAt_relation_graph (G : ConstraintGraph V E (Fin q)) (e : E) (event : AlphabetGraph.LocalEvent (Fin q)) (slot : Fin 6) (orientation : Bool) (a b : GraphTables.Label) : GraphTables.relationAt (relation (G.accepts e) (decide (G.tail e = G.head e)) event slot orientation) a b = (AlphabetGraph.graph G).accepts (((e, event), slot), orientation) (Enumeration.labelEquiv.symm a) (Enumeration.labelEquiv.symm b) := by …Mentions: OAI.MaxCutGames.Foundations.PCP.ConstraintGraph, OAI.MaxCutGames.Foundations.PCP.AlphabetGraph.LocalEvent, OAI.MaxCutGames.Foundations.PCP.GraphTables.Label, OAI.MaxCutGames.Foundations.PCP.GraphTables.relationAt, OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Relations.relation, OAI.MaxCutGames.Foundations.PCP.AlphabetGraph.graph, OAI.MaxCutGames.Foundations.PCP.accepts
- def
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Table.rowFromDartline 196Source documentation
One directed occurrence, without merging repeated queries or equal rows.
def rowFromDart (input : GenericGraphTables.Table q) (dart : QueryIncidence.Dart (AlphabetGraph.Event (Fin input.darts) (Fin q)) 6) : GraphTables.DartRow (Enumeration.vertexCount input.vertices input.darts q) (Enumeration.dartCount input.darts q) := …Mentions: OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.Table, OAI.MaxCutGames.Foundations.PCP.QueryIncidence.Dart, OAI.MaxCutGames.Foundations.PCP.AlphabetGraph.Event, OAI.MaxCutGames.Foundations.PCP.GraphTables.DartRow, OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Enumeration.vertexCount, OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Enumeration.dartCount
- def
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Table.rowsline 215Source documentation
The row number decodes to precisely one event/slot/orientation occurrence.
def rows (input : GenericGraphTables.Table q) : GraphTables.Rows (Enumeration.vertexCount input.vertices input.darts q) (Enumeration.dartCount input.darts q) := …Mentions: OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.Table, OAI.MaxCutGames.Foundations.PCP.GraphTables.Rows, OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Enumeration.vertexCount, OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Enumeration.dartCount
- theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Table.rows_atline 221 - theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Table.rows_reverseIndexline 228Source documentation
Reversal changes only the occurrence's orientation, preserving event and slot.
theorem rows_reverseIndex (input : GenericGraphTables.Table q) (index : Fin (Enumeration.dartCount input.darts q)) : (rows input)[index].reverseIndex = Enumeration.dartEquiv input.darts q (((Enumeration.dartEquiv input.darts q).symm index).1, !((Enumeration.dartEquiv input.darts q).symm index).2) := by …Mentions: OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.Table, OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Enumeration.dartCount, OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Table.rows, OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Enumeration.dartEquiv
- theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Table.dartRow_ext_inline_Tableline 236 - theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Table.relation_ext_inline_Tableline 246 - theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Table.rowFromDart_eq_graphRowline 260Source documentation
The three stored fields agree with the actual alphabet graph at this dart.
theorem rowFromDart_eq_graphRow (input : GenericGraphTables.Table q) (dart : QueryIncidence.Dart (AlphabetGraph.Event (Fin input.darts) (Fin q)) 6) : rowFromDart input dart = { tail := Enumeration.vertexEquiv input.vertices input.darts q …Mentions: OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.Table, OAI.MaxCutGames.Foundations.PCP.QueryIncidence.Dart, OAI.MaxCutGames.Foundations.PCP.AlphabetGraph.Event, OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Table.rowFromDart, OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Enumeration.vertexEquiv
- theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Table.rows_eq_graphRowsline 301Source documentation
Equality of the full row vector, including all multiplicities and reversal indices.
theorem rows_eq_graphRows (input : GenericGraphTables.Table q) : rows input = GraphTables.graphRows (GraphTables.enumeratedGraph (AlphabetGraph.graph (GenericGraphTables.semantics input)) (Enumeration.vertexEquiv input.vertices input.darts q) (Enumeration.dartEquiv input.darts q) Enumeration.labelEquiv) := by …Mentions: OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.Table, OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Table.rows, OAI.MaxCutGames.Foundations.PCP.GraphTables.graphRows, OAI.MaxCutGames.Foundations.PCP.GraphTables.enumeratedGraph, OAI.MaxCutGames.Foundations.PCP.AlphabetGraph.graph, OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.semantics, OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Enumeration.vertexEquiv, OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Enumeration.dartEquiv, OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Enumeration.labelEquiv
- theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Table.rows_validline 312 - def
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Table.buildline 317Source documentation
Actual executable output table. Its validity proof is erased at execution.
def build (input : GenericGraphTables.Table q) : GraphTables.Table where …
Mentions: OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.Table, OAI.MaxCutGames.Foundations.PCP.GraphTables.Table
- theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Table.build_verticesline 323 - theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Table.build_dartsline 326 - theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Table.table_rows_congr_inline_Tableline 329 - theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Table.semantics_rows_congr_inline_Tableline 335 - theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Table.build_eq_ofEnumeratedGraphline 343Source documentation
Exact table equality in the explicit enumerations, without a representation choice.
theorem build_eq_ofEnumeratedGraph (input : GenericGraphTables.Table q) : build input = GraphTables.ofEnumeratedGraph (AlphabetGraph.graph (GenericGraphTables.semantics input)) (Enumeration.vertexEquiv input.vertices input.darts q) (Enumeration.dartEquiv input.darts q) Enumeration.labelEquiv := by …Mentions: OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.Table, OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Table.build, OAI.MaxCutGames.Foundations.PCP.GraphTables.ofEnumeratedGraph, OAI.MaxCutGames.Foundations.PCP.AlphabetGraph.graph, OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.semantics, OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Enumeration.vertexEquiv, OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Enumeration.dartEquiv, OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Enumeration.labelEquiv
- theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Table.semantics_buildline 352Source documentation
Full decoded graph equality, including reversal, endpoints, and every predicate bit.
theorem semantics_build (input : GenericGraphTables.Table q) : GraphTables.semantics (build input) = GraphTables.enumeratedGraph (AlphabetGraph.graph (GenericGraphTables.semantics input)) (Enumeration.vertexEquiv input.vertices input.darts q) (Enumeration.dartEquiv input.darts q) Enumeration.labelEquiv := by …Mentions: OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.Table, OAI.MaxCutGames.Foundations.PCP.GraphTables.semantics, OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Table.build, OAI.MaxCutGames.Foundations.PCP.GraphTables.enumeratedGraph, OAI.MaxCutGames.Foundations.PCP.AlphabetGraph.graph, OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.semantics, OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Enumeration.vertexEquiv, OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Enumeration.dartEquiv, OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Enumeration.labelEquiv
- theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Table.decode_buildline 361Source documentation
Encoding and decoding the executable output recovers the full intended table.
theorem decode_build (input : GenericGraphTables.Table q) : GraphTables.decodeTableBits (GraphTables.tableBits (build input)) = some (GraphTables.ofEnumeratedGraph (AlphabetGraph.graph (GenericGraphTables.semantics input)) (Enumeration.vertexEquiv input.vertices input.darts q) (Enumeration.dartEquiv input.darts q) Enumeration.labelEquiv) := by …Mentions: OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.Table, OAI.MaxCutGames.Foundations.PCP.GraphTables.decodeTableBits, OAI.MaxCutGames.Foundations.PCP.GraphTables.tableBits, OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Table.build, OAI.MaxCutGames.Foundations.PCP.GraphTables.ofEnumeratedGraph, OAI.MaxCutGames.Foundations.PCP.AlphabetGraph.graph, OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.semantics, OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Enumeration.vertexEquiv, OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Enumeration.dartEquiv, OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Enumeration.labelEquiv
- theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Table.edgeSatisfied_buildline 369 - theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Table.rejectionCount_buildline 382 - theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Table.perfect_completenessline 393 - theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Table.gap_transferline 408Source documentation
The gap statement transfers to every labeling of the actual numbered table.
theorem gap_transfer [Nonempty (Fin q)] (input : GenericGraphTables.Table q) (a b : Nat) (source : ∀ labeling : Fin input.vertices → Fin q, a * input.darts ≤ b * (GenericGraphTables.semantics input).rejectionCount labeling) (labeling : Fin (build input).vertices → GraphTables.Label) : a * (build input).darts ≤ (b * 12288) * (GraphTables.semantics (build input)).rejectionCount labeling := by …Mentions: OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.Table, OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.semantics, OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Table.build, OAI.MaxCutGames.Foundations.PCP.GraphTables.Label, OAI.MaxCutGames.Foundations.PCP.GraphTables.semantics
- theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Table.rowList_eq_orderedline 433Source documentation
The serialized row list follows the same explicit occurrence order as the vector.
theorem rowList_eq_ordered (input : GenericGraphTables.Table q) : GraphTables.rowList (build input) = (Enumeration.ordered (Enumeration.dartEquiv input.darts q)).map (rowFromDart input) := by …Mentions: OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.Table, OAI.MaxCutGames.Foundations.PCP.GraphTables.rowList, OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Table.build, OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Enumeration.ordered, OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Enumeration.dartEquiv, OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Table.rowFromDart
- theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Table.tableWords_eq_orderedline 443Source documentation
Complete output words: two headers followed by every ordered row block.
theorem tableWords_eq_ordered (input : GenericGraphTables.Table q) : GraphTables.tableWords (build input) = [Enumeration.vertexCount input.vertices input.darts q, Enumeration.dartCount input.darts q] ++ (Enumeration.ordered (Enumeration.dartEquiv input.darts q)).flatMap (fun dart => GraphTables.rowWords (rowFromDart input dart)) := by …Mentions: OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.Table, OAI.MaxCutGames.Foundations.PCP.GraphTables.tableWords, OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Table.build, OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Enumeration.vertexCount, OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Enumeration.dartCount, OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Enumeration.ordered, OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Enumeration.dartEquiv, OAI.MaxCutGames.Foundations.PCP.GraphTables.rowWords, OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Table.rowFromDart
- theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Table.rowList_lengthline 452 - theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Table.tableWords_lengthline 456 - theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Table.tableBits_length_leline 461 - abbrev
OAI.MaxCutGames.Foundations.PCP.AlphabetGraphBounds.OutputVertexline 486 - abbrev
OAI.MaxCutGames.Foundations.PCP.AlphabetGraphBounds.OutputDartline 489 - def
OAI.MaxCutGames.Foundations.PCP.AlphabetGraphBounds.localEventFactorline 492Source documentation
The number of local verifier events for an alphabet with
qsymbols.def localEventFactor (q : Nat) : Nat := …
- def
OAI.MaxCutGames.Foundations.PCP.AlphabetGraphBounds.vertexFactorline 495 - def
OAI.MaxCutGames.Foundations.PCP.AlphabetGraphBounds.dartFactorline 497 - def
OAI.MaxCutGames.Foundations.PCP.AlphabetGraphBounds.sizeFactorline 499 - theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetGraphBounds.sizeFactor_positiveline 501 - theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetGraphBounds.gap_transfer_realline 510Source documentation
Real gaps transfer without rational approximation, including an empty old dart type. The loss is exactly
2048 * 6 = 12288.theorem gap_transfer_real [Fintype E] [DecidableEq V] [DecidableEq E] (G : ConstraintGraph V E A) (eps : ℝ) (_eps_nonnegative : 0 ≤ eps) (source : ∀ labeling : V → A, eps * (Fintype.card E : ℝ) ≤ (G.rejectionCount labeling : ℝ)) (labeling : OutputVertex V E A → QueryIncidence.Label 6) : (eps / 12288) * (Fintype.card (OutputDart E A) : ℝ) ≤ ((AlphabetGraph.graph G).rejectionCount labeling : ℝ) := by …Mentions: OAI.MaxCutGames.Foundations.PCP.ConstraintGraph, OAI.MaxCutGames.Foundations.PCP.AlphabetGraphBounds.OutputVertex, OAI.MaxCutGames.Foundations.PCP.QueryIncidence.Label, OAI.MaxCutGames.Foundations.PCP.AlphabetGraphBounds.OutputDart, OAI.MaxCutGames.Foundations.PCP.AlphabetGraph.graph
- theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetGraphBounds.card_output_vertexline 549 - theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetGraphBounds.card_output_dartline 559 - theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetGraphBounds.card_output_totalline 566 - theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetGraphBounds.card_output_total_leline 576Source documentation
One coefficient depending only on the alphabet bounds the actual total number of output vertices and darts.
theorem card_output_total_le : Fintype.card (OutputVertex V E A) + Fintype.card (OutputDart E A) ≤ sizeFactor (Fintype.card A) * (Fintype.card V + Fintype.card E) := by …Mentions: OAI.MaxCutGames.Foundations.PCP.AlphabetGraphBounds.OutputVertex, OAI.MaxCutGames.Foundations.PCP.AlphabetGraphBounds.OutputDart, OAI.MaxCutGames.Foundations.PCP.AlphabetGraphBounds.sizeFactor
- theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetGraphBounds.card_output_vertex_leline 594 - theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetGraphBounds.card_output_dart_leline 600 - theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTableBounds.gap_transfer_realline 618Source documentation
The actual table output obeys the real gap bound, with no rational approximation and with empty input dart sets allowed.
theorem gap_transfer_real (hq : 0 < q) (input : GenericGraphTables.Table q) (eps : ℝ) (eps_nonnegative : 0 ≤ eps) (source : ∀ labeling : Fin input.vertices → Fin q, eps * (input.darts : ℝ) ≤ ((GenericGraphTables.semantics input).rejectionCount labeling : ℝ)) (labeling : Fin (Table.build input).vertices → GraphTables.Label) : (eps / 12288) * ((Table.build input).darts : ℝ) ≤ ((GraphTables.semantics (Table.build input)).rejectionCount labeling : ℝ) := by …Mentions: OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.Table, OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.semantics, OAI.MaxCutGames.Foundations.PCP.GraphTables.Label, OAI.MaxCutGames.Foundations.PCP.GraphTables.semantics
- theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTableBounds.build_verticesline 647Source documentation
Exact output vertex count; this arithmetic identity also permits
q = 0.theorem build_vertices (input : GenericGraphTables.Table q) : (Table.build input).vertices = input.vertices * 2 ^ q + input.darts * AlphabetGraphBounds.vertexFactor q := by …Mentions: OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.Table, OAI.MaxCutGames.Foundations.PCP.AlphabetGraphBounds.vertexFactor
- theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTableBounds.build_dartsline 658Source documentation
Exact output dart count, including orientation and query multiplicity.
theorem build_darts (input : GenericGraphTables.Table q) : (Table.build input).darts = input.darts * AlphabetGraphBounds.dartFactor q := by …Mentions: OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.Table, OAI.MaxCutGames.Foundations.PCP.AlphabetGraphBounds.dartFactor
- theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTableBounds.build_totalline 666 - theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTableBounds.build_total_leline 674Source documentation
A fixed alphabet gives one linear bound on the actual output table size.
theorem build_total_le (input : GenericGraphTables.Table q) : (Table.build input).vertices + (Table.build input).darts ≤ AlphabetGraphBounds.sizeFactor q * (input.vertices + input.darts) := by …Mentions: OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.Table, OAI.MaxCutGames.Foundations.PCP.AlphabetGraphBounds.sizeFactor
- theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTableBounds.build_vertices_leline 691 - theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTableBounds.build_darts_leline 696 - theorem
OAI.MaxCutGames.Foundations.PCP.AlphabetTableBounds.sizeFactor_positiveline 701