OAI/Computability/MaxCut/PCP/ExpanderFamily.lean
129 declarations, 0 contain sorry, 0 declared as axioms
A concrete finite family from the Cayley base
The initial graph has one vertex and the fixed number of loop ports. Each subsequent graph is the actual square-and-zigzag construction. Consequently the vertex sizes are exact powers of one fixed integer, including size one. The finite base is selected from the proved existence theorem.
- abbrev
OAI.MaxCutGames.Foundations.PCP.ExpanderFamily.Portline 19 - abbrev
OAI.MaxCutGames.Foundations.PCP.ExpanderFamily.CloudPortline 20 - def
OAI.MaxCutGames.Foundations.PCP.ExpanderFamily.growthline 21 - theorem
OAI.MaxCutGames.Foundations.PCP.ExpanderFamily.card_portline 23 - theorem
OAI.MaxCutGames.Foundations.PCP.ExpanderFamily.card_cloudPortline 27 - theorem
OAI.MaxCutGames.Foundations.PCP.ExpanderFamily.growth_gt_oneline 33 - theorem
OAI.MaxCutGames.Foundations.PCP.ExpanderFamily.port_degree_ge_eightline 36 - def
OAI.MaxCutGames.Foundations.PCP.ExpanderFamily.baseVertexEquivline 40 - def
OAI.MaxCutGames.Foundations.PCP.ExpanderFamily.baseOnCloudline 43 - theorem
OAI.MaxCutGames.Foundations.PCP.ExpanderFamily.baseOnCloud_certificateline 46 - def
OAI.MaxCutGames.Foundations.PCP.ExpanderFamily.Vertexline 49 - instance
OAI.MaxCutGames.Foundations.PCP.ExpanderFamily.vertexFintypeline 53 - instance
OAI.MaxCutGames.Foundations.PCP.ExpanderFamily.basePortNonemptyline 61 - instance
OAI.MaxCutGames.Foundations.PCP.ExpanderFamily.vertexNonemptyline 64 - def
OAI.MaxCutGames.Foundations.PCP.ExpanderFamily.graphline 73Source documentation
The family is a recursive rotation algorithm when its fixed base is given.
def graph (H : PortGraph CloudPort BasePort) : (n : Nat) → PortGraph (Vertex n) Port | 0 => { rot := Equiv.refl _, rot_involutive := fun _ => rfl } …Mentions: OAI.MaxCutGames.Foundations.PCP.ExpanderFamily.CloudPort, OAI.MaxCutGames.Foundations.PCP.ExpanderFamily.Vertex, OAI.MaxCutGames.Foundations.PCP.ExpanderFamily.Port
- theorem
OAI.MaxCutGames.Foundations.PCP.ExpanderFamily.graph_certificateline 77 - def
OAI.MaxCutGames.Foundations.PCP.ExpanderFamily.familyline 100 - theorem
OAI.MaxCutGames.Foundations.PCP.ExpanderFamily.family_certificateline 102 - theorem
OAI.MaxCutGames.Foundations.PCP.ExpanderFamily.card_vertexline 105 - def
OAI.MaxCutGames.Foundations.PCP.ExpanderFamily.levelline 114Source documentation
The least geometric level covering a requested size.
Nat.clogis the ordinary finite ceiling logarithm algorithm.def level (k : Nat) : Nat := Nat.clog growth k
Mentions: OAI.MaxCutGames.Foundations.PCP.ExpanderFamily.growth
- def
OAI.MaxCutGames.Foundations.PCP.ExpanderFamily.sizeline 116 - theorem
OAI.MaxCutGames.Foundations.PCP.ExpanderFamily.le_sizeline 118 - theorem
OAI.MaxCutGames.Foundations.PCP.ExpanderFamily.size_le_mulline 120 - theorem
OAI.MaxCutGames.Foundations.PCP.ExpanderFamily.padded_family_sizeline 134 - def
OAI.MaxCutGames.Foundations.PCP.CloudPadding.paddedSizeline 159Source documentation
Leave empty clouds empty; pad every positive size to a geometric level.
def paddedSize (k : Nat) : Nat := if k = 0 then 0 else ExpanderFamily.size k
Mentions: OAI.MaxCutGames.Foundations.PCP.ExpanderFamily.size
- theorem
OAI.MaxCutGames.Foundations.PCP.CloudPadding.paddedSize_zeroline 161 - theorem
OAI.MaxCutGames.Foundations.PCP.CloudPadding.paddedSize_of_posline 163 - theorem
OAI.MaxCutGames.Foundations.PCP.CloudPadding.le_paddedSizeline 167 - theorem
OAI.MaxCutGames.Foundations.PCP.CloudPadding.paddedSize_le_mulline 174 - def
OAI.MaxCutGames.Foundations.PCP.CloudPadding.paddedCloudEquivline 183Source documentation
The actual padded tail fiber contains old darts and exactly the dummy darts indexed by that tail, with transport along the sigma index equality.
def paddedCloudEquiv (G : ConstraintGraph V E A) (dummy : V → Type*) (v : V) : Cloud (paddedGraph G dummy) v ≃ Cloud G v ⊕ dummy v where …Mentions: OAI.MaxCutGames.Foundations.PCP.ConstraintGraph, OAI.MaxCutGames.Foundations.PCP.CloudPadding.dummy
- def
OAI.MaxCutGames.Foundations.PCP.CloudPadding.dartCloudEquivline 207Source documentation
Every original dart occurs in exactly one cloud.
def dartCloudEquiv (G : ConstraintGraph V E A) : E ≃ Σ v : V, Cloud G v where …
- theorem
OAI.MaxCutGames.Foundations.PCP.CloudPadding.sum_card_cloudline 218 - theorem
OAI.MaxCutGames.Foundations.PCP.CloudPadding.card_padded_cloudline 222 - abbrev
OAI.MaxCutGames.Foundations.PCP.CloudPadding.dummyline 229Source documentation
The precise number of always-accepting loop darts to add at each vertex.
abbrev dummy (G : ConstraintGraph V E A) (v : V) := …
- theorem
OAI.MaxCutGames.Foundations.PCP.CloudPadding.card_cloudline 232 - theorem
OAI.MaxCutGames.Foundations.PCP.CloudPadding.card_dummy_of_emptyline 240 - theorem
OAI.MaxCutGames.Foundations.PCP.CloudPadding.card_cloud_of_emptyline 244 - theorem
OAI.MaxCutGames.Foundations.PCP.CloudPadding.card_cloud_eq_familyline 249 - theorem
OAI.MaxCutGames.Foundations.PCP.CloudPadding.card_paddedDart_eq_sumline 258Source documentation
Exact count over all padded tail fibers, including empty original fibers.
theorem card_paddedDart_eq_sum (G : ConstraintGraph V E A) : Fintype.card (PaddedDart G (dummy G)) = ∑ v, paddedSize (Fintype.card (Cloud G v)) := by …Mentions: OAI.MaxCutGames.Foundations.PCP.ConstraintGraph, OAI.MaxCutGames.Foundations.PCP.CloudPadding.dummy, OAI.MaxCutGames.Foundations.PCP.CloudPadding.paddedSize
- theorem
OAI.MaxCutGames.Foundations.PCP.CloudPadding.card_paddedDart_leline 272Source documentation
Padding increases the total number of darts by at most the fixed family growth factor, independent of the number of empty vertices.
theorem card_paddedDart_le (G : ConstraintGraph V E A) : Fintype.card (PaddedDart G (dummy G)) ≤ ExpanderFamily.growth * Fintype.card E := by …Mentions: OAI.MaxCutGames.Foundations.PCP.ConstraintGraph, OAI.MaxCutGames.Foundations.PCP.CloudPadding.dummy, OAI.MaxCutGames.Foundations.PCP.ExpanderFamily.growth
- def
OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.listEquivline 304Source documentation
An explicit complete list supplies both directions of a finite encoding. The forward direction searches the list; its inverse performs list indexing.
def listEquiv {α : Type*} [BEq α] [LawfulBEq α] (xs : List α) (nodup : xs.Nodup) (complete : ∀ a, a ∈ xs) : α ≃ Fin xs.length where … - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.listEquiv_valline 313 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.listEquiv_symm_applyline 317 - def
OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.cloudDartsline 322Source documentation
Retain the input dart order and test only the stored tail index.
def cloudDarts (t : Table) (v : Fin t.vertices) : List (Fin t.darts) := …
- theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.mem_cloudDartsline 325 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.cloudDarts_nodupline 329 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.cloudDarts_sublistline 335Source documentation
Filtering preserves the original ordering, including repeated row values at different dart indices.
theorem cloudDarts_sublist (t : Table) (v : Fin t.vertices) : (cloudDarts t v).Sublist (List.finRange t.darts) := List.filter_sublistMentions: OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.cloudDarts
- def
OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.cloudSizeline 338 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.cloudSize_le_dartsline 340 - def
OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.cloudSelectline 345Source documentation
Read the original dart stored at a valid local cloud index.
def cloudSelect (t : Table) (v : Fin t.vertices) (i : Fin (cloudSize t v)) : Cloud (semantics t) v := …Mentions: OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.cloudSize
- def
OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.cloudRankline 351Source documentation
Find the local index of an original dart belonging to this cloud.
def cloudRank (t : Table) (v : Fin t.vertices) (e : Cloud (semantics t) v) : Fin (cloudSize t v) := …Mentions: OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.cloudSize
- theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.cloudSelect_valline 356 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.cloudRank_valline 360 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.cloudSelect_cloudRankline 364 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.cloudRank_cloudSelectline 369 - def
OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.cloudEquivline 376Source documentation
This equivalence contains executable rank and select functions, including when both its domain and codomain are empty.
def cloudEquiv (t : Table) (v : Fin t.vertices) : Cloud (semantics t) v ≃ Fin (cloudSize t v) where …Mentions: OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.cloudSize
- theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.cloudSize_eq_card_cloudline 383 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.cloudDarts_eq_nil_iffline 387 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.cloudSize_eq_zero_iffline 391 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.sum_cloudSizeline 395 - def
OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.oldCloudIndexline 405Source documentation
An original global dart carries its own owner and executable local rank.
def oldCloudIndex (t : Table) (e : Fin t.darts) : Fin (cloudSize t t.rows[e].tail) := cloudRank t t.rows[e].tail ⟨e, rfl⟩Mentions: OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.cloudSize, OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.cloudRank
- theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.cloudSelect_oldCloudIndexline 408 - abbrev
OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.PaddedCloudline 414Source documentation
Padding counts are supplied as executable natural-valued data, without choosing enumerations of the semantic clouds by their cardinalities.
abbrev PaddedCloud (t : Table) (padding : Fin t.vertices → Nat) (v : Fin t.vertices) := … - def
OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.paddedOldline 418 - def
OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.paddedNewline 422 - def
OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.paddedCloudEquivline 427Source documentation
Local padded order: old cloud indices first, then increasing dummy index.
def paddedCloudEquiv (t : Table) (padding : Fin t.vertices → Nat) (v : Fin t.vertices) : PaddedCloud t padding v ≃ Fin (cloudSize t v + padding v) := …Mentions: OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.PaddedCloud, OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.cloudSize
- def
OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.paddedCloudRankline 433 - def
OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.paddedCloudSelectline 437 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.paddedCloudSelect_rankline 441 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.paddedCloudRank_selectline 446 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.paddedCloudRank_oldline 451 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.paddedCloudRank_newline 456 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.paddedCloudRank_old_valline 461 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.paddedCloudRank_new_valline 466 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.paddedCloudSelect_castAddline 471 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.paddedCloudSelect_natAddline 483 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingCloudIndex.card_paddedCloudline 489 - def
OAI.MaxCutGames.Foundations.PCP.ExpanderTables.rowIndexline 500 - theorem
OAI.MaxCutGames.Foundations.PCP.ExpanderTables.rowIndex_valline 502 - structure
OAI.MaxCutGames.Foundations.PCP.ExpanderTables.Tableline 506Source documentation
Stored reverse-dart indices, with a proof of the finite involution law.
structure Table (v d : Nat) where …
- def
OAI.MaxCutGames.Foundations.PCP.ExpanderTables.reverseIndexline 510 - def
OAI.MaxCutGames.Foundations.PCP.ExpanderTables.lookupline 513 - theorem
OAI.MaxCutGames.Foundations.PCP.ExpanderTables.lookup_involutiveline 516 - def
OAI.MaxCutGames.Foundations.PCP.ExpanderTables.graphline 523 - theorem
OAI.MaxCutGames.Foundations.PCP.ExpanderTables.graph_rotline 527 - def
OAI.MaxCutGames.Foundations.PCP.ExpanderTables.ofGraphline 530 - theorem
OAI.MaxCutGames.Foundations.PCP.ExpanderTables.lookup_ofGraphline 538 - theorem
OAI.MaxCutGames.Foundations.PCP.ExpanderTables.graph_ext_inline_ExpanderTablesline 543 - theorem
OAI.MaxCutGames.Foundations.PCP.ExpanderTables.graph_ofGraphline 551 - theorem
OAI.MaxCutGames.Foundations.PCP.ExpanderTables.row_countline 554 - def
OAI.MaxCutGames.Foundations.PCP.ExpanderTables.vertexIndexline 558Source documentation
Explicit mixed-radix vertex coordinates for one square/zigzag step.
def vertexIndex (v q : Nat) : Fin v × (Fin q × Fin q) ≃ Fin (v * (q * q)) := …
- def
OAI.MaxCutGames.Foundations.PCP.ExpanderTables.stepGraphline 562Source documentation
The actual square/zigzag graph, expressed in the table's integer coordinates.
def stepGraph {v d : Nat} (G : Table v (d * d)) (H : Table ((d * d) * (d * d)) d) : PortGraph (Fin (v * ((d * d) * (d * d)))) (Fin (d * d)) := …Mentions: OAI.MaxCutGames.Foundations.PCP.ExpanderTables.Table
- def
OAI.MaxCutGames.Foundations.PCP.ExpanderTables.stepline 571Source documentation
Materialize every row of the next table in the declared order.
def step {v d : Nat} (G : Table v (d * d)) (H : Table ((d * d) * (d * d)) d) : Table (v * ((d * d) * (d * d))) (d * d) := ofGraph (stepGraph G H)Mentions: OAI.MaxCutGames.Foundations.PCP.ExpanderTables.Table, OAI.MaxCutGames.Foundations.PCP.ExpanderTables.ofGraph, OAI.MaxCutGames.Foundations.PCP.ExpanderTables.stepGraph
- def
OAI.MaxCutGames.Foundations.PCP.ExpanderTables.stepLookupline 576Source documentation
A row uses exactly the displayed four lookups in already stored tables.
def stepLookup {v d : Nat} (G : Table v (d * d)) (H : Table ((d * d) * (d * d)) d) (x : Fin (v * ((d * d) * (d * d))) × Fin (d * d)) : Fin (v * ((d * d) * (d * d))) × Fin (d * d) := …Mentions: OAI.MaxCutGames.Foundations.PCP.ExpanderTables.Table
- theorem
OAI.MaxCutGames.Foundations.PCP.ExpanderTables.lookup_stepline 590 - theorem
OAI.MaxCutGames.Foundations.PCP.ExpanderTables.step_certificateline 603 - def
OAI.MaxCutGames.Foundations.PCP.ExpanderTables.initialline 614 - theorem
OAI.MaxCutGames.Foundations.PCP.ExpanderTables.initial_certificateline 617 - def
OAI.MaxCutGames.Foundations.PCP.ExpanderTables.vertexCountline 627 - theorem
OAI.MaxCutGames.Foundations.PCP.ExpanderTables.vertexCount_eqline 631 - theorem
OAI.MaxCutGames.Foundations.PCP.ExpanderTables.vertexCount_positiveline 636 - def
OAI.MaxCutGames.Foundations.PCP.ExpanderTables.familyline 643Source documentation
A bottom-up vector of rotation rows. The recursive result is passed once to
step, whose row formula reads only that already materialized table.def family {d : Nat} (H : Table ((d * d) * (d * d)) d) : (n : Nat) → Table (vertexCount (d * d) n) (d * d) | 0 => initial d | n + 1 => step (family H n) HMentions: OAI.MaxCutGames.Foundations.PCP.ExpanderTables.Table, OAI.MaxCutGames.Foundations.PCP.ExpanderTables.vertexCount, OAI.MaxCutGames.Foundations.PCP.ExpanderTables.initial, OAI.MaxCutGames.Foundations.PCP.ExpanderTables.step
- theorem
OAI.MaxCutGames.Foundations.PCP.ExpanderTables.family_certificateline 648 - theorem
OAI.MaxCutGames.Foundations.PCP.ExpanderTables.family_row_countline 659 - theorem
OAI.MaxCutGames.Foundations.PCP.ExpanderTables.exists_base_tableline 664Source documentation
The only selected data is one fixed finite table, independent of the input.
theorem exists_base_table : ∃ H : Table ((Expanders.baseDegree * Expanders.baseDegree) * (Expanders.baseDegree * Expanders.baseDegree)) Expanders.baseDegree, SpectralCertificate (graph H) (1 / 100 : ℝ) := by …Mentions: OAI.MaxCutGames.Foundations.PCP.ExpanderTables.Table, OAI.MaxCutGames.Foundations.PCP.Expanders.baseDegree, OAI.MaxCutGames.Foundations.PCP.ExpanderTables.graph
- def
OAI.MaxCutGames.Foundations.PCP.PreprocessingLevels.levelLoopline 687 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingLevels.levelLoop_level_leline 694Source documentation
At most
fuelcontinuing iterations can increment the exponent.theorem levelLoop_level_le (g k fuel e s : Nat) : (levelLoop g k fuel e s).1 ≤ e + fuel := by …Mentions: OAI.MaxCutGames.Foundations.PCP.PreprocessingLevels.levelLoop
- theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingLevels.levelLoop_powerline 706Source documentation
The carried size remains the exact power of the carried exponent.
theorem levelLoop_power (g k fuel e : Nat) : (levelLoop g k fuel e (g ^ e)).2 = g ^ (levelLoop g k fuel e (g ^ e)).1 := by …Mentions: OAI.MaxCutGames.Foundations.PCP.PreprocessingLevels.levelLoop
- theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingLevels.levelLoop_coversline 717 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingLevels.levelLoop_le_of_covering_powerline 734Source documentation
The search never passes an exponent whose power already covers the request. This remains true even without a sufficient fuel budget.
theorem levelLoop_le_of_covering_power (g k fuel e j : Nat) (he : e ≤ j) (hj : k ≤ g ^ j) : (levelLoop g k fuel e (g ^ e)).1 ≤ j := by …Mentions: OAI.MaxCutGames.Foundations.PCP.PreprocessingLevels.levelLoop
- def
OAI.MaxCutGames.Foundations.PCP.PreprocessingLevels.searchResultline 751 - def
OAI.MaxCutGames.Foundations.PCP.PreprocessingLevels.boundedLevelline 755Source documentation
An executable exponent, computed with at most
kmultiplications.def boundedLevel (k : Nat) : Nat := (searchResult k).1
Mentions: OAI.MaxCutGames.Foundations.PCP.PreprocessingLevels.searchResult
- def
OAI.MaxCutGames.Foundations.PCP.PreprocessingLevels.paddedSizeline 758Source documentation
The algorithm returns the power it has already computed.
def paddedSize (k : Nat) : Nat := (searchResult k).2
Mentions: OAI.MaxCutGames.Foundations.PCP.PreprocessingLevels.searchResult
- theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingLevels.boundedLevel_zeroline 760 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingLevels.paddedSize_zeroline 762 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingLevels.boundedLevel_le_inputline 764 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingLevels.paddedSize_powerline 768 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingLevels.le_paddedSizeline 773 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingLevels.boundedLevel_eq_levelline 778Source documentation
The bounded multiplication loop computes the existing ceiling logarithm.
theorem boundedLevel_eq_level (k : Nat) : boundedLevel k = ExpanderFamily.level k := by …Mentions: OAI.MaxCutGames.Foundations.PCP.PreprocessingLevels.boundedLevel, OAI.MaxCutGames.Foundations.PCP.ExpanderFamily.level
- theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingLevels.paddedSize_eq_sizeline 788 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingLevels.boundedLevel_le_of_le_powerline 793Source documentation
The returned exponent is the least exponent whose power covers
k.theorem boundedLevel_le_of_le_power {k j : Nat} (h : k ≤ ExpanderFamily.growth ^ j) : boundedLevel k ≤ j := by …Mentions: OAI.MaxCutGames.Foundations.PCP.ExpanderFamily.growth, OAI.MaxCutGames.Foundations.PCP.PreprocessingLevels.boundedLevel
- theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingLevels.paddedSize_positiveline 798 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingLevels.paddedSize_boundsline 804Source documentation
Positive cloud sizes and positive whole-graph vertex counts increase by at most the single fixed growth factor.
theorem paddedSize_bounds {k : Nat} (hk : 0 < k) : k ≤ paddedSize k ∧ paddedSize k ≤ ExpanderFamily.growth * k := by …Mentions: OAI.MaxCutGames.Foundations.PCP.PreprocessingLevels.paddedSize, OAI.MaxCutGames.Foundations.PCP.ExpanderFamily.growth
- def
OAI.MaxCutGames.Foundations.PCP.PreprocessingLevels.cloudPaddedSizeline 810Source documentation
Empty clouds remain empty; nonempty clouds use the geometric family.
def cloudPaddedSize (k : Nat) : Nat := if k = 0 then 0 else paddedSize k
Mentions: OAI.MaxCutGames.Foundations.PCP.PreprocessingLevels.paddedSize
- theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingLevels.cloudPaddedSize_zeroline 812 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingLevels.cloudPaddedSize_of_posline 814 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingLevels.cloudPaddedSize_boundsline 818 - theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingLevels.table_vertexCount_eq_paddedSizeline 827Source documentation
The executable table family has exactly the size returned by the loop.
theorem table_vertexCount_eq_paddedSize (k : Nat) : ExpanderTables.vertexCount (Expanders.baseDegree * Expanders.baseDegree) (boundedLevel k) = paddedSize k := by …Mentions: OAI.MaxCutGames.Foundations.PCP.ExpanderTables.vertexCount, OAI.MaxCutGames.Foundations.PCP.Expanders.baseDegree, OAI.MaxCutGames.Foundations.PCP.PreprocessingLevels.boundedLevel, OAI.MaxCutGames.Foundations.PCP.PreprocessingLevels.paddedSize
- theorem
OAI.MaxCutGames.Foundations.PCP.PreprocessingLevels.family_row_count_at_sizeline 838