OAI/Computability/MaxCut/PCP/PoweringOpinionTables.lean
116 declarations, 0 contain sorry, 0 declared as axioms
Bounded first-address tables for actual powering constraints
For a graph with numbered vertices and ports, each stored local-opinion index
is the first address in allAddresses that reaches the requested vertex.
The search traverses bounded port words, never the ambient vertex set.
The walk table stores one base dart and two address indices per traversed
edge. Looking up the endpoint labels at those indices gives exactly the
existing finitePortSelector decoders, including when addresses collide.
The resulting finite table predicate equals the actual powering predicate.
- theorem
OAI.MaxCutGames.Foundations.PCP.PoweringOpinionTables.match_in_tail_inline_PoweringOpinionTablesline 26 - def
OAI.MaxCutGames.Foundations.PCP.PoweringOpinionTables.firstIndexline 33 - theorem
OAI.MaxCutGames.Foundations.PCP.PoweringOpinionTables.get_firstIndexline 42Source documentation
The stored index selects the very same first address as
scanWitness, not just an address with the same endpoint.theorem get_firstIndex (p : X → Prop) [DecidablePred p] : ∀ (xs : List X) (h : ∃ a ∈ xs, p a), xs.get (firstIndex p xs h) = (scanWitness p xs h).val := by …Mentions: OAI.MaxCutGames.Foundations.PCP.PoweringOpinionTables.firstIndex
- theorem
OAI.MaxCutGames.Foundations.PCP.PoweringOpinionTables.firstIndex_matchesline 55 - theorem
OAI.MaxCutGames.Foundations.PCP.PoweringOpinionTables.firstIndex_is_firstline 61Source documentation
Every earlier stored address fails the matching predicate.
theorem firstIndex_is_first (p : X → Prop) [DecidablePred p] : ∀ (xs : List X) (h : ∃ a ∈ xs, p a) (j : Fin xs.length), j.val < (firstIndex p xs h).val → ¬p (xs.get j) := by …Mentions: OAI.MaxCutGames.Foundations.PCP.PoweringOpinionTables.firstIndex
- abbrev
OAI.MaxCutGames.Foundations.PCP.PoweringOpinionTables.AddressIndexline 78Source documentation
A local label slot is an index into the explicit bounded address list.
abbrev AddressIndex (d t : Nat) := Fin (allAddresses d t).length …
- def
OAI.MaxCutGames.Foundations.PCP.PoweringOpinionTables.addressIndexline 82 - theorem
OAI.MaxCutGames.Foundations.PCP.PoweringOpinionTables.addressIndex_getline 89 - theorem
OAI.MaxCutGames.Foundations.PCP.PoweringOpinionTables.addressIndex_matchesline 98 - theorem
OAI.MaxCutGames.Foundations.PCP.PoweringOpinionTables.addressIndex_is_firstline 104 - theorem
OAI.MaxCutGames.Foundations.PCP.PoweringOpinionTables.addressIndex_ltline 111Source documentation
The address bound depends on degree and radius, not the vertex count.
theorem addressIndex_lt (G : PortGraph (Fin vertices) (Fin d)) (t : Nat) (center : Fin vertices) (u : Ball G t center) : (addressIndex G t center u).val < ∑ n : Fin (t + 1), d ^ n.val := by …Mentions: OAI.MaxCutGames.Foundations.PCP.PoweringOpinionTables.addressIndex
- abbrev
OAI.MaxCutGames.Foundations.PCP.PoweringOpinionTables.LabelTableline 117 - def
OAI.MaxCutGames.Foundations.PCP.PoweringOpinionTables.labelTableline 120Source documentation
Materialize a padded label in the common address order.
def labelTable {t : Nat} (a : PaddedLabel (Fin d) t A) : LabelTable d t A := …Mentions: OAI.MaxCutGames.Foundations.PCP.PoweringOpinionTables.LabelTable
- theorem
OAI.MaxCutGames.Foundations.PCP.PoweringOpinionTables.labelTable_getline 123 - theorem
OAI.MaxCutGames.Foundations.PCP.PoweringOpinionTables.labelTable_addressIndexline 130Source documentation
Exact evaluation bridge for every local target, with no consistency assumption on labels at distinct addresses that reach the same vertex.
theorem labelTable_addressIndex (G : PortGraph (Fin vertices) (Fin d)) (t : Nat) (center : Fin vertices) (u : Ball G t center) (a : PaddedLabel (Fin d) t A) : (labelTable a)[addressIndex G t center u] = decode (finitePortSelector G t center) a u := by …Mentions: OAI.MaxCutGames.Foundations.PCP.PoweringOpinionTables.labelTable, OAI.MaxCutGames.Foundations.PCP.PoweringOpinionTables.addressIndex
- structure
OAI.MaxCutGames.Foundations.PCP.PoweringOpinionTables.WalkOpinionRowline 138Source documentation
One finite row for each constraint checked along a recorded walk.
structure WalkOpinionRow (vertices d t : Nat) where …
- abbrev
OAI.MaxCutGames.Foundations.PCP.PoweringOpinionTables.WalkRowsline 143 - def
OAI.MaxCutGames.Foundations.PCP.PoweringOpinionTables.walkRowsline 146Source documentation
The only target vertices inspected are the actual edge endpoints.
def walkRows (G : PortGraph (Fin vertices) (Fin d)) (n : Nat) (w : Walk (Fin vertices) (Fin d) (n + 1)) : WalkRows vertices d n := …Mentions: OAI.MaxCutGames.Foundations.PCP.PoweringOpinionTables.WalkRows
- theorem
OAI.MaxCutGames.Foundations.PCP.PoweringOpinionTables.walkRows_edgeline 153 - theorem
OAI.MaxCutGames.Foundations.PCP.PoweringOpinionTables.walkRows_tail_valueline 158 - theorem
OAI.MaxCutGames.Foundations.PCP.PoweringOpinionTables.walkRows_head_valueline 166 - theorem
OAI.MaxCutGames.Foundations.PCP.PoweringOpinionTables.walkRows_lengthline 174 - def
OAI.MaxCutGames.Foundations.PCP.PoweringOpinionTables.rowsAcceptsline 181Source documentation
Evaluate an already stored row vector by finite label lookups. The only quantified type is the bounded set of walk positions.
def rowsAccepts {n : Nat} (accepts : Edge (Fin vertices) (Fin d) → A → A → Bool) (rows : WalkRows vertices d n) (a b : LabelTable d (n + 1) A) : Bool := …Mentions: OAI.MaxCutGames.Foundations.PCP.accepts, OAI.MaxCutGames.Foundations.PCP.PoweringOpinionTables.WalkRows, OAI.MaxCutGames.Foundations.PCP.PoweringOpinionTables.LabelTable
- theorem
OAI.MaxCutGames.Foundations.PCP.PoweringOpinionTables.rowsAccepts_walkRowsline 187Source documentation
The stored finite lookup predicate implements the actual powering test.
theorem rowsAccepts_walkRows (G : PortGraph (Fin vertices) (Fin d)) (accepts : Edge (Fin vertices) (Fin d) → A → A → Bool) (n : Nat) (w : Walk (Fin vertices) (Fin d) (n + 1)) (a b : PaddedLabel (Fin d) (n + 1) A) : rowsAccepts accepts (walkRows G n w) (labelTable a) (labelTable b) = PoweringTest.pathAccepts G accepts n (finitePortSelector G (n + 1)) w a b := by …Mentions: OAI.MaxCutGames.Foundations.PCP.accepts, OAI.MaxCutGames.Foundations.PCP.PoweringOpinionTables.rowsAccepts, OAI.MaxCutGames.Foundations.PCP.PoweringOpinionTables.walkRows, OAI.MaxCutGames.Foundations.PCP.PoweringOpinionTables.labelTable, OAI.MaxCutGames.Foundations.PCP.PoweringTest.pathAccepts
- abbrev
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.Labelline 214 - abbrev
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.RelationTableline 215 - def
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.relationIndexline 220Source documentation
The fixed row-major ordering of the complete predicate table.
def relationIndex (q : Nat) : (Label q) × (Label q) ≃ Fin (q * q) := finProdFinEquiv
Mentions: OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.Label
- theorem
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.relationIndex_valline 222 - def
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.relationAtline 225 - def
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.relationOfline 228 - theorem
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.relationAt_relationOfline 231 - structure
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.DartRowline 236Source documentation
The row itself is finite data; index bounds are checked while parsing.
structure DartRow (q vertices darts : Nat) where …
- abbrev
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.Rowsline 241 - def
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.reverseAtline 243 - def
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.acceptsAtline 246 - def
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.Validline 250Source documentation
The two graph laws are decidable finite checks on the stored rows.
def Valid {n m : Nat} (rows : Rows q n m) : Prop := …Mentions: OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.Rows
- instance
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.(instance at line 254)line 254 - structure
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.Tableline 258 - def
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.rowListline 265Source documentation
The ordered list serialized by the codec. Equal rows remain separate.
def rowList (table : (Table q)) : List (DartRow q table.vertices table.darts) := table.rows.toList
Mentions: OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.Table, OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.DartRow
- theorem
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.rowList_lengthline 267 - def
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.semanticsline 271Source documentation
Decode validated finite data into the actual constraint-graph semantics.
def semantics (table : (Table q)) : ConstraintGraph (Fin table.vertices) (Fin table.darts) (Label q) where …
Mentions: OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.Table, OAI.MaxCutGames.Foundations.PCP.ConstraintGraph, OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.Label
- theorem
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.semantics_reverseline 282 - theorem
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.semantics_tailline 285 - theorem
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.semantics_acceptsline 288 - def
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.graphRowsline 291 - theorem
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.reverseAt_graphRowsline 294 - theorem
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.acceptsAt_graphRowsline 299 - theorem
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.graphRows_validline 304 - def
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.ofGraphline 312 - theorem
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.semantics_ofGraph_reverseline 315 - theorem
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.semantics_ofGraph_tailline 320 - theorem
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.semantics_ofGraph_acceptsline 326 - theorem
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.semantics_ofGraph_edgeSatisfiedline 331 - theorem
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.constraintGraph_ext_inline_GenericGraphTablesline 336 - theorem
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.semantics_ofGraphline 351Source documentation
Complete semantic graph roundtrip, including its actual reversal map.
@[simp] theorem semantics_ofGraph {n m : Nat} (G : ConstraintGraph (Fin n) (Fin m) (Label q)) : semantics (ofGraph G) = G := by …Mentions: OAI.MaxCutGames.Foundations.PCP.ConstraintGraph, OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.Label, OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.semantics, OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.ofGraph
- theorem
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.semantics_ofGraph_rejectionCountline 360 - def
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.enumeratedGraphline 368Source documentation
Explicit enumerations determine every vertex name, dart position, and predicate label. No hidden choice of a graph representation is made.
def enumeratedGraph {V E A : Type*} {n m : Nat} (G : ConstraintGraph V E A) (vertexOrder : V ≃ Fin n) (dartOrder : E ≃ Fin m) (labelOrder : A ≃ (Label q)) : ConstraintGraph (Fin n) (Fin m) (Label q) where …Mentions: OAI.MaxCutGames.Foundations.PCP.ConstraintGraph, OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.Label
- theorem
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.enumeratedGraph_edgeSatisfiedline 384 - theorem
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.enumeratedGraph_rejectionCountline 393Source documentation
Every directed occurrence contributes once before and after enumeration.
theorem enumeratedGraph_rejectionCount {V E A : Type*} [Fintype E] {n m : Nat} (G : ConstraintGraph V E A) (vertexOrder : V ≃ Fin n) (dartOrder : E ≃ Fin m) (labelOrder : A ≃ (Label q)) (labeling : V → A) : (enumeratedGraph G vertexOrder dartOrder labelOrder).rejectionCount (fun v => labelOrder (labeling (vertexOrder.symm v))) = G.rejectionCount labeling := by …Mentions: OAI.MaxCutGames.Foundations.PCP.ConstraintGraph, OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.Label, OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.enumeratedGraph
- def
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.ofEnumeratedGraphline 405 - def
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.bitWordline 409 - def
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.parseBitline 411 - theorem
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.parseBit_bitWordline 416 - theorem
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.parseBits_bitWordsline 419 - def
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.relationWordsline 425 - theorem
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.relationWords_lengthline 427 - def
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.parseRelationline 430 - theorem
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.parseRelation_encodedline 436 - def
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.rowWordsline 443 - def
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.parseRowline 446 - theorem
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.parseRow_encodedline 454 - def
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.parseRowsline 462 - theorem
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.parseRows_encodedline 470 - def
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.tableWordsline 476 - def
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.tableBitsline 479 - def
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.decodeTableWordsline 481 - theorem
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.decodeTableWords_encodedline 492 - def
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.decodeTableBitsline 500 - theorem
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.decodeTableBits_encodedline 503 - def
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.encodingline 508Source documentation
A concrete encoding for the fixed alphabet, suitable for the existing TM2 computation interface.
def encoding (q : Nat) : Computability.Encoding (Table q) Bool where …
Mentions: OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.Table
- theorem
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.tableBits_injectiveline 513 - theorem
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.rowWords_lengthline 515 - theorem
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.rowsWords_lengthline 521 - theorem
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.tableWords_lengthline 527 - theorem
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.tableWords_length_le_bitsline 534Source documentation
At least one unary delimiter is stored for every field, including all (q * q) entries of every predicate table.
theorem tableWords_length_le_bits (table : (Table q)) : 2 + (q * q + 2) * table.darts ≤ (tableBits table).length := by …Mentions: OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.Table, OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.tableBits
- theorem
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.relationBits_length_leline 539 - theorem
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.rowBits_length_leline 547 - theorem
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.rowsBits_length_leline 556 - theorem
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.tableBits_length_leline 568Source documentation
Full unary size bound: headers, both bounded indices in every row, and every Boolean predicate entry are counted. This is not a runtime assertion.
theorem tableBits_length_le (table : (Table q)) : (tableBits table).length ≤ table.vertices + table.darts + 2 + table.darts * (table.vertices + table.darts + (2 * (q * q))) := by …Mentions: OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.Table, OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.tableBits
- theorem
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.vertices_le_tableBits_lengthline 577 - theorem
OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.darts_le_tableBits_lengthline 583 - def
OAI.MaxCutGames.Foundations.PCP.PoweringTables.labelCountline 606Source documentation
Program-constant output alphabet size for degree
dand walk lengthn+1.def labelCount (d n : Nat) : Nat := 64 ^ addressCount d (n + 1)
- def
OAI.MaxCutGames.Foundations.PCP.PoweringTables.dartCountline 609Source documentation
Number of directed recorded-walk occurrences, including orientation.
def dartCount (vertices d n : Nat) : Nat := 2 * vertices * d ^ (n + 1)
- def
OAI.MaxCutGames.Foundations.PCP.PoweringTables.mathematicalGraphline 611 - def
OAI.MaxCutGames.Foundations.PCP.PoweringTables.rowAcceptsline 618Source documentation
The finite first-address predicate evaluator used for each stored row.
def rowAccepts {vertices d : Nat} (input : PortTables.Table vertices d) (n : Nat) (e : PoweringTest.Dart (Fin vertices) (Fin d) n) (a b : Fin (labelCount d n)) : Bool := …Mentions: OAI.MaxCutGames.Foundations.PCP.PortTables.Table, OAI.MaxCutGames.Foundations.PCP.PoweringTest.Dart, OAI.MaxCutGames.Foundations.PCP.PoweringTables.labelCount
- theorem
OAI.MaxCutGames.Foundations.PCP.PoweringTables.rowAccepts_eqline 627 - def
OAI.MaxCutGames.Foundations.PCP.PoweringTables.tableline 637 - theorem
OAI.MaxCutGames.Foundations.PCP.PoweringTables.table_verticesline 642 - theorem
OAI.MaxCutGames.Foundations.PCP.PoweringTables.table_dartsline 645 - theorem
OAI.MaxCutGames.Foundations.PCP.PoweringTables.semantics_tableline 649Source documentation
Complete decoded semantics, with executable vertex, dart and label orders.
theorem semantics_table {vertices d : Nat} (input : PortTables.Table vertices d) (n : Nat) : GenericGraphTables.semantics (table input n) = GenericGraphTables.enumeratedGraph (mathematicalGraph input n) (Equiv.refl _) (dartEquiv vertices d n) (paddedLabelEquiv d (n + 1) 64) := …Mentions: OAI.MaxCutGames.Foundations.PCP.PortTables.Table, OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.semantics, OAI.MaxCutGames.Foundations.PCP.PoweringTables.table, OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.enumeratedGraph, OAI.MaxCutGames.Foundations.PCP.PoweringTables.mathematicalGraph
- theorem
OAI.MaxCutGames.Foundations.PCP.PoweringTables.table_acceptsline 656Source documentation
Each actual output relation entry is the bounded stored-opinion evaluator.
theorem table_accepts {vertices d : Nat} (input : PortTables.Table vertices d) (n : Nat) (i : Fin (dartCount vertices d n)) (a b : Fin (labelCount d n)) : GenericGraphTables.acceptsAt (table input n).rows i a b = rowAccepts input n (decodeDart vertices d n i) a b := by …Mentions: OAI.MaxCutGames.Foundations.PCP.PortTables.Table, OAI.MaxCutGames.Foundations.PCP.PoweringTables.dartCount, OAI.MaxCutGames.Foundations.PCP.PoweringTables.labelCount, OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.acceptsAt, OAI.MaxCutGames.Foundations.PCP.PoweringTables.table, OAI.MaxCutGames.Foundations.PCP.PoweringTables.rowAccepts
- theorem
OAI.MaxCutGames.Foundations.PCP.PoweringTables.table_reverseline 665Source documentation
The reverse row flips just the orientation in the recorded-walk encoding.
theorem table_reverse {vertices d : Nat} (input : PortTables.Table vertices d) (n : Nat) (direction : Bool) (w : Walk (Fin vertices) (Fin d) (n + 1)) : GenericGraphTables.reverseAt (table input n).rows (encodeDart vertices d n (direction, w)) = encodeDart vertices d n (!direction, w) := by …Mentions: OAI.MaxCutGames.Foundations.PCP.PortTables.Table, OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.reverseAt, OAI.MaxCutGames.Foundations.PCP.PoweringTables.table
- def
OAI.MaxCutGames.Foundations.PCP.PoweringTables.outputBitsline 678Source documentation
Serialized output in the shared generic graph codec.
def outputBits {vertices d : Nat} (input : PortTables.Table vertices d) (n : Nat) : List Bool := … - def
OAI.MaxCutGames.Foundations.PCP.PoweringTables.transformline 682Source documentation
The actual function on variable-size regular input tables.
def transform (d n : Nat) (input : PortTables.Input d) : GenericGraphTables.Table (labelCount d n) := …
Mentions: OAI.MaxCutGames.Foundations.PCP.PortTables.Input, OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.Table, OAI.MaxCutGames.Foundations.PCP.PoweringTables.labelCount
- theorem
OAI.MaxCutGames.Foundations.PCP.PoweringCounting.constraint_rejection_mean_eq_countline 706Source documentation
An arbitrary constraint graph's rejection probability is its actual rejected-dart cardinal ratio, including the empty-dart case.
theorem constraint_rejection_mean_eq_count [Fintype E] (H : ConstraintGraph V E A) (labels : V → A) : SpectralReturn.mean (fun e : E => PoweringMoment.bit (H.edgeSatisfied labels e = false)) = (H.rejectionCount labels : ℝ) / (Fintype.card E : ℝ) := by …Mentions: OAI.MaxCutGames.Foundations.PCP.ConstraintGraph, OAI.MaxCutGames.Foundations.PCP.SpectralReturn.mean, OAI.MaxCutGames.Foundations.PCP.PoweringMoment.bit
- theorem
OAI.MaxCutGames.Foundations.PCP.PoweringCounting.constraint_rejection_lower_iffline 722Source documentation
Multiplying a normalized lower bound by the actual positive dart count.
theorem constraint_rejection_lower_iff [Fintype E] (H : ConstraintGraph V E A) (labels : V → A) (hcard : 0 < Fintype.card E) (ε : ℝ) : ε ≤ SpectralReturn.mean (fun e : E => PoweringMoment.bit (H.edgeSatisfied labels e = false)) ↔ ε * (Fintype.card E : ℝ) ≤ (H.rejectionCount labels : ℝ) := by …Mentions: OAI.MaxCutGames.Foundations.PCP.ConstraintGraph, OAI.MaxCutGames.Foundations.PCP.SpectralReturn.mean, OAI.MaxCutGames.Foundations.PCP.PoweringMoment.bit
- theorem
OAI.MaxCutGames.Foundations.PCP.PoweringCounting.edgeDensity_eq_bit_meanline 733Source documentation
The edge-profile definition equals its actual directed-edge indicator mean without any nonemptiness assumption on vertices or ports.
theorem edgeDensity_eq_bit_mean [Fintype V] [Fintype D] (bad : Edge V D → Bool) : SpectralReturn.edgeDensity bad = SpectralReturn.mean (fun e : Edge V D => PoweringMoment.bit (bad e = true)) := by …Mentions: OAI.MaxCutGames.Foundations.PCP.SpectralReturn.edgeDensity, OAI.MaxCutGames.Foundations.PCP.SpectralReturn.mean, OAI.MaxCutGames.Foundations.PCP.PoweringMoment.bit
- theorem
OAI.MaxCutGames.Foundations.PCP.PoweringCounting.base_edgeDensity_eq_rejection_countline 748Source documentation
Decoded badness is exactly rejection in the actual base constraint graph.
theorem base_edgeDensity_eq_rejection_count [Fintype V] [Fintype D] (G : PortGraph V D) (accepts : Edge V D → A → A → Bool) (reverse_accepts : ∀ e a b, accepts (G.rot e) b a = accepts e a b) (assignment : V → A) : SpectralReturn.edgeDensity (decodedBad G accepts assignment) = ((baseGraph G accepts reverse_accepts).rejectionCount assignment : ℝ) / (Fintype.card (Edge V D) : ℝ) := by …Mentions: OAI.MaxCutGames.Foundations.PCP.accepts, OAI.MaxCutGames.Foundations.PCP.SpectralReturn.edgeDensity
- theorem
OAI.MaxCutGames.Foundations.PCP.PoweringCounting.base_count_lower_to_densityline 766 - theorem
OAI.MaxCutGames.Foundations.PCP.PoweringCounting.powered_rejection_mean_eq_countline 778Source documentation
The actual powered graph's directed-dart average is its rejected-dart fraction. No nonemptiness premise is needed for this identity.
theorem powered_rejection_mean_eq_count [Fintype V] [Fintype D] (G : PortGraph V D) (accepts : Edge V D → A → A → Bool) (n : Nat) (selectors : ∀ v, AddressSelector G (n + 1) v) (labels : V → PaddedLabel D (n + 1) A) : SpectralReturn.mean (fun d : Dart V D n => PoweringMoment.bit ((poweredGraph G accepts n selectors).edgeSatisfied labels d = false)) = ((poweredGraph G accepts n selectors).rejectionCount labels : ℝ) / (Fintype.card (Dart V D n) : ℝ) := …Mentions: OAI.MaxCutGames.Foundations.PCP.accepts, OAI.MaxCutGames.Foundations.PCP.SpectralReturn.mean, OAI.MaxCutGames.Foundations.PCP.PoweringMoment.bit
- theorem
OAI.MaxCutGames.Foundations.PCP.PoweringCounting.path_rejection_mean_eq_countline 790Source documentation
The recorded-walk rejection average used in soundness is the actual powered graph's rejected-dart fraction.
theorem path_rejection_mean_eq_count [Fintype V] [Fintype D] (G : PortGraph V D) (accepts : Edge V D → A → A → Bool) (n : Nat) (selectors : ∀ v, AddressSelector G (n + 1) v) (labels : V → PaddedLabel D (n + 1) A) : SpectralReturn.mean (fun w : Walk V D (n + 1) => PoweringMoment.bit (pathAccepts G accepts n selectors w (labels w.1) (labels (endpoint G w)) = false)) = ((poweredGraph G accepts n selectors).rejectionCount labels : ℝ) / (Fintype.card (Dart V D n) : ℝ) := by …Mentions: OAI.MaxCutGames.Foundations.PCP.accepts, OAI.MaxCutGames.Foundations.PCP.SpectralReturn.mean, OAI.MaxCutGames.Foundations.PCP.PoweringMoment.bit
- theorem
OAI.MaxCutGames.Foundations.PCP.PoweringCounting.powered_density_lower_to_countline 803Source documentation
Convert a proved path-test rejection lower bound into the actual powered constraint graph's rejected-dart count inequality.
theorem powered_density_lower_to_count [Fintype V] [Fintype D] (G : PortGraph V D) (accepts : Edge V D → A → A → Bool) (n : Nat) (selectors : ∀ v, AddressSelector G (n + 1) v) (labels : V → PaddedLabel D (n + 1) A) (hcard : 0 < Fintype.card (Dart V D n)) (ε : ℝ) (hlower : ε ≤ SpectralReturn.mean (fun w : Walk V D (n + 1) => PoweringMoment.bit (pathAccepts G accepts n selectors w (labels w.1) (labels (endpoint G w)) = false))) : ε * (Fintype.card (Dart V D n) : ℝ) ≤ ((poweredGraph G accepts n selectors).rejectionCount labels : ℝ) := by …Mentions: OAI.MaxCutGames.Foundations.PCP.accepts, OAI.MaxCutGames.Foundations.PCP.SpectralReturn.mean, OAI.MaxCutGames.Foundations.PCP.PoweringMoment.bit
- theorem
OAI.MaxCutGames.Foundations.PCP.PoweringCounting.natCard_dartline 817Source documentation
Exact size of the powered dart type, retaining both direction flags and all recorded port words, including repeated vertices and edges.
theorem natCard_dart [Finite V] [Finite D] (n : Nat) : Nat.card (Dart V D n) = 2 * Nat.card V * Nat.card D ^ (n + 1) := by … - theorem
OAI.MaxCutGames.Foundations.PCP.PoweringCounting.fintypeCard_dartline 821 - theorem
OAI.MaxCutGames.Foundations.PCP.PoweringCounting.natCard_poweredAlphabetline 828Source documentation
The common powered alphabet size depends only on degree, radius, and the base alphabet. The ambient vertex cardinality does not occur.
theorem natCard_poweredAlphabet [Finite D] [Finite A] (n : Nat) : Nat.card (PaddedLabel D (n + 1) A) = Nat.card A ^ (∑ j : Fin (n + 2), Nat.card D ^ j.val) := … - theorem
OAI.MaxCutGames.Foundations.PCP.PoweringCounting.natCard_finitePortAlphabetline 835Source documentation
With finite numbered ports, the same exponent is the length of the already constructed executable address enumeration.
theorem natCard_finitePortAlphabet [Finite A] (d n : Nat) : Nat.card (PaddedLabel (Fin d) (n + 1) A) = Nat.card A ^ (PoweringAddresses.allAddresses d (n + 1)).length := by …Mentions: OAI.MaxCutGames.Foundations.PCP.PoweringAddresses.allAddresses